diff --git a/src/client/components/shared/Navbar2.tsx b/src/client/components/shared/Navbar2.tsx index 96830c5..d43dc5c 100644 --- a/src/client/components/shared/Navbar2.tsx +++ b/src/client/components/shared/Navbar2.tsx @@ -1,15 +1,18 @@ import React, { ReactElement, useState } from "react"; +import { useDarkMode } from "../../hooks/useDarkMode"; export const Navbar2 = (): ReactElement => { - const [isLightMode, setIsLightMode] = useState(false); - - const handleToggle = () => { - setIsLightMode(!isLightMode); - // Add your code for enabling dark/light mode here + const [colorTheme, setTheme] = useDarkMode(); + const [darkMode, setDarkMode] = useState(false); + console.log("as", darkMode); + const toggleDarkMode = (checked) => { + setTheme(colorTheme); + setDarkMode(!darkMode); + console.log("here", checked.target.value); }; return ( -
+
{/* Logo */}
ThreeTwo! @@ -77,7 +80,7 @@ export const Navbar2 = (): ReactElement => { href="#" className="flex items-center space-x-1 text-gray-500 transition hover:text-gray-500/75 dark:text-white dark:hover:text-white/75" > - + @@ -89,7 +92,7 @@ export const Navbar2 = (): ReactElement => {
  • {/* Light/Dark Mode toggle */}
    - Dark Mode + Light - Light Mode + Dark
  • diff --git a/src/client/hooks/useDarkMode.tsx b/src/client/hooks/useDarkMode.tsx new file mode 100644 index 0000000..b7cec71 --- /dev/null +++ b/src/client/hooks/useDarkMode.tsx @@ -0,0 +1,17 @@ +import React, { useEffect, useState } from "react"; + +export const useDarkMode = () => { + const [theme, setTheme] = useState(localStorage.theme); + const colorTheme = theme === "dark" ? "light" : "dark"; + + useEffect(() => { + const root = window.document.documentElement; + root.classList.remove(colorTheme); + root.classList.add(theme); + + // save theme to local storage + localStorage.setItem("theme", theme); + }, [theme, colorTheme]); + + return [colorTheme, setTheme]; +}; diff --git a/tailwind.config.js b/tailwind.config.js index 0eeddd0..5206c55 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -3,7 +3,7 @@ import { addDynamicIconSelectors } from "@iconify/tailwind"; /** @type {import('tailwindcss').Config} */ module.exports = { content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"], - darkMode: ["class", '[data-mode="dark"]'], + darkMode: "class", theme: { fontFamily: { sans: ["PP Object Sans Regular", "sans-serif"],