diff --git a/src/layouts/index.tsx b/src/layouts/index.tsx index 550bab5b..c3512de2 100644 --- a/src/layouts/index.tsx +++ b/src/layouts/index.tsx @@ -3,6 +3,7 @@ import ProLayout from '@ant-design/pro-layout'; import { enable as enableDarkMode, disable as disableDarkMode, + auto as followSystemColorScheme, setFetchMethod, } from 'darkreader'; import defaultProps from './defaultProps'; @@ -26,18 +27,14 @@ export default function (props: any) { }, [props.location.pathname]); useEffect(() => { - const colorScheme = - window.matchMedia('(prefers-color-scheme: dark)').matches && 'dark'; - let localTheme = localStorage.getItem('qinglong_dark_theme'); - if (localTheme === 'auto') { - localTheme = null; - } - const theme = localTheme || colorScheme || 'light'; + const theme = localStorage.getItem('qinglong_dark_theme') || 'auto'; setFetchMethod(window.fetch); if (theme === 'dark') { enableDarkMode({ darkSchemeTextColor: '#fff' }); } else if (theme === 'light') { disableDarkMode(); + } else { + followSystemColorScheme({ darkSchemeTextColor: '#fff' }); } }, []); diff --git a/src/pages/setting/index.tsx b/src/pages/setting/index.tsx index 54bc4d65..a22148e2 100644 --- a/src/pages/setting/index.tsx +++ b/src/pages/setting/index.tsx @@ -6,6 +6,7 @@ import { request } from '@/utils/http'; import { enable as enableDarkMode, disable as disableDarkMode, + auto as followSystemColorScheme, setFetchMethod, } from 'darkreader'; @@ -21,10 +22,7 @@ const Password = () => { const [marginTop, setMarginTop] = useState(-72); const [value, setValue] = useState(''); const [loading, setLoading] = useState(true); - const colorScheme = - window.matchMedia('(prefers-color-scheme: dark)').matches && 'dark'; - const defaultDarken = - localStorage.getItem('qinglong_dark_theme') || colorScheme; + const defaultDarken = localStorage.getItem('qinglong_dark_theme') || 'auto'; const [theme, setTheme] = useState(defaultDarken); const handleOk = (values: any) => { @@ -69,7 +67,7 @@ const Password = () => { } else if (theme === 'light') { disableDarkMode(); } else { - enableDarkMode({ darkSchemeTextColor: '#fff' }); + followSystemColorScheme({ darkSchemeTextColor: '#fff' }); } }, [theme]);