From 4ea1e06a9c3ca4db0bd8ea8b624620888f41679d Mon Sep 17 00:00:00 2001 From: "pramod.mahajan" Date: Tue, 30 Sep 2025 18:16:29 +0530 Subject: [PATCH] hide project infra, setting, Organization, and show only all employees and inactive employee --- src/components/Layout/Header.jsx | 2 +- src/components/Project/ProjectNav.jsx | 18 ++-- src/hooks/useProjectAccess.js | 1 - src/pages/employee/EmployeeList.jsx | 135 +++++++++----------------- src/pages/project/ProjectDetails.jsx | 23 +++-- src/utils/axiosClient.jsx | 4 + 6 files changed, 71 insertions(+), 112 deletions(-) diff --git a/src/components/Layout/Header.jsx b/src/components/Layout/Header.jsx index 7f051738..5128c7fc 100644 --- a/src/components/Layout/Header.jsx +++ b/src/components/Layout/Header.jsx @@ -253,7 +253,7 @@ const Header = () => { onClick={()=>openModal(null)} > - Add New Project + Create Project
  • diff --git a/src/components/Project/ProjectNav.jsx b/src/components/Project/ProjectNav.jsx index d8b2e8ed..bd2d2abb 100644 --- a/src/components/Project/ProjectNav.jsx +++ b/src/components/Project/ProjectNav.jsx @@ -27,13 +27,13 @@ const ProjectNav = ({ onPillClick, activePill }) => { const ProjectTab = [ { key: "profile", icon: "bx bx-user", label: "Profile" }, - { key: "teams", icon: "bx bx-group", label: "Teams" }, - { - key: "infra", - icon: "bx bx-grid-alt", - label: "Infrastructure", - hidden: !(HasViewInfraStructure || HasManageInfra || HasManageTask), - }, + // { key: "teams", icon: "bx bx-group", label: "Teams" }, + // { + // key: "infra", + // icon: "bx bx-grid-alt", + // label: "Infrastructure", + // hidden: !(HasViewInfraStructure || HasManageInfra || HasManageTask), + // }, { key: "directory", icon: "bx bxs-contact", @@ -41,8 +41,8 @@ const ProjectNav = ({ onPillClick, activePill }) => { hidden: !(DirAdmin || DireManager || DirUser), }, { key: "documents", icon: "bx bx-folder-open", label: "Documents",hidden:!(isViewDocuments || isModifyDocument || isUploadDocument) }, - { key: "organization", icon: "bx bx-buildings", label: "Organization"}, - { key: "setting", icon: "bx bxs-cog", label: "Setting",hidden:!isManageTeam }, + // { key: "organization", icon: "bx bx-buildings", label: "Organization"}, + // { key: "setting", icon: "bx bxs-cog", label: "Setting",hidden:!isManageTeam }, ]; return (
    diff --git a/src/hooks/useProjectAccess.js b/src/hooks/useProjectAccess.js index 8449df82..b8c269c8 100644 --- a/src/hooks/useProjectAccess.js +++ b/src/hooks/useProjectAccess.js @@ -14,7 +14,6 @@ export const useProjectAccess = (projectId) => { const canView = useHasUserPermission(VIEW_PROJECTS); const loading = isLoading || !isFetched; - debugger useEffect(() => { if (projectId && !loading && !canView) { showToast("You don't have permission to view project details", "warning"); diff --git a/src/pages/employee/EmployeeList.jsx b/src/pages/employee/EmployeeList.jsx index fc77ba1c..3ad53572 100644 --- a/src/pages/employee/EmployeeList.jsx +++ b/src/pages/employee/EmployeeList.jsx @@ -36,31 +36,30 @@ import GlobalModel from "../../components/common/GlobalModel"; import usePagination from "../../hooks/usePagination"; import { setProjectId } from "../../slices/localVariablesSlice"; import { useHasUserPermission } from "../../hooks/useHasUserPermission"; +import Pagination from "../../components/common/Pagination"; const EmployeeList = () => { - const selectedProjectId = useSelector( - (store) => store.localVariables.projectId - ); - const { projectNames, loading: projectLoading, fetchData } = useProjectName(); + // const selectedProjectId = useSelector( + // (store) => store.localVariables.projectId + // ); + // const { projectNames, loading: projectLoading, fetchData } = useProjectName(); const dispatch = useDispatch(); const [showInactive, setShowInactive] = useState(false); - const [showAllEmployees, setShowAllEmployees] = useState(false); + const [showAllEmployees, setShowAllEmployees] = useState(true); const Manage_Employee = useHasUserPermission(MANAGE_EMPLOYEES); const { employees, loading, setLoading, error, recallEmployeeData } = useEmployeesAllOrByProjectId( showAllEmployees, - selectedProjectId, + null, showInactive ); const [employeeList, setEmployeeList] = useState([]); const [modelConfig, setModelConfig] = useState(); const [EmpForManageRole, setEmpForManageRole] = useState(null); - // const [currentPage, setCurrentPage] = useState(1); - // const [itemsPerPage] = useState(ITEMS_PER_PAGE); const [isCreateModalOpen, setIsCreateModalOpen] = useState(false); const [searchText, setSearchText] = useState(""); const [filteredData, setFilteredData] = useState([]); @@ -78,11 +77,11 @@ const EmployeeList = () => { } ); - useEffect(() => { - if (selectedProjectId === null) { - dispatch(setProjectId(projectNames[0]?.id)); - } - }, [selectedProjectId]); + // useEffect(() => { + // if (selectedProjectId === null) { + // dispatch(setProjectId(projectNames[0]?.id)); + // } + // }, [selectedProjectId]); const navigate = useNavigate(); const applySearchFilter = (data, text) => { @@ -205,13 +204,9 @@ const EmployeeList = () => { setCurrentPage((prevPage) => (prevPage !== 1 ? 1 : prevPage)); } - }, [loading, employees, selectedProjectId, showAllEmployees]); + }, [loading, employees, showAllEmployees]); + - useEffect(() => { - if (!showAllEmployees) { - recallEmployeeData(showInactive, selectedProjectId); - } - }, [selectedProjectId, showInactive, showAllEmployees, recallEmployeeData]); const handler = useCallback( (msg) => { @@ -219,11 +214,12 @@ const EmployeeList = () => { setEmployeeList([]); recallEmployeeData( showInactive, - showAllEmployees ? null : selectedProjectId - ); // Use selectedProjectId here + null, + showAllEmployees + ); } }, - [employees, showInactive, showAllEmployees, selectedProjectId] // Add all relevant dependencies + [employees, showInactive, showAllEmployees] ); useEffect(() => { @@ -304,7 +300,7 @@ const EmployeeList = () => { {/* Switches: All Employees + Inactive */}
    {/* All Employees Switch */} - {ViewAllEmployee && ( + {/* {ViewAllEmployee && (
    { Show All Employees
    - )} + )} */} {/* Show Inactive Employees Switch */} - {showAllEmployees && ( -
    - setShowInactive(e.target.checked)} - /> - -
    - )} + {/* {showAllEmployees && ( */} +
    + setShowInactive(e.target.checked)} + /> + +
    + {/* )} */}
    {/* Right side: Search + Export + Add Employee */} @@ -697,55 +693,12 @@ const EmployeeList = () => { -
    - - {/* Pagination */} - {!loading && displayData.length > ITEMS_PER_PAGE && ( - + {displayData.length > 0 && ( + )}
    diff --git a/src/pages/project/ProjectDetails.jsx b/src/pages/project/ProjectDetails.jsx index 8d2f8277..79a630ed 100644 --- a/src/pages/project/ProjectDetails.jsx +++ b/src/pages/project/ProjectDetails.jsx @@ -20,7 +20,7 @@ import { setProjectId } from "../../slices/localVariablesSlice"; import ProjectDocuments from "../../components/Project/ProjectDocuments"; import ProjectSetting from "../../components/Project/ProjectSetting"; import DirectoryPage from "../Directory/DirectoryPage"; -import { useProjectAccess } from "../../hooks/useProjectAccess"; +import { useProjectAccess } from "../../hooks/useProjectAccess"; import "./ProjectDetails.css"; import ProjectOrganizations from "../../components/Project/ProjectOrganizations"; @@ -30,8 +30,11 @@ const ProjectDetails = () => { const dispatch = useDispatch(); const { projectNames } = useProjectName(); - const { projects_Details, loading: projectLoading, refetch } = - useProjectDetails(projectId); + const { + projects_Details, + loading: projectLoading, + refetch, + } = useProjectDetails(projectId); const { canView, loading: permsLoading } = useProjectAccess(projectId); @@ -47,7 +50,10 @@ const ProjectDetails = () => { const handler = useCallback( (msg) => { - if (msg.keyword === "Update_Project" && projects_Details?.id === msg.response.id) { + if ( + msg.keyword === "Update_Project" && + projects_Details?.id === msg.response.id + ) { refetch(); } }, @@ -75,13 +81,10 @@ const ProjectDetails = () => {
    - + {/* */}
    -
    - -
    - -
    +
    +
    ); diff --git a/src/utils/axiosClient.jsx b/src/utils/axiosClient.jsx index bf26500e..f1ec2d45 100644 --- a/src/utils/axiosClient.jsx +++ b/src/utils/axiosClient.jsx @@ -4,6 +4,7 @@ import axiosRetry from "axios-retry"; import showToast from "../services/toastService"; import { startSignalR, stopSignalR } from "../services/signalRService"; import { BASE_URL } from "./constants"; +import { removeSession } from "./authUtils"; const base_Url = BASE_URL; export const axiosClient = axios.create({ @@ -77,8 +78,10 @@ axiosClient.interceptors.response.use( if ( !refreshToken || error.response.data?.errors === "Invalid or expired refresh token." + ) { redirectToLogin(); + removeSession() return Promise.reject(error); } @@ -107,6 +110,7 @@ axiosClient.interceptors.response.use( originalRequest.headers["Authorization"] = `Bearer ${token}`; return axiosClient(originalRequest); } catch (refreshError) { + removeSession() redirectToLogin(); return Promise.reject(refreshError); }