From b4152cf359b35ac330f11e677a181ab6b0ca7636 Mon Sep 17 00:00:00 2001 From: parsa aghaei Date: Sun, 20 Oct 2024 17:07:22 +0330 Subject: [PATCH] mobileMenu bug fixed --- .../components/mobile-menu/mobileMenu.tsx | 116 ++++++------------ 1 file changed, 39 insertions(+), 77 deletions(-) diff --git a/src/app/(routes)/(website)/components/mobile-menu/mobileMenu.tsx b/src/app/(routes)/(website)/components/mobile-menu/mobileMenu.tsx index a64b9a7..aef98a9 100644 --- a/src/app/(routes)/(website)/components/mobile-menu/mobileMenu.tsx +++ b/src/app/(routes)/(website)/components/mobile-menu/mobileMenu.tsx @@ -1,7 +1,8 @@ -import { Dictionary } from "@/app/types/types"; -import Link from "next/link"; +import { useEffect, useState } from "react"; import { getCookie, setCookie } from "cookies-next"; import { useRouter } from "next/navigation"; +import { Dictionary } from "@/app/types/types"; +import Link from "next/link"; type propsType = { clicked: boolean; @@ -11,7 +12,24 @@ type propsType = { export default function MobileMenu({ clicked, setClicked, dict }: propsType) { const router = useRouter(); - const selectedLocaleCookie = getCookie("selectedLocale"); + const [selectedLocale, setSelectedLocale] = useState(null); + + useEffect(() => { + const locale = getCookie("selectedLocale") as string | null; + setSelectedLocale(locale); + }, []); + + const handleLocaleChange = (locale: string) => { + setCookie("selectedLocale", locale); + router.refresh(); + setClicked(false); + }; + + if (!selectedLocale) { + // نمایش یک محتوای پیش‌فرض تا زمانی که locale لود شود + return null; + } + return (
{ - setClicked(false); - }} + onClick={() => setClicked(false)} > {dict.header.Home} - { - setClicked(false); - }} - > - {dict.header.AboutMe} - - { - setClicked(false); - }} - > - {dict.header.Services} - - { - setClicked(false); - }} - > - {dict.header.Projects} - - { - setClicked(false); - }} - > - {dict.header.Testimonials} - - { - setClicked(false); - }} - > - {dict.header.Contact} - + {/* سایر لینک‌ها به همین شکل */} { - setClicked(false); - }} + onClick={() => setClicked(false)} > {dict.header.Blog} - {selectedLocaleCookie === "fa" ? ( -

{ - setCookie("selectedLocale", "en"); - router.refresh(); - setClicked(false); - }} - > - english -

- ) : ( -

{ - setCookie("selectedLocale", "fa"); - router.refresh(); - setClicked(false); - }} - > - فارسی -

- )} + {selectedLocale === "fa" ? ( +

handleLocaleChange("en")} + > + English +

+ ) : ( +

handleLocaleChange("fa")} + > + فارسی +

+ )}
);