Implement Phase 2 improvements

This commit is contained in:
gpt-engineer-app[bot]
2025-10-15 12:09:23 +00:00
parent cdd6b0bbd5
commit c3533d0a82
5 changed files with 381 additions and 33 deletions

View File

@@ -8,10 +8,7 @@ import { useAdminSettings } from '@/hooks/useAdminSettings';
import { useModerationStats } from '@/hooks/useModerationStats';
export default function AdminReports() {
const { user, loading: authLoading } = useAuth();
const { isModerator, loading: roleLoading } = useUserRole();
const { needsEnrollment, loading: mfaLoading } = useRequireMFA();
const navigate = useNavigate();
const { isLoading, isAuthorized, needsMFA } = useAdminGuard();
const reportsQueueRef = useRef<ReportsQueueRef>(null);
const {
@@ -22,8 +19,8 @@ export default function AdminReports() {
const refreshMode = getAdminPanelRefreshMode();
const pollInterval = getAdminPanelPollInterval();
const { refresh: refreshStats, lastUpdated } = useModerationStats({
enabled: !!user && !authLoading && !roleLoading && isModerator(),
const { lastUpdated, refresh: refreshStats } = useModerationStats({
enabled: isAuthorized,
pollingEnabled: refreshMode === 'auto',
pollingInterval: pollInterval,
});
@@ -33,21 +30,7 @@ export default function AdminReports() {
refreshStats();
}, [refreshStats]);
useEffect(() => {
if (!authLoading && !roleLoading) {
if (!user) {
navigate('/auth');
return;
}
if (!isModerator()) {
navigate('/');
return;
}
}
}, [user, authLoading, roleLoading, navigate, isModerator]);
if (authLoading || roleLoading || mfaLoading) {
if (isLoading) {
return (
<AdminLayout
onRefresh={handleRefresh}

View File

@@ -1,7 +1,5 @@
import { useEffect, Component, ReactNode } from 'react';
import { useNavigate } from 'react-router-dom';
import { useAuth } from '@/hooks/useAuth';
import { useUserRole } from '@/hooks/useUserRole';
import { Component, ReactNode } from 'react';
import { useAdminGuard } from '@/hooks/useAdminGuard';
import { AdminLayout } from '@/components/layout/AdminLayout';
import { SystemActivityLog } from '@/components/admin/SystemActivityLog';
import { Skeleton } from '@/components/ui/skeleton';