From ccf670465bfa43781a86ad690de8bc2b15771a7a Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Wed, 1 Mar 2023 11:30:11 +0100 Subject: [PATCH] Fix statistics name sorting in developer tools (#15646) --- .../statistics/developer-tools-statistics.ts | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/src/panels/developer-tools/statistics/developer-tools-statistics.ts b/src/panels/developer-tools/statistics/developer-tools-statistics.ts index 7dee426178..0e3c6bb3eb 100644 --- a/src/panels/developer-tools/statistics/developer-tools-statistics.ts +++ b/src/panels/developer-tools/statistics/developer-tools-statistics.ts @@ -34,16 +34,23 @@ const FIX_ISSUES_ORDER = { unsupported_state_class: 2, units_changed: 3, }; + +type StatisticData = StatisticsMetaData & { + issues?: StatisticsValidationResult[]; + state?: HassEntity; +}; + +type DisplayedStatisticData = StatisticData & { + displayName: string; +}; + @customElement("developer-tools-statistics") class HaPanelDevStatistics extends SubscribeMixin(LitElement) { @property({ attribute: false }) public hass!: HomeAssistant; @property({ type: Boolean }) public narrow!: boolean; - @state() private _data: (StatisticsMetaData & { - issues?: StatisticsValidationResult[]; - state?: HassEntity; - })[] = [] as StatisticsMetaData[]; + @state() private _data: StatisticData[] = [] as StatisticsMetaData[]; private _disabledEntities = new Set(); @@ -51,17 +58,23 @@ class HaPanelDevStatistics extends SubscribeMixin(LitElement) { this._validateStatistics(); } + private _displayData = memoizeOne( + (data: StatisticData[]): DisplayedStatisticData[] => + data.map((item) => ({ + ...item, + displayName: item.state + ? computeStateName(item.state) + : item.name || item.statistic_id, + })) + ); + private _columns = memoizeOne( (localize): DataTableColumnContainer => ({ - state: { + displayName: { title: "Name", sortable: true, filterable: true, grows: true, - template: (entityState, data: any) => - html`${entityState - ? computeStateName(entityState) - : data.name || data.statistic_id}`, }, statistic_id: { title: "Statistic id", @@ -140,7 +153,7 @@ class HaPanelDevStatistics extends SubscribeMixin(LitElement) { return html`