import React, { useState, useEffect } from "react"; import "../../components/Project/ProjectInfra.css"; import BuildingModel from "../Project/Infrastructure/BuildingModel"; import FloorModel from "../Project/Infrastructure/FloorModel"; import showToast from "../../services/toastService"; import WorkAreaModel from "../Project/Infrastructure/WorkAreaModel"; import TaskModel from "../Project/Infrastructure/TaskModel"; import ProjectRepository from "../../repositories/ProjectRepository"; import Breadcrumb from "../../components/common/Breadcrumb"; import { useCurrentService, useProjectDetails, useProjectInfra, useProjects, } from "../../hooks/useProjects"; import { useHasUserPermission } from "../../hooks/useHasUserPermission"; import { APPROVE_TASK, ASSIGN_REPORT_TASK, MANAGE_PROJECT_INFRA, } from "../../utils/constants"; import { useDispatch, useSelector } from "react-redux"; import { useProfile } from "../../hooks/useProfile"; import { refreshData, setProjectId } from "../../slices/localVariablesSlice"; import InfraTable from "../Project/Infrastructure/InfraTable"; import { useSelectedProject } from "../../slices/apiDataManager"; import Loader from "../common/Loader"; const InfraPlanning = () => { const { profile: LoggedUser, refetch: fetchData } = useProfile(); const dispatch = useDispatch(); const selectedProject = useSelectedProject(); const selectedService = useCurrentService(); const { projectInfra, isLoading, isError, error, isFetched } = useProjectInfra(selectedProject, selectedService || "" ); const canManageInfra = useHasUserPermission(MANAGE_PROJECT_INFRA); const canApproveTask = useHasUserPermission(APPROVE_TASK); const canReportTask = useHasUserPermission(ASSIGN_REPORT_TASK); const reloadedData = useSelector((store) => store.localVariables.reload); const hasAccess = canManageInfra || canApproveTask || canReportTask; if (isError) { return
{error?.response?.data?.message || error?.message}
; } if (!hasAccess && !isLoading) { return (

Access Denied: You don't have permission to perform this action.

); } if (isLoading) { return ; } if (isFetched && (!projectInfra || projectInfra.length === 0)) { return (

No Result Found

); } return (
); }; export default InfraPlanning;