feat: add Ctrl+Enter and Enter keyboard navigation to form modal

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Luca Oelfke 2026-02-13 14:54:53 +01:00
parent ff6fecd39b
commit 0305f0be15

View file

@ -132,6 +132,29 @@ export class FormModal extends Modal {
submitBtn.addEventListener('click', () => { submitBtn.addEventListener('click', () => {
this.handleSubmit(); this.handleSubmit();
}); });
// Keyboard navigation
contentEl.addEventListener('keydown', (e: KeyboardEvent) => {
// Ctrl+Enter always submits
if (e.key === 'Enter' && (e.ctrlKey || e.metaKey)) {
e.preventDefault();
this.handleSubmit();
return;
}
// Enter on single-line inputs submits (unless in suggest dropdown)
if (e.key === 'Enter' && !e.shiftKey) {
const target = e.target as HTMLElement;
if (
target instanceof HTMLInputElement &&
target.type !== 'textarea' &&
!target.closest('.ff-suggest-wrapper')
) {
e.preventDefault();
this.handleSubmit();
}
}
});
} }
private async handleSubmit(): Promise<void> { private async handleSubmit(): Promise<void> {