From 688705d12652218ffb7f173b55a7c96e5fe5e180 Mon Sep 17 00:00:00 2001 From: victorAnumudu Date: Sat, 21 Dec 2024 21:38:25 +0100 Subject: [PATCH] action data refresh --- src/component/context/SocketIOContext.jsx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/component/context/SocketIOContext.jsx b/src/component/context/SocketIOContext.jsx index eecddd8..1643d74 100644 --- a/src/component/context/SocketIOContext.jsx +++ b/src/component/context/SocketIOContext.jsx @@ -1,6 +1,9 @@ +import { useQueryClient } from "@tanstack/react-query"; import React, { createContext, useContext, useEffect, useState } from "react"; import { Outlet } from "react-router-dom"; import { io } from "socket.io-client"; +import queryKeys from "../../services/queryKeys"; +import { socketEmitEvents, socketOnEvents } from "./socketEvents"; // import io from "socket.io-client"; // import { tableReload } from "../../store/TableReloads"; @@ -10,6 +13,7 @@ import { io } from "socket.io-client"; let SocketIOContext = createContext({}) export default function SocketIOContextProvider({children}) { + const queryClient = useQueryClient() // const {userDetails} = useSelector((state) => state?.userDetails); // CHECKS IF USER UID, to determine if user is active // const dispatch = useDispatch() @@ -27,17 +31,22 @@ export default function SocketIOContextProvider({children}) { return }; - const sendMessage = (message, room) => { + const sendMessage = (eventType, message, room) => { if(message && room){ - socket.emit("send_message", { message, room }); + socket.emit(eventType, { message, room }); } }; useEffect(() => { - socket.on("receive_message", (data) => { + socket.on(socketOnEvents.receive_message, (data) => { // setSocketMsgReceived(data.message); // dispatch(tableReload({type:'CHATMESSAGELIST'})) // dispatches to update chat message sending from owner to worker and vice versa console.log('DATA', data) + queryClient.refetchQueries({ + queryKey: [...queryKeys.recentAction], + // type: 'active', + // exact: true, + }) }); // client-side