From 189b3b98151c4222d90d40b88102725580a0f377 Mon Sep 17 00:00:00 2001 From: pradeepkumar Date: Mon, 13 Apr 2026 22:47:51 +0530 Subject: [PATCH] feat: implement real-time message and notification count synchronization via custom events and socket listeners --- src/hooks/useMessaging.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/hooks/useMessaging.ts b/src/hooks/useMessaging.ts index 51f67cd..16dbf8b 100644 --- a/src/hooks/useMessaging.ts +++ b/src/hooks/useMessaging.ts @@ -170,6 +170,9 @@ export function useMessaging(options: UseMessagingOptions = {}): UseMessagingRet setConversations((prev) => prev.map((c) => (c.id === conversationId ? { ...c, unreadCount: 0 } : c)) ); + + // Notify header to instantly refresh message + notification counts + window.dispatchEvent(new Event('messages-read')); } catch (error) { console.error('Failed to load conversation:', error); } finally { @@ -331,6 +334,7 @@ export function useMessaging(options: UseMessagingOptions = {}): UseMessagingRet } else { await messagesService.markAsRead(currentConversationIdRef.current); } + window.dispatchEvent(new Event('messages-read')); }, [isConnected]); // Mark all conversations as read @@ -342,6 +346,7 @@ export function useMessaging(options: UseMessagingOptions = {}): UseMessagingRet setConversations((prev) => prev.map((c) => ({ ...c, unreadCount: 0 })) ); + window.dispatchEvent(new Event('messages-read')); }, [conversations]); // Delete a conversation @@ -497,6 +502,8 @@ export function useMessaging(options: UseMessagingOptions = {}): UseMessagingRet } else { messagesService.markAsRead(message.conversationId).catch(() => {}); } + // Notify header to refresh counts since we auto-read the message + window.dispatchEvent(new Event('messages-read')); } }