"use client"; import { useState } from "react"; import Link from "next/link"; import { LanguageSwitcher } from "@/components/sections/lang/language-switcher"; import { ThemeToggle } from "@/components/sections/theme/theme-toggle"; import { Dictionary } from "@/lib/IDict"; import { CyberButton } from "../ui/cyber-button"; import { MenuSquare, X, Terminal, FolderOpen, ArrowRight } from "lucide-react"; import { motion, AnimatePresence } from "framer-motion"; import { cn } from "@/lib/utils"; export function Header({ dict, lang, }: { dict: Dictionary["nav"]; lang: string; }) { const [isMenuOpen, setIsMenuOpen] = useState(false); // Ссылки для мобильного меню (расширенный список, как в футере) const mobileLinks = [ { name: dict.features, href: `/${lang}#features`, icon: Terminal }, { name: dict.pricing, href: `/${lang}#pricing`, icon: FolderOpen }, { name: dict.faq, href: `/${lang}#faq`, icon: FolderOpen }, { name: dict.blog, href: `/${lang}/blog`, icon: FolderOpen }, ]; return ( <>
{/* ЛЕВЫЙ БЛОК: Адаптивный Логотип */} setIsMenuOpen(false)} >
Net runner VPN
{/* ЦЕНТРАЛЬНЫЙ БЛОК: Навигация (скрыта на мобилках) */} {/* ПРАВЫЙ БЛОК: Контролы */}
{dict.cta} {/* КНОПКА МОБИЛЬНОГО МЕНЮ */}
{/* ВСПЛЫВАЮЩЕЕ ОКНО (Мобильное меню в стиле ретро-ОС) */} {isMenuOpen && ( {/* Окно-папка */}
{/* Заголовок окна (Title bar) */}
C:\NETRUNNER\MENU.EXE
{/* Содержимое папки (Ссылки) */}
{mobileLinks.map((link) => ( setIsMenuOpen(false)} className="flex items-center gap-3 p-3 hover:bg-blue-800 hover:text-white dark:hover:bg-primary/20 dark:hover:text-primary transition-colors group cursor-pointer text-sm text-black dark:text-white shrink-0" > {link.name} _ ))} {/* Разделитель */}
{/* Доп ссылки из футера */} setIsMenuOpen(false)} className="flex items-center gap-3 p-3 hover:bg-blue-800 hover:text-white dark:hover:bg-primary/20 dark:hover:text-primary transition-colors group cursor-pointer text-xs text-gray-600 dark:text-gray-400 shrink-0" > Documentation {/* Кнопка теперь идет СРАЗУ за списком, а не прибита к низу h-[60vh] */}
{dict.cta}
)} {/* Оверлей для закрытия меню по клику вне его */} {isMenuOpen && (
setIsMenuOpen(false)} /> )} ); }