diff --git a/src/actions.js b/src/actions.js index 54d2ff6..2ea10b4 100644 --- a/src/actions.js +++ b/src/actions.js @@ -483,6 +483,7 @@ export async function refreshFlaggedItems() { if (updated) { saveMenuCache(); updateLastUpdatedTime(new Date().toISOString()); + localStorage.setItem('kantine_flagged_items_last_checked', new Date().toISOString()); updateAlarmBell(); renderVisibleWeeks(); } @@ -595,7 +596,7 @@ export async function pollFlaggedItems() { await new Promise(r => setTimeout(r, 200)); } } - localStorage.setItem('kantine_last_checked', new Date().toISOString()); + localStorage.setItem('kantine_flagged_items_last_checked', new Date().toISOString()); updateAlarmBell(); } diff --git a/src/ui_helpers.js b/src/ui_helpers.js index bfc18b4..9620037 100644 --- a/src/ui_helpers.js +++ b/src/ui_helpers.js @@ -732,15 +732,21 @@ export function updateAlarmBell() { if (anyAvailable) break; } - let lastUpdatedStr = localStorage.getItem('kantine_last_checked'); + const lastCheckedStr = localStorage.getItem('kantine_last_checked'); + const flaggedLastCheckedStr = localStorage.getItem('kantine_flagged_items_last_checked'); + + let latestTime = 0; + if (lastCheckedStr) latestTime = Math.max(latestTime, new Date(lastCheckedStr).getTime()); + if (flaggedLastCheckedStr) latestTime = Math.max(latestTime, new Date(flaggedLastCheckedStr).getTime()); + let timeStr = 'gerade eben'; - if (!lastUpdatedStr) { - lastUpdatedStr = new Date().toISOString(); - localStorage.setItem('kantine_last_checked', lastUpdatedStr); + if (latestTime === 0) { + const now = new Date().toISOString(); + localStorage.setItem('kantine_last_checked', now); + latestTime = new Date(now).getTime(); } - const lastUpdated = new Date(lastUpdatedStr); - timeStr = getRelativeTime(lastUpdated); + timeStr = getRelativeTime(new Date(latestTime)); bellBtn.title = `Zuletzt geprüft: ${timeStr}`;