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 3/3] 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;