diff --git a/src/app/(routes)/blog/components/header/header.tsx b/src/app/(routes)/blog/components/header/header.tsx
index fff0a21..8805e37 100644
--- a/src/app/(routes)/blog/components/header/header.tsx
+++ b/src/app/(routes)/blog/components/header/header.tsx
@@ -4,6 +4,8 @@ import Button from "../button/button";
import { NavLinks } from "./navLinks";
import Link from "next/link";
import BurgerButton from "../burger-button/burgerButton";
+import { cookies } from "next/headers";
+import SelectLanguage from "../selectLanguage/selectLanguage";
export default function Header() {
return (
@@ -19,7 +21,14 @@ export default function Header() {
/>
-
+
+
+
+
("en");
+ useEffect(() => {
+ const locale = getCookie("selectedLocale") as string | null;
+ setSelectedLocale(locale);
+ }, [clicked]);
+
+ const handleLocaleChange = (locale: string) => {
+ setCookie("selectedLocale", locale);
+ router.refresh();
+ setClicked(false);
+ };
+
return (
-
+
+
+ {selectedLocale === "fa" ? (
+
handleLocaleChange("en")}
+ >
+ English
+
+ ) : (
+
handleLocaleChange("fa")}
+ >
+ فارسی
+
+ )}
+
);
diff --git a/src/app/(routes)/blog/components/selectLanguage/selectLanguage.tsx b/src/app/(routes)/blog/components/selectLanguage/selectLanguage.tsx
new file mode 100644
index 0000000..21a024b
--- /dev/null
+++ b/src/app/(routes)/blog/components/selectLanguage/selectLanguage.tsx
@@ -0,0 +1,64 @@
+"use client";
+
+import { setCookie } from "cookies-next";
+import { LocaleCookieType } from "@/app/types/types";
+import { useRouter } from "next/navigation";
+import { useState } from "react";
+
+interface SelectLanguageProps {
+ selectedLocale: LocaleCookieType | undefined;
+ defaultLocale: LocaleCookieType | undefined;
+ className: string;
+}
+
+export default function SelectLanguage({
+ selectedLocale,
+ defaultLocale,
+ className,
+}: SelectLanguageProps) {
+ const router = useRouter();
+ const [isOpen, setisOpen] = useState(false);
+
+ return (
+
+ {selectedLocale ? (
+
setisOpen(!isOpen)}
+ className="mx-2 mb-[5px] cursor-pointer select-none whitespace-nowrap border-b-2 border-blog-red px-2 py-[10px] pb-[5px] text-[16px] font-[600] text-blog-text-hover"
+ >
+ {selectedLocale?.value}
+
+ ) : (
+
setisOpen(!isOpen)}
+ className="mx-2 mb-[5px] cursor-pointer select-none whitespace-nowrap px-2 py-[10px] pb-[5px] text-[16px] font-[600] hover:text-blog-red"
+ >
+ {defaultLocale?.value}
+
+ )}
+
+
+ - {
+ setCookie("selectedLocale", "fa"), router.refresh();
+ setisOpen(false);
+ }}
+ >
+ فارسی
+
+ - {
+ setCookie("selectedLocale", "en"), router.refresh();
+ setisOpen(false);
+ }}
+ >
+ English
+
+
+
+ );
+}