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');