import { Outlet, NavLink, Navigate, Link } from 'react-router-dom' import { useAuthStore } from '@/store/auth' import { NeonButton } from '@/components/ui' import { LayoutDashboard, Users, Trophy, ScrollText, Send, FileText, ArrowLeft, Shield, MessageCircle, Sparkles, Lock, Gift } from 'lucide-react' const navItems = [ { to: '/admin', icon: LayoutDashboard, label: 'Дашборд', end: true }, { to: '/admin/users', icon: Users, label: 'Пользователи' }, { to: '/admin/marathons', icon: Trophy, label: 'Марафоны' }, { to: '/admin/promo', icon: Gift, label: 'Промокоды' }, { to: '/admin/logs', icon: ScrollText, label: 'Логи' }, { to: '/admin/broadcast', icon: Send, label: 'Рассылка' }, { to: '/admin/content', icon: FileText, label: 'Контент' }, ] export function AdminLayout() { const user = useAuthStore((state) => state.user) // Only admins can access if (!user || user.role !== 'admin') { return } // Admin without Telegram - show warning if (!user.telegram_id) { return (
{/* Background effects */}
{/* Icon */}
{/* Decorative dots */}
{/* Title with glow */}

Требуется Telegram

Требуется Telegram

Для доступа к админ-панели необходимо привязать Telegram-аккаунт.

Это требуется для двухфакторной аутентификации при входе.

{/* Info card */}
Двухфакторная аутентификация

После привязки Telegram при входе в админ-панель вам будет отправляться код подтверждения.

{/* Buttons */}
}> Привязать Telegram }> На сайт
{/* Decorative sparkles */}
) } return (
{/* Background effects */}
{/* Sidebar */} {/* Main content */}
) }