refactor(ui): extract switch controls logic into reusable hook and terminal restoration utility

Extracts duplicated exit/switch confirmation handling from CodexDisplay and RemoteModeDisplay into a custom useSwitchControls hook. Centralizes terminal state restoration (raw mode, keyboard protocol cleanup) into a restoreTerminalState utility function used across codex modules. Improves code reusability and maintainability.
This commit is contained in:
weishu
2025-12-22 23:12:24 +08:00
parent 360e3a9919
commit 93810689ad
10 changed files with 316 additions and 139 deletions
+2
View File
@@ -1,5 +1,6 @@
import { spawn } from 'node:child_process';
import { logger } from '@/ui/logger';
import { restoreTerminalState } from '@/ui/terminalState';
export async function codexLocal(opts: {
abort: AbortSignal;
@@ -91,5 +92,6 @@ export async function codexLocal(opts: {
});
} finally {
process.stdin.resume();
restoreTerminalState();
}
}