feat(cli): Allow Exiting Authentication Menu with CTRL+C (SIGINT) (#4482)

Co-authored-by: Seth Troisi <sethtroisi@google.com>
This commit is contained in:
Shehab 2025-08-07 20:26:55 +03:00 committed by GitHub
parent 8bac9e7d04
commit 7596481a9d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 8 additions and 3 deletions

View File

@ -632,6 +632,10 @@ const App = ({ config, settings, startupWarnings = [], version }: AppProps) => {
) {
setShowIDEContextDetail((prev) => !prev);
} else if (key.ctrl && (input === 'c' || input === 'C')) {
if (isAuthenticating) {
// Let AuthInProgress component handle the input.
return;
}
handleExit(ctrlCPressedOnce, setCtrlCPressedOnce, ctrlCTimerRef);
} else if (key.ctrl && (input === 'd' || input === 'D')) {
if (buffer.text.length > 0) {

View File

@ -18,8 +18,8 @@ export function AuthInProgress({
}: AuthInProgressProps): React.JSX.Element {
const [timedOut, setTimedOut] = useState(false);
useInput((_, key) => {
if (key.escape) {
useInput((input, key) => {
if (key.escape || (key.ctrl && (input === 'c' || input === 'C'))) {
onTimeout();
}
});
@ -48,7 +48,8 @@ export function AuthInProgress({
) : (
<Box>
<Text>
<Spinner type="dots" /> Waiting for auth... (Press ESC to cancel)
<Spinner type="dots" /> Waiting for auth... (Press ESC or CTRL+C to
cancel)
</Text>
</Box>
)}