import React, { useState, useEffect, useCallback } from "react"; import "./ProjectInfra.css"; import BuildingModel from "./Infrastructure/BuildingModel"; import FloorModel from "./Infrastructure/FloorModel"; import showToast from "../../services/toastService"; import WorkAreaModel from "./Infrastructure/WorkAreaModel"; import TaskModel from "./Infrastructure/TaskModel"; import ProjectRepository, { TasksRepository, } from "../../repositories/ProjectRepository"; import { useHasUserPermission } from "../../hooks/useHasUserPermission"; import { MANAGE_PROJECT_INFRA, MANAGE_TASK } from "../../utils/constants"; import InfraTable from "./Infrastructure/InfraTable"; import { cacheData, clearCacheKey, getCachedData, useSelectedProject, } from "../../slices/apiDataManager"; import { useProjectDetails, useProjectInfra } from "../../hooks/useProjects"; import { useDispatch, useSelector } from "react-redux"; import { refreshData } from "../../slices/localVariablesSlice"; import eventBus from "../../services/eventBus"; import { useParams } from "react-router-dom"; import GlobalModel from "../common/GlobalModel"; const ProjectInfra = ({ data, onDataChange, eachSiteEngineer }) => { // const projectId = useSelector((store)=>store.localVariables.projectId) const projectId = useSelectedProject(); const reloadedData = useSelector((store) => store.localVariables.reload); const [expandedBuildings, setExpandedBuildings] = useState([]); const { projectInfra, isLoading, error } = useProjectInfra(projectId) const { projects_Details, refetch, loading } = useProjectDetails(data?.id); const [project, setProject] = useState(projects_Details); const ManageInfra = useHasUserPermission(MANAGE_PROJECT_INFRA); const ManageTask = useHasUserPermission(MANAGE_TASK) const [showModalFloor, setshowModalFloor] = useState(false); const [showModalWorkArea, setshowModalWorkArea] = useState(false); const [showModalTask, setshowModalTask] = useState(false); const [showModalBuilding, setshowModalBuilding] = useState(false); const dispatch = useDispatch(); useEffect(() => { setProject(projectInfra); }, [data, projects_Details]); // useEffect(() => { // if (reloadedData) { // refetch(); // dispatch(refreshData(false)); // } // }, [reloadedData]); const signalRHandler = (response) => { setProject(response); } return ( <> {showModalBuilding && setshowModalBuilding(false)}> setshowModalBuilding(false)} /> } {showModalFloor && setshowModalFloor(false)}> setshowModalFloor(false)} /> } {showModalWorkArea && setshowModalWorkArea(false)} > setshowModalWorkArea(false)} /> } {showModalTask && ( setshowModalTask(false)}> setshowModalTask(false)} /> )}
{/* Buttons Section (aligned to right) */}
{ManageInfra && ( <> )} {(ManageTask || ManageInfra) && ()}
{isLoading &&

Loading....

} {projectInfra && projectInfra?.length > 0 && ( )} {!isLoading && projectInfra?.length == 0 &&

No Infra Avaiable

}
); }; export default ProjectInfra;