diff --git a/frontend/src/lib/components/PersonTypeSelector.svelte b/frontend/src/lib/components/PersonTypeSelector.svelte index 05efe33f..2ddf58cb 100644 --- a/frontend/src/lib/components/PersonTypeSelector.svelte +++ b/frontend/src/lib/components/PersonTypeSelector.svelte @@ -6,7 +6,11 @@ import { m } from '$lib/paraglide/messages.js'; const TYPES = ['PERSON', 'INSTITUTION', 'GROUP', 'UNKNOWN'] as const; type PersonType = (typeof TYPES)[number]; -let { value = 'PERSON', name = 'personType' }: { value?: string; name?: string } = $props(); +let { + value = 'PERSON', + name = 'personType', + onchange +}: { value?: string; name?: string; onchange?: (type: PersonType) => void } = $props(); let selected = $state( untrack(() => (TYPES.includes(value as PersonType) ? (value as PersonType) : 'PERSON')) @@ -21,6 +25,7 @@ const labels: Record string> = { function select(type: PersonType) { selected = type; + onchange?.(type); } diff --git a/frontend/src/routes/persons/[id]/edit/PersonEditForm.svelte b/frontend/src/routes/persons/[id]/edit/PersonEditForm.svelte index 9d88464d..f583f9ec 100644 --- a/frontend/src/routes/persons/[id]/edit/PersonEditForm.svelte +++ b/frontend/src/routes/persons/[id]/edit/PersonEditForm.svelte @@ -1,10 +1,16 @@
-
- - +

+ {m.form_label_person_type()} +

+ (selectedType = type)} />
-
+ + {#if isPerson} +
+ + +
+
+ + +
+ {/if} + +
{lastNameLabel} *
-
- - -
-
- - -
-
- - -
+ + {#if isPerson} +
+ + +
+
+ + +
+
+ + +
+ {/if} +