154 lines
4.1 KiB
JavaScript
154 lines
4.1 KiB
JavaScript
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_AttendanceData = (date, projectId) => {
|
|
const [dashboard_Attendancedata, setDashboard_AttendanceData] = useState([]);
|
|
const [isLineChartLoading, setLoading] = useState(false);
|
|
const [error, setError] = useState("");
|
|
|
|
useEffect(() => {
|
|
const fetchData = async () => {
|
|
setLoading(true);
|
|
setError("");
|
|
|
|
try {
|
|
const response = await GlobalRepository.getDashboardAttendanceData(date,projectId); // date in 2nd param
|
|
setDashboard_AttendanceData(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_Attendancedata, 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 };
|
|
};
|