import { useState, useEffect } from "react"; import GlobalRepository from "../repositories/GlobalRepository"; // 🔹 Dashboard Progression Data Hook export const useDashboard_Data = ({ days, FromDate, projectId }) => { const [dashboard_data, setDashboard_Data] = useState([]); const [isLineChartLoading, setLoading] = useState(false); const [error, setError] = useState(""); useEffect(() => { if (!days) return; const fetchData = async () => { setLoading(true); setError(""); try { const payload = { days, FromDate: FromDate || '', projectId: projectId || null, }; const response = await GlobalRepository.getDashboardProgressionData(payload); setDashboard_Data(response.data); } catch (err) { setError("Failed to fetch dashboard data."); console.error(err); } finally { setLoading(false); } }; fetchData(); }, [days, FromDate, projectId]); return { dashboard_data, loading: isLineChartLoading, error }; }; export const useDashboard_ActivityData = (date, projectId) => { const [dashboard_Activitydata, setDashboard_ActivityData] = useState([]); const [isLineChartLoading, setLoading] = useState(false); const [error, setError] = useState(""); useEffect(() => { const fetchData = async () => { setLoading(true); setError(""); try { const response = await GlobalRepository.getDashboardActivityData(date,projectId); // date in 2nd param setDashboard_ActivityData(response.data); } catch (err) { setError("Failed to fetch dashboard data."); console.error(err); } finally { setLoading(false); } }; if (date && projectId !== null) { fetchData(); } }, [date, projectId]); return { dashboard_Activitydata, isLineChartLoading: isLineChartLoading, error }; }; // 🔹 Dashboard Projects Card Data Hook export const useDashboardProjectsCardData = () => { const [projectsCardData, setProjectsData] = useState([]); const [loading, setLoading] = useState(false); const [error, setError] = useState(""); useEffect(() => { const fetchProjectsData = async () => { setLoading(true); setError(""); try { const response = await GlobalRepository.getDashboardProjectsCardData(); setProjectsData(response.data); } catch (err) { setError("Failed to fetch projects card data."); console.error(err); } finally { setLoading(false); } }; fetchProjectsData(); }, []); return { projectsCardData, loading, error }; }; // 🔹 Dashboard Teams Card Data Hook export const useDashboardTeamsCardData = () => { const [teamsCardData, setTeamsData] = useState([]); const [loading, setLoading] = useState(false); const [error, setError] = useState(""); useEffect(() => { const fetchTeamsData = async () => { setLoading(true); setError(""); try { const response = await GlobalRepository.getDashboardTeamsCardData(); setTeamsData(response.data); } catch (err) { setError("Failed to fetch teams card data."); console.error(err); } finally { setLoading(false); } }; fetchTeamsData(); }, []); return { teamsCardData, loading, error }; }; // 🔹 Dashboard Tasks Card Data Hook export const useDashboardTasksCardData = () => { const [tasksCardData, setTasksData] = useState([]); const [loading, setLoading] = useState(false); const [error, setError] = useState(""); useEffect(() => { const fetchTasksData = async () => { setLoading(true); setError(""); try { const response = await GlobalRepository.getDashboardTasksCardData(); setTasksData(response.data); } catch (err) { setError("Failed to fetch tasks card data."); console.error(err); } finally { setLoading(false); } }; fetchTasksData(); }, []); return { tasksCardData, loading, error }; }; // export const useDashboardActivityData = () => { // const [ActivityData, setActivityData] = useState([]); // const [loading, setLoading] = useState(false); // const [error, setError] = useState(""); // useEffect(() => { // const fetchTasksData = async () => { // setLoading(true); // setError(""); // try { // const response = await GlobalRepository.getDashboardActivityData(); // setActivityData(response.data); // } catch (err) { // setError("Failed to fetch tasks card data."); // console.error(err); // } finally { // setLoading(false); // } // }; // fetchTasksData(); // }, []); // return { ActivityData, loading, error }; // };