"use client"; import { Github, Menu, X } from "lucide-react"; import Link from "next/link"; import { useEffect, useRef, useState } from "react"; import PackageIcon from "./Icons"; const Navbar = () => { const [activeLink, setActiveLink] = useState("home"); const [bgStyles, setBgStyles] = useState({}); const [scrolled, setScrolled] = useState(false); const [mobileMenuOpen, setMobileMenuOpen] = useState(false); const linkRefs = useRef<{ [key: string]: HTMLAnchorElement | null }>({}); useEffect(() => { const updateBackground = (linkId: string) => { const linkElement = linkRefs.current[linkId]; if (linkElement) { setBgStyles({ padding: "0.75rem 0rem", width: `${linkElement.clientWidth - 12}px`, transform: `translateX(${linkElement.offsetLeft}px)`, opacity: 1, }); } }; updateBackground(activeLink); const handleScroll = () => { const isScrolled = window.scrollY > 50; setScrolled(isScrolled); }; window.addEventListener("scroll", handleScroll); window.addEventListener("resize", () => updateBackground(activeLink)); return () => { window.removeEventListener("scroll", handleScroll); window.removeEventListener("resize", () => updateBackground(activeLink)); }; }, [activeLink]); const toggleMobileMenu = () => { setMobileMenuOpen(!mobileMenuOpen); }; return ( <> {/* Mobile Menu - Terminal Style */}
{/* Terminal Header */}
better-t-stack:~
{/* Terminal Body */}
user@better-t-stack :~$ ls -la
setMobileMenuOpen(false)} > ~/home setMobileMenuOpen(false)} > ~/demo
setMobileMenuOpen(false)} > ~/npm
setMobileMenuOpen(false)} > ~/github
user@better-t-stack :~$ star-repo
setMobileMenuOpen(false)} > Star on GitHub
user@better-t-stack :~$
); }; export default Navbar;