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