diff --git a/src/components/Project/ProjectNav.jsx b/src/components/Project/ProjectNav.jsx
index f3e6de97..83a4593d 100644
--- a/src/components/Project/ProjectNav.jsx
+++ b/src/components/Project/ProjectNav.jsx
@@ -7,6 +7,10 @@ import {
DIRECTORY_USER,
MANAGE_PROJECT_INFRA,
MANAGE_TASK,
+ MANAGE_TEAM,
+ MODIFY_DOCUMENT,
+ UPLOAD_DOCUMENT,
+ VIEW_DOCUMENT,
VIEW_PROJECT_INFRA,
} from "../../utils/constants";
@@ -17,6 +21,10 @@ const ProjectNav = ({ onPillClick, activePill }) => {
const DirAdmin = useHasUserPermission(DIRECTORY_ADMIN);
const DireManager = useHasUserPermission(DIRECTORY_MANAGER);
const DirUser = useHasUserPermission(DIRECTORY_USER);
+ const isManageTeam = useHasUserPermission(MANAGE_TEAM)
+ const isViewDocuments = hasUserPermission(VIEW_DOCUMENT);
+ const isUploadDocument = useHasUserPermission(UPLOAD_DOCUMENT)
+ const isModifyDocument = useHasUserPermission(MODIFY_DOCUMENT)
const ProjectTab = [
{ key: "profile", icon: "bx bx-user", label: "Profile" },
@@ -33,8 +41,8 @@ const ProjectNav = ({ onPillClick, activePill }) => {
label: "Directory",
hidden: !(DirAdmin || DireManager || DirUser),
},
- { key: "documents", icon: "bx bx-folder-open", label: "Documents" },
- { key: "setting", icon: "bx bxs-cog", label: "Setting" },
+ { key: "documents", icon: "bx bx-folder-open", label: "Documents",hidden:!(isViewDocuments || isModifyDocument || isUploadDocument) },
+ { key: "setting", icon: "bx bxs-cog", label: "Setting",hidden:!isManageTeam },
];
return (
diff --git a/src/components/Project/ProjectPermission.jsx b/src/components/Project/ProjectPermission.jsx
index 6bfd5e5a..4a6a5504 100644
--- a/src/components/Project/ProjectPermission.jsx
+++ b/src/components/Project/ProjectPermission.jsx
@@ -1,4 +1,4 @@
-import React, { useEffect } from "react";
+import React, { useCallback, useEffect } from "react";
import {
useProjectLevelEmployeePermission,
useProjectLevelModules,
@@ -27,7 +27,7 @@ const ProjectPermission = () => {
watch,
handleSubmit,
reset,
- formState: { errors },
+ formState: { errors, isDirty },
} = useForm({
resolver: zodResolver(ProjectPermissionSchema),
defaultValues: {
@@ -43,82 +43,82 @@ const ProjectPermission = () => {
selectedProject
);
-useEffect(() => {
- if (!selectedEmployee) return;
+ useEffect(() => {
+ if (!selectedEmployee) return;
- const enabledPerms =
- selectedEmpPermissions?.permissions
- ?.filter((perm) => perm.isEnabled)
- ?.map((perm) => perm.id) || [];
-
- reset((prev) => ({
- ...prev,
- selectedPermissions: enabledPerms,
- }));
-}, [selectedEmpPermissions, reset, selectedEmployee]);
+ const enabledPerms =
+ selectedEmpPermissions?.permissions
+ ?.filter((perm) => perm.isEnabled)
+ ?.map((perm) => perm.id) || [];
+ reset((prev) => ({
+ ...prev,
+ selectedPermissions: enabledPerms,
+ }));
+ }, [selectedEmpPermissions, reset, selectedEmployee]);
const { mutate: updatePermission, isPending } =
useUpdateProjectLevelEmployeePermission();
- const onSubmit = (formData) => {
- if (!formData.employeeId) {
- showToast("Please select an employee", "warn");
- return;
- }
+ const onSubmit = (formData) => {
+ if (!formData.employeeId) {
+ showToast("Please select an employee", "warn");
+ return;
+ }
- const existingPermissions = selectedEmpPermissions?.permissions || [];
- const existingEnabledIds = existingPermissions
- .filter((p) => p.isEnabled)
- .map((p) => p.id);
+ const existingPermissions = selectedEmpPermissions?.permissions || [];
+ const existingEnabledIds = existingPermissions
+ .filter((p) => p.isEnabled)
+ .map((p) => p.id);
- const newSelectedIds = formData.selectedPermissions || [];
+ const newSelectedIds = formData.selectedPermissions || [];
- const removed = existingEnabledIds
- .filter((id) => !newSelectedIds.includes(id))
- .map((id) => ({ id, isEnabled: false }));
+ const removed = existingEnabledIds
+ .filter((id) => !newSelectedIds.includes(id))
+ .map((id) => ({ id, isEnabled: false }));
- const added = newSelectedIds
- .filter((id) => !existingEnabledIds.includes(id))
- .map((id) => ({ id, isEnabled: true }));
+ const added = newSelectedIds
+ .filter((id) => !existingEnabledIds.includes(id))
+ .map((id) => ({ id, isEnabled: true }));
- const payloadPermissions = [...removed, ...added];
+ const payloadPermissions = [...removed, ...added];
- if (payloadPermissions.length === 0) {
- showToast("No changes detected", "info");
- return;
- }
+ if (payloadPermissions.length === 0) {
+ showToast("No changes detected", "info");
+ return;
+ }
- const payload = {
- employeeId: formData.employeeId,
- projectId: selectedProject,
- permission: payloadPermissions,
+ const payload = {
+ employeeId: formData.employeeId,
+ projectId: selectedProject,
+ permission: payloadPermissions,
+ };
+
+ updatePermission(payload);
};
- updatePermission(payload);
-};
-
-
+ const useOnClick = useCallback((event) => {}, []);
return (
-