import { ThemeToggle } from "@/modules/theme-changer/ui/Theme.toggle"; import { useNavigate } from "react-router-dom"; import { useAuth } from "@/modules/auth/hooks/useAuth"; import { authService } from "@/modules/auth/api/auth.service"; import { Shield, Users, Bot, Activity, LogOut, ChevronRight, Zap, Lock, Cloud, TrendingUp, Bell, Server, Sparkles, AlertCircle, CheckCircle, Clock, LogIn, UserPlus, } from "lucide-react"; export const HomePage = () => { const navigate = useNavigate(); const { logout } = useAuth(); const isAuthenticated = authService.isAuthenticated(); const organization = authService.getCurrentOrganization(); const authStorage = localStorage.getItem("auth-storage"); const user = authStorage ? JSON.parse(authStorage).state?.user : null; const stats = [ { label: "Активные агенты", value: "12", change: "+2", icon: Server }, { label: "Заблокировано IP", value: "1,284", change: "+128", icon: Shield }, { label: "Активных правил", value: "47", change: "+5", icon: Lock }, { label: "Атак предотвращено", value: "3,721", change: "+342", icon: TrendingUp, }, ]; const recentActivities = [ { id: 1, type: "attack", message: "Обнаружена brute-force атака с IP 192.168.1.45", time: "2 минуты назад", severity: "high", }, { id: 2, type: "rule", message: "Новое правило фильтрации добавлено администратором", time: "15 минут назад", severity: "info", }, { id: 3, type: "agent", message: "Агент на сервере web-01 успешно обновлен", time: "1 час назад", severity: "success", }, { id: 4, type: "ai", message: "AI предложил новые правила для обнаружения ботов", time: "3 часа назад", severity: "info", }, ]; const features = [ { title: "Централизованное управление", description: "Управляйте всеми IPS агентами из единого интерфейса", icon: Server, color: "#6366f1", }, { title: "AI Аналитика", description: "Искусственный интеллект помогает находить сложные атаки", icon: Bot, color: "#8b5cf6", }, { title: "Мгновенная блокировка", description: "Автоматическая блокировка IP при обнаружении угроз", icon: Zap, color: "#f59e0b", }, { title: "Безопасность данных", description: "LLM не получает доступ к чувствительным логам", icon: Lock, color: "#22c55e", }, ]; const quickActions = isAuthenticated ? [ { name: "IPS Агенты", icon: Server, path: "/agents", description: "Управление агентами", color: "#6366f1", }, { name: "Правила", icon: Shield, path: "/rules", description: "Правила фильтрации", color: "#22c55e", }, { name: "AI Аналитика", icon: Bot, path: "/ai-analytics", description: "Анализ логов", color: "#8b5cf6", }, { name: "Команда", icon: Users, path: "/organization", description: "Управление доступом", color: "#f59e0b", }, ] : []; const getSeverityStyles = (severity: string) => { switch (severity) { case "high": return { bg: "#ef444410", border: "#ef4444", icon: AlertCircle, text: "#ef4444", }; case "success": return { bg: "#22c55e10", border: "#22c55e", icon: CheckCircle, text: "#22c55e", }; default: return { bg: "#6366f110", border: "#6366f1", icon: Sparkles, text: "#6366f1", }; } }; return (
{/* Header */}
{/* Logo */}

IPS Manager

{organization && (

{organization.name}

)}
{/* Right section */}
{isAuthenticated ? ( <>
{user?.first_name?.[0]} {user?.last_name?.[0]}

{user?.first_name} {user?.last_name}

Администратор

) : ( <> )}
{/* Hero Section */}

{isAuthenticated ? `Добро пожаловать, ${user?.first_name || "Администратор"}!` : "Добро пожаловать в IPS Manager"}

{isAuthenticated ? "Система IPS мониторинга и защиты" : "Современная платформа для централизованного управления IPS агентами"}

{!isAuthenticated && (
)} {isAuthenticated && (
Все системы работают стабильно
)}
{/* Stats Grid - только для авторизованных */} {isAuthenticated && (
{stats.map((stat, index) => { const Icon = stat.icon; return (
{stat.change}

{stat.value}

{stat.label}

); })}
)} {/* Features Section - для всех */}

Ключевые возможности

Всё необходимое для защиты вашей инфраструктуры

{features.map((feature, index) => { const Icon = feature.icon; return (

{feature.title}

{feature.description}

); })}
{isAuthenticated ? ( <>
{/* Quick Actions */}

Быстрый доступ

{quickActions.map((action, index) => { const Icon = action.icon; return ( ); })}
{/* Recent Activity */}

Последние события

{recentActivities.map((activity) => { const severityStyles = getSeverityStyles(activity.severity); const Icon = severityStyles.icon; return (

{activity.message}

{activity.time}

); })}
{/* AI Insights */}

AI Аналитика

Новые предложения на основе анализа логов

🔍 Обнаружена аномалия

Повышенная активность с IP-адресов из диапазона 185.xxx.xx.xx

💡 Предложено правил

AI предлагает 3 новых правила для блокировки бот-сканеров

⚡ Оптимизация

Рекомендуется обновить 5 существующих правил для повышения эффективности

) : ( /* CTA Section для неавторизованных */

Готовы начать?

Присоединяйтесь к IPS Manager и получите полный контроль над безопасностью

)}
); };