import React, { useState, useEffect, useRef } from 'react'; import { Link, useNavigate } from 'react-router-dom'; import { Search, Bell, User, Menu, X } from 'lucide-react'; import { motion, AnimatePresence } from 'framer-motion'; const Navbar = () => { const [isScrolled, setIsScrolled] = useState(false); const [isMenuOpen, setIsMenuOpen] = useState(false); const [searchVisible, setSearchVisible] = useState(false); const [searchTerm, setSearchTerm] = useState(''); const searchInputRef = useRef(null); const navigate = useNavigate(); useEffect(() => { const handleScroll = () => { if (window.scrollY > 50) { setIsScrolled(true); } else { setIsScrolled(false); } }; window.addEventListener('scroll', handleScroll); return () => { window.removeEventListener('scroll', handleScroll); }; }, []); // Focus the search input when it becomes visible useEffect(() => { if (searchVisible && searchInputRef.current) { setTimeout(() => { searchInputRef.current?.focus(); }, 200); } }, [searchVisible]); const toggleMenu = () => { setIsMenuOpen(!isMenuOpen); }; const toggleSearch = () => { setSearchVisible(!searchVisible); }; const handleSearchSubmit = (e: React.FormEvent) => { e.preventDefault(); if (searchTerm.trim()) { navigate(`/search?q=${encodeURIComponent(searchTerm)}`); setSearchVisible(false); setSearchTerm(''); } }; return ( ); }; export default Navbar;