import { Stack, Grid, GridCol, Group, Text, Title, ActionIcon, Progress as MantineProgress, Box, Badge as MantineBadge, Card, useMantineColorScheme, ThemeIcon, List, Divider, Skeleton } from "@mantine/core"; import { Button } from "@/components/ui/button"; import { Bar, BarChart, CartesianGrid, XAxis, YAxis, Tooltip, ResponsiveContainer, PieChart, Pie, Cell } from "recharts"; const KinerjaDivisi = () => { const { colorScheme } = useMantineColorScheme(); const dark = colorScheme === 'dark'; // Data for division progress chart const divisionProgressData = [ { name: "Sekretariat", selesai: 12, berjalan: 5, tertunda: 2 }, { name: "Keuangan", selesai: 8, berjalan: 7, tertunda: 1 }, { name: "Sosial", selesai: 10, berjalan: 3, tertunda: 4 }, { name: "Humas", selesai: 6, berjalan: 9, tertunda: 3 }, ]; // Division task summaries const divisionTasks = [ { name: "Sekretariat", tasks: [ { title: "Laporan Bulanan", status: "selesai" }, { title: "Arsip Dokumen", status: "berjalan" }, { title: "Undangan Rapat", status: "tertunda" }, ] }, { name: "Keuangan", tasks: [ { title: "Laporan APBDes", status: "selesai" }, { title: "Verifikasi Dana", status: "tertunda" }, { title: "Pengeluaran Harian", status: "berjalan" }, ] }, { name: "Sosial", tasks: [ { title: "Program Bantuan", status: "selesai" }, { title: "Kegiatan Posyandu", status: "berjalan" }, { title: "Monitoring Stunting", status: "tertunda" }, ] }, { name: "Humas", tasks: [ { title: "Publikasi Kegiatan", status: "selesai" }, { title: "Koordinasi Media", status: "berjalan" }, { title: "Laporan Kegiatan", status: "tertunda" }, ] }, ]; // Archive items const archiveItems = [ { name: "Surat Keputusan", count: 12 }, { name: "Laporan Keuangan", count: 8 }, { name: "Dokumentasi", count: 24 }, { name: "Notulensi Rapat", count: 15 }, ]; // Activity progress const activityProgress = [ { name: "Pembangunan Jalan", progress: 75, date: "15 Feb 2026", status: "berjalan" }, { name: "Posyandu Bulanan", progress: 100, date: "10 Feb 2026", status: "selesai" }, { name: "Vaksinasi Massal", progress: 45, date: "20 Feb 2026", status: "berjalan" }, { name: "Festival Budaya", progress: 20, date: "5 Mar 2026", status: "berjalan" }, ]; // Document statistics const documentStats = [ { name: "Gambar", value: 42 }, { name: "Dokumen", value: 87 }, ]; // Activity progress statistics const activityProgressStats = [ { name: "Selesai", value: 12 }, { name: "Dikerjakan", value: 8 }, { name: "Segera Dikerjakan", value: 5 }, { name: "Dibatalkan", value: 2 }, ]; const COLORS = ['#10B981', '#F59E0B', '#EF4444', '#6B7280']; const STATUS_COLORS: Record = { selesai: 'green', berjalan: 'blue', tertunda: 'red', proses: 'yellow' }; // Discussion data const discussions = [ { title: "Pembahasan APBDes 2026", sender: "Kepala Desa", timestamp: "2 jam yang lalu" }, { title: "Kegiatan Posyandu", sender: "Divisi Sosial", timestamp: "5 jam yang lalu" }, { title: "Festival Budaya", sender: "Divisi Humas", timestamp: "1 hari yang lalu" }, ]; // Today's agenda const todayAgenda = [ { time: "09:00", event: "Rapat Evaluasi Bulanan" }, { time: "14:00", event: "Koordinasi Program Bantuan" }, ]; return ( {/* Grafik Progres Tugas per Divisi */} Grafik Progres Tugas per Divisi {/* Ringkasan Tugas per Divisi */} {divisionTasks.map((division, index) => ( {division.name} {division.tasks.map((task, taskIndex) => ( {task.title} {task.status} ))} ))} {/* Arsip Digital Perangkat Desa */} Arsip Digital Perangkat Desa {archiveItems.map((item, index) => ( {item.name} {item.count} ))} {/* Kartu Progres Kegiatan */} Progres Kegiatan / Program {activityProgress.map((activity, index) => ( {activity.name} {activity.status} {activity.progress}% {activity.date} ))} {/* Statistik Dokumen & Progres Kegiatan */} Jumlah Dokumen Progres Kegiatan `${name}: ${percent ? (percent * 100).toFixed(0) : '0'}%`} > {activityProgressStats.map((entry, index) => ( ))} {/* Diskusi Internal */} Diskusi Internal {discussions.map((discussion, index) => ( {discussion.title} {discussion.timestamp} {discussion.sender} ))} {/* Agenda / Acara Hari Ini */} Agenda / Acara Hari Ini {todayAgenda.length > 0 ? ( {todayAgenda.map((agenda, index) => ( {agenda.time} {agenda.event} ))} ) : ( Tidak ada acara hari ini )} ); }; export default KinerjaDivisi;