UNPKG

create-dynamic-app

Version:

CLI tool to generate sample applications using Dynamic's web3 authentication

28 lines (21 loc) 821 B
export const useDarkMode = `"use client"; import { useState, useEffect } from "react"; const checkIsDarkSchemePreferred = (): boolean => { if (typeof window !== "undefined") { return window.matchMedia?.("(prefers-color-scheme:dark)")?.matches ?? false; } return false; }; export function useDarkMode() { const [isDarkMode, setIsDarkMode] = useState(checkIsDarkSchemePreferred); useEffect(() => { const darkModeMediaQuery = window.matchMedia( "(prefers-color-scheme: dark)" ); const handleChange = () => setIsDarkMode(checkIsDarkSchemePreferred()); darkModeMediaQuery.addEventListener("change", handleChange); return () => darkModeMediaQuery.removeEventListener("change", handleChange); }, []); return { isDarkMode, toggleDarkMode: () => setIsDarkMode(!isDarkMode) }; } `