mirror of
https://github.com/XFox111/PasswordGeneratorExtension.git
synced 2026-04-22 08:08:01 +03:00
3ecb6c4a31
- Migrated to WXT - Migrated to NPM - Added Insert & copy action - Added ESLint
22 lines
697 B
TypeScript
22 lines
697 B
TypeScript
import { useState, useEffect } from "react";
|
|
import { Theme, webDarkTheme, webLightTheme } from "@fluentui/react-components";
|
|
|
|
export function useTheme(lightTheme?: Theme, darkTheme?: Theme): Theme
|
|
{
|
|
const media = window.matchMedia("(prefers-color-scheme: dark)");
|
|
|
|
const getTheme = (isDark: boolean) =>
|
|
isDark ? (darkTheme ?? webDarkTheme) : (lightTheme ?? webLightTheme);
|
|
|
|
const [theme, setTheme] = useState<Theme>(getTheme(media.matches));
|
|
|
|
useEffect(() =>
|
|
{
|
|
const updateTheme = (args: MediaQueryListEvent) => setTheme(getTheme(args.matches));
|
|
media.addEventListener("change", updateTheme);
|
|
return () => media.removeEventListener("change", updateTheme);
|
|
}, []);
|
|
|
|
return theme;
|
|
}
|