refactor(cli): keyboard handling and AskUserDialog (#17414)

This commit is contained in:
Jacob Richman
2026-01-27 14:26:00 -08:00
committed by GitHub
parent 3103697ea7
commit b51323b40c
46 changed files with 1220 additions and 385 deletions

View File

@@ -40,22 +40,23 @@ export function TextInput({
const handleKeyPress = useCallback(
(key: Key) => {
if (key.name === 'escape') {
onCancel?.();
return;
if (key.name === 'escape' && onCancel) {
onCancel();
return true;
}
if (key.name === 'return') {
onSubmit?.(text);
return;
if (key.name === 'return' && onSubmit) {
onSubmit(text);
return true;
}
handleInput(key);
const handled = handleInput(key);
return handled;
},
[handleInput, onCancel, onSubmit, text],
);
useKeypress(handleKeyPress, { isActive: focus });
useKeypress(handleKeyPress, { isActive: focus, priority: true });
const showPlaceholder = text.length === 0 && placeholder;