import React, { useState } from "react"; import LineChart from "../Charts/LineChart"; import { useProjects } from "../../hooks/useProjects"; import { useDashboard_Data } from "../../hooks/useDashboard_Data"; const ProjectProgressChart = () => { const { projects } = useProjects(); const [selectedProjectId, setSelectedProjectId] = useState("all"); const [range, setRange] = useState("1W"); const getDaysFromRange = (range) => { switch (range) { case "1D": return 1; case "1W": return 7; case "15D": return 15; case "1M": return 30; case "3M": return 90; case "1Y": return 365; case "5Y": return 1825; default: return 7; } }; const days = getDaysFromRange(range); const today = new Date(); const FromDate = today.toLocaleDateString('en-CA'); const { dashboard_data, loading: isLineChartLoading } = useDashboard_Data({ days, FromDate, projectId: selectedProjectId === "all" ? null : selectedProjectId, }); const sortedDashboardData = [...dashboard_data].sort( (a, b) => new Date(a.date) - new Date(b.date) ); const lineChartSeries = [ { name: "Planned Work", data: sortedDashboardData.map((d) => d.plannedTask || 0), }, { name: "Completed Work", data: sortedDashboardData.map((d) => d.completedTask || 0), }, ]; const lineChartCategories = sortedDashboardData.map((d) => new Date(d.date).toLocaleDateString("en-US", { month: "short", day: "numeric" }) ); const lineChartCategoriesDates = sortedDashboardData.map((d) => new Date(d.date).toLocaleDateString("en-US", { month: "short", day: "numeric", year: "numeric" }) ); return (
{/* Row 1: Title + Project Selector */}
Project Progress

Progress Overview by Project

  • {projects?.map((project) => (
  • ))}
{/* Row 2: Time Range Buttons */}
{["1D", "1W", "15D", "1M", "3M", "1Y", "5Y"].map((key) => ( ))}
); }; export default ProjectProgressChart;