"use client"; import React, { useEffect, useRef, useState } from "react"; import Image from "next/image"; import clsx from "clsx"; import { motion, AnimatePresence } from "framer-motion"; import triangle from "@/public/assets/icons/drop-icon.svg"; import { useLocale } from "next-intl"; import { useRouter, usePathname } from "@/i18n/navigation"; import { locales } from "@/i18n/config"; const langNames: Record = { ru: "Русский", en: "English", tm: "Türkmen", }; export const LangMenu = () => { const locale = useLocale(); const router = useRouter(); const pathname = usePathname(); const [active, setActive] = useState(false); const menuRef = useRef(null); const switchLocale = (newLocale: string) => { router.replace(pathname, { locale: newLocale }); setActive(false); }; useEffect(() => { const handleClick = (e: MouseEvent) => { if (menuRef.current && !menuRef.current.contains(e.target as Node)) { setActive(false); } }; document.addEventListener("click", handleClick); return () => document.removeEventListener("click", handleClick); }, []); return (
{ setActive(!active); }} >

{langNames[locale]}

arrow
{active && ( {locales .filter((l) => l !== locale) .map((l, i) => (
switchLocale(l)} className="p-3 pr-[22px] py-4 text-extraSm transition-all hover:bg-ON_SECONDARY_CONTAINER/[8%]" > {langNames[l]}
))}
)}
); };