From f7d0a35b3acbf3b7c3e83f6e6f6028c51811a786 Mon Sep 17 00:00:00 2001 From: "ashutosh.nehete" Date: Thu, 19 Jun 2025 11:21:26 +0530 Subject: [PATCH] improve singalR functionlity in assign task pop to add or remove employee if assigned or removed from project --- src/components/Project/AssignRole.jsx | 45 +++++++++++++++++---------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/src/components/Project/AssignRole.jsx b/src/components/Project/AssignRole.jsx index 3d796a52..334887f8 100644 --- a/src/components/Project/AssignRole.jsx +++ b/src/components/Project/AssignRole.jsx @@ -78,10 +78,11 @@ const AssignRoleModel = ({ assignData, onClose, setAssigned }) => { const selectedProject = useSelector( (store) => store.localVariables.projectId ); - const { employees, loading: employeeLoading,recallEmployeeData } = useEmployeesAllOrByProjectId( - selectedProject, - false - ); + const { + employees, + loading: employeeLoading, + recallEmployeeData, + } = useEmployeesAllOrByProjectId(selectedProject, false); const dispatch = useDispatch(); const { loading } = useMaster(); // Assuming this is for jobRoleData loading const jobRoleData = getCachedData("Job Role"); @@ -175,7 +176,7 @@ const AssignRoleModel = ({ assignData, onClose, setAssigned }) => { showToast("Task Successfully Assigned", "success"); // Show success toast reset(); // Reset form fields clearCacheKey("projectInfo"); - setAssigned(formattedData.plannedTask) + setAssigned(formattedData.plannedTask); onClose(); // Close the modal } catch (error) { console.error("Error assigning task:", error); // Log the full error for debugging @@ -189,24 +190,34 @@ const AssignRoleModel = ({ assignData, onClose, setAssigned }) => { onClose(); }; - const handler = useCallback( + const handler = useCallback( (msg) => { - if(employees.some((item) => item.id == msg.employeeId)){ - console.log("handller function start") - clearCacheKey("employeeListByProject"); - clearCacheKey("allEmployeeList"); - clearCacheKey("allInactiveEmployeeList"); - clearCacheKey("employeeProfile"); + if (employees.some((item) => item.id == msg.employeeId)) { recallEmployeeData(false); - console.log("handller function end") } - },[employees] + }, + [employees] + ); + + const assignHandler = useCallback( + (msg) => { + if (msg.projectIds.some((item) => item == selectedProject)) { + clearCacheKey("employeeListByProject") + recallEmployeeData(false); + } + }, + [selectedProject] ); useEffect(() => { - eventBus.on("employee",handler); - return () => eventBus.off("employee",handler) - },[handler]) + eventBus.on("employee", handler); + return () => eventBus.off("employee", handler); + }, [handler]); + + useEffect(() => { + eventBus.on("assign_project_all", assignHandler); + return () => eventBus.off("assign_project_all", assignHandler); + }, [assignHandler]); return (