From d37fcc09706d78b4e0fb2439d25fb86b5e9a92b6 Mon Sep 17 00:00:00 2001 From: Alexander Forselius Date: Wed, 1 Apr 2020 19:41:12 +0200 Subject: [PATCH] Added feature check for window.matchMedia --- packages/app/src/ThemeContext.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/app/src/ThemeContext.tsx b/packages/app/src/ThemeContext.tsx index 81988db44f..4ee76d400e 100644 --- a/packages/app/src/ThemeContext.tsx +++ b/packages/app/src/ThemeContext.tsx @@ -27,6 +27,9 @@ export const ThemeContext = React.createContext({ export function useThemeType(themeId: string): [string, () => void] { const [theme, setTheme] = useState(themeId); useEffect(() => { + if (!window.matchMedia) { + return () => {}; + } const mql = window.matchMedia('(prefers-color-scheme: dark)'); const darkListener = (event: MediaQueryListEvent) => { if (localStorage.getItem('theme') === 'auto') { @@ -48,6 +51,12 @@ export function useThemeType(themeId: string): [string, () => void] { setTheme('dark'); localStorage.setItem('theme', 'dark'); } else if (theme === 'dark') { + if (!window.matchMedia) { + setTheme('light'); + localStorage.setItem('theme', 'light'); + setTheme('light'); + return; + } setTheme('auto'); localStorage.setItem('theme', 'auto'); setTheme('auto');