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} from "../../hooks/useProjects"; const ProjectDetails = () => { let { projectId } = useParams(); const [project, setProject] = useState(null); const [ projectDetails, setProjectDetails ] = useState( null ); const [activities, setActivities] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(""); const fetchActivities = async () => { const activities_cache = getCachedData("activitiesMaster"); if (!activities_cache) { ActivityeRepository.getActivities() .then((response) => { setActivities(response.data); cacheData("activitiesMaster", response.data); }) .catch((error) => { setError("Failed to fetch data."); }); } else { setActivities(activities_cache); } }; const fetchData = async () => { const project_cache = getCachedData(`projectinfo-${projectId}`); if (!project_cache) { ProjectRepository.getProjectByprojectId(projectId) .then( ( response ) => { setProjectDetails(response.data); setProject(response.data); cacheData( `projectinfo-${ projectId }`, response.data ); setLoading(false) }) .catch((error) => { console.error(error); setError( "Failed to fetch data." ); setLoading(false) }); } else { setProjectDetails( project_cache ); setProject( project_cache ); setLoading(false) } }; const [activePill, setActivePill] = useState("profile"); const handlePillClick = (pillKey) => { setActivePill(pillKey); }; const handleDataChange = (data) => { fetchData(); }; const renderContent = () => { if (loading) 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
Select a pill to display content here.
; } }; useEffect(() => { fetchData(); fetchActivities(); }, []); return ( <>
{loading &&

Loading....

} {!loading && }
{renderContent()}
); }; export default ProjectDetails;