import React, { useState, useEffect } from "react"; import LineChart from "../Charts/LineChart"; import { useProjects } from "../../hooks/useProjects"; import { useDashboard_ActivityData } from "../../hooks/useDashboard_Data"; import ApexChart from "../Charts/Circlechart"; const LOCAL_STORAGE_PROJECT_KEY = "selectedActivityProjectId"; const Activity = () => { const { projects } = useProjects(); const today = new Date().toISOString().split("T")[0]; // Format: YYYY-MM-DD const [selectedDate, setSelectedDate] = useState(today); const storedProjectId = localStorage.getItem(LOCAL_STORAGE_PROJECT_KEY); const initialProjectId = storedProjectId || "all"; const [selectedProjectId, setSelectedProjectId] = useState(initialProjectId); const [displayedProjectName, setDisplayedProjectName] = useState("Select Project"); const [activeTab, setActiveTab] = useState("all"); const { dashboard_Activitydata: ActivityData, isLoading, error: isError } = useDashboard_ActivityData(selectedDate, selectedProjectId); useEffect(() => { if (selectedProjectId === "all") { setDisplayedProjectName("All Projects"); } else if (projects) { const foundProject = projects.find((p) => p.id === selectedProjectId); setDisplayedProjectName(foundProject ? foundProject.name : "Select Project"); } else { setDisplayedProjectName("Select Project"); } localStorage.setItem(LOCAL_STORAGE_PROJECT_KEY, selectedProjectId); }, [selectedProjectId, projects]); const handleProjectSelect = (projectId) => { setSelectedProjectId(projectId); }; const handleDateChange = (e) => { setSelectedDate(e.target.value); }; return (
Activity

Activity Progress Chart

  • {projects?.map((project) => (
  • ))}
{/* ✅ Date Picker Aligned Left with Padding */}
{/* Tabs */}
{activeTab === "all" && (
{isLoading ? (

Loading activity data...

) : isError ? (

No data available.

) : ( ActivityData && ( <>
Allocated Task

{ActivityData.totalCompletedWork?.toLocaleString()}/ {ActivityData.totalPlannedWork?.toLocaleString()}

Completed / Assigned
) )}
{!isLoading && !isError && ActivityData && ( <>
Activities

{ActivityData.totalCompletedWork?.toLocaleString()}/ {ActivityData.totalPlannedWork?.toLocaleString()}

Pending / Assigned
)}
)} {activeTab === "logs" && (
{[{ activity: "Code Review / Remote", assignedToday: 3, completed: 2 }].map((log, index) => ( ))}
Activity / Location Assigned / Completed
{log.activity} {log.assignedToday} / {log.completed}
)}
); }; export default Activity;