From 94343c79b0dc5844956c215c87524d08378ce6ce Mon Sep 17 00:00:00 2001 From: Cedric van Putten Date: Thu, 4 Mar 2021 14:56:18 +0100 Subject: [PATCH] fix: add fallback media query listeners for older browsers --- src/theme/ThemeProvider.tsx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/theme/ThemeProvider.tsx b/src/theme/ThemeProvider.tsx index 6362b99..f555106 100644 --- a/src/theme/ThemeProvider.tsx +++ b/src/theme/ThemeProvider.tsx @@ -39,7 +39,12 @@ export function ThemeProvider(props: ThemeProviderProps) { const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)'); - mediaQuery.addEventListener('change', onThemeChange); + try { + mediaQuery.addEventListener('change', onThemeChange); + } catch { + // Fallback to old-style listeing for changes, for Safari and IE + mediaQuery.addListener(onThemeChange); + } const themePreference = window.localStorage.getItem('data-expo-theme'); @@ -50,7 +55,12 @@ export function ThemeProvider(props: ThemeProviderProps) { } return function unMount() { - mediaQuery.removeEventListener('change', onThemeChange); + try { + mediaQuery.removeEventListener('change', onThemeChange); + } catch { + // Fallback to old-style listeing for changes, for Safari and IE + mediaQuery.removeListener(onThemeChange); + } }; }, []);