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