From bf097bc884c3a4ebd48b4f8e78e891078557f294 Mon Sep 17 00:00:00 2001 From: "ashutosh.nehete" Date: Mon, 12 May 2025 15:45:17 +0530 Subject: [PATCH] Added a popup to allow editing of employee information directly in the Employee Profile. --- src/components/Employee/ManageEmployee.jsx | 4 ++- src/pages/employee/EmployeeProfile.jsx | 32 +++++++++++++++++++++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/components/Employee/ManageEmployee.jsx b/src/components/Employee/ManageEmployee.jsx index aa1825f3..6d56e493 100644 --- a/src/components/Employee/ManageEmployee.jsx +++ b/src/components/Employee/ManageEmployee.jsx @@ -10,7 +10,7 @@ import { changeMaster } from "../../slices/localVariablesSlice"; import { Link, useNavigate, useParams } from "react-router-dom"; import { formatDate } from "../../utils/dateUtils"; import { useEmployeeProfile } from "../../hooks/useEmployees"; -import { clearCacheKey, getCachedData } from "../../slices/apiDataManager"; +import { cacheData, clearCacheKey, getCachedData } from "../../slices/apiDataManager"; import { clearApiCacheKey } from "../../slices/apiCacheSlice"; const mobileNumberRegex = /^[0-9]\d{9}$/; @@ -166,6 +166,7 @@ const ManageEmployee = ({ employeeId, onClosed }) => { } EmployeeRepository.manageEmployee(data) .then((response) => { + cacheData("employeeProfileInfo", data); showToast( `Employee details ${ data.id == null ? "created" : "updated" @@ -176,6 +177,7 @@ const ManageEmployee = ({ employeeId, onClosed }) => { clearCacheKey("allEmployeeList"); clearCacheKey("allInactiveEmployeeList"); clearCacheKey("employeeProfile"); + setLoading(false); reset(); diff --git a/src/pages/employee/EmployeeProfile.jsx b/src/pages/employee/EmployeeProfile.jsx index a215bba0..4de20675 100644 --- a/src/pages/employee/EmployeeProfile.jsx +++ b/src/pages/employee/EmployeeProfile.jsx @@ -16,6 +16,7 @@ import { ComingSoonPage } from "../Misc/ComingSoonPage"; import { useNavigate } from "react-router-dom"; import Avatar from "../../components/common/Avatar"; import AttendancesEmployeeRecords from "./AttendancesEmployeeRecords"; +import ManageEmployee from "../../components/Employee/ManageEmployee"; const EmployeeProfile = () => { const projectID = useSelector((store) => store.localVariables.projectId); const { employeeId } = useParams(); @@ -26,11 +27,18 @@ const EmployeeProfile = () => { const tab = SearchParams.get("for"); const [activePill, setActivePill] = useState(tab); const [currentEmployee, setCurrentEmployee] = useState(); + const [showModal, setShowModal] = useState(false); const handlePillClick = (pillKey) => { setActivePill(pillKey); }; + const closeModal = () => { + setShowModal(false); + fetchEmployeeProfile(employeeId); + }; + const handleShow = () => setShowModal(true); + const fetchEmployeeProfile = async (employeeID) => { try { const resp = await EmployeeRepository.getEmployeeProfile(employeeID); @@ -89,6 +97,26 @@ const EmployeeProfile = () => { } return ( + <> {showModal && (
+
+
+ +
+
+
)} +
{
+ + ); };