From 4026415401fa3307bb73fa2ceb75f628f924c112 Mon Sep 17 00:00:00 2001 From: Leonardo Date: Thu, 23 Apr 2026 10:21:12 -0300 Subject: [PATCH] =?UTF-8?q?Notifications:=20n=C3=A3o=20redispara=20toast?= =?UTF-8?q?=20pra=20system=5Falert=20antigas=20ap=C3=B3s=20F5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: a cada mount (F5, navegação), todas as system_alert não-lidas voltavam a disparar toast mesmo que o alerta já não fizesse mais sentido (ex: saldo baixo já restabelecido, mas notif histórica ainda não-lida reaparecia como toast sticky vermelho a cada reload). Fix: seed do set alertedIds marca TODAS as system_alert do load inicial como "já vistas nesta sessão". Alertas continuam no sino/drawer — o usuário vê que tem pendências, mas sem bombardeio de toasts repetidos. Toast só dispara pra alertas que chegarem depois do mount — seja via Realtime (novidade) ou via catch-up encontrando id ainda não no set. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/composables/useNotifications.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/composables/useNotifications.js b/src/composables/useNotifications.js index 41aff7f..40028eb 100644 --- a/src/composables/useNotifications.js +++ b/src/composables/useNotifications.js @@ -115,9 +115,12 @@ export function useNotifications() { ownerId = data.user.id; await store.load(ownerId); - // Seed do set: notifs system_alert já lidas/vistas não redisparam toast + // Seed: marca TODAS as system_alert existentes como "já vistas" pra + // não redisparar toast em F5/reload. Alertas antigos aparecem no + // sino/drawer normalmente; toast só dispara pra alertas que chegarem + // depois do mount (via Realtime ou catch-up detectando ids novos). for (const item of store.items || []) { - if (item.type === 'system_alert' && (item.read_at || item.archived)) { + if (item.type === 'system_alert') { alertedIds.add(item.id); } }