From debc3adf19e1667be3df922469af25e44cbfbac7 Mon Sep 17 00:00:00 2001 From: Wendelin <12148533+wendevlin@users.noreply.github.com> Date: Tue, 31 Mar 2026 12:47:17 +0200 Subject: [PATCH] Remove hass property in ha-data-table (#51304) --- gallery/src/pages/misc/entity-state.ts | 1 - src/components/data-table/ha-data-table.ts | 43 +++++++++++-------- src/layouts/hass-tabs-subpage-data-table.ts | 1 - .../config/apps/ha-config-apps-registries.ts | 1 - .../apps/ha-config-apps-repositories.ts | 1 - .../statistics/developer-tools-statistics.ts | 1 - .../config/hardware/ha-config-hardware-all.ts | 1 - .../zha/zha-clusters-data-table.ts | 1 - .../zha/zha-device-endpoint-data-table.ts | 1 - .../zha/zha-device-neighbors.ts | 1 - ...-config-voice-assistants-assist-devices.ts | 1 - .../card-editor/hui-entity-picker-table.ts | 1 - 12 files changed, 24 insertions(+), 30 deletions(-) diff --git a/gallery/src/pages/misc/entity-state.ts b/gallery/src/pages/misc/entity-state.ts index 832fdaba02..f51c979d2c 100644 --- a/gallery/src/pages/misc/entity-state.ts +++ b/gallery/src/pages/misc/entity-state.ts @@ -422,7 +422,6 @@ export class DemoEntityState extends LitElement { return html` ; - @property({ attribute: false }) public localizeFunc?: LocalizeFunc; + @state() + @consume({ context: localeContext, subscribe: true }) + private _locale?: ContextType; @property({ type: Boolean }) public narrow = false; @@ -378,8 +384,6 @@ export class HaDataTable extends LitElement { ); protected render() { - const localize = this.localizeFunc || this.hass.localize; - const columns = this._sortedColumns(this.columns, this.columnOrder); const renderRow = (row: DataTableRowData, index: number) => @@ -503,7 +507,8 @@ export class HaDataTable extends LitElement {
${this.noDataText || - localize("ui.components.data-table.no-data")} + this._localize?.("ui.components.data-table.no-data") || + "No data"}
@@ -515,7 +520,8 @@ export class HaDataTable extends LitElement { @scroll=${this._saveScrollPos} .items=${this._groupData( this._filteredData, - localize, + this._localize, + this._locale, this.appendRow, this.groupColumn, this.groupOrder, @@ -685,7 +691,7 @@ export class HaDataTable extends LitElement { this._sortColumns[this.sortColumn], this.sortDirection, this.sortColumn, - this.hass.locale.language + this._locale?.language ) : filteredData; @@ -711,7 +717,8 @@ export class HaDataTable extends LitElement { private _groupData = memoizeOne( ( data: DataTableRowData[], - localize: LocalizeFunc, + localize: LocalizeFunc | undefined, + locale: FrontendLocaleData | undefined, appendRow, groupColumn: string | undefined, groupOrder: string[] | undefined, @@ -735,11 +742,7 @@ export class HaDataTable extends LitElement { ) .sort((a, b) => { if (!groupOrder && isGroupSortColumn) { - const comparison = stringCompare( - a, - b, - this.hass.locale.language - ); + const comparison = stringCompare(a, b, locale?.language); if (sortDirection === "asc") { return comparison; } @@ -760,7 +763,7 @@ export class HaDataTable extends LitElement { return stringCompare( ["", "-", "—"].includes(a) ? "zzz" : a, ["", "-", "—"].includes(b) ? "zzz" : b, - this.hass.locale.language + locale?.language ); }) .reduce( @@ -787,14 +790,15 @@ export class HaDataTable extends LitElement { > ${groupName === UNDEFINED_GROUP_KEY - ? localize("ui.components.data-table.ungrouped") + ? localize?.("ui.components.data-table.ungrouped") || + "Ungrouped" : groupName || ""} `, }); @@ -863,7 +867,8 @@ export class HaDataTable extends LitElement { const groupedData = this._groupData( this._filteredData, - this.localizeFunc || this.hass.localize, + this._localize, + this._locale, this.appendRow, this.groupColumn, this.groupOrder, diff --git a/src/layouts/hass-tabs-subpage-data-table.ts b/src/layouts/hass-tabs-subpage-data-table.ts index d2affd89ae..a4dc138d55 100644 --- a/src/layouts/hass-tabs-subpage-data-table.ts +++ b/src/layouts/hass-tabs-subpage-data-table.ts @@ -505,7 +505,6 @@ export class HaTabsSubpageDataTable extends KeyboardShortcutMixin(LitElement) { ` : ""} ` : html`