import { useEffect, useState } from 'react'; import { Bar, BarChart, ResponsiveContainer, Tooltip, XAxis, YAxis } from 'recharts'; import { adminApi } from './adminApi.js'; export default function DashboardPage() { const [dashboard, setDashboard] = useState(null); const [error, setError] = useState(''); useEffect(() => { adminApi('/api/admin/dashboard') .then(setDashboard) .catch((loadError) => setError(loadError.message)); }, []); if (error) { return

{error}

; } if (!dashboard) { return

Loading dashboard…

; } const chart = Object.entries(dashboard.counts).map(([status, count]) => ({ status, count })); const cards = [ ['Submitted today', dashboard.submittedToday], ['Submitted this week', dashboard.submittedThisWeek], ['Surveys completed', dashboard.surveysCompleted], ['Pending surveys', dashboard.pendingSurveys], ['Average review (hours)', dashboard.averageReviewHours ?? '—'], ]; return (

Dashboard

{cards.map(([label, value]) => (

{label}

{value}

))}
); }