From 4b367c9f321ea55abddaf3e40b24dc1a0737c5e6 Mon Sep 17 00:00:00 2001 From: Kevin Hahn Date: Wed, 3 Sep 2025 13:17:29 +0700 Subject: [PATCH 01/12] fix dev tools dialog not working because mini lcm api might not be created yet --- frontend/viewer/src/lib/layout/DevToolsDialog.svelte | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/viewer/src/lib/layout/DevToolsDialog.svelte b/frontend/viewer/src/lib/layout/DevToolsDialog.svelte index 46906053b5..c21d902be4 100644 --- a/frontend/viewer/src/lib/layout/DevToolsDialog.svelte +++ b/frontend/viewer/src/lib/layout/DevToolsDialog.svelte @@ -2,13 +2,13 @@ import { Button } from '$lib/components/ui/button'; import * as Dialog from '$lib/components/ui/dialog'; import { Icon } from '$lib/components/ui/icon'; - import { useMiniLcmApi } from '$lib/services/service-provider'; import { defaultEntry } from '$lib/utils'; import { useWritingSystemService } from '$lib/writing-system-service.svelte'; import type { Snippet } from 'svelte'; import DevContent from './DevContent.svelte'; + import {useProjectContext} from '$lib/project-context.svelte'; - const api = useMiniLcmApi(); + const projectContext = useProjectContext(); const writingSystems = useWritingSystemService(); type Props = { @@ -22,7 +22,7 @@ const entry = defaultEntry(); const vWsId = writingSystems.defaultVernacular?.wsId; if (vWsId) entry.citationForm[vWsId] = `*Test ${Math.random().toString(36).substring(2, 7)}`; - await api.createEntry(entry); + await projectContext.api.createEntry(entry); } } From 00a2e582e37a2b53784a359f91e65116c562fdee Mon Sep 17 00:00:00 2001 From: Kevin Hahn Date: Wed, 3 Sep 2025 13:49:47 +0700 Subject: [PATCH 02/12] don't crash when loading the browse view with an entry selected --- frontend/viewer/src/project/browse/BrowseView.svelte | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/frontend/viewer/src/project/browse/BrowseView.svelte b/frontend/viewer/src/project/browse/BrowseView.svelte index eda060de17..07aa47a100 100644 --- a/frontend/viewer/src/project/browse/BrowseView.svelte +++ b/frontend/viewer/src/project/browse/BrowseView.svelte @@ -18,7 +18,9 @@ import IfOnce from '$lib/components/if-once/if-once.svelte'; import {SortField} from '$lib/dotnet-types'; import SortMenu, {type SortConfig} from './SortMenu.svelte'; + import {useProjectContext} from '$lib/project-context.svelte'; + const projectContext = useProjectContext(); const currentView = useCurrentView(); const dialogsService = useDialogsService(); const selectedEntryId = new QueryParamState({key: 'entryId', allowBack: true, replaceOnDefaultValue: true}); @@ -101,7 +103,7 @@

{$t`Select ${pt($t`an entry`, $t`a word`, $currentView)} to view details`}

- {:else} + {:else if projectContext.maybeApi}
Date: Wed, 3 Sep 2025 13:55:42 +0700 Subject: [PATCH 03/12] put fieldId and label into `FieldRootState` context, use new fieldId prop on primitive editors. --- .../components/editor/field/field-root.svelte | 33 +++++++++++++------ .../editor/field/field-title.svelte | 3 ++ .../EntryEditorPrimitive.svelte | 14 ++++---- .../ExampleEditorPrimitive.svelte | 6 ++-- .../SenseEditorPrimitive.svelte | 8 ++--- 5 files changed, 40 insertions(+), 24 deletions(-) diff --git a/frontend/viewer/src/lib/components/editor/field/field-root.svelte b/frontend/viewer/src/lib/components/editor/field/field-root.svelte index 50bfc06336..c6e32a03a0 100644 --- a/frontend/viewer/src/lib/components/editor/field/field-root.svelte +++ b/frontend/viewer/src/lib/components/editor/field/field-root.svelte @@ -1,23 +1,32 @@ -
+
{@render children?.()}
diff --git a/frontend/viewer/src/lib/components/editor/field/field-title.svelte b/frontend/viewer/src/lib/components/editor/field/field-title.svelte index 61d2b0e9c3..56e656853f 100644 --- a/frontend/viewer/src/lib/components/editor/field/field-title.svelte +++ b/frontend/viewer/src/lib/components/editor/field/field-title.svelte @@ -17,6 +17,9 @@ const view = useCurrentView(); const label = $derived(pickViewText(name, $view.type)); + $effect(() => { + stateProps.label = label; + }); const title = $derived(typeof name === 'string' ? undefined : $view.type === 'fw-classic' ? $t`${name.lite} (FieldWorks Lite)` diff --git a/frontend/viewer/src/lib/entry-editor/object-editors/EntryEditorPrimitive.svelte b/frontend/viewer/src/lib/entry-editor/object-editors/EntryEditorPrimitive.svelte index 75e91bf653..5fea39c93b 100644 --- a/frontend/viewer/src/lib/entry-editor/object-editors/EntryEditorPrimitive.svelte +++ b/frontend/viewer/src/lib/entry-editor/object-editors/EntryEditorPrimitive.svelte @@ -39,7 +39,7 @@ - + - + {#if !modalMode} - + onFieldChanged('complexForms')} @@ -73,7 +73,7 @@ - + - + {/if} - + - + - + - + {#if writingSystemService.defaultAnalysis} - + - + - + - + + + +