"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 (
);
}