From b2c68824dd6627fc699fd2c98337677223711397 Mon Sep 17 00:00:00 2001 From: pramod mahajan Date: Thu, 18 Sep 2025 12:57:37 +0530 Subject: [PATCH] fixed refresh existen permission --- src/components/Project/ProjectPermission.jsx | 31 +++++++++++++------- src/hooks/useProjects.js | 2 +- 2 files changed, 21 insertions(+), 12 deletions(-) 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 && (