'use client'; import Link from 'next/link'; import { useRouter } from 'next/navigation'; import { useState } from 'react'; type Report = { id: string; checkpointId: string; gradeId: string | null; reason: string; notes: string | null; createdAt: Date; intentKey: string; blueprintTitle: string; segmentOrd: number; depth: string; locale: string; }; export default function AdminReportsClient({ reports }: { reports: Report[] }) { const router = useRouter(); const [busy, setBusy] = useState(null); const act = async (id: string, action: 'dismiss' | 're-verify') => { setBusy(id); await fetch(`/api/admin/reports/${id}`, { method: 'PATCH', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ action }), }); setBusy(null); router.refresh(); }; return (

Content reports

{reports.length === 0 ? (

No pending reports.

) : (
{reports.map((r) => (
{r.reason} {new Date(r.createdAt).toLocaleDateString()}
{r.notes &&

{r.notes}

} {r.blueprintTitle} · segment {r.segmentOrd + 1} ↗

checkpoint {r.checkpointId.slice(0, 8)}…

))}
)}
); } const s = { heading: { fontFamily: 'var(--font-display)', fontSize: '1.5rem', fontWeight: 500, color: 'var(--color-ink)', marginBottom: 'var(--space-6)' }, card: { padding: 'var(--space-5)', border: '1px solid var(--color-border)', borderRadius: '4px', display: 'flex', flexDirection: 'column' as const, gap: 'var(--space-2)' }, cardMeta: { display: 'flex', gap: 'var(--space-3)', alignItems: 'center' }, tag: { fontFamily: 'var(--font-display)', fontSize: '0.75rem', fontWeight: 600, padding: '2px 8px', background: 'var(--color-accent-subtle)', color: 'var(--color-accent)', borderRadius: '3px' }, date: { fontSize: '0.8125rem', color: 'var(--color-ink-faint)', fontFamily: 'var(--font-display)' }, notes: { fontSize: '0.9375rem', color: 'var(--color-ink-muted)' }, lessonLink: { fontFamily: 'var(--font-display)', fontSize: '0.9375rem', fontWeight: 500, color: 'var(--color-accent)', textDecoration: 'none' }, checkpointMeta: { fontSize: '0.75rem', color: 'var(--color-ink-faint)', fontFamily: 'var(--font-display)' }, btn: { padding: 'var(--space-1) var(--space-4)', background: 'var(--color-surface)', border: '1px solid var(--color-border)', borderRadius: '4px', cursor: 'pointer', fontFamily: 'var(--font-display)', fontSize: '0.875rem', color: 'var(--color-ink)' }, } as const;