diff --git a/src/terminal/Terminal.tsx b/src/terminal/Terminal.tsx index 89a79049..c159b07a 100644 --- a/src/terminal/Terminal.tsx +++ b/src/terminal/Terminal.tsx @@ -177,6 +177,16 @@ const Terminal: React.FC = (_props) => { [createContextMenu, xterm], ); + useEffect(() => { + const listener = () => { + xterm.focus(); + }; + + addEventListener('pb-terminal-focus', listener); + + return () => removeEventListener('pb-terminal-focus', listener); + }, [xterm]); + return ( ): Generator { dataSource.next(action.value); } +function handleRepl(): void { + dispatchEvent(new CustomEvent('pb-terminal-focus')); +} + export default function* (): Generator { yield* takeEvery(didNotify, receiveUartData); yield* fork(receiveTerminalData); yield* takeEvery(sendData, sendTerminalData); + yield* takeEvery(repl, handleRepl); }