Fix when userTheme is undefined

This commit is contained in:
xmflsct 2023-02-03 16:06:18 +01:00
parent adddae9d72
commit 9f6e7738bf
1 changed files with 7 additions and 4 deletions

View File

@ -43,6 +43,11 @@ const useColorSchemeDelay = (delay = 250) => {
return colorScheme
}
const determineMode = (
osTheme: 'light' | 'dark' | null | undefined,
userTheme: StorageGlobal['app.theme']
): 'light' | 'dark' =>
!userTheme || userTheme === 'auto' ? osTheme || 'light' : userTheme || 'light'
const determineTheme = (
osTheme: 'light' | 'dark' | null | undefined,
userTheme: StorageGlobal['app.theme'],
@ -75,13 +80,11 @@ const ThemeManager: React.FC<PropsWithChildren> = ({ children }) => {
const [userTheme] = useGlobalStorage.string('app.theme')
const [darkTheme] = useGlobalStorage.string('app.theme.dark')
const [mode, setMode] = useState<'light' | 'dark'>(
userTheme === 'auto' ? osTheme || 'light' : userTheme || 'light'
)
const [mode, setMode] = useState<'light' | 'dark'>(determineMode(osTheme, userTheme))
const [theme, setTheme] = useState<Theme>(determineTheme(osTheme, userTheme, darkTheme))
useEffect(() => {
setMode(userTheme === 'auto' ? osTheme || 'light' : userTheme || 'light')
setMode(determineMode(osTheme, userTheme))
}, [osTheme, userTheme])
useEffect(() => {
setTheme(determineTheme(osTheme, userTheme, darkTheme))