'use client'; import { baseOptions } from '@/app/layout.config'; import { cn } from '@/lib/utils'; import { AnimatePresence, motion } from 'framer-motion'; import { MenuIcon } from 'lucide-react'; import Link from 'next/link'; import { useEffect, useRef, useState } from 'react'; import { GithubButton } from './github-button'; import { Logo } from './logo'; import { Button } from './ui/button'; const Navbar = () => { const [isScrolled, setIsScrolled] = useState(false); const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); const navbarRef = useRef(null); useEffect(() => { const handleScroll = () => { setIsScrolled(window.scrollY > 20); }; window.addEventListener('scroll', handleScroll); return () => window.removeEventListener('scroll', handleScroll); }, []); useEffect(() => { // If click outside of the menu, close it const handleClick = (e: MouseEvent) => { if (isMobileMenuOpen && !navbarRef.current?.contains(e.target as Node)) { setIsMobileMenuOpen(false); } }; window.addEventListener('click', handleClick); return () => window.removeEventListener('click', handleClick); }, [isMobileMenuOpen]); return ( ); }; export default Navbar;