"use client" import { Fragment, useEffect, useState } from "react" import Link from "next/link" import { cn } from "@/lib/utils" import { ThemeSwitch } from "../../components/custom/theme-switch" import { useTranslations } from "next-intl" import { LocaleSwitch } from "../../components/custom/locale-switch" import { Button } from "@/components/ui/button" import { Menu, X } from "lucide-react" import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu" export default function Navbar() { const [scrolled, setScrolled] = useState(false); const [mobileMenuOpen, setMobileMenuOpen] = useState(false); const t = useTranslations('pages'); useEffect(() => { const onScroll = () => setScrolled(window.scrollY > 10) onScroll() window.addEventListener("scroll", onScroll) return () => window.removeEventListener("scroll", onScroll) }, []) useEffect(() => { const mediaQueryList = window.matchMedia("(min-width: 768px)"); const onChange = (event: MediaQueryListEvent) => { if (event.matches) setMobileMenuOpen(false); }; mediaQueryList.addEventListener("change", onChange); return () => mediaQueryList.removeEventListener("change", onChange); }, []); const navLinks = [ { href: "/", label: t("home") }, { href: "/about", label: t("aboutMe") }, { href: "/projects", label: t("projects") }, ]; return (
) }