"use client" import { useState, useEffect } from "react" import { Button } from "@/components/ui/button" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Users, Vote, BarChart3, LogOut, Calendar, Settings } from "lucide-react" import Link from "next/link" import { AuthGuard } from "@/components/auth-guard" import { useAuth } from "@/hooks/use-auth" import apiClient from "@/lib/api-client" import { API_CONFIG } from "@/lib/config" function AdminPageContent() { const { user, logout } = useAuth() const [stats, setStats] = useState({ totalEvents: 0, activeEvents: 0, totalCandidates: 0 }) const [loading, setLoading] = useState(true) useEffect(() => { fetchStats() }, []) const fetchStats = async () => { try { const response = await apiClient.get(API_CONFIG.ENDPOINTS.VOTE_EVENTS) if (response.data.success) { const events = response.data.data.vote_events || [] const now = new Date() const activeEvents = events.filter((event: any) => { const start = new Date(event.start_date) const end = new Date(event.end_date) return now >= start && now <= end }) const totalCandidates = events.reduce((total: number, event: any) => { return total + (event.candidates?.length || 0) }, 0) setStats({ totalEvents: events.length, activeEvents: activeEvents.length, totalCandidates }) } } catch (error) { console.error('Error fetching stats:', error) } finally { setLoading(false) } } return (
Vote events created
Currently running
Across all events
All systems operational