From 37b74270cda5c897e8b61f5e0363baaefbc3a7be Mon Sep 17 00:00:00 2001 From: Pramod Mahajan Date: Sat, 19 Apr 2025 22:10:26 +0530 Subject: [PATCH 1/5] clear cache after update or new create employee. and added character limitation for address and email --- src/components/Employee/ManageEmployee.jsx | 38 +++++++++++++--------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/src/components/Employee/ManageEmployee.jsx b/src/components/Employee/ManageEmployee.jsx index 94d270f6..deed22a9 100644 --- a/src/components/Employee/ManageEmployee.jsx +++ b/src/components/Employee/ManageEmployee.jsx @@ -23,8 +23,10 @@ const ManageEmployee = () => { employee, error, loading: empLoading, - } = useEmployeeProfile(employeeId); - dispatch(changeMaster("Job Role")); + } = useEmployeeProfile( employeeId ); + + dispatch( changeMaster( "Job Role" ) ); + const [disabledEmail, setDisabledEmail] = useState(false); const { data: job_role, loading } = useMaster(); const [isloading, setLoading] = useState(false); @@ -39,7 +41,7 @@ const ManageEmployee = () => { MiddleName: z.string().optional(), LastName: z.string().min(1, { message: "Last Name is required" }), Email: z - .string() + .string().max(225,"Email cannot exceed 255 characters") .optional() .refine((val) => !val || /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(val), { message: "Invalid email format", @@ -59,7 +61,7 @@ const ManageEmployee = () => { CurrentAddress: z .string() .min(1, { message: "Current Address is required" }) - .max(500, { message: "Address cannot exceed 250 characters" }), + .max(500, { message: "Address cannot exceed 500 characters" }), BirthDate: z .string() .min(1, { message: "Birth Date is required" }) @@ -111,7 +113,7 @@ const ManageEmployee = () => { PermanentAddress: z .string() .min(1, { message: "Permanent Address is required" }) - .max(500, { message: "Address cannot exceed 250 characters" }), + .max(500, { message: "Address cannot exceed 500 characters" }), PhoneNumber: z .string() .min(1, { message: "Phone Number is required" }) @@ -150,7 +152,8 @@ const ManageEmployee = () => { mode: "onChange", }); - const AadharNumberValue = watch("AadharNumber") || ""; + const AadharNumberValue = watch( "AadharNumber" ) || ""; + const onSubmit = (data) => { setLoading(true); @@ -181,8 +184,11 @@ const ManageEmployee = () => { .then((response) => { showToast("Employee details updated successfully.", "success"); clearCacheKey("employeeListByProject"); - clearCacheKey("allEmployeeList"); - setLoading(false); + clearCacheKey( "allEmployeeList" ); + clearCacheKey("employeeProfile") + + setLoading( false ); + reset() navigation("/employees"); }) .catch((error) => { @@ -324,7 +330,7 @@ const ManageEmployee = () => { {...register("Email")} className="form-control form-control-sm" placeholder="example@domain.com" - aria-label="" + maxLength={255} aria-describedby="Email" disabled={!!currentEmployee?.email} /> @@ -438,15 +444,16 @@ const ManageEmployee = () => { placeholder="Current Address" aria-label="Current Address" aria-describedby="basic-icon-default-message2" - {...register("CurrentAddress")} + {...register( "CurrentAddress" )} + maxLength={500} onChange={(e) => { setCurrentAddressLength(e.target.value.length); // let react-hook-form still handle it register("CurrentAddress").onChange(e); }} > -
- {500 - currentAddressLength} characters left +
+ {500 - currentAddressLength} characters left
{errors.CurrentAddress && (
{ placeholder="Permanent Address" aria-label="Permanent Address" aria-describedby="basic-icon-default-message2" - {...register("PermanentAddress")} + {...register( "PermanentAddress" )} + maxLength={500} onChange={(e) => { setPermanentAddressLength(e.target.value.length); register("PermanentAddress").onChange(e); }} > -
- {500 - permanentAddressLength} characters left +
+ {500 - permanentAddressLength} characters left
{errors.PermanentAddress && (
Date: Sat, 19 Apr 2025 22:11:15 +0530 Subject: [PATCH 2/5] added character limitation --- src/components/Employee/ManageEmployee.jsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/Employee/ManageEmployee.jsx b/src/components/Employee/ManageEmployee.jsx index deed22a9..b9f3a25a 100644 --- a/src/components/Employee/ManageEmployee.jsx +++ b/src/components/Employee/ManageEmployee.jsx @@ -41,7 +41,7 @@ const ManageEmployee = () => { MiddleName: z.string().optional(), LastName: z.string().min(1, { message: "Last Name is required" }), Email: z - .string().max(225,"Email cannot exceed 255 characters") + .string().max(80,"Email cannot exceed 80 characters") .optional() .refine((val) => !val || /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(val), { message: "Invalid email format", @@ -257,7 +257,7 @@ const ManageEmployee = () => {
- {!currentEmployee && empLoading && ( + {(!currentEmployee && empLoading) && (

Loading Employee Data...

)} @@ -330,7 +330,7 @@ const ManageEmployee = () => { {...register("Email")} className="form-control form-control-sm" placeholder="example@domain.com" - maxLength={255} + maxLength={80} aria-describedby="Email" disabled={!!currentEmployee?.email} /> -- 2.43.0 From 7df16d0b596ccb7de69d397a9f3fd23d5a8d158e Mon Sep 17 00:00:00 2001 From: Pramod Mahajan Date: Sat, 19 Apr 2025 22:11:45 +0530 Subject: [PATCH 3/5] modified response format --- src/components/Employee/ManageRole.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Employee/ManageRole.jsx b/src/components/Employee/ManageRole.jsx index 7ea3877d..714b5912 100644 --- a/src/components/Employee/ManageRole.jsx +++ b/src/components/Employee/ManageRole.jsx @@ -30,7 +30,7 @@ const ManageRole = ({ employeeId, onClosed }) => { const buildDefaultRoles = () => { const defaults = {}; data.forEach((role) => { - const isRoleEnabled = employeeRoles?.data?.some( + const isRoleEnabled = employeeRoles?.some( (empRole) => empRole.roleId === role.id ); defaults[role.id] = isRoleEnabled; -- 2.43.0 From 61542e6d4ff60aa69098d6ba0590c55829f404c9 Mon Sep 17 00:00:00 2001 From: Pramod Mahajan Date: Sat, 19 Apr 2025 22:12:12 +0530 Subject: [PATCH 4/5] modified response format --- src/hooks/useEmployees.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/hooks/useEmployees.js b/src/hooks/useEmployees.js index 025e80bb..b48ac9bd 100644 --- a/src/hooks/useEmployees.js +++ b/src/hooks/useEmployees.js @@ -97,8 +97,8 @@ export const useEmployeeRoles = (employeeId)=>{ try { RolesRepository.getEmployeeRoles(employeeid) .then((response) => { - setEmployeeRoles(response); - cacheData("employeelist", response); + setEmployeeRoles(response.data); + cacheData("employeelist", response.data); }) .catch((error) => { setError("Failed to fetch data."); -- 2.43.0 From addf44847a989ee3299e666186cfca321013b673 Mon Sep 17 00:00:00 2001 From: Pramod Mahajan Date: Sat, 19 Apr 2025 22:12:45 +0530 Subject: [PATCH 5/5] added icons for dropdown --- src/pages/employee/EmployeeList.jsx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/pages/employee/EmployeeList.jsx b/src/pages/employee/EmployeeList.jsx index f4559fde..13207bb4 100644 --- a/src/pages/employee/EmployeeList.jsx +++ b/src/pages/employee/EmployeeList.jsx @@ -458,30 +458,30 @@ const EmployeeList = () => { onClick={() => navigate(`/employee/${item.id}`) } - className="dropdown-item" + className="dropdown-item py-1" > - View + View - Edit + Edit
-- 2.43.0