"use client"; import Link from "next/link"; import { useEffect, useState } from "react"; import { v4 } from "uuid"; import { motion } from "framer-motion"; import { useAppDispatch, useAppSelector } from "@/redux/hooks"; import { setBurgerOpen } from "@/redux/slices/burgerSlice"; import { activeLangType, setActiveLang } from "@/redux/slices/headerSlice"; import clsx from "clsx"; import { burgerMenu, burgerMenu2 } from "@/lib/database/header"; import { useRouter } from "next/navigation"; import { lang } from "./lang-menu"; interface flagTypes { // title: 'Ру' | 'En' | 'Tm'; title: "Ру" | "En"; localization: "ru" | "en"; // localization: 'ru' | 'en' | 'tm'; } const burgerLangs: flagTypes[] = [ // { // title: 'Tm', // localization: 'tm', // }, { title: "Ру", localization: "ru", }, { title: "En", localization: "en", }, ]; export const BurgerMenu = () => { const dispatch = useAppDispatch(); const wrapper = document.querySelector(".wrapper"); const { refresh } = useRouter(); const localization = useAppSelector( (state) => state.headerSlice.activeLang.localization ); const [activeMenu, setActiveMenu] = useState(""); const [activeMenu2, setActiveMenu2] = useState(""); const setActiveTitle = () => { if (activeMenu.includes("/ser")) return ( (localization === "ru" && "Услуги") || (localization === "en" && "Services") ); }; const setActiveTitle2 = () => { if (activeMenu2.includes("/company")) return ( (localization === "ru" && "О компании") || (localization === "en" && "About company") ); }; 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(() => { wrapper?.classList.remove("overflow-hidden"); wrapper?.classList.add("overflow-hidden"); return () => { wrapper?.classList.remove("overflow-hidden"); }; }, []); return ( {activeMenu && (
setActiveMenu("")} className="flex cursor-pointer" >

{setActiveTitle()}

)} {activeMenu && (
{activeMenu.includes("/services") && burgerMenu .filter((item) => item.services) .map((item, i) => item.dropDown?.map((obj) => ( dispatch(setBurgerOpen(false))} href={obj.link} > {localization === "en" ? obj.titleEn : obj.title} )) )}
)}
{!activeMenu && burgerMenu.map((item, i) => !item.drop ? ( { dispatch(setBurgerOpen(false)); }} href={item.link} > {(localization === "en" && item.titleEn) || (localization === "ru" && item.title)} ) : (
{ setActiveMenu(item.link); }} > {(localization === "en" && item.titleEn) || (localization === "ru" && item.title)} {item.drop && ( )}
) )}
{activeMenu2 && (
setActiveMenu2("")} className="flex cursor-pointer pt-4" > arrow

{setActiveTitle2()}

)}
{activeMenu2.includes("/company") && burgerMenu2 .filter((item) => item.company) .map((obj) => obj.dropDown?.map((item) => ( { dispatch(setBurgerOpen(false)); }} > {(localization === "en" && item.titleEn) || (localization === "ru" && item.title)} )) )}
{burgerLangs.map((item, i) => (
{ dispatch(setActiveLang(item)); dispatch(setBurgerOpen(false)); setLang(item); }} className="flex cursor-pointer items-center gap-[10px]" > flag

{item.title}

))}
); };