From 75ca3d15040a6ca017ca6dd2bc4fa312fc68962e Mon Sep 17 00:00:00 2001 From: Kartik Sharma Date: Thu, 11 Sep 2025 17:49:32 +0530 Subject: [PATCH] Display Only "Re-activate" Button for Inactive Employees in Action Column --- src/pages/employee/EmployeeList.jsx | 151 ++++++++++++++-------------- 1 file changed, 78 insertions(+), 73 deletions(-) diff --git a/src/pages/employee/EmployeeList.jsx b/src/pages/employee/EmployeeList.jsx index 37bccb60..a7d6b918 100644 --- a/src/pages/employee/EmployeeList.jsx +++ b/src/pages/employee/EmployeeList.jsx @@ -18,7 +18,7 @@ import { VIEW_ALL_EMPLOYEES, VIEW_TEAM_MEMBERS, } from "../../utils/constants"; -import { clearCacheKey, useSelectedProject } from "../../slices/apiDataManager"; +import { clearCacheKey } from "../../slices/apiDataManager"; import { useHasUserPermission } from "../../hooks/useHasUserPermission"; import SuspendEmp from "../../components/Employee/SuspendEmp"; // Keep if you use SuspendEmp import { @@ -38,10 +38,9 @@ import usePagination from "../../hooks/usePagination"; import { setProjectId } from "../../slices/localVariablesSlice"; const EmployeeList = () => { - // const selectedProjectId = useSelector( - // (store) => store.localVariables.projectId - // ); - const selectedProjectId = useSelectedProject(); + const selectedProjectId = useSelector( + (store) => store.localVariables.projectId + ); const { projectNames, loading: projectLoading, fetchData } = useProjectName(); const dispatch = useDispatch(); @@ -79,11 +78,11 @@ const EmployeeList = () => { } ); -useEffect(() => { - if (!selectedProjectId && projectNames?.length > 0) { - dispatch(setProjectId(projectNames[0].id)); - } -}, [selectedProjectId, projectNames, dispatch]); + useEffect(() => { + if (selectedProjectId === null) { + dispatch(setProjectId(projectNames[0]?.id)); + } + }, [selectedProjectId]); const navigate = useNavigate(); const applySearchFilter = (data, text) => { @@ -177,12 +176,10 @@ useEffect(() => { useEffect(() => { if (!loading && Array.isArray(employees)) { const sorted = [...employees].sort((a, b) => { - const nameA = `${a.firstName || ""}${a.middleName || ""}${ - a.lastName || "" - }`.toLowerCase(); - const nameB = `${b.firstName || ""}${b.middleName || ""}${ - b.lastName || "" - }`.toLowerCase(); + const nameA = `${a.firstName || ""}${a.middleName || ""}${a.lastName || "" + }`.toLowerCase(); + const nameB = `${b.firstName || ""}${b.middleName || ""}${b.lastName || "" + }`.toLowerCase(); return nameA?.localeCompare(nameB); }); @@ -221,10 +218,10 @@ useEffect(() => { recallEmployeeData( showInactive, showAllEmployees ? null : selectedProjectId - ); + ); // Use selectedProjectId here } }, - [employees, showInactive, showAllEmployees, selectedProjectId] + [employees, showInactive, showAllEmployees, selectedProjectId] // Add all relevant dependencies ); useEffect(() => { @@ -247,7 +244,7 @@ useEffect(() => { )} {showModal && ( - setShowModal(false)} @@ -259,18 +256,24 @@ useEffect(() => { /> )} - {IsDeleteModalOpen && ( + + {IsDeleteModalOpen && ( - suspendEmployee({ - employeeId:id , - active: !selectedEmpFordelete.isActive, - }) - } + suspendEmployee({ + employeeId: id, + active: !selectedEmpFordelete.isActive, + }) + } onClose={() => setIsDeleteModalOpen(false)} loading={employeeLodaing} paramData={selectedEmpFordelete.id} @@ -496,9 +499,8 @@ useEffect(() => { Status { )} {/* Conditional messages for no data or no search results */} {!loading && - displayData?.length === 0 && - searchText && - !showAllEmployees ? ( + displayData?.length === 0 && + searchText && + !showAllEmployees ? ( @@ -530,14 +532,14 @@ useEffect(() => { ) : null} {!loading && - displayData?.length === 0 && - (!searchText || showAllEmployees) ? ( + displayData?.length === 0 && + (!searchText || showAllEmployees) ? ( - No team members assigned yet + No Data Found ) : null} @@ -556,9 +558,7 @@ useEffect(() => {
- navigate( - `/employee/${item.id}?for=attendance` - ) + navigate(`/employee/${item.id}`) } className="text-heading text-truncate cursor-pointer" > @@ -594,10 +594,9 @@ useEffect(() => { {item.jobRole || "Not Assign Yet"} + - {item.joiningDate - ? moment(item.joiningDate).format("DD-MMM-YYYY") - : "NA"} + {moment(item.joiningDate)?.format("DD-MMM-YYYY")} {showInactive ? ( @@ -626,47 +625,56 @@ useEffect(() => {
+ {/* View always visible */} - - {!item.isSystem && ( + + {/* If ACTIVE employee */} + {item.isActive && ( <> + + {/* Suspend only when active */} + {item.isActive && ( + + )} + + )} + + {/* If INACTIVE employee AND inactive toggle is ON */} + {!item.isActive && showInactive && ( + + )}
@@ -683,9 +691,8 @@ useEffect(() => {