From 259bb23ec9eeb0c2503bc3ec1b00eb66a24d1d45 Mon Sep 17 00:00:00 2001 From: Norbert Maciaszek Date: Mon, 17 Nov 2025 22:19:51 +0100 Subject: [PATCH] feat: introduce PersonCard component for displaying and managing person details and gifts --- .../components/molecules/PersonCard.svelte | 89 +++++++++++++++++++ .../components/molecules/PersonModal.svelte | 2 +- 2 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 src/lib/components/molecules/PersonCard.svelte diff --git a/src/lib/components/molecules/PersonCard.svelte b/src/lib/components/molecules/PersonCard.svelte new file mode 100644 index 0000000..a379aa4 --- /dev/null +++ b/src/lib/components/molecules/PersonCard.svelte @@ -0,0 +1,89 @@ + + +
+
+ + + {person.name} + + + +
+ + +
+ (editPersonModal = false)} + editPerson={person} + title="Edytuj osobę" + onSave={async (data) => { + await DB.updatePerson(person.id, data); + refreshAll(); + editPersonModal = false; + }} + /> + + {#if person.notes} +

{person.notes}

+ {/if} +
+
+ Ilość prezentów: {gifts?.length || 0} + + Koszt: {formatCurrency(totalCost)} +
+
+ + + Prezenty
+
+
+ + + + + (addGiftModal = false)} + onSave={async (data) => { + await DB.createGift(data); + refreshAll(); + addGiftModal = false; + }} + personId={person.id} + /> +
+ + {#each gifts as gift (gift.id)} + + {/each} +
diff --git a/src/lib/components/molecules/PersonModal.svelte b/src/lib/components/molecules/PersonModal.svelte index f940b6f..3f48bdb 100644 --- a/src/lib/components/molecules/PersonModal.svelte +++ b/src/lib/components/molecules/PersonModal.svelte @@ -14,7 +14,7 @@ let { onSave, isOpen, onClose, editPerson }: Props = $props(); - let person = $state(editPerson ?? ({} as Person)); + let person = $state(editPerson ? { ...editPerson } : ({} as Person)); let isLoading = $state(false); if (!person?.name) {