Skip to content

Instantly share code, notes, and snippets.

@akirco
Created June 1, 2023 12:56
Show Gist options
  • Save akirco/c27c7ae2a9cbd58980c657ce7bf4d6d0 to your computer and use it in GitHub Desktop.
Save akirco/c27c7ae2a9cbd58980c657ce7bf4d6d0 to your computer and use it in GitHub Desktop.
react hooks- usePreferDarkMode
import { useEffect, useState } from "react";
export default function usePrefersDarkMode(defaultValue: boolean) {
const [value, setValue] = useState(() => defaultValue);
useEffect(() => {
if (typeof window !== "undefined") {
const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
setValue(mediaQuery.matches);
const handler = () => setValue(mediaQuery.matches);
mediaQuery.addEventListener("change", handler);
return () => mediaQuery.removeEventListener("change", handler);
}
}, []);
return value;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment