From 092c960a9c3ee3e50e90a7403bfabaa4f25f825f Mon Sep 17 00:00:00 2001 From: tolvitty Date: Fri, 13 Feb 2026 13:22:06 +0100 Subject: [PATCH] feat: add FormPickerModal for quick form selection FuzzySuggestModal that lets users pick a form by name with fuzzy search. Co-Authored-By: Claude Opus 4.6 --- src/ui/form-picker-modal.ts | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/ui/form-picker-modal.ts diff --git a/src/ui/form-picker-modal.ts b/src/ui/form-picker-modal.ts new file mode 100644 index 0000000..693fafe --- /dev/null +++ b/src/ui/form-picker-modal.ts @@ -0,0 +1,33 @@ +import { App, FuzzySuggestModal } from 'obsidian'; +import { FormDefinition } from '../types'; + +/** + * A fuzzy search modal for selecting a form from the available definitions. + */ +export class FormPickerModal extends FuzzySuggestModal { + private forms: FormDefinition[]; + private onChoose: (form: FormDefinition) => void; + + constructor( + app: App, + forms: FormDefinition[], + onChoose: (form: FormDefinition) => void, + ) { + super(app); + this.forms = forms; + this.onChoose = onChoose; + this.setPlaceholder('Pick a form...'); + } + + getItems(): FormDefinition[] { + return this.forms; + } + + getItemText(item: FormDefinition): string { + return item.name; + } + + onChooseItem(item: FormDefinition): void { + this.onChoose(item); + } +}