"use client"; import Image from "next/image"; import { useEffect, useRef, useState, useTransition } from "react"; import chevron from "./icons/chevron-down.svg"; import check from "./icons/check.svg"; import { useParams, useRouter } from "next/navigation"; import { LANGUAGES } from "./variables"; import { usePathname } from "@/shared/config/navigation"; const NavLanguage = () => { const [openMenu, setOpenMenu] = useState(false); const menuRef: React.RefObject = useRef(null); const router = useRouter(); const pathname = usePathname(); const { locale } = useParams(); const [_, startTransition] = useTransition(); const [language, setLanguage] = useState(locale as string); useEffect(() => { const params = window.location.search || ""; startTransition(() => { router.replace(`/${language}${pathname}${params}`, { scroll: false, }); }); }, [language]); useEffect(() => { function handleClickOutside(event: any) { if (menuRef.current && !menuRef.current.contains(event.target)) { setOpenMenu(false); } } document.addEventListener("mousedown", handleClickOutside); return () => { document.removeEventListener("mousedown", handleClickOutside); }; }, [menuRef]); return (
{openMenu && (
{LANGUAGES.map((lang) => ( ))}
)}
); }; export default NavLanguage;