Calculate used domains on open of action dialog (#19255)

This commit is contained in:
Bram Kragten 2024-01-03 10:37:30 +01:00 committed by GitHub
parent 8a8b04ed00
commit 46565715c9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -122,6 +122,7 @@ class DialogAddAutomationElement extends LitElement implements HassDialog {
if (this._params?.type === "action") { if (this._params?.type === "action") {
this.hass.loadBackendTranslation("services"); this.hass.loadBackendTranslation("services");
this._fetchManifests(); this._fetchManifests();
this._calculateUsedDomains();
} }
this._fullScreen = matchMedia( this._fullScreen = matchMedia(
"all and (max-width: 450px), all and (max-height: 500px)" "all and (max-width: 450px), all and (max-height: 500px)"
@ -425,6 +426,13 @@ class DialogAddAutomationElement extends LitElement implements HassDialog {
this._manifests = manifests; this._manifests = manifests;
} }
private _calculateUsedDomains() {
const domains = new Set(Object.keys(this.hass.states).map(computeDomain));
if (!deepEqual(domains, this._domains)) {
this._domains = domains;
}
}
protected _opened(): void { protected _opened(): void {
// Store the width and height so that when we search, box doesn't jump // Store the width and height so that when we search, box doesn't jump
const boundingRect = const boundingRect =
@ -439,10 +447,7 @@ class DialogAddAutomationElement extends LitElement implements HassDialog {
changedProperties.has("hass") && changedProperties.has("hass") &&
changedProperties.get("hass")?.states !== this.hass.states changedProperties.get("hass")?.states !== this.hass.states
) { ) {
const domains = new Set(Object.keys(this.hass.states).map(computeDomain)); this._calculateUsedDomains();
if (!deepEqual(domains, this._domains)) {
this._domains = domains;
}
} }
} }