diff --git a/src/ui/form-modal.ts b/src/ui/form-modal.ts index 75dffa3..e44812d 100644 --- a/src/ui/form-modal.ts +++ b/src/ui/form-modal.ts @@ -132,6 +132,29 @@ export class FormModal extends Modal { submitBtn.addEventListener('click', () => { 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 {