diff --git a/public/icons/theme/dark.svg b/public/icons/theme/dark.svg
new file mode 100644
index 0000000..7a1ccf1
--- /dev/null
+++ b/public/icons/theme/dark.svg
@@ -0,0 +1,33 @@
+
+
+
+
diff --git a/public/icons/theme/light.svg b/public/icons/theme/light.svg
new file mode 100644
index 0000000..bc68130
--- /dev/null
+++ b/public/icons/theme/light.svg
@@ -0,0 +1,29 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/ui/themeSwitcher/ThemeSwitcher.jsx b/src/components/ui/themeSwitcher/ThemeSwitcher.jsx
index 1b9a84f..b0a5ef7 100644
--- a/src/components/ui/themeSwitcher/ThemeSwitcher.jsx
+++ b/src/components/ui/themeSwitcher/ThemeSwitcher.jsx
@@ -1,19 +1,30 @@
import Button from "../button/button.jsx";
-import React from "react";
+import { useState, useEffect } from "react";
+import styles from "./ThemeSwitcher.module.css";
+
export default function ThemeSwitcher() {
+ const [theme, setTheme] = useState("");
+
+ useEffect(() => {
+ setTheme(localStorage.getItem("theme"));
+ }, []);
+
const switchTheme = () => {
- const currentTheme = localStorage.getItem("theme");
- let newTheme = currentTheme === "light" ? "dark" : "light";
+ let newTheme = theme === "light" ? "dark" : "light";
- if(currentTheme === null) newTheme = "dark";
+ if(theme === null || theme === "") newTheme = "dark";
localStorage.setItem("theme", newTheme);
+ setTheme(newTheme);
window.dispatchEvent(new Event("theme-changed"));
};
- return
+ return
}
\ No newline at end of file
diff --git a/src/components/ui/themeSwitcher/ThemeSwitcher.module.css b/src/components/ui/themeSwitcher/ThemeSwitcher.module.css
new file mode 100644
index 0000000..93b6fc6
--- /dev/null
+++ b/src/components/ui/themeSwitcher/ThemeSwitcher.module.css
@@ -0,0 +1,12 @@
+.themeBtn {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ justify-content: center;
+ gap: 5px;
+}
+
+.themeIcon {
+ height: 20px;
+ width: 20px;
+}
\ No newline at end of file