Login:Hooks:UseTheme: change theme initial state

This commit is contained in:
Darya Umrikhina 2024-08-15 03:28:02 +04:00
parent be507f9865
commit a57f6aaca5

View File

@ -63,18 +63,35 @@ const useTheme = ({ user, colorTheme, systemTheme, i18n }: UseThemeProps) => {
({} as TColorScheme)
: ({} as TColorScheme);
const newTheme = match<MatchType>([user?.theme, systemTheme])
.returnType<TTheme>()
.with([ThemeKeys.DarkStr, P._], () => Dark)
.with([ThemeKeys.BaseStr, P._], () => Base)
.with([ThemeKeys.SystemStr, ThemeKeys.BaseStr], () => Base)
.with([ThemeKeys.SystemStr, ThemeKeys.DarkStr], () => Dark)
.with([undefined, ThemeKeys.DarkStr], () => Dark)
.with([undefined, ThemeKeys.BaseStr], () => Base)
.otherwise(() => Base);
let newTheme;
if (user?.theme === ThemeKeys.DarkStr) {
newTheme = Dark;
}
if (user?.theme === ThemeKeys.BaseStr) {
newTheme = Base;
}
if (
user?.theme === ThemeKeys.SystemStr &&
systemTheme === ThemeKeys.BaseStr
) {
newTheme = Base;
}
if (
user?.theme === ThemeKeys.SystemStr &&
systemTheme === ThemeKeys.DarkStr
) {
newTheme = Dark;
}
if (!user?.theme && systemTheme === ThemeKeys.DarkStr) {
newTheme = Dark;
}
if (!user?.theme && systemTheme === ThemeKeys.BaseStr) {
newTheme = Base;
}
return {
...newTheme,
...(newTheme ?? Base),
currentColorScheme: currColorTheme,
};
});