-
- {(ApprovedTaskRights || ReportTaskRights) ? (
-
-
- {isLoading && (
)}
- {( !isLoading && projectInfra?.length === 0 ) && (
No Result Found
)}
- {(!isLoading && projectInfra?.length > 0) && (
)}
+
+
- ) : (
-
-
-
Access Denied: You don't have permission to perform this action. !
-
- )}
-
);
};
export default InfraPlanning;
+
diff --git a/src/components/Project/ProjectPermission.jsx b/src/components/Project/ProjectPermission.jsx
index 471e283d..fa6bf1d2 100644
--- a/src/components/Project/ProjectPermission.jsx
+++ b/src/components/Project/ProjectPermission.jsx
@@ -28,6 +28,7 @@ const ProjectPermission = () => {
handleSubmit,
reset,
control,
+ setValue,
formState: { errors, isDirty },
} = useForm({
resolver: zodResolver(ProjectPermissionSchema),
@@ -45,18 +46,26 @@ const ProjectPermission = () => {
);
useEffect(() => {
- if (!selectedEmployee) return;
+ if (!selectedEmployee) return;
- const enabledPerms =
- selectedEmpPermissions?.permissions
- ?.filter((perm) => perm.isEnabled)
- ?.map((perm) => perm.id) || [];
+ const enabledPerms =
+ selectedEmpPermissions?.permissions
+ ?.filter((perm) => perm.isEnabled)
+ ?.map((perm) => perm.id) || [];
- reset((prev) => ({
- ...prev,
- selectedPermissions: enabledPerms,
- }));
- }, [selectedEmpPermissions, reset, selectedEmployee]);
+ setValue("selectedPermissions", enabledPerms, { shouldValidate: true });
+}, [selectedEmpPermissions, setValue, selectedEmployee]);
+
+const selectedPermissions = watch("selectedPermissions") || [];
+
+const existingEnabledIds =
+ selectedEmpPermissions?.permissions
+ ?.filter((p) => p.isEnabled)
+ ?.map((p) => p.id) || [];
+
+const hasChanges =
+ selectedPermissions.length !== existingEnabledIds.length ||
+ selectedPermissions.some((id) => !existingEnabledIds.includes(id));
const { mutate: updatePermission, isPending } =
useUpdateProjectLevelEmployeePermission();
@@ -145,7 +154,7 @@ const ProjectPermission = () => {
- {isDirty && (
+ {hasChanges && (
- Frequently asked
-
- questions
-
+ Questions
+ {/*
+ /> */}
@@ -816,19 +816,26 @@ const LandingPage = () => {