Remember last event selected in scanner

This commit is contained in:
Roman Krček
2025-07-14 22:27:18 +02:00
parent 30f441a956
commit eb9fa14d28

View File

@@ -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;