diff --git a/package.json b/package.json
index 4e230ee..229d41b 100644
--- a/package.json
+++ b/package.json
@@ -51,6 +51,7 @@
"styled-components": "^6.1.12",
"tailwind-merge": "^2.5.1",
"tailwindcss-animate": "^1.0.7",
+ "zen-website": "file:",
"zod": "^3.23.8"
},
"devDependencies": {
diff --git a/src/components/mode-toggle.tsx b/src/components/mode-toggle.tsx
index f4ac64f..ef4e1e8 100644
--- a/src/components/mode-toggle.tsx
+++ b/src/components/mode-toggle.tsx
@@ -1,50 +1,40 @@
"use client";
-
import { useEffect, useState } from "react";
import { MoonIcon, SunIcon } from "@radix-ui/react-icons";
import { useTheme } from "next-themes";
import { Button } from "./ui/button";
export function ModeToggle() {
- const { theme, setTheme } = useTheme();
+ const { setTheme } = useTheme();
+ const [currentTheme, setCurrentTheme] = useState('light');
+ const [mounted, setMounted] = useState(false);
- const toggleTheme = () => {
- switch (theme) {
- case "system":
- setTheme("dark");
- break;
- case "dark":
- setTheme("light");
- break;
- case "light":
- setTheme("system");
- break;
- }
- };
+ useEffect(() => {
+ setMounted(true);
+ const savedTheme = localStorage.getItem('theme') || 'light';
+ setCurrentTheme(savedTheme);
+ setTheme(savedTheme);
+ }, [setTheme]);
- // prevent hydration error
- const [mounted, setMounted] = useState(false);
+ const toggleTheme = () => {
+ const newTheme = currentTheme === 'light' ? 'dark' : 'light';
+ setCurrentTheme(newTheme);
+ setTheme(newTheme);
+ localStorage.setItem('theme', newTheme);
+ };
- useEffect(() => {
- setMounted(true);
- }, []);
+ if (!mounted) {
+ return null;
+ }
- if (!mounted) {
- return null;
- }
-
- return (
-
- );
-}
+ return (
+
+ );
+}
\ No newline at end of file