"use client"; import { useEffect, useState } from "react"; import Link from "next/link"; import { ChevronDown, Phone, Menu, X } from "lucide-react"; import Image from "next/image"; import LanguageSelectRadix from "../languageSwitcher"; import { useLocale, useTranslations } from "next-intl"; import UpHeader from "./upHeader"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "../ui/dropdown-menu"; import { useQuery } from "@tanstack/react-query"; import httpClient from "@/request/api"; import { endPoints } from "@/request/links"; import { NavbarItem } from "@/lib/types"; export function Navbar() { const locale = useLocale(); const t = useTranslations(); const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); const [scrolled, setScrolled] = useState(false); const { data: navbarItems } = useQuery({ queryKey: ["navbaritem",locale], queryFn: () => httpClient(endPoints.navbar), select: (data: any) => ({ results: data?.data?.data?.results, total_items: data?.data?.data?.total_items, total_pages: data?.data?.data?.total_pages, }), }); useEffect(() => { const handleScroll = () => { setScrolled(window.scrollY > 50); }; window.addEventListener("scroll", handleScroll); return () => window.removeEventListener("scroll", handleScroll); }, []); // Prevent body scroll when mobile menu is open useEffect(() => { if (isMobileMenuOpen) { document.body.style.overflow = "hidden"; } else { document.body.style.overflow = "unset"; } }, [isMobileMenuOpen]); return ( <> {/* Mobile Menu Overlay */}