diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-02-25 23:02:35 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-02-25 23:02:35 +0900 |
| commit | 38b8fc0e9927c4146b4c8b309b2bcc644abd63d0 (patch) | |
| tree | f76ba23251645e552fccd201362064b06de50bdd /src/client/components/CreateNoteModal.tsx | |
| parent | 7a77e72bb49ed3990a0c4581292a37a8a4f35231 (diff) | |
| download | kioku-38b8fc0e9927c4146b4c8b309b2bcc644abd63d0.tar.gz kioku-38b8fc0e9927c4146b4c8b309b2bcc644abd63d0.tar.zst kioku-38b8fc0e9927c4146b4c8b309b2bcc644abd63d0.zip | |
Allow each deck to specify a default note type that is auto-selected
when creating new notes. Includes DB schema migration, server API
updates, sync layer support, and UI for editing the default in the
deck settings modal.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'src/client/components/CreateNoteModal.tsx')
| -rw-r--r-- | src/client/components/CreateNoteModal.tsx | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/client/components/CreateNoteModal.tsx b/src/client/components/CreateNoteModal.tsx index 912aea8..cc39bf6 100644 --- a/src/client/components/CreateNoteModal.tsx +++ b/src/client/components/CreateNoteModal.tsx @@ -27,6 +27,7 @@ interface NoteTypeSummary { interface CreateNoteModalProps { isOpen: boolean; deckId: string; + defaultNoteTypeId?: string | null; onClose: () => void; onNoteCreated: () => void; } @@ -34,6 +35,7 @@ interface CreateNoteModalProps { export function CreateNoteModal({ isOpen, deckId, + defaultNoteTypeId, onClose, onNoteCreated, }: CreateNoteModalProps) { @@ -88,10 +90,13 @@ export function CreateNoteModal({ setNoteTypes(data.noteTypes); setHasLoadedNoteTypes(true); - // Auto-select first note type if available - const firstNoteType = data.noteTypes[0]; - if (firstNoteType) { - await fetchNoteTypeDetails(firstNoteType.id); + // Auto-select default note type if specified, otherwise first + const targetNoteType = + (defaultNoteTypeId && + data.noteTypes.find((nt) => nt.id === defaultNoteTypeId)) || + data.noteTypes[0]; + if (targetNoteType) { + await fetchNoteTypeDetails(targetNoteType.id); } } catch (err) { if (err instanceof ApiClientError) { @@ -102,7 +107,7 @@ export function CreateNoteModal({ } finally { setIsLoadingNoteTypes(false); } - }, [fetchNoteTypeDetails]); + }, [fetchNoteTypeDetails, defaultNoteTypeId]); useEffect(() => { if (isOpen && !hasLoadedNoteTypes) { |
