import React from 'react'; import { Card, Col, Row, Statistic, Spin, Alert, Button } from 'antd'; import { UserOutlined, CalendarOutlined, StarOutlined, TeamOutlined, WarningOutlined, BugOutlined, ClockCircleOutlined, DollarOutlined, } from '@ant-design/icons'; import { Link, useNavigate } from 'react-router-dom'; import { useDashboardStats } from '../../hooks/useDashboard'; import { useAuthStore } from '../../store/authStore'; import DailyLineChartCard from '../../components/DailyLineChartCard'; import StatisticSparklineCard from '../../components/StatisticSparklineCard'; const DashboardPage: React.FC = () => { const { data, isLoading, error } = useDashboardStats(); const role = useAuthStore((s) => s.user?.role); const navigate = useNavigate(); if (isLoading) return ; if (error) return ; if (!data) return null; if (role === 'moderator') { return (

Модерация

} /> } />
); } if (role === 'support') { return (

Поддержка

} /> } />
); } const registrationsSparkline = data.registrations_by_day?.map((item) => ({ date: item.date, value: item.count, })) ?? []; const eventsSparkline = data.events_by_day?.map((item) => ({ date: item.date, value: item.count, })) ?? []; return (

Общая статистика

} data={registrationsSparkline} color="#52c41a" gradientId="colorRegistrations" /> } data={eventsSparkline} color="#1890ff" gradientId="colorEvents" /> } /> } /> } /> } /> } /> {data.pending_users_total !== undefined && ( } /> )} {data.reports_pending !== undefined && ( )} {data.reports_reviewed !== undefined && ( )} {data.reports_dismissed !== undefined && ( )} {data.subscriptions_total !== undefined && ( } /> )} {data.trial_subscriptions !== undefined && ( )} {role === 'superadmin' && ( Подробный журнал действий — в разделе Аудит.} /> )}
); }; export default DashboardPage;