Skip to content

Commit 4192378

Browse files
committed
Setup time listeners
1 parent e868695 commit 4192378

File tree

5 files changed

+65
-5
lines changed

5 files changed

+65
-5
lines changed

src/panels/lovelace/badges/hui-badge.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@ import "../../../components/ha-svg-icon";
66
import type { LovelaceBadgeConfig } from "../../../data/lovelace/config/badge";
77
import type { HomeAssistant } from "../../../types";
88
import { ConditionalListenerMixin } from "../../../mixins/conditional-listener-mixin";
9-
import { setupMediaQueryListeners } from "../../../common/condition/listeners";
9+
import {
10+
setupMediaQueryListeners,
11+
setupTimeListeners,
12+
} from "../../../common/condition/listeners";
1013
import { checkConditionsMet } from "../common/validate-condition";
1114
import { createBadgeElement } from "../create-element/create-badge-element";
1215
import { createErrorBadgeConfig } from "../create-element/create-element-base";
@@ -144,6 +147,15 @@ export class HuiBadge extends ConditionalListenerMixin(ReactiveElement) {
144147
this._updateVisibility(conditionsMet);
145148
}
146149
);
150+
151+
setupTimeListeners(
152+
this.config.visibility,
153+
this.hass,
154+
(unsub) => this.addConditionalListener(unsub),
155+
(conditionsMet) => {
156+
this._updateVisibility(conditionsMet);
157+
}
158+
);
147159
}
148160

149161
private _updateVisibility(ignoreConditions?: boolean) {

src/panels/lovelace/cards/hui-card.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@ import "../../../components/ha-svg-icon";
66
import type { LovelaceCardConfig } from "../../../data/lovelace/config/card";
77
import type { HomeAssistant } from "../../../types";
88
import { ConditionalListenerMixin } from "../../../mixins/conditional-listener-mixin";
9-
import { setupMediaQueryListeners } from "../../../common/condition/listeners";
9+
import {
10+
setupMediaQueryListeners,
11+
setupTimeListeners,
12+
} from "../../../common/condition/listeners";
1013
import { migrateLayoutToGridOptions } from "../common/compute-card-grid-size";
1114
import { computeCardSize } from "../common/compute-card-size";
1215
import { checkConditionsMet } from "../common/validate-condition";
@@ -258,6 +261,15 @@ export class HuiCard extends ConditionalListenerMixin(ReactiveElement) {
258261
this._updateVisibility(conditionsMet);
259262
}
260263
);
264+
265+
setupTimeListeners(
266+
this.config.visibility,
267+
this.hass,
268+
(unsub) => this.addConditionalListener(unsub),
269+
(conditionsMet) => {
270+
this._updateVisibility(conditionsMet);
271+
}
272+
);
261273
}
262274

263275
private _updateVisibility(ignoreConditions?: boolean) {

src/panels/lovelace/components/hui-conditional-base.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ import { ReactiveElement } from "lit";
33
import { customElement, property, state } from "lit/decorators";
44
import type { HomeAssistant } from "../../../types";
55
import { ConditionalListenerMixin } from "../../../mixins/conditional-listener-mixin";
6-
import { setupMediaQueryListeners } from "../../../common/condition/listeners";
6+
import {
7+
setupMediaQueryListeners,
8+
setupTimeListeners,
9+
} from "../../../common/condition/listeners";
710
import type { HuiCard } from "../cards/hui-card";
811
import type { ConditionalCardConfig } from "../cards/types";
912
import type { Condition } from "../common/validate-condition";
@@ -83,6 +86,15 @@ export class HuiConditionalBase extends ConditionalListenerMixin(
8386
this.setVisibility(conditionsMet);
8487
}
8588
);
89+
90+
setupTimeListeners(
91+
supportedConditions,
92+
this.hass,
93+
(unsub) => this.addConditionalListener(unsub),
94+
(conditionsMet) => {
95+
this.setVisibility(conditionsMet);
96+
}
97+
);
8698
}
8799

88100
protected update(changed: PropertyValues): void {

src/panels/lovelace/heading-badges/hui-heading-badge.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ import { fireEvent } from "../../../common/dom/fire_event";
55
import "../../../components/ha-svg-icon";
66
import type { HomeAssistant } from "../../../types";
77
import { ConditionalListenerMixin } from "../../../mixins/conditional-listener-mixin";
8-
import { setupMediaQueryListeners } from "../../../common/condition/listeners";
8+
import {
9+
setupMediaQueryListeners,
10+
setupTimeListeners,
11+
} from "../../../common/condition/listeners";
912
import { checkConditionsMet } from "../common/validate-condition";
1013
import { createHeadingBadgeElement } from "../create-element/create-heading-badge-element";
1114
import type { LovelaceHeadingBadge } from "../types";
@@ -144,6 +147,15 @@ export class HuiHeadingBadge extends ConditionalListenerMixin(ReactiveElement) {
144147
this._updateVisibility(conditionsMet);
145148
}
146149
);
150+
151+
setupTimeListeners(
152+
this.config.visibility,
153+
this.hass,
154+
(unsub) => this.addConditionalListener(unsub),
155+
(conditionsMet) => {
156+
this._updateVisibility(conditionsMet);
157+
}
158+
);
147159
}
148160

149161
private _updateVisibility(forceVisible?: boolean) {

src/panels/lovelace/sections/hui-section.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ import type {
1414
import { isStrategySection } from "../../../data/lovelace/config/section";
1515
import type { HomeAssistant } from "../../../types";
1616
import { ConditionalListenerMixin } from "../../../mixins/conditional-listener-mixin";
17-
import { setupMediaQueryListeners } from "../../../common/condition/listeners";
17+
import {
18+
setupMediaQueryListeners,
19+
setupTimeListeners,
20+
} from "../../../common/condition/listeners";
1821
import "../cards/hui-card";
1922
import type { HuiCard } from "../cards/hui-card";
2023
import { checkConditionsMet } from "../common/validate-condition";
@@ -163,6 +166,15 @@ export class HuiSection extends ConditionalListenerMixin(ReactiveElement) {
163166
this._updateElement(conditionsMet);
164167
}
165168
);
169+
170+
setupTimeListeners(
171+
this._config.visibility,
172+
this.hass,
173+
(unsub) => this.addConditionalListener(unsub),
174+
(conditionsMet) => {
175+
this._updateElement(conditionsMet);
176+
}
177+
);
166178
}
167179

168180
private async _initializeConfig() {

0 commit comments

Comments
 (0)