diff --git a/app/[lang]/components/Footer.tsx b/app/[lang]/components/Footer.tsx
index 3156167..bde7d71 100644
--- a/app/[lang]/components/Footer.tsx
+++ b/app/[lang]/components/Footer.tsx
@@ -1,6 +1,7 @@
import Link from "next-intl/link";
import { FaGithub, FaRegEnvelope } from "react-icons/fa";
import { useTranslations } from "next-intl";
+import ThemeSwitcher from "@/app/[lang]/components/ThemeSwitcher";
export default function Footer() {
const t = useTranslations("Footer");
@@ -34,6 +35,9 @@ export default function Footer() {
EN
+
+
+
);
diff --git a/app/[lang]/components/Navbar.tsx b/app/[lang]/components/Navbar.tsx
index a1b6eef..952df12 100644
--- a/app/[lang]/components/Navbar.tsx
+++ b/app/[lang]/components/Navbar.tsx
@@ -54,9 +54,6 @@ export default function Navbar() {
{t("contact")}
-
-
-
diff --git a/app/[lang]/components/ThemeSwitcher.tsx b/app/[lang]/components/ThemeSwitcher.tsx
index 8236bc4..4ebf81a 100644
--- a/app/[lang]/components/ThemeSwitcher.tsx
+++ b/app/[lang]/components/ThemeSwitcher.tsx
@@ -1,42 +1,46 @@
"use client";
-import { MdBrightness2, MdCircle } from "react-icons/md";
-import useDarkMode from "@/hooks/useDarkMode";
import { useEffect, useState } from "react";
-import "@/css/theme-toggle.css";
+import useDarkMode from "@/hooks/useDarkMode";
const ThemeSwitcher = () => {
const [mounted, setMounted] = useState(false);
const [colorTheme, setTheme] = useDarkMode();
- useEffect(() => {
- setMounted(true);
- }, []);
+ useEffect(() => setMounted(true), []);
- if (!mounted) {
- return null;
- }
+ if (!mounted) return null;
return (
-
+ <>
{colorTheme === "light" ? (
-
setTheme("light")}
- >
-
+
setTheme("light")}>
+
) : (
-
setTheme("dark")}
- >
-
+
)}
-
+ >
);
};
diff --git a/hooks/useDarkMode.ts b/hooks/useDarkMode.ts
index ec3013b..754a4c6 100644
--- a/hooks/useDarkMode.ts
+++ b/hooks/useDarkMode.ts
@@ -1,9 +1,16 @@
import { Dispatch, SetStateAction, useEffect, useState } from "react";
function useDarkMode(): [string, Dispatch
>] {
+ const prefersDarkMode =
+ typeof window !== "undefined" &&
+ window.matchMedia("(prefers-color-scheme: dark)").matches;
+
const [theme, setTheme] = useState(
- typeof window !== "undefined" ? localStorage.theme : "dark"
+ typeof window !== "undefined"
+ ? localStorage.theme || (prefersDarkMode ? "dark" : "light")
+ : "dark"
);
+
const colorTheme = theme === "dark" ? "light" : "dark";
useEffect(() => {