"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 (
METI - New & Renewable Energy

Admin Dashboard METI

Welcome, {user?.username || 'Admin'}
{/* Statistics Cards */}
Total Events
{loading ? '...' : stats.totalEvents}

Vote events created

Active Events
{loading ? '...' : stats.activeEvents}

Currently running

Total Candidates
{loading ? '...' : stats.totalCandidates}

Across all events

System Status
Online

All systems operational

{/* Quick Actions */}

Quick Actions

Manage Events Create and manage voting events
Manage Members Verify and manage members
View Results Monitor voting results
) } export default function AdminPage() { return ( ) }