UNPKG

react-reuse-hooks

Version:

A collection of 30+ production-ready reusable React hooks for web apps, covering state, effects, media, forms, and utilities.

18 lines (13 loc) 538 B
import { useEffect, useState } from "react"; export function useDarkMode() { const [isDarkMode, setIsDarkMode] = useState(() => { return localStorage.getItem("theme") === "dark"; }); useEffect(() => { const className = "dark"; const bodyClass = window.document.body.classList; isDarkMode ? bodyClass.add(className) : bodyClass.remove(className); localStorage.setItem("theme", isDarkMode ? "dark" : "light"); }, [isDarkMode]); return [isDarkMode, () => setIsDarkMode((prev) => !prev)]; }