SyedFouzan's picture
{
ffb4c35 verified
Raw History Blame Contribute Delete
1.22 kB
import { useEffect } from 'react';
import { useSocket } from '../context/SocketContext';
import toast from 'react-hot-toast';
export const useSocketEvent = (event, handler) => {
const { socket } = useSocket();
useEffect(() => {
if (socket) {
socket.on(event, handler);
return () => {
socket.off(event, handler);
};
}
}, [socket, event, handler]);
};
export const useTaskNotifications = () => {
const { socket } = useSocket();
useEffect(() => {
if (socket) {
const handleTaskUpdate = (data) => {
toast.success(`Task "${data.title}" has been updated`);
};
const handleNewTask = (data) => {
toast.success(`New task "${data.title}" assigned to you`);
};
const handleTaskComment = (data) => {
toast(`${data.user} commented on "${data.taskTitle}"`);
};
socket.on('task:update', handleTaskUpdate);
socket.on('task:new', handleNewTask);
socket.on('task:comment', handleTaskComment);
return () => {
socket.off('task:update', handleTaskUpdate);
socket.off('task:new', handleNewTask);
socket.off('task:comment', handleTaskComment);
};
}
}, [socket]);
};