From 6062f7616df0eb7ff9e37c69875d1d5f76705d3b Mon Sep 17 00:00:00 2001 From: Vargha Csongor Date: Wed, 30 Apr 2025 20:08:16 +0200 Subject: [PATCH] relationship modal and some profile edit fix --- apps/app/src/lib/graph/FamilyEdge.svelte | 3 +- apps/app/src/lib/profile/ProfileHeader.svelte | 18 +- apps/app/src/lib/relationship/Modal.svelte | 261 ++++++++++++++++++ .../src/lib/relationship/ModalButtons.svelte | 36 +++ apps/app/src/lib/sidebar/hamburgerIcon.svelte | 85 +++--- apps/app/src/routes/+page.svelte | 115 +++++--- 6 files changed, 432 insertions(+), 86 deletions(-) create mode 100644 apps/app/src/lib/relationship/Modal.svelte create mode 100644 apps/app/src/lib/relationship/ModalButtons.svelte diff --git a/apps/app/src/lib/graph/FamilyEdge.svelte b/apps/app/src/lib/graph/FamilyEdge.svelte index bcfe913..75eede5 100644 --- a/apps/app/src/lib/graph/FamilyEdge.svelte +++ b/apps/app/src/lib/graph/FamilyEdge.svelte @@ -2,7 +2,7 @@ import type { components } from '$lib/api/api.gen.ts'; import { child, spouse, parent, sibling } from '$lib/paraglide/messages'; import { getBezierPath, BaseEdge, type EdgeProps, Position } from '@xyflow/svelte'; - + let { sourceX, sourceY, @@ -21,7 +21,6 @@ let edgeType = ( data as components['schemas']['FamilyRelationship'] & { type: string } ).type.toLowerCase(); - console.log('edgeType', edgeType); let edgeLabel: string = $state(edgeType); let edgeColor: string; let srcPos; diff --git a/apps/app/src/lib/profile/ProfileHeader.svelte b/apps/app/src/lib/profile/ProfileHeader.svelte index acc3b97..88f37f4 100644 --- a/apps/app/src/lib/profile/ProfileHeader.svelte +++ b/apps/app/src/lib/profile/ProfileHeader.svelte @@ -73,7 +73,7 @@ class="h-48 w-48 rounded-lg object-cover shadow-md" /> {#if editorMode} - {/if} @@ -84,6 +84,7 @@ {first_name()}: {#if editorMode} onChange('first_name', person.first_name)} class="input input-sm input-bordered w-full" />{:else}{person.first_name ?? '-'}{/if}

@@ -91,6 +92,7 @@ {last_name()}: {#if editorMode} onChange('last_name', person.last_name)} class="input input-sm input-bordered w-full" />{:else}{person.last_name ?? '-'}{/if}

@@ -98,6 +100,7 @@ {middle_name()}: {#if editorMode} onChange('middle_name', person.middle_name)} class="input input-sm input-bordered w-full" />{:else}{person.middle_name ?? '-'}{/if}

@@ -108,8 +111,9 @@ class="pika-single w-full" id="birth_date" bind:this={birth_date} - bind:value={person.born} - /> + placeholder={person.born} + onchange={() => onChange('born', birth_date.value)} + /> {:else}{person.born ?? '-'}{/if}

@@ -118,9 +122,9 @@ type="text" class="pika-single w-full" id="death_date" - placeholder={died()} + placeholder={person.died??died()} bind:this={death_date} - bind:value={person.died} + onchange={() => onChange('died', death_date.value)} />{:else}{person.died ?? '-'}{/if}

@@ -131,6 +135,7 @@ class="select select-bordered select-sm w-full" id="biological_sex" bind:value={person.biological_sex} + onchange={() => onChange('biological_sex', person.biological_sex)} placeholder={biological_sex()} > @@ -146,6 +151,7 @@ {email()}: {#if editorMode} onChange('email', person.email)} class="input input-sm input-bordered w-full" />{:else}{person.email ?? '-'}{/if}

@@ -153,6 +159,7 @@ {mothers_first_name()}: {#if editorMode} onChange('mothers_first_name', person.mothers_first_name)} class="input input-sm input-bordered w-full" />{:else}{person.mothers_first_name ?? '-'}{/if}

@@ -160,6 +167,7 @@ {mothers_last_name()}: {#if editorMode} onChange('mothers_last_name', person.mothers_last_name)} class="input input-sm input-bordered w-full" />{:else}{person.mothers_last_name ?? '-'}{/if}

diff --git a/apps/app/src/lib/relationship/Modal.svelte b/apps/app/src/lib/relationship/Modal.svelte new file mode 100644 index 0000000..6377e7c --- /dev/null +++ b/apps/app/src/lib/relationship/Modal.svelte @@ -0,0 +1,261 @@ + + + + diff --git a/apps/app/src/lib/relationship/ModalButtons.svelte b/apps/app/src/lib/relationship/ModalButtons.svelte new file mode 100644 index 0000000..5a6f869 --- /dev/null +++ b/apps/app/src/lib/relationship/ModalButtons.svelte @@ -0,0 +1,36 @@ + + +
+

{biography()}

+
+ {#if !createMode} + + {/if} + {#if editorMode} + {#if createMode} + + {:else} + + {/if} + {/if} + +
+
diff --git a/apps/app/src/lib/sidebar/hamburgerIcon.svelte b/apps/app/src/lib/sidebar/hamburgerIcon.svelte index ccfe036..87a0e2d 100644 --- a/apps/app/src/lib/sidebar/hamburgerIcon.svelte +++ b/apps/app/src/lib/sidebar/hamburgerIcon.svelte @@ -1,45 +1,54 @@ - - + + + + + diff --git a/apps/app/src/routes/+page.svelte b/apps/app/src/routes/+page.svelte index d386315..30d9074 100644 --- a/apps/app/src/routes/+page.svelte +++ b/apps/app/src/routes/+page.svelte @@ -1,14 +1,10 @@ @@ -198,9 +209,15 @@
{ + selectedRelationship = edge; + }} onnodeclick={handleNodeClickFunc} onnodecontextmenu={handleContextMenu} onpaneclick={handlePaneClick} @@ -232,6 +249,22 @@ relationshipStartID={relationshipStart} > {/if} + {#if selectedRelationship} + ) => { + onCreation(null, newEdges); + createRelationship = false; + }} + closeModal={() => { + createRelationship = false; + selectedRelationship = undefined; + relationshipStart = null; + }} + startNode={String(relationshipStart)} + endNode={String(selectedRelationship.target)} + /> + {/if} {#if openPersonMenu !== undefined} {/if}