mirror of
https://github.com/XFox111/PasswordGeneratorExtension.git
synced 2026-04-22 08:08:01 +03:00
Major 3.0: Complete overhaul of the codebase, new features, bugfixes and more (#223)
Complete overhaul for v3.0 (see related PR)
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user