From eb9fa14d281bf23ec87bc163113ada42c0e074fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Kr=C4=8Dek?= Date: Mon, 14 Jul 2025 22:27:18 +0200 Subject: [PATCH] Remember last event selected in scanner --- src/routes/private/scanner/+page.svelte | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/routes/private/scanner/+page.svelte b/src/routes/private/scanner/+page.svelte index 36fad5f..1701886 100644 --- a/src/routes/private/scanner/+page.svelte +++ b/src/routes/private/scanner/+page.svelte @@ -24,6 +24,11 @@ let eventsError = $state(''); onMount(async () => { + // Load the persisted event ID from local storage + const storedEventId = localStorage.getItem('selectedScannerEventId'); + if (storedEventId) { + selectedEventId = storedEventId; + } await loadEvents(); }); @@ -40,9 +45,14 @@ if (error) throw error; events = eventsData || []; - // If there are events, select the first one by default - if (events.length > 0) { + // Check if the previously selected event is still in the list + const selectedEventExists = events.some((event) => event.id === selectedEventId); + + // If no event is selected, or the selected one is no longer valid, default to the first event + if ((!selectedEventId || !selectedEventExists) && events.length > 0) { selectedEventId = events[0].id; + } else if (events.length === 0) { + selectedEventId = ''; // No events available } } catch (err) { console.error('Error loading events:', err); @@ -52,6 +62,13 @@ } } + // Persist the selected event ID to local storage whenever it changes + $effect(() => { + if (selectedEventId) { + localStorage.setItem('selectedScannerEventId', selectedEventId); + } + }); + // Process a scanned QR code $effect(() => { if (scanned_id === '') return;