diff --git a/frontend/src/lib/components/admin/BookingCreateModal.svelte b/frontend/src/lib/components/admin/BookingCreateModal.svelte index d4d88ce..c978d31 100644 --- a/frontend/src/lib/components/admin/BookingCreateModal.svelte +++ b/frontend/src/lib/components/admin/BookingCreateModal.svelte @@ -942,12 +942,19 @@ { guestPhone = e.currentTarget.value; }} - onblur={() => { if (guestPhone && !isValidUKPhone(guestPhone)) guestPhoneError = 'Invalid UK phone number'; else guestPhoneError = ''; }} - class={guestPhoneError ? 'border-red-500' : ''} + oninput={(e) => { + guestPhone = e.currentTarget.value; + }} + onblur={() => { + if (guestPhone && !isValidUKPhone(guestPhone)) + guestPhoneError = 'Invalid UK phone number'; + else guestPhoneError = ''; + }} /> {#if guestPhoneError}
{guestPhoneError}
diff --git a/frontend/src/lib/components/admin/WalkInCreateModal.svelte b/frontend/src/lib/components/admin/WalkInCreateModal.svelte index c50bbc2..f5661cb 100644 --- a/frontend/src/lib/components/admin/WalkInCreateModal.svelte +++ b/frontend/src/lib/components/admin/WalkInCreateModal.svelte @@ -625,12 +625,19 @@ { guestPhone = e.currentTarget.value; }} - onblur={() => { guestPhoneError = guestPhone && !isValidUKPhone(guestPhone) ? 'Invalid UK phone number' : ''; }} - class={guestPhoneError ? 'border-red-500' : ''} + oninput={(e) => { + guestPhone = e.currentTarget.value; + }} + onblur={() => { + if (guestPhone && !isValidUKPhone(guestPhone)) + guestPhoneError = 'Invalid UK phone number'; + else guestPhoneError = ''; + }} /> {#if guestPhoneError}{guestPhoneError}
diff --git a/frontend/src/routes/account/+page.svelte b/frontend/src/routes/account/+page.svelte index 8a933a3..e7c48b1 100644 --- a/frontend/src/routes/account/+page.svelte +++ b/frontend/src/routes/account/+page.svelte @@ -6,7 +6,7 @@ import { toast } from 'svelte-sonner'; import UserBookingModal from '$lib/components/account/UserBookingModal.svelte'; import { isValidUKPhone, formatPhoneDisplay, toE164UK } from '$lib/utils/phone'; - import { savedCardsStore } from '$lib/stores/savedCards.svelte'; + import { savedCardsStore, type SavedCard } from '$lib/stores/savedCards.svelte'; // zxcvbn-ts imports import { zxcvbn, zxcvbnOptions } from '@zxcvbn-ts/core'; @@ -120,38 +120,8 @@ let notifPrefs = $state({ emailEnabled: true, smsEnabled: true, browserPushEnabled: true }); - type SavedCard = { - id: string; - brand: string; - last_4: string; - exp_month: number; - exp_year: number; - is_default: boolean; - }; - - let savedCards = $stateNo saved cards yet