"use client"; import Link from "next/link"; import { useState, useEffect } from "react"; import { useTheme } from 'next-themes'; import { Search, Sun, Moon, User, Menu, Settings } from "lucide-react"; import { usePathname, useRouter } from 'next/navigation'; const NavLink = ({ href, children }: { href: string; children: React.ReactNode }) => { const pathname = usePathname(); const isActive = pathname === href; return ( {children} ); }; const ThemeToggleButton = () => { const { theme, setTheme } = useTheme(); const [mounted, setMounted] = useState(false); useEffect(() => setMounted(true), []); if (!mounted) return
; // placeholder return ( ); }; export default function HeaderBar({ onBurgerClick }: { onBurgerClick?: () => void }) { const [userName, setUserName] = useState( typeof window !== 'undefined' ? localStorage.getItem('userName') : null ); const [query, setQuery] = useState(""); const router = useRouter(); useEffect(() => { const handler = () => setUserName(localStorage.getItem('userName')); window.addEventListener('auth-changed', handler); return () => window.removeEventListener('auth-changed', handler); }, []); const handleSearch = (e: React.FormEvent) => { e.preventDefault(); if (query.trim()) { router.push(`/search?q=${encodeURIComponent(query.trim())}`); setQuery(''); } }; return (
{/* Top bar */}
{/* Hide logo on small screens to give more space to search bar */}
NeoMovies
{/* Search form - now more responsive */}
setQuery(e.target.value)} className="w-full bg-gray-100 dark:bg-gray-800 border border-gray-300 dark:border-gray-700 rounded-full py-2 pl-10 pr-4 text-sm text-gray-900 dark:text-white placeholder-gray-500 dark:placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-red-500 focus:border-transparent" />
{userName ? ( {userName} ) : ( Вход )}
{/* Bottom bar */}
); }