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