import { Card, Grid, Stack } from "@mantine/core"; import dayjs from "dayjs"; import { useEffect, useState } from "react"; import { apiClient } from "@/utils/api-client"; import { ActivityCard } from "./kinerja-divisi/activity-card"; import { ArchiveCard } from "./kinerja-divisi/archive-card"; import { DiscussionPanel } from "./kinerja-divisi/discussion-panel"; import { DivisionList } from "./kinerja-divisi/division-list"; import { DocumentChart } from "./kinerja-divisi/document-chart"; import { EventCard } from "./kinerja-divisi/event-card"; import { ProgressChart } from "./kinerja-divisi/progress-chart"; // Data for arsip digital (Section 5) const archiveData = [ { name: "Surat Keputusan" }, { name: "Dokumentasi" }, { name: "Laporan Keuangan" }, { name: "Notulensi Rapat" }, ]; interface Activity { id: string; title: string; createdAt: string; progress: number; status: "SELESAI" | "BERJALAN" | "TERTUNDA"; } interface EventData { id: string; title: string; startDate: string; } const KinerjaDivisi = () => { const [activities, setActivities] = useState([]); const [todayEvents, setTodayEvents] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { async function fetchData() { try { const [activityRes, eventRes] = await Promise.all([ apiClient.GET("/api/division/activities"), apiClient.GET("/api/event/today"), ]); if (activityRes.data?.data) { setActivities(activityRes.data.data as Activity[]); } if (eventRes.data?.data) { setTodayEvents(eventRes.data.data as EventData[]); } } catch (error) { console.error("Failed to fetch kinerja divisi data", error); } finally { setLoading(false); } } fetchData(); }, []); // Format events for EventCard const formattedEvents = todayEvents.map((event) => ({ time: dayjs(event.startDate).format("HH:mm"), event: event.title, })); return ( {/* SECTION 1 — PROGRAM KEGIATAN */} {activities.slice(0, 4).map((kegiatan) => ( ))} {!loading && activities.length === 0 && ( Tidak ada aktivitas terbaru )} {/* SECTION 2 — GRID DASHBOARD (3 Columns) */} {/* Left Column - Division List */} {/* Middle Column - Document Chart */} {/* Right Column - Progress Chart */} {/* SECTION 3 — DISCUSSION PANEL */} {/* SECTION 4 — ACARA HARI INI */} {/* SECTION 5 — ARSIP DIGITAL PERANGKAT DESA */} {archiveData.map((item) => ( ))} ); }; export default KinerjaDivisi;