Improve performance of Helpers config page (#26153)

This commit is contained in:
dcapslock 2025-07-14 15:42:37 +10:00 committed by GitHub
parent 80b86a89f0
commit 1ce4e2a799
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -74,6 +74,7 @@ import type {
UpdateEntityRegistryEntryResult, UpdateEntityRegistryEntryResult,
} from "../../../data/entity_registry"; } from "../../../data/entity_registry";
import { import {
entityRegistryByEntityId,
subscribeEntityRegistry, subscribeEntityRegistry,
updateEntityRegistryEntry, updateEntityRegistryEntry,
} from "../../../data/entity_registry"; } from "../../../data/entity_registry";
@ -520,9 +521,8 @@ export class HaConfigHelpers extends SubscribeMixin(LitElement) {
: true : true
) )
.map((item) => { .map((item) => {
const entityRegEntry = entityReg.find( const entityRegEntry =
(reg) => reg.entity_id === item.entity_id entityRegistryByEntityId(entityReg)[item.entity_id];
);
const labels = labelReg && entityRegEntry?.labels; const labels = labelReg && entityRegEntry?.labels;
const category = entityRegEntry?.categories.helpers; const category = entityRegEntry?.categories.helpers;
return { return {
@ -547,7 +547,7 @@ export class HaConfigHelpers extends SubscribeMixin(LitElement) {
private _labelsForEntity(entityId: string): string[] { private _labelsForEntity(entityId: string): string[] {
return ( return (
this.hass.entities[entityId]?.labels || this.hass.entities[entityId]?.labels ||
this._entityReg.find((e) => e.entity_id === entityId)?.labels || entityRegistryByEntityId(this._entityReg)[entityId]?.labels ||
[] []
); );
} }
@ -885,9 +885,9 @@ export class HaConfigHelpers extends SubscribeMixin(LitElement) {
const labelItems = new Set<string>(); const labelItems = new Set<string>();
this._stateItems this._stateItems
.filter((stateItem) => .filter((stateItem) =>
this._entityReg entityRegistryByEntityId(this._entityReg)[
.find((reg) => reg.entity_id === stateItem.entity_id) stateItem.entity_id
?.labels.some((lbl) => filter.includes(lbl)) ]?.labels.some((lbl) => filter.includes(lbl))
) )
.forEach((stateItem) => labelItems.add(stateItem.entity_id)); .forEach((stateItem) => labelItems.add(stateItem.entity_id));
(this._disabledEntityEntries || []) (this._disabledEntityEntries || [])
@ -913,9 +913,8 @@ export class HaConfigHelpers extends SubscribeMixin(LitElement) {
.filter( .filter(
(stateItem) => (stateItem) =>
filter[0] === filter[0] ===
this._entityReg.find( entityRegistryByEntityId(this._entityReg)[stateItem.entity_id]
(reg) => reg.entity_id === stateItem.entity_id ?.categories.helpers
)?.categories.helpers
) )
.forEach((stateItem) => categoryItems.add(stateItem.entity_id)); .forEach((stateItem) => categoryItems.add(stateItem.entity_id));
(this._disabledEntityEntries || []) (this._disabledEntityEntries || [])
@ -943,9 +942,9 @@ export class HaConfigHelpers extends SubscribeMixin(LitElement) {
} }
private _editCategory(helper: any) { private _editCategory(helper: any) {
const entityReg = this._entityReg.find( const entityReg = entityRegistryByEntityId(this._entityReg)[
(reg) => reg.entity_id === helper.entity_id helper.entity_id
); ];
if (!entityReg) { if (!entityReg) {
showAlertDialog(this, { showAlertDialog(this, {
title: this.hass.localize( title: this.hass.localize(