feat(ext/popup): login gen-btn opens generator popover; teardown closes it
This commit is contained in:
@@ -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', () => {
|
||||
|
||||
Reference in New Issue
Block a user