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;