Merge: stop stale toasts resurrecting on reload

This commit is contained in:
npeter83 2026-06-12 18:07:31 +02:00
commit 203624518d

View file

@ -118,7 +118,11 @@ function load(): Notification[] {
try { try {
const raw = JSON.parse(localStorage.getItem(HISTORY_KEY) || "[]"); const raw = JSON.parse(localStorage.getItem(HISTORY_KEY) || "[]");
if (!Array.isArray(raw)) return []; if (!Array.isArray(raw)) return [];
return raw.map((n) => ({ ...n, action: undefined }) as Notification); // Restored entries are history only. Mark them dismissed so they don't
// resurrect as active toasts on reload — their auto-dismiss timers aren't
// re-armed across a reload, so otherwise they'd stick forever. Also drop the
// live `action` callback, which can't survive serialization.
return raw.map((n) => ({ ...n, action: undefined, dismissed: true }) as Notification);
} catch { } catch {
return []; return [];
} }