fixed refresh existen permission

This commit is contained in:
pramod mahajan 2025-09-18 12:57:37 +05:30
parent b3b7297bc3
commit b2c68824dd
2 changed files with 21 additions and 12 deletions

View File

@ -28,6 +28,7 @@ const ProjectPermission = () => {
handleSubmit, handleSubmit,
reset, reset,
control, control,
setValue,
formState: { errors, isDirty }, formState: { errors, isDirty },
} = useForm({ } = useForm({
resolver: zodResolver(ProjectPermissionSchema), resolver: zodResolver(ProjectPermissionSchema),
@ -45,18 +46,26 @@ const ProjectPermission = () => {
); );
useEffect(() => { useEffect(() => {
if (!selectedEmployee) return; if (!selectedEmployee) return;
const enabledPerms = const enabledPerms =
selectedEmpPermissions?.permissions selectedEmpPermissions?.permissions
?.filter((perm) => perm.isEnabled) ?.filter((perm) => perm.isEnabled)
?.map((perm) => perm.id) || []; ?.map((perm) => perm.id) || [];
reset((prev) => ({ setValue("selectedPermissions", enabledPerms, { shouldValidate: true });
...prev, }, [selectedEmpPermissions, setValue, selectedEmployee]);
selectedPermissions: enabledPerms,
})); const selectedPermissions = watch("selectedPermissions") || [];
}, [selectedEmpPermissions, reset, selectedEmployee]);
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 } = const { mutate: updatePermission, isPending } =
useUpdateProjectLevelEmployeePermission(); useUpdateProjectLevelEmployeePermission();
@ -145,7 +154,7 @@ const ProjectPermission = () => {
</div> </div>
<div className="mt-3 text-end"> <div className="mt-3 text-end">
{isDirty && ( {hasChanges && (
<button <button
type="submit" type="submit"
className="btn btn-sm btn-primary" className="btn btn-sm btn-primary"

View File

@ -191,7 +191,7 @@ export const useProjectInfra = (projectId) => {
}, },
}); });
return { projectInfra, isLoading, error, isFetched }; return { projectInfra, isLoading, error,isFetched };
}; };
export const useProjectTasks = (workAreaId, IsExpandedArea = false) => { export const useProjectTasks = (workAreaId, IsExpandedArea = false) => {