import { json } from "@remix-run/node"; import { useLoaderData } from "@remix-run/react"; import { BarChart3, Users, Recycle, UserCheck, TrendingUp, TrendingDown, Package, MapPin, User, Shield } from "lucide-react"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "~/components/ui/card"; import { Button } from "~/components/ui/button"; export const loader = async () => { const dashboardData = { stats: { totalMasyarakat: 1156, totalPengelola: 32, totalPengepul: 46, totalManagedWaste: 8945 }, wasteStats: [ { type: "Plastik", percentage: 45, color: "bg-blue-500" }, { type: "Kertas", percentage: 30, color: "bg-green-500" }, { type: "Logam", percentage: 15, color: "bg-yellow-500" }, { type: "Organik", percentage: 10, color: "bg-red-500" } ] }; return json({ dashboardData }); }; export default function AdminDashboard() { const { dashboardData } = useLoaderData(); return (
{/* Header */}

Dashboard Overview

Kelola ekosistem pengelolaan sampah secara terpadu

{/* Stats Cards */}
Total Masyarakat
{dashboardData.stats.totalMasyarakat.toLocaleString()}

+15% dari bulan lalu

Total Pengelola
{dashboardData.stats.totalPengelola}

+3% dari bulan lalu

Total Pengepul
{dashboardData.stats.totalPengepul}

+8% dari bulan lalu

Sampah Terkelola (kg)
{dashboardData.stats.totalManagedWaste.toLocaleString()}

+18% dari bulan lalu

{/* Content Grid */}
{/* Waste Statistics */} Distribusi Jenis Sampah Persentase berdasarkan volume yang berhasil dikelola {dashboardData.wasteStats.map((waste, index) => (
{waste.type} {waste.percentage}%
))}
{/* User Distribution */} Distribusi Pengguna Breakdown pengguna berdasarkan peran

Masyarakat

Pengguna umum

{dashboardData.stats.totalMasyarakat.toLocaleString()}

93.4%

Pengelola

Admin sistem

{dashboardData.stats.totalPengelola}

2.6%

Pengepul

Mitra pengepul

{dashboardData.stats.totalPengepul}

3.7%

{/* Quick Actions */} Quick Actions Aksi cepat untuk mengelola sistem
); }