From f78ce2c844ea6ad26fa16431e07d3ed3e7885f1f Mon Sep 17 00:00:00 2001 From: Philip Allgaier Date: Tue, 5 Apr 2022 01:47:26 +0200 Subject: [PATCH] Sort "Switch as" domains and add separator (#12216) --- .../entities/entity-registry-settings.ts | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/src/panels/config/entities/entity-registry-settings.ts b/src/panels/config/entities/entity-registry-settings.ts index 08bba1f705..782c4a466f 100644 --- a/src/panels/config/entities/entity-registry-settings.ts +++ b/src/panels/config/entities/entity-registry-settings.ts @@ -99,7 +99,7 @@ const OVERRIDE_SENSOR_UNITS = { pressure: ["hPa", "Pa", "kPa", "bar", "cbar", "mbar", "mmHg", "inHg", "psi"], }; -const SWITCH_AS_DOMAINS = ["light", "lock", "cover", "fan", "siren"]; +const SWITCH_AS_DOMAINS = ["cover", "fan", "light", "lock", "siren"]; @customElement("entity-registry-settings") export class EntityRegistrySettings extends SubscribeMixin(LitElement) { @@ -342,10 +342,14 @@ export class EntityRegistrySettings extends SubscribeMixin(LitElement) { ${domainToName(this.hass.localize, "switch")} - ${SWITCH_AS_DOMAINS.map( - (as_domain) => html` - - ${domainToName(this.hass.localize, as_domain)} +
  • + ${this._switchAsDomainsSorted( + SWITCH_AS_DOMAINS, + this.hass.localize + ).map( + (entry) => html` + + ${entry.label} ` )} @@ -729,6 +733,16 @@ export class EntityRegistrySettings extends SubscribeMixin(LitElement) { showOptionsFlowDialog(this, this._helperConfigEntry!); } + private _switchAsDomainsSorted = memoizeOne( + (domains: string[], localize: LocalizeFunc) => + domains + .map((entry) => ({ + domain: entry, + label: domainToName(localize, entry), + })) + .sort((a, b) => stringCompare(a.label, b.label)) + ); + private _deviceClassesSorted = memoizeOne( (domain: string, deviceClasses: string[], localize: LocalizeFunc) => deviceClasses