From 0dea7233b65b480466e4da62db9127205b57a6d0 Mon Sep 17 00:00:00 2001 From: fuyou Date: Sun, 10 Aug 2025 06:26:43 +0800 Subject: feat(cli) - enhance input UX with double ESC clear (#4453) Co-authored-by: Jacob Richman --- packages/cli/src/ui/App.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'packages/cli/src/ui/App.tsx') diff --git a/packages/cli/src/ui/App.tsx b/packages/cli/src/ui/App.tsx index 7ee9405f..a52236f8 100644 --- a/packages/cli/src/ui/App.tsx +++ b/packages/cli/src/ui/App.tsx @@ -190,6 +190,7 @@ const App = ({ config, settings, startupWarnings = [], version }: AppProps) => { const [ideContextState, setIdeContextState] = useState< IdeContext | undefined >(); + const [showEscapePrompt, setShowEscapePrompt] = useState(false); const [isProcessing, setIsProcessing] = useState(false); useEffect(() => { @@ -224,6 +225,11 @@ const App = ({ config, settings, startupWarnings = [], version }: AppProps) => { const openPrivacyNotice = useCallback(() => { setShowPrivacyNotice(true); }, []); + + const handleEscapePromptChange = useCallback((showPrompt: boolean) => { + setShowEscapePrompt(showPrompt); + }, []); + const initialPromptSubmitted = useRef(false); const errorCount = useMemo( @@ -1055,6 +1061,8 @@ const App = ({ config, settings, startupWarnings = [], version }: AppProps) => { Press Ctrl+D again to exit. + ) : showEscapePrompt ? ( + Press Esc again to clear. ) : ( { commandContext={commandContext} shellModeActive={shellModeActive} setShellModeActive={setShellModeActive} + onEscapePromptChange={handleEscapePromptChange} focus={isFocused} vimHandleInput={vimHandleInput} placeholder={placeholder} -- cgit v1.2.3