Skip to content

Commit f54f8f6

Browse files
authored
Merge pull request #633 from LoremIPsummer/feature/no-ref/default-theme
Set default theme based on user preference
2 parents ef4044a + a7b70a8 commit f54f8f6

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

webgui-new/src/global-context/theme-context.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ThemeProvider } from '@mui/material';
1+
import { ThemeProvider, useMediaQuery } from '@mui/material';
22
import React, { createContext, useEffect, useState } from 'react';
33
import { darkTheme, lightTheme } from 'themes/theme';
44
import { getStore, setStore } from 'utils/store';
@@ -23,11 +23,12 @@ export const ThemeContext = createContext<ThemeContextType>({
2323

2424
export const ThemeContextController = ({ children }: { children: React.ReactNode }): JSX.Element => {
2525
const [theme, setTheme] = useState<'light' | 'dark' | undefined>(undefined);
26+
const prefersDarkMode = useMediaQuery('(prefers-color-scheme: dark)');
2627

2728
useEffect(() => {
2829
const { storedTheme } = getStore();
29-
setTheme(storedTheme ?? 'light');
30-
}, []);
30+
setTheme(storedTheme ?? (prefersDarkMode ? 'dark' : 'light'));
31+
}, [prefersDarkMode]);
3132

3233
useEffect(() => {
3334
setStore({

0 commit comments

Comments
 (0)