From 43ed77cfc672853899b3bfabcf80a62d0c393969 Mon Sep 17 00:00:00 2001 From: Kartik Sharma Date: Wed, 30 Jul 2025 16:56:27 +0530 Subject: [PATCH 01/13] Deleted Employee Still Visible Until Manual Refresh. --- src/hooks/useEmployees.js | 78 ++++++++++++++++++++++++++++----------- 1 file changed, 57 insertions(+), 21 deletions(-) diff --git a/src/hooks/useEmployees.js b/src/hooks/useEmployees.js index 30e41256..d968cc48 100644 --- a/src/hooks/useEmployees.js +++ b/src/hooks/useEmployees.js @@ -211,31 +211,70 @@ export const useUpdateEmployee = () => -export const useSuspendEmployee = ({ setIsDeleteModalOpen, setemployeeLodaing }) => { - const queryClient = useQueryClient(); - const selectedProject = useSelector((store)=>store.localVariables.projectId) - return useMutation({ - mutationFn: (id) => { - setemployeeLodaing(true); - return EmployeeRepository.deleteEmployee(id); - }, +// export const useSuspendEmployee = ({ setIsDeleteModalOpen, setemployeeLodaing }) => { +// const queryClient = useQueryClient(); +// const selectedProject = useSelector((store)=>store.localVariables.projectId) +// return useMutation({ +// mutationFn: (id) => { +// setemployeeLodaing(true); +// return EmployeeRepository.deleteEmployee(id); +// }, - onSuccess: () => { +// onSuccess: () => { - // queryClient.invalidateQueries( ['allEmployee',false]); - queryClient.invalidateQueries( {queryKey: [ 'projectEmployees' ]} ); - queryClient.invalidateQueries( {queryKey:[ 'employeeListByProject' ,selectedProject]} ); - showToast("Employee deleted successfully.", "success"); +// // queryClient.invalidateQueries( ['allEmployee',false]); +// queryClient.invalidateQueries( {queryKey: [ 'projectEmployees' ]} ); +// queryClient.invalidateQueries( {queryKey:[ 'employeeListByProject' ,selectedProject]} ); +// showToast("Employee deleted successfully.", "success"); +// setIsDeleteModalOpen(false); +// }, + +// onError: (error) => { +// const message = +// error.response?.data?.message || +// error.message || +// "An unexpected error occurred"; +// showToast(message, "error"); +// setIsDeleteModalOpen(false); +// }, + +// onSettled: () => { +// setemployeeLodaing(false); +// }, +// }); +// }; + +// Manage Role + +export const useSuspendEmployee = ({ setIsDeleteModalOpen, setemployeeLodaing }) => { + const queryClient = useQueryClient(); + const selectedProjectId = useSelector((store) => store.localVariables.projectId); + + return useMutation({ + mutationFn: async (employeeId) => { + setemployeeLodaing(true); + return await EmployeeRepository.deleteEmployee(employeeId); + }, + + onSuccess: (_, employeeId) => { + showToast("Employee suspended successfully.", "success"); setIsDeleteModalOpen(false); + + // Invalidate only the required employee-related queries + queryClient.invalidateQueries({ queryKey: ["employee", employeeId] }); + queryClient.invalidateQueries({ queryKey: ["allEmployees"] }); + + if (selectedProjectId) { + queryClient.invalidateQueries({ queryKey: ["projectEmployees", selectedProjectId] }); + } }, onError: (error) => { - const message = - error.response?.data?.message || - error.message || - "An unexpected error occurred"; - showToast(message, "error"); + showToast( + error.response?.data?.message || error.message || "An unexpected error occurred", + "error" + ); setIsDeleteModalOpen(false); }, @@ -245,9 +284,6 @@ export const useSuspendEmployee = ({ setIsDeleteModalOpen, setemployeeLodaing }) }); }; -// Manage Role - - export const useUpdateEmployeeRoles = ({ onClose, resetForm, onSuccessCallback } = {}) => { const queryClient = useQueryClient(); const mutation = useMutation({ From c231f12439bdc56861fdff876347e7dfd28a5e5d Mon Sep 17 00:00:00 2001 From: Kartik Sharma Date: Tue, 12 Aug 2025 12:26:17 +0530 Subject: [PATCH 02/13] Change the icons on AttendanceChart.jsx --- src/components/Dashboard/AttendanceChart.jsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/components/Dashboard/AttendanceChart.jsx b/src/components/Dashboard/AttendanceChart.jsx index 7fcc862e..e7915e53 100644 --- a/src/components/Dashboard/AttendanceChart.jsx +++ b/src/components/Dashboard/AttendanceChart.jsx @@ -116,14 +116,16 @@ const AttendanceOverview = () => { From ffa622b203147c34fcb0d5e513544d2fedb66627 Mon Sep 17 00:00:00 2001 From: Kartik Sharma Date: Mon, 11 Aug 2025 15:53:51 +0530 Subject: [PATCH 03/13] Font size and button styling mismatch in Contact Profile (Web Directory) --- src/components/Directory/NotesDirectory.jsx | 62 +++++++++++++-------- 1 file changed, 39 insertions(+), 23 deletions(-) diff --git a/src/components/Directory/NotesDirectory.jsx b/src/components/Directory/NotesDirectory.jsx index cccfd8ef..93326e62 100644 --- a/src/components/Directory/NotesDirectory.jsx +++ b/src/components/Directory/NotesDirectory.jsx @@ -128,24 +128,40 @@ const NotesDirectory = ({ className="switch switch-primary" style={{ visibility: - contactProfile?.notes?.length > 0 || - contactNotes?.length > 0 + contactProfile?.notes?.length > 0 || contactNotes?.length > 0 ? "visible" : "hidden", + fontSize: "15px", // smaller text }} > - handleSwitch(!IsActive)} - value={IsActive} + checked={IsActive} + style={{ + transform: "scale(0.8)", // smaller toggle + }} /> - - + - Include Deleted Notes + + Include Deleted Notes + {!showEditor && ( @@ -208,23 +224,23 @@ const NotesDirectory = ({ )} {!isLoading && notesToDisplay.length > 0 ? notesToDisplay - .slice() - .reverse() - .map((noteItem) => ( - - )) + .slice() + .reverse() + .map((noteItem) => ( + + )) : !isLoading && - !showEditor && ( -
{noNotesMessage}
- )} + !showEditor && ( +
{noNotesMessage}
+ )} ); From 310281db0c4ea0023b96b8e9d49e288e06e0cc5c Mon Sep 17 00:00:00 2001 From: Kartik Sharma Date: Mon, 11 Aug 2025 14:56:12 +0530 Subject: [PATCH 04/13] Contact list grid columns not displayed when no contact is available --- src/pages/Directory/Directory.jsx | 51 +++++++++++-------- .../Directory/DirectoryListTableHeader.jsx | 2 +- 2 files changed, 31 insertions(+), 22 deletions(-) diff --git a/src/pages/Directory/Directory.jsx b/src/pages/Directory/Directory.jsx index 8f72ac81..1319da5e 100644 --- a/src/pages/Directory/Directory.jsx +++ b/src/pages/Directory/Directory.jsx @@ -38,7 +38,7 @@ const Directory = ({ IsPage = true, prefernceContacts }) => { const [IsDeleting, setDeleting] = useState(false); const [openBucketModal, setOpenBucketModal] = useState(false); const [notes, setNotes] = useState([]); - const [filterAppliedNotes, setFilterAppliedNotes] = useState([]); + const [filterAppliedNotes, setFilterAppliedNotes] = useState([]); // const [selectedOrgs, setSelectedOrgs] = useState([]); // ✅ Changed to an array for multiple selections @@ -260,7 +260,7 @@ const Directory = ({ IsPage = true, prefernceContacts }) => { }, [prefernceContacts]); return ( -
+
{IsPage && ( { setOpenBucketModal={setOpenBucketModal} contactsToExport={contacts} notesToExport={notes} - selectedNoteNames={selectedNoteNames} + selectedNoteNames={selectedNoteNames} setSelectedNoteNames={setSelectedNoteNames} notesForFilter={notes} setFilterAppliedNotes={setFilterAppliedNotes} @@ -361,23 +361,9 @@ const Directory = ({ IsPage = true, prefernceContacts }) => {
- {(viewType === "card" || viewType === "list" || viewType === "notes") && ( -
- {!loading && (viewType === "card" || viewType === "list") && contacts?.length === 0 && ( -

No contact found

- )} - {!loading && - (viewType === "card" || viewType === "list") && - contacts?.length > 0 && - currentItems.length === 0 && ( -

No matching contact found

- )} -
- )} - {viewType === "list" && (
-
+
{!loading && currentItems.map((contact) => ( @@ -394,12 +380,22 @@ const Directory = ({ IsPage = true, prefernceContacts }) => { /> ))} + + {/* Empty state AFTER list */} + {!loading && contacts?.length === 0 && ( +

No contact found

+ )} + {!loading && + contacts?.length > 0 && + currentItems.length === 0 && ( +

No matching contact found

+ )}
)} {viewType === "card" && ( -
+
{!loading && currentItems.map((contact) => (
{ />
))} + + {/* Empty state for card view */} + {!loading && contacts?.length === 0 && ( +

No contact found

+ )} + {!loading && + contacts?.length > 0 && + currentItems.length === 0 && ( +

No matching contact found

+ )}
)} @@ -428,7 +434,7 @@ const Directory = ({ IsPage = true, prefernceContacts }) => { setNotesForFilter={setNotes} searchText={searchText} setIsOpenModalNote={setIsOpenModalNote} - filterAppliedNotes={filterAppliedNotes} + filterAppliedNotes={filterAppliedNotes} />
)} @@ -464,7 +470,10 @@ const Directory = ({ IsPage = true, prefernceContacts }) => { ))} -
  • +