diff --git a/hassio/src/hassio-main.ts b/hassio/src/hassio-main.ts
index d20c690e30..7d55a23378 100644
--- a/hassio/src/hassio-main.ts
+++ b/hassio/src/hassio-main.ts
@@ -28,15 +28,7 @@ export class HassioMain extends urlSyncMixin(ProvideHassLitMixin(LitElement)) {
protected firstUpdated(changedProps: PropertyValues) {
super.firstUpdated(changedProps);
- applyThemesOnElement(
- this.parentElement,
- this.hass.themes,
- (atLeastVersion(this.hass.config.version, 0, 114)
- ? this.hass.selectedTheme?.theme
- : ((this.hass.selectedTheme as unknown) as string)) ||
- this.hass.themes.default_theme,
- this.hass.selectedTheme
- );
+ this._applyTheme();
// Paulus - March 17, 2019
// We went to a single hass-toggle-menu event in HA 0.90. However, the
@@ -73,6 +65,17 @@ export class HassioMain extends urlSyncMixin(ProvideHassLitMixin(LitElement)) {
makeDialogManager(this, this.shadowRoot!);
}
+ protected updated(changedProps: PropertyValues) {
+ super.updated(changedProps);
+ const oldHass = changedProps.get("hass") as HomeAssistant | undefined;
+ if (!oldHass) {
+ return;
+ }
+ if (oldHass.themes !== this.hass.themes) {
+ this._applyTheme();
+ }
+ }
+
protected render() {
return html`
`;
}
+
+ private _applyTheme() {
+ let themeName: string;
+ let options: Partial | undefined;
+
+ if (atLeastVersion(this.hass.config.version, 0, 114)) {
+ themeName =
+ this.hass.selectedTheme?.theme ||
+ (this.hass.themes.darkMode && this.hass.themes.default_dark_theme
+ ? this.hass.themes.default_dark_theme!
+ : this.hass.themes.default_theme);
+
+ options = this.hass.selectedTheme;
+ if (themeName === "default" && options?.dark === undefined) {
+ options = {
+ ...this.hass.selectedTheme,
+ dark: this.hass.themes.darkMode,
+ };
+ }
+ } else {
+ themeName = (this.hass.selectedTheme as unknown) as string;
+ }
+
+ applyThemesOnElement(
+ this.parentElement,
+ this.hass.themes,
+ themeName,
+ options
+ );
+ }
}
declare global {