From 8358a38f4d48ed83601ccc6f2e0478c2dd010aeb Mon Sep 17 00:00:00 2001 From: Vargha Csongor Date: Thu, 26 Jun 2025 18:55:46 +0200 Subject: [PATCH] remove person from graph when removed on admin panel --- apps/app/src/lib/admin/Modal.svelte | 7 +++---- apps/app/src/routes/+page.svelte | 11 ++++++++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/apps/app/src/lib/admin/Modal.svelte b/apps/app/src/lib/admin/Modal.svelte index 642b39b..dcf091d 100644 --- a/apps/app/src/lib/admin/Modal.svelte +++ b/apps/app/src/lib/admin/Modal.svelte @@ -15,13 +15,13 @@ let { closeModal, editProfile = () => {}, - onChange = () => {}, + removePersonFromGraph = () => {}, addRelationship = () => {}, createProfile = () => {}, createRelationshipAndProfile = () => {} } = $props<{ closeModal: () => void; - onChange?: () => void; + removePersonFromGraph?: (id: any) => void; addRelationship?: (id: number) => void; createRelationshipAndProfile?: (id: number) => void; editProfile?: (id: number) => void; @@ -65,7 +65,7 @@ }) .then((response) => { if (response.ok) { - onChange(); + removePersonFromGraph(id); managed_profiles_list.forEach((profile) => { if (profile.id === id) { profile.label = ['DeletedPerson']; @@ -90,7 +90,6 @@ }) .then((response) => { if (response.ok) { - onChange(); managed_profiles_list = managed_profiles_list.filter((profile) => profile.id !== id); return; } else { diff --git a/apps/app/src/routes/+page.svelte b/apps/app/src/routes/+page.svelte index c575219..d41cac1 100644 --- a/apps/app/src/routes/+page.svelte +++ b/apps/app/src/routes/+page.svelte @@ -54,6 +54,12 @@ let clientWidth: number | undefined = $state(); let clientHeight: number | undefined = $state(); + + let removePersonFromGraph = (id: any) => { + nodes = nodes.filter((n) => n.data.id !== id); + edges = edges.filter((e) => e.source !== 'person' + id && e.target !== 'person' + id); + }; + let delete_profile = (id: any) => { fetch('/api/person/' + id, { method: 'DELETE', @@ -63,8 +69,7 @@ }) .then((response) => { if (response.ok) { - nodes = nodes.filter((n) => n.data.id !== id); - edges = edges.filter((e) => e.source !== 'person' + id && e.target !== 'person' + id); + removePersonFromGraph(id); } else { alert('Error deleting person'); } @@ -361,7 +366,7 @@ } }); }} - onChange={() => {}} + removePersonFromGraph={removePersonFromGraph} /> {/if}