Add useDarkMode hook
This commit is contained in:
@@ -0,0 +1,15 @@
|
|||||||
|
import { useState, useEffect } from "react";
|
||||||
|
|
||||||
|
export function useDarkMode() {
|
||||||
|
const [enabled, setEnabled] = useState(() => {
|
||||||
|
if (typeof window === "undefined") return false;
|
||||||
|
return localStorage.getItem("theme") === "dark";
|
||||||
|
});
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
document.documentElement.classList.toggle("dark", enabled);
|
||||||
|
localStorage.setItem("theme", enabled ? "dark" : "light");
|
||||||
|
}, [enabled]);
|
||||||
|
|
||||||
|
return { enabled, toggle: () => setEnabled((v) => !v) };
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user