2022-11-08 20:23:13 +00:00
|
|
|
import { useEffect } from "react";
|
|
|
|
import openSocket from "../../services/socket-io";
|
|
|
|
|
|
|
|
const useSocket = (dispatch, socketEvent, typeUpdate, typeDelete, payloadUpdate, payloadDelete) => {
|
|
|
|
useEffect(() => {
|
|
|
|
const socket = openSocket();
|
|
|
|
|
|
|
|
socket.on(socketEvent, (data) => {
|
|
|
|
if (data.action === "update" || data.action === "create") {
|
|
|
|
dispatch({ type: typeUpdate, payload: data[payloadUpdate] });
|
|
|
|
}
|
|
|
|
|
|
|
|
if (data.action === "delete") {
|
|
|
|
dispatch({ type: typeDelete, payload: data[payloadDelete] });
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
return () => {
|
|
|
|
socket.disconnect();
|
|
|
|
};
|
2023-07-12 13:35:23 +00:00
|
|
|
}, [dispatch, socketEvent, typeUpdate, typeDelete, payloadUpdate, payloadDelete]);
|
2022-11-08 20:23:13 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
export default useSocket;
|