18 lines
482 B
TypeScript
18 lines
482 B
TypeScript
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 [theme, setTheme];
|
|
};
|