import { useParams } from "react-router-dom"; import React, { useState, useEffect } from "react"; import ActivityTimeline from "../../components/Project/ActivityTimeline"; import ProjectOverview from "../../components/Project/ProjectOverview"; import AboutProject from "../../components/Project/AboutProject"; import ProjectNav from "../../components/Project/ProjectNav"; import ProjectBanner from "../../components/Project/ProjectBanner"; import Teams from "../../components/Project/Teams"; import ProjectInfra from "../../components/Project/ProjectInfra"; import Loader from "../../components/common/Loader"; import WorkPlan from "../../components/Project/WorkPlan"; import Breadcrumb from "../../components/common/Breadcrumb"; import { cacheData, getCachedData } from "../../slices/apiDataManager"; import ProjectRepository from "../../repositories/ProjectRepository"; import { ActivityeRepository } from "../../repositories/MastersRepository"; import "./ProjectDetails.css"; import { useEmployeesByProjectAllocated, useProjectDetails, } from "../../hooks/useProjects"; import { useDispatch } from "react-redux"; import { setProjectId } from "../../slices/localVariablesSlice"; import { ComingSoonPage } from "../Misc/ComingSoonPage"; const ProjectDetails = () => { let { projectId } = useParams(); const { projects_Details, loading: projectLoading, error: ProjectError, } = useProjectDetails(projectId); const dispatch = useDispatch(); const [project, setProject] = useState(null); const [projectDetails, setProjectDetails] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(""); const fetchData = async () => { const project_cache = getCachedData("projectInfo"); if (!project_cache || project_cache?.projectId !== projectId) { ProjectRepository.getProjectByprojectId(projectId) .then((response) => { setProjectDetails(response.data); setProject(response.data); cacheData("projectInfo", { projectId, data: response.data }); setLoading(false); }) .catch((error) => { console.error(error); setError("Failed to fetch data."); setLoading(false); }); } else { setProjectDetails(project_cache.data); setProject(project_cache.data); setLoading(false); } }; const [activePill, setActivePill] = useState("profile"); const handlePillClick = (pillKey) => { setActivePill(pillKey); }; const handleDataChange = (data) => { fetchData(); }; const renderContent = () => { if (projectLoading) return ; switch (activePill) { case "profile": { return (
{/* About User */} {/* About User */}
{/* Profile Overview */} {/* Profile Overview */}
); } case "teams": { return (
{/* Teams */} {/* Teams */}
); break; } case "infra": { return ( ); break; } case "workplan": { return ( ); break; } case "activities": { return (
); } default: return ; } }; useEffect(() => { dispatch(setProjectId(projectId)); setProject(projects_Details); setProjectDetails(projects_Details); }, [projects_Details, projectId]); return ( <> {}
{projectLoading &&

Loading....

} {!projectLoading && project && ( )}
{renderContent()}
); }; export default ProjectDetails;