From 1df2af91798c4f7df1ffcde1b11d632c3e3bf74c Mon Sep 17 00:00:00 2001 From: Vargha Csongor Date: Mon, 28 Apr 2025 23:28:09 +0200 Subject: [PATCH] restructure profile edit --- .../src/lib/profile/LifeEventsTimeline.svelte | 88 +++- apps/app/src/lib/profile/MediaGallery.svelte | 16 +- apps/app/src/lib/profile/Modal.svelte | 25 +- apps/app/src/lib/profile/OtherDetails.svelte | 79 +++- apps/app/src/lib/profile/ProfileHeader.svelte | 213 ++++++---- apps/app/src/lib/profile/create/Modal.svelte | 387 ++++++++++++++---- .../src/lib/profile/create/validate_fields.ts | 16 +- .../lib/profile/editors/EditableField.svelte | 40 ++ .../profile/editors/LanguagesEditor.svelte | 0 9 files changed, 654 insertions(+), 210 deletions(-) create mode 100644 apps/app/src/lib/profile/editors/EditableField.svelte create mode 100644 apps/app/src/lib/profile/editors/LanguagesEditor.svelte diff --git a/apps/app/src/lib/profile/LifeEventsTimeline.svelte b/apps/app/src/lib/profile/LifeEventsTimeline.svelte index 4415a4b..b525f82 100644 --- a/apps/app/src/lib/profile/LifeEventsTimeline.svelte +++ b/apps/app/src/lib/profile/LifeEventsTimeline.svelte @@ -1,22 +1,84 @@ -{#if draftPerson.life_events?.length} +{#if person_life_events?.length}
{life_events()}
{/if} + +{#if editorMode} +
+ +
+{/if} diff --git a/apps/app/src/lib/profile/MediaGallery.svelte b/apps/app/src/lib/profile/MediaGallery.svelte index 1ac7325..1d7ac26 100644 --- a/apps/app/src/lib/profile/MediaGallery.svelte +++ b/apps/app/src/lib/profile/MediaGallery.svelte @@ -2,27 +2,27 @@ import type { components } from '$lib/api/api.gen'; import { video, photos, upload } from '$lib/paraglide/messages'; - export let draftPerson: components['schemas']['PersonProperties']; - export let editorMode = false; + export let person: components['schemas']['PersonProperties']; + export let editorMode = false; {#if editorMode} - + {/if} -{#if draftPerson.photos?.length || draftPerson.videos?.length} +{#if person.photos?.length || person.videos?.length}
{photos()} & {video()}
- {#each draftPerson.photos ?? [] as picture} + {#each person.photos ?? [] as picture} {picture.description {/each} - {#each draftPerson.videos ?? [] as video} + {#each person.videos ?? [] as video}
diff --git a/apps/app/src/lib/profile/OtherDetails.svelte b/apps/app/src/lib/profile/OtherDetails.svelte index b50537a..9d78f2e 100644 --- a/apps/app/src/lib/profile/OtherDetails.svelte +++ b/apps/app/src/lib/profile/OtherDetails.svelte @@ -1,14 +1,18 @@
- {#each Object.entries(draftPerson) as [key, value]} - {#if !skipFields.includes(key) && value !== undefined && value !== null} + {#each Object.entries(person) as [key, value]} + {#if !skipFields.includes(key) && ((value !== undefined && value !== null) || editorMode)}
-

- {callMessageFunction(key as MessageKeys) || key}: +

{value ?? '-'}

{/if} -

+
{/if} {/each} diff --git a/apps/app/src/lib/profile/ProfileHeader.svelte b/apps/app/src/lib/profile/ProfileHeader.svelte index 2d5326f..4adb040 100644 --- a/apps/app/src/lib/profile/ProfileHeader.svelte +++ b/apps/app/src/lib/profile/ProfileHeader.svelte @@ -1,18 +1,36 @@ - -
-
- {profile_picture()} - {#if editorMode} - - {/if} -
-
-
-

{first_name()}: {#if editorMode}{:else}{draftPerson.first_name ?? '-'}{/if}

-

{last_name()}: {#if editorMode}{:else}{draftPerson.last_name ?? '-'}{/if}

-

{middle_name()}: {#if editorMode}{:else}{draftPerson.middle_name ?? '-'}{/if}

-

{born()}: - -

-

{died()}: - -

-

{biological_sex()}: - {#if editorMode} - - {:else}{callMessageFunction(draftPerson.biological_sex as MessageKeys) ?? '-'}{/if}

-
-
-

{email()}: {#if editorMode}{:else}{draftPerson.email ?? '-'}{/if}

-

{mothers_first_name()}: {#if editorMode}{:else}{draftPerson.mothers_first_name ?? '-'}{/if}

-

{mothers_last_name()}: {#if editorMode}{:else}{draftPerson.mothers_last_name ?? '-'}{/if}

-

{id()}:{draftPerson.id ?? '-'}

-

Limit:{draftPerson.limit ?? '-'}

-
-
+ +
+
+ {profile_picture()} + {#if editorMode} + + {/if} +
+
+
+

+ {first_name()}: + {#if editorMode}{:else}{person.first_name ?? '-'}{/if} +

+

+ {last_name()}: + {#if editorMode}{:else}{person.last_name ?? '-'}{/if} +

+

+ {middle_name()}: + {#if editorMode}{:else}{person.middle_name ?? '-'}{/if} +

+

+ {born()}: + {#if editorMode} + {:else}{person.born ?? '-'}{/if} +

+

+ {died()}: + {#if editorMode}{:else}{person.died ?? '-'}{/if} +

+

+ {biological_sex()}: + {#if editorMode} + + {:else}{callMessageFunction(person.biological_sex as MessageKeys) ?? '-'}{/if} +

+
+
+

+ {email()}: + {#if editorMode}{:else}{person.email ?? '-'}{/if} +

+

+ {mothers_first_name()}: + {#if editorMode}{:else}{person.mothers_first_name ?? '-'}{/if} +

+

+ {mothers_last_name()}: + {#if editorMode}{:else}{person.mothers_last_name ?? '-'}{/if} +

+

{id()}:{person.id ?? '-'}

+

Limit:{person.limit ?? '-'}

+
+
- \ No newline at end of file diff --git a/apps/app/src/lib/profile/create/Modal.svelte b/apps/app/src/lib/profile/create/Modal.svelte index b309cdb..1ed52b0 100644 --- a/apps/app/src/lib/profile/create/Modal.svelte +++ b/apps/app/src/lib/profile/create/Modal.svelte @@ -1,7 +1,7 @@