"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 { useAppSelector, useAppDispatch } from "@/redux/hooks"; import { activeLangType, selectHeader } from "@/redux/slices/headerSlice"; import { setActiveLang } from "@/redux/slices/headerSlice"; import { usePathname, useRouter, useSearchParams } from "next/navigation"; export const lang = [ { title: "Русский", localization: "ru", }, // { // title: 'Tm', // localization: 'tm', // }, { title: "English", localization: "en", }, ]; export const LangMenu = () => { const { activeLang } = useAppSelector(selectHeader); const { refresh } = useRouter(); const [active, setActive] = useState(false); const dispatch = useAppDispatch(); const menuRef = useRef(null); const setLang = (lang: activeLangType) => { // Устанавливаем cookie через document.cookie document.cookie = `lang=${lang.localization}; path=/; max-age=31536000`; dispatch(setActiveLang(lang)); refresh(); }; useEffect(() => { const cookieLang = document.cookie .split("; ") .find((row) => row.startsWith("lang=")) ?.split("=")[1]; if (cookieLang) { const foundLang = lang.find((l) => l.localization === cookieLang); if (foundLang) dispatch(setActiveLang(foundLang)); } }, [dispatch]); 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); }} >

{activeLang.title}

arrow
{active && ( {lang .filter((item) => item.title !== activeLang.title) .map((item, i) => (
setLang(item)} className={clsx( "p-3 pr-[22px] py-4 text-extraSm transition-all", { "hover:bg-ON_SECONDARY_CONTAINER/[8%]": item.title === item.title, } )} > {item.title}
))}
)}
); };