import { useState, useEffect } from 'react'; import { LogIn, LogOut, Eye, MessageSquare, CheckCircle, User, Video } from 'lucide-react'; export default function AdminDashboard() { const [isLoggedIn, setIsLoggedIn] = useState(false); const [submissions, setSubmissions] = useState([]); const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const [selectedSubmission, setSelectedSubmission] = useState(null); const [feedback, setFeedback] = useState(''); const [stats, setStats] = useState({ total: 0, pending: 0, reviewed: 0 }); useEffect(() => { if (isLoggedIn) { fetchSubmissions(); } }, [isLoggedIn]); const fetchSubmissions = async () => { try { const response = await fetch(`https://www.sitebrew.ai/api/xzJwLk/submissions`); const data = await response.json(); const submissions = data.document || []; setSubmissions(submissions); // Calculate stats setStats({ total: submissions.length, pending: submissions.filter(s => s.status === 'pending').length, reviewed: submissions.filter(s => s.status === 'reviewed').length }); } catch (error) { console.error('Error fetching submissions:', error); } }; const handleLogin = async (e) => { e.preventDefault(); // In production, replace this with proper authentication if (username === 'admin' && password === 'password') { setIsLoggedIn(true); } else { alert('Invalid credentials'); } }; const handleSubmitFeedback = async () => { if (!selectedSubmission || !feedback) return; try { const updatedSubmission = { ...selectedSubmission, feedback, status: 'reviewed' }; const response = await fetch(`https://www.sitebrew.ai/api/xzJwLk/submissions`, { method: 'PUT', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ document: updatedSubmission }), }); if (response.ok) { await fetchSubmissions(); setSelectedSubmission(null); setFeedback(''); } } catch (error) { console.error('Error submitting feedback:', error); } }; if (!isLoggedIn) { return (

Admin Login

setUsername(e.target.value)} />
setPassword(e.target.value)} />
); } return (
{/* Header */}

Hockey Review Admin

{/* Stats */}
Total Submissions
{stats.total}
Pending Review
{stats.pending}
Reviewed
{stats.reviewed}
{/* Main content */}
{/* Submissions list */}

Submissions

    {submissions.map((submission) => (
  • setSelectedSubmission(submission)} >

    {submission.name}

    {submission.email}

    {submission.status}
  • ))}
{/* Review panel */}
{selectedSubmission ? (

Review Submission

Player

{selectedSubmission.name}

Description

{selectedSubmission.description}

Video

Feedback