feat(ext/popup): login gen-btn opens generator popover; teardown closes it

This commit is contained in:
adlee-was-taken
2026-04-24 19:25:52 -04:00
parent 8a16482b9c
commit 531af03ff1

View File

@@ -14,6 +14,7 @@ import {
renderSectionsEditor,
wireSectionsEditor,
} from '../fields';
import { openGeneratorPopover, closeGeneratorPopover } from '../generator-popover';
/// Called by the dispatcher before each render. Stops any in-flight
/// tickers / intervals / listeners the previous view may have attached.
@@ -28,6 +29,7 @@ export function teardown(): void {
activeFormEscHandler = null;
}
sectionsExpanded = false;
closeGeneratorPopover();
}
// ----------------------------------------------------------------------
@@ -263,14 +265,17 @@ export function renderForm(app: HTMLElement, mode: 'add' | 'edit', existing: Ite
};
wireSectionsEditor(app, sectionsDraft, rerender);
document.getElementById('gen-btn')?.addEventListener('click', async () => {
const resp = await sendMessage({ type: 'generate_password', request: DEFAULT_PASSWORD_REQUEST });
if (resp.ok) {
const data = resp.data as { password: string };
const pw = document.getElementById('f-password') as HTMLInputElement;
pw.value = data.password;
pw.type = 'text';
} else setState({ error: resp.error });
document.getElementById('gen-btn')?.addEventListener('click', (e) => {
const anchor = e.currentTarget as HTMLElement;
const initial = getState().generatorDefaults ?? DEFAULT_PASSWORD_REQUEST;
openGeneratorPopover({
anchor,
initial,
onPicked: (value) => {
const pw = document.getElementById('f-password') as HTMLInputElement | null;
if (pw) { pw.value = value; pw.type = 'text'; }
},
});
});
document.getElementById('cancel-btn')?.addEventListener('click', () => {