import { CommandLog } from 'lang/std/engineConnection' import { engineCommandManager } from 'lib/singletons' import { reportRejection } from 'lib/trap' import { useState, useEffect } from 'react' export function useEngineCommands(): [CommandLog[], () => void] { const [engineCommands, setEngineCommands] = useState( engineCommandManager.commandLogs ) useEffect(() => { engineCommandManager.registerCommandLogCallback((commands) => setEngineCommands(commands) ) }, []) return [engineCommands, () => engineCommandManager.clearCommandLogs()] } export const EngineCommands = () => { const [engineCommands, clearEngineCommands] = useEngineCommands() const [containsFilter, setContainsFilter] = useState('') const [customCmd, setCustomCmd] = useState('') return (
setContainsFilter(e.target.value)} placeholder="Filter" />
{engineCommands.map((command, index) => { const stringer = JSON.stringify(command) if (containsFilter && !stringer.includes(containsFilter)) return null return (
              
                {JSON.stringify(command, null, 2)}
              
            
) })}

setCustomCmd(e.target.value)} placeholder="JSON command" data-testid="custom-cmd-input" />
) }