"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 */}
{/* 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;