diff --git a/extension/src/popup/components/__tests__/generator-panel.test.ts b/extension/src/popup/components/__tests__/generator-panel.test.ts index ab2c7a4..3c26d5a 100644 --- a/extension/src/popup/components/__tests__/generator-panel.test.ts +++ b/extension/src/popup/components/__tests__/generator-panel.test.ts @@ -157,4 +157,13 @@ describe('generator-panel', () => { expect(isGeneratorPanelOpen()).toBe(false); expect(document.querySelector('.gen-panel')).toBeNull(); }); + + it("configure-defaults context renders only the save-default action (no use/cancel)", async () => { + const { parent, trigger } = setupMount(); + openGeneratorPanel({ parent, trigger, initial: DEFAULT_REQ, context: 'configure-defaults' }); + await new Promise((r) => setTimeout(r, 50)); + expect(document.querySelector('#gen-save-default')).not.toBeNull(); + expect(document.querySelector('#gen-use')).toBeNull(); + expect(document.querySelector('#gen-cancel')).toBeNull(); + }); }); diff --git a/extension/src/popup/components/generator-panel.ts b/extension/src/popup/components/generator-panel.ts index 51f716e..afcb1d4 100644 --- a/extension/src/popup/components/generator-panel.ts +++ b/extension/src/popup/components/generator-panel.ts @@ -106,7 +106,10 @@ export function openGeneratorPanel(opts: OpenPanelOpts): void { opts.trigger.setAttribute('aria-expanded', 'true'); const escHandler = (e: KeyboardEvent): void => { - if (e.key === 'Escape') closeGeneratorPanel(); + if (e.key === 'Escape') { + e.stopPropagation(); + closeGeneratorPanel(); + } }; document.addEventListener('keydown', escHandler); diff --git a/extension/src/popup/components/settings-vault.ts b/extension/src/popup/components/settings-vault.ts index e819567..e1ee961 100644 --- a/extension/src/popup/components/settings-vault.ts +++ b/extension/src/popup/components/settings-vault.ts @@ -12,6 +12,7 @@ let pendingSettings: VaultSettings | null = null; let activeKeyHandler: ((e: KeyboardEvent) => void) | null = null; export function teardown(): void { + closeGeneratorPanel(); if (activeKeyHandler) { document.removeEventListener('keydown', activeKeyHandler); activeKeyHandler = null;