import { useRef, useCallback } from 'react'; import { useAdminGuard } from '@/hooks/useAdminGuard'; import { MFAGuard } from '@/components/auth/MFAGuard'; import { AdminLayout } from '@/components/layout/AdminLayout'; import { ReportsQueue, ReportsQueueRef } from '@/components/moderation/ReportsQueue'; import { QueueSkeleton } from '@/components/moderation/QueueSkeleton'; import { useAdminSettings } from '@/hooks/useAdminSettings'; import { useModerationStats } from '@/hooks/useModerationStats'; import { useDocumentTitle } from '@/hooks/useDocumentTitle'; export default function AdminReports() { useDocumentTitle('Reports Queue - Admin'); const { isLoading, isAuthorized, needsMFA } = useAdminGuard(); const reportsQueueRef = useRef(null); const { getAdminPanelRefreshMode, getAdminPanelPollInterval, } = useAdminSettings(); const refreshMode = getAdminPanelRefreshMode(); const pollInterval = getAdminPanelPollInterval(); const { lastUpdated, refresh: refreshStats } = useModerationStats({ enabled: isAuthorized, pollingEnabled: refreshMode === 'auto', pollingInterval: pollInterval, }); const handleRefresh = useCallback(() => { reportsQueueRef.current?.refresh(); refreshStats(); }, [refreshStats]); if (isLoading) { return (

User Reports

Review and resolve user-submitted reports

); } if (!isAuthorized) { return null; } return (

User Reports

Review and resolve user-submitted reports

); }