fix(provider): handle Enter key to initiate auth setup in provider manager
The provider manager let users navigate with arrow keys but pressing Enter did nothing. Users had no way to set up authentication from within the /provider command. Adds selectConfirm (Enter) handler that routes to showLoginDialog for the selected provider, with a hint in the status bar. Closes #3579 Closes #3567 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
b4c6229360
commit
f121d6f170
2 changed files with 15 additions and 0 deletions
|
|
@ -43,6 +43,7 @@ export class ProviderManagerComponent extends Container implements Focusable {
|
|||
private modelsJsonWriter: ModelsJsonWriter;
|
||||
private onDone: () => void;
|
||||
private onDiscover: (provider: string) => void;
|
||||
private onSetupAuth: (provider: string) => void;
|
||||
private confirmingRemove = false;
|
||||
private hintsContainer: Container;
|
||||
|
||||
|
|
@ -52,6 +53,7 @@ export class ProviderManagerComponent extends Container implements Focusable {
|
|||
modelRegistry: ModelRegistry,
|
||||
onDone: () => void,
|
||||
onDiscover: (provider: string) => void,
|
||||
onSetupAuth?: (provider: string) => void,
|
||||
) {
|
||||
super();
|
||||
|
||||
|
|
@ -61,6 +63,7 @@ export class ProviderManagerComponent extends Container implements Focusable {
|
|||
this.modelsJsonWriter = new ModelsJsonWriter(this.modelRegistry.modelsJsonPath);
|
||||
this.onDone = onDone;
|
||||
this.onDiscover = onDiscover;
|
||||
this.onSetupAuth = onSetupAuth ?? (() => {});
|
||||
|
||||
// Header
|
||||
this.addChild(new Text(theme.fg("accent", "Provider Manager"), 0, 0));
|
||||
|
|
@ -125,6 +128,7 @@ export class ProviderManagerComponent extends Container implements Focusable {
|
|||
this.hintsContainer.addChild(new Text(hints, 0, 0));
|
||||
} else {
|
||||
const hints = [
|
||||
rawKeyHint("enter", "setup auth"),
|
||||
rawKeyHint("d", "discover"),
|
||||
rawKeyHint("r", "remove auth"),
|
||||
rawKeyHint("esc", "close"),
|
||||
|
|
@ -203,6 +207,12 @@ export class ProviderManagerComponent extends Container implements Focusable {
|
|||
this.tui.requestRender();
|
||||
}
|
||||
}
|
||||
} else if (kb.matches(keyData, "selectConfirm")) {
|
||||
// Enter key → initiate auth setup for the selected provider (#3579)
|
||||
const provider = this.providers[this.selectedIndex];
|
||||
if (provider) {
|
||||
this.onSetupAuth(provider.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3411,6 +3411,11 @@ export class InteractiveMode {
|
|||
done();
|
||||
this.ui.requestRender();
|
||||
},
|
||||
async (provider: string) => {
|
||||
// Enter key → auth setup for selected provider (#3579)
|
||||
done();
|
||||
await this.showLoginDialog(provider);
|
||||
},
|
||||
);
|
||||
return { component, focus: component };
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue