diff --git a/src/components/Dashboard/Dashboard.jsx b/src/components/Dashboard/Dashboard.jsx index accb9235..6ce7b8ab 100644 --- a/src/components/Dashboard/Dashboard.jsx +++ b/src/components/Dashboard/Dashboard.jsx @@ -1,25 +1,57 @@ -import React from 'react'; +import React, { useState } from 'react'; import HorizontalBarChart from '../Charts/HorizontalBarChart'; import LineChart from '../Charts/LineChart'; -const dummyCategories = ['Project 1', 'Project 2', 'Project 3', 'Project 4', 'Project 5']; -const dummyData = [45, 38, 30, 25, 20]; - -const lineChartseries = [ - { - name: "Planned Projects", - data: [20, 25, 30, 35, 40, 45, 50] - }, - { - name: "Completed Projects", - data: [5, 15, 28, 36, 42, 46, 48] - } -]; - - -const lineChartCategories = ["January", "February", "March", "April", "May", "June", "July"]; - +import { useProjects } from '../../hooks/useProjects'; +import { + useDashboard_Data, + useDashboardProjectsCardData, + useDashboardTeamsCardData, + useDashboardTasksCardData, +} from "../../hooks/useDashboard_Data"; const Dashboard = () => { + const { projects } = useProjects(); + const [selectedProjectId, setSelectedProjectId] = useState('all'); + const [FromDate, setFromDate] = useState(() => { + const today = new Date(); + return today.toISOString().split('T')[0]; // YYYY-MM-DD + }); +const [days, setDays] = useState(10); +const { projectsCardData, } = useDashboardProjectsCardData(); +const { teamsCardData,} = useDashboardTeamsCardData(); +const { tasksCardData, } = useDashboardTasksCardData(); + + const { dashboard_data, loading: lineLoading } = useDashboard_Data({ + days, + FromDate, + projectId: selectedProjectId === 'all' ? 0 : selectedProjectId, + }); + + // Bar chart logic + const projectNames = projects?.map(p => p.name) || []; + const projectProgress = projects?.map(p => { + const completed = p.completedWork || 0; + const planned = p.plannedWork || 1; + const percent = (completed / planned) * 100; + return Math.min(Math.round(percent), 100); + }) || []; + + // Line chart data + const lineChartSeries = [ + { + name: 'Planned Work', + data: dashboard_data.map(d => d.plannedWork || 0), + }, + { + name: 'Completed Work', + data: dashboard_data.map(d => d.completedWork || 0), + }, + ]; + + const lineChartCategories = dashboard_data.map(d => + new Date(d.date).toLocaleDateString('en-US', { month: 'short', day: 'numeric' }) + ); + return (
Total Projects Overview
+ + {/* Bar Chart */} +Total Projects Overview
Progress Overview by Project
+ + {/* Line Chart */} +Progress Overview by Project
Loading...
}