import React, { useState, useMemo } from "react"; import ApexChart from "../Charts/Circle"; import { useProjects } from "../../hooks/useProjects"; import { useDashboard_AttendanceData } from "../../hooks/useDashboard_Data"; import { useSelectedProject } from "../../hooks/useSelectedProject"; // ✅ your custom hook const Attendance = () => { const { projects } = useProjects(); const today = new Date().toISOString().split("T")[0]; // YYYY-MM-DD const [selectedDate, setSelectedDate] = useState(today); // central project selection hook const selectedProjectId = useSelectedProject() const { dashboard_Attendancedata: AttendanceData, isLoading, error: isError, } = useDashboard_AttendanceData(selectedDate, selectedProjectId); // project name derived once const displayedProjectName = useMemo(() => { if (selectedProjectId === "all") return "All Projects"; const found = projects?.find((p) => p.id === selectedProjectId); return found?.name || "Select Project"; }, [selectedProjectId, projects]); return (
{/* Header */}
Attendance

Daily Attendance Data

{/* Project Dropdown */}
  • {projects?.map((project) => (
  • ))}
{/* Tabs + Date Picker */}
setSelectedDate(e.target.value)} />
{/* Body */}
{/* Summary */} {AttendanceData?.activeTab === "Summary" && (
{isLoading ? (

Loading Attendance data...

) : isError ? (

No data available.

) : ( AttendanceData && ( <>
Attendance

{AttendanceData.checkedInEmployee?.toLocaleString()}/ {AttendanceData.assignedEmployee?.toLocaleString()}

Checked-In / Assigned
) )}
)} {/* Details */} {AttendanceData?.activeTab === "Details" && (
{AttendanceData?.attendanceTable?.length ? ( AttendanceData.attendanceTable.map((r, i) => ( )) ) : ( )}
Name Checkin Checkout
{r.firstName} {r.lastName} {r.inTime ? new Date(r.inTime).toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" }) : "-"} {r.outTime ? new Date(r.outTime).toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" }) : "-"}
No attendance data available
)}
); }; export default Attendance;