diff --git a/src/hooks/useAdminWebSocket.ts b/src/hooks/useAdminWebSocket.ts index c11ec7e..3f6ac7e 100644 --- a/src/hooks/useAdminWebSocket.ts +++ b/src/hooks/useAdminWebSocket.ts @@ -67,6 +67,7 @@ export const useAdminWebSocket = () => { shouldReconnectRef.current = true; let isMounted = true; + const sessionStartSecondsRef = { current: 0 }; const connect = () => { if (!isMounted || !shouldReconnectRef.current) return; @@ -82,6 +83,7 @@ export const useAdminWebSocket = () => { ws.onopen = () => { if (!isMounted || !shouldReconnectRef.current) return; + sessionStartSecondsRef.current = Math.floor(Date.now() / 1000); wsLog('[WS] Connected'); if (canAccessRoute('/reports', role)) { ws.send(JSON.stringify({ action: 'subscribe', channel: 'reports' })); @@ -115,9 +117,14 @@ export const useAdminWebSocket = () => { return; } - window.dispatchEvent( - new CustomEvent('admin-ws-message', { detail: msg }) - ); + const isLiveEvent = + !msg.timestamp || msg.timestamp >= sessionStartSecondsRef.current; + + if (isLiveEvent) { + window.dispatchEvent( + new CustomEvent('admin-ws-message', { detail: msg }) + ); + } if (msg.type === 'report_created') { queryClient.invalidateQueries({ queryKey: ['reports'] });