From 59e7dd9fdc6c43aaf94a5968f5aae86bb2594d34 Mon Sep 17 00:00:00 2001 From: Stephen Adamson Date: Sat, 6 Jun 2026 15:23:10 +0100 Subject: [PATCH] fixes --- frontend/src/routes/account/+page.svelte | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/frontend/src/routes/account/+page.svelte b/frontend/src/routes/account/+page.svelte index e7c48b1..4d454f1 100644 --- a/frontend/src/routes/account/+page.svelte +++ b/frontend/src/routes/account/+page.svelte @@ -133,7 +133,7 @@ }); if (res.ok) { toast.success('Card removed'); - savedCardsStore = savedCardsStore.filter((c) => c.id !== card.id); + await savedCardsStore.invalidate(); } else { toast.error('Failed to remove card'); } @@ -169,6 +169,14 @@ let buyingGiftCard = $state(false); let purchaseResultCode = $state(null); + $effect(() => { + if (savedCardsStore.cards.length > 0 && !buySelectedCard) { + const defaultCard = + savedCardsStore.cards.find((c) => c.is_default) || savedCardsStore.cards[0]; + buySelectedCard = defaultCard.id; + } + }); + function parseExpiryParts(value: string): { month: number; year: number } | null { if (!/^\d{2}\/\d{2}$/.test(value)) return null; const [monthStr, yearStr] = value.split('/'); @@ -414,7 +422,7 @@ } $effect(() => { - if (savedCardsStore.length === 0 && buySelectedCard !== '') { + if (savedCardsStore.cards.length === 0 && buySelectedCard !== '') { buySelectedCard = ''; } }); @@ -1804,14 +1812,14 @@ - {:else if savedCardsStore.length === 0} + {:else if savedCardsStore.cards.length === 0}

No saved cards yet

{:else}
- {#each savedCardsStore as card (card.id)} + {#each savedCardsStore.cards as card (card.id)}
Payment Method - {#if savedCardsStore.length > 0} + {#if savedCardsStore.cards.length > 0}
- {#each savedCardsStore as card (card.id)} + {#each savedCardsStore.cards as card (card.id)}