🔧 fix(ThemeContext): Listen for Theme Changes (#2037)

* fix(ThemeContext): listen for changes

* fix(Dropdown): theme auto-update not working
This commit is contained in:
Marco Beretta 2024-03-09 17:36:04 +01:00 committed by GitHub
parent db870e55c3
commit 6fcaeaafe2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 17 additions and 22 deletions

View file

@ -49,6 +49,19 @@ export const ThemeProvider = ({ initialTheme, children }) => {
localStorage.setItem('color-theme', rawTheme);
};
useEffect(() => {
const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
const changeThemeOnSystemChange = () => {
rawSetTheme(mediaQuery.matches ? 'dark' : 'light');
};
mediaQuery.addEventListener('change', changeThemeOnSystemChange);
return () => {
mediaQuery.removeEventListener('change', changeThemeOnSystemChange);
};
}, []);
if (initialTheme) {
rawSetTheme(initialTheme);
}