Fix resetting theme, only fallback to light when theme doesnt support… (#9253)

This commit is contained in:
Bram Kragten 2021-05-26 00:11:17 +02:00 committed by GitHub
parent f55e911313
commit de09e31815
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 18 deletions

View File

@ -39,7 +39,7 @@ export const applyThemesOnElement = (
if (themeSettings) {
if (themeSettings.dark) {
cacheKey = `${cacheKey}__dark`;
themeRules = darkStyles;
themeRules = { ...darkStyles };
}
if (selectedTheme === "default") {

View File

@ -67,15 +67,16 @@ export default <T extends Constructor<HassBaseEl>>(superClass: T) =>
if (!this.hass) {
return;
}
const themeName =
this.hass.selectedThemeSettings?.theme ||
(darkPreferred && this.hass.themes.default_dark_theme
? this.hass.themes.default_dark_theme!
: this.hass.themes.default_theme);
let themeSettings: Partial<HomeAssistant["selectedThemeSettings"]> = this
.hass!.selectedThemeSettings;
const themeName =
themeSettings?.theme ||
(darkPreferred && this.hass.themes.default_dark_theme
? this.hass.themes.default_dark_theme!
: this.hass.themes.default_theme);
let darkMode =
themeSettings?.dark === undefined ? darkPreferred : themeSettings?.dark;
@ -84,18 +85,8 @@ export default <T extends Constructor<HassBaseEl>>(superClass: T) =>
? this.hass.themes.themes[themeSettings.theme]
: undefined;
if (selectedTheme) {
// Override dark mode selection depending on what the theme actually provides.
// Leave the selection as-is if the theme supports the requested mode.
if (darkMode && !selectedTheme.modes?.dark) {
darkMode = false;
} else if (
!darkMode &&
!selectedTheme.modes?.light &&
selectedTheme.modes?.dark
) {
darkMode = true;
}
if (selectedTheme && darkMode && !selectedTheme.modes) {
darkMode = false;
}
themeSettings = { ...this.hass.selectedThemeSettings, dark: darkMode };