socket and badge

This commit is contained in:
hamid zarghami
2025-07-23 14:45:57 +03:30
parent 95f3c16bb5
commit 0778ecae76
9 changed files with 86 additions and 27 deletions
+37
View File
@@ -0,0 +1,37 @@
import { useEmailWebSocketContext } from '@/contexts/EmailWebSocketContext';
import { useEmailEvents } from '@/hooks/useEmailEvents';
import { FC, useCallback, useEffect } from 'react'
import { useQueryClient } from '@tanstack/react-query';
const SocketManagment: FC = () => {
const { socket } = useEmailWebSocketContext();
const queryClient = useQueryClient();
useEffect(() => {
if (socket) {
socket.on('connect', () => {
});
}
}, [socket]);
const handleNewEmailEvent = useCallback(() => {
queryClient.invalidateQueries({ queryKey: ['mailbox-count'] });
queryClient.invalidateQueries({ queryKey: ['inbox'] });
}, []);
const handleEmailActionEvent = useCallback(() => {
queryClient.invalidateQueries({ queryKey: ['mailbox-count'] });
queryClient.invalidateQueries({ queryKey: ['inbox'] });
}, []);
useEmailEvents(socket, {
onNewEmail: handleNewEmailEvent,
onEmailRead: handleEmailActionEvent,
onEmailDeleted: handleEmailActionEvent,
// onMailboxUpdated: handleEmailActionEvent,
});
return null
}
export default SocketManagment