import React, { useEffect, useState } from "react"; import WorkItem from "./WorkItem"; import { useCurrentService, useProjectDetails, useProjectTasks } from "../../../hooks/useProjects"; import { cacheData, useSelectedProject } from "../../../slices/apiDataManager"; import { useDispatch, useSelector } from "react-redux"; import { refreshData } from "../../../slices/localVariablesSlice"; import ProjectRepository from "../../../repositories/ProjectRepository"; import showToast from "../../../services/toastService"; import { useHasUserPermission } from "../../../hooks/useHasUserPermission"; import { ASSIGN_REPORT_TASK, MANAGE_PROJECT_INFRA, MANAGE_TASK, } from "../../../utils/constants"; import { useParams } from "react-router-dom"; import ProgressBar from "../../common/ProgressBar"; import { formatNumber } from "../../../utils/dateUtils"; import { useServices } from "../../../hooks/masterHook/useMaster"; const WorkArea = ({ workArea, floor, forBuilding }) => { const selectedProject = useSelectedProject() const selectedService = useCurrentService() const { projects_Details, loading } = useProjectDetails(selectedProject); const [IsExpandedArea, setIsExpandedArea] = useState(false); const dispatch = useDispatch(); const [Project, setProject] = useState(); const ManageInfra = useHasUserPermission(MANAGE_PROJECT_INFRA); const ManageAndAssignTak = useHasUserPermission(ASSIGN_REPORT_TASK); const { ProjectTaskList, isLoading } = useProjectTasks(workArea.id, selectedService, IsExpandedArea); const [workAreaStatus, setWorkAreaStatus] = useState({ completed: 0, planned: 100, }); useEffect(() => { setProject(projects_Details); }, [projects_Details]); useEffect(() => { const totalCompleted = ProjectTaskList?.reduce( (sum, i) => sum + (i?.workItem?.completedWork || 0), 0 ); const totalPlanned = ProjectTaskList?.reduce( (sum, i) => sum + (i?.workItem?.plannedWork || 0), 0 ); setWorkAreaStatus({ completed: totalCompleted, planned: totalPlanned }); }, [ProjectTaskList]); useEffect(() => { const collapseElement = document.getElementById(`collapse-${workArea.id}`); const handleShown = () => setIsExpandedArea(true); const handleHidden = () => setIsExpandedArea(false); collapseElement?.addEventListener("shown.bs.collapse", handleShown); collapseElement?.addEventListener("hidden.bs.collapse", handleHidden); return () => { collapseElement?.removeEventListener("shown.bs.collapse", handleShown); collapseElement?.removeEventListener("hidden.bs.collapse", handleHidden); }; }, [workArea.id]); return (

{isLoading || ProjectTaskList === undefined ? (
Loading activities...
) : ProjectTaskList?.length === 0 ? (
No activities available for this work area.
) : ProjectTaskList?.length > 0 ? ( {(ManageInfra || ManageAndAssignTak) && ( )} {ProjectTaskList.map((workItem, index) => ( ))}
Activity Service Status Category Completed/Planned Today's Planned Progress Actions
) : (
No activities available for this work area.
)}
); }; export default WorkArea;