import React from 'react'; import Link from 'next/link'; import type { Metadata } from 'next'; export const metadata: Metadata = { title: 'Admin Dashboard | Olathe Club of the Deaf', description: 'Admin dashboard for the Olathe Club of the Deaf website', }; // Stats Card Component const StatCard = ({ title, value, icon, href }: { title: string; value: string; icon: React.ReactNode; href: string }) => (
{icon}

{title}

{value}

); // Simple icons const MembersIcon = () => ( ); const EventsIcon = () => ( ); const ContactIcon = () => ( ); const VideosIcon = () => ( ); export default function AdminDashboardPage() { // In a real app, these would be fetched from the API const stats = { members: "47", activeMembers: "41", events: "12", videos: "8", documents: "15", unreadContacts: "3" }; // Upcoming events - in a real app, these would be fetched from the API const upcomingEvents = [ { id: '1', title: 'Monthly Social', date: 'Apr 15, 2025', location: 'Olathe Community Center', status: 'Published' }, { id: '2', title: 'ASL Workshop', date: 'Apr 22, 2025', location: 'OCD Meeting Room', status: 'Draft' }, { id: '3', title: 'Board Meeting', date: 'May 5, 2025', location: 'Zoom Meeting', status: 'Published' } ]; // Membership expirations - in a real app, these would be fetched from the API const expiringMemberships = [ { id: '101', name: 'John Smith', expiryDate: 'Apr 30, 2025', type: 'Regular', status: 'Expiring Soon' }, { id: '102', name: 'Sarah Johnson', expiryDate: 'May 15, 2025', type: 'Family', status: 'Expiring Soon' }, { id: '103', name: 'Robert Lee', expiryDate: 'Mar 28, 2025', type: 'Regular', status: 'Expired' } ]; return (

Overview

} href="/admin/members" /> } href="/admin/members/active" /> } href="/admin/events" /> } href="/admin/contact" />
{/* Upcoming Events */}

Upcoming Events

View All
{upcomingEvents.map((event) => (

{event.title}

{event.date} • {event.location}

{event.status}
))}
Add Event
{/* Membership Expirations */}

Membership Expirations

View All
{expiringMemberships.map((member) => (

{member.name}

{member.expiryDate} • {member.type}

{member.status}
))}
Send Renewal Notices
{/* Quick Actions */}

Quick Actions

New Event
Add Member
Upload Video
Edit Pages
); }