improve singalR functionlity in assign task pop to add or remove employee if assigned or removed from project

This commit is contained in:
ashutosh.nehete 2025-06-19 11:21:26 +05:30
parent ec75858f7e
commit f7d0a35b3a

View File

@ -78,10 +78,11 @@ const AssignRoleModel = ({ assignData, onClose, setAssigned }) => {
const selectedProject = useSelector( const selectedProject = useSelector(
(store) => store.localVariables.projectId (store) => store.localVariables.projectId
); );
const { employees, loading: employeeLoading,recallEmployeeData } = useEmployeesAllOrByProjectId( const {
selectedProject, employees,
false loading: employeeLoading,
); recallEmployeeData,
} = useEmployeesAllOrByProjectId(selectedProject, false);
const dispatch = useDispatch(); const dispatch = useDispatch();
const { loading } = useMaster(); // Assuming this is for jobRoleData loading const { loading } = useMaster(); // Assuming this is for jobRoleData loading
const jobRoleData = getCachedData("Job Role"); const jobRoleData = getCachedData("Job Role");
@ -175,7 +176,7 @@ const AssignRoleModel = ({ assignData, onClose, setAssigned }) => {
showToast("Task Successfully Assigned", "success"); // Show success toast showToast("Task Successfully Assigned", "success"); // Show success toast
reset(); // Reset form fields reset(); // Reset form fields
clearCacheKey("projectInfo"); clearCacheKey("projectInfo");
setAssigned(formattedData.plannedTask) setAssigned(formattedData.plannedTask);
onClose(); // Close the modal onClose(); // Close the modal
} catch (error) { } catch (error) {
console.error("Error assigning task:", error); // Log the full error for debugging console.error("Error assigning task:", error); // Log the full error for debugging
@ -189,24 +190,34 @@ const AssignRoleModel = ({ assignData, onClose, setAssigned }) => {
onClose(); onClose();
}; };
const handler = useCallback( const handler = useCallback(
(msg) => { (msg) => {
if(employees.some((item) => item.id == msg.employeeId)){ if (employees.some((item) => item.id == msg.employeeId)) {
console.log("handller function start")
clearCacheKey("employeeListByProject");
clearCacheKey("allEmployeeList");
clearCacheKey("allInactiveEmployeeList");
clearCacheKey("employeeProfile");
recallEmployeeData(false); 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(() => { useEffect(() => {
eventBus.on("employee",handler); eventBus.on("employee", handler);
return () => eventBus.off("employee",handler) return () => eventBus.off("employee", handler);
},[handler]) }, [handler]);
useEffect(() => {
eventBus.on("assign_project_all", assignHandler);
return () => eventBus.off("assign_project_all", assignHandler);
}, [assignHandler]);
return ( return (
<div <div