Remember last event selected in scanner
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user