Check for hass when setting themes (#6897)

This commit is contained in:
Bram Kragten 2020-09-09 22:57:44 +02:00 committed by GitHub
parent eb96dd4803
commit e955cc4378
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -45,25 +45,28 @@ export default <T extends Constructor<HassBaseEl>>(superClass: T) =>
} }
private _applyTheme(dark: boolean) { private _applyTheme(dark: boolean) {
if (!this.hass) {
return;
}
const themeName = const themeName =
this.hass!.selectedTheme?.theme || this.hass.selectedTheme?.theme ||
(dark && this.hass!.themes.default_dark_theme (dark && this.hass.themes.default_dark_theme
? this.hass!.themes.default_dark_theme! ? this.hass.themes.default_dark_theme!
: this.hass!.themes.default_theme); : this.hass.themes.default_theme);
let options: Partial<HomeAssistant["selectedTheme"]> = this.hass! let options: Partial<HomeAssistant["selectedTheme"]> = this.hass!
.selectedTheme; .selectedTheme;
if (themeName === "default" && options?.dark === undefined) { if (themeName === "default" && options?.dark === undefined) {
options = { options = {
...this.hass!.selectedTheme!, ...this.hass.selectedTheme!,
dark, dark,
}; };
} }
applyThemesOnElement( applyThemesOnElement(
document.documentElement, document.documentElement,
this.hass!.themes, this.hass.themes,
themeName, themeName,
options options
); );
@ -71,11 +74,11 @@ export default <T extends Constructor<HassBaseEl>>(superClass: T) =>
const darkMode = const darkMode =
themeName === "default" themeName === "default"
? !!options?.dark ? !!options?.dark
: !!(dark && this.hass!.themes.default_dark_theme); : !!(dark && this.hass.themes.default_dark_theme);
if (darkMode !== this.hass!.themes.darkMode) { if (darkMode !== this.hass.themes.darkMode) {
this._updateHass({ this._updateHass({
themes: { ...this.hass!.themes, darkMode }, themes: { ...this.hass.themes, darkMode },
}); });
const schemeMeta = document.querySelector("meta[name=color-scheme]"); const schemeMeta = document.querySelector("meta[name=color-scheme]");