diff --git a/src/panels/lovelace/editor/unused-entities/hui-unused-entities.ts b/src/panels/lovelace/editor/unused-entities/hui-unused-entities.ts index 3e2aab27b2..cccf63a37a 100644 --- a/src/panels/lovelace/editor/unused-entities/hui-unused-entities.ts +++ b/src/panels/lovelace/editor/unused-entities/hui-unused-entities.ts @@ -10,6 +10,9 @@ import { } from "lit-element"; import { classMap } from "lit-html/directives/class-map"; + +import memoizeOne from "memoize-one"; + import "../../../../components/ha-fab"; import "../../../../components/entity/state-badge"; import "../../../../components/ha-relative-time"; @@ -17,7 +20,10 @@ import "../../../../components/ha-icon"; import "../../../../components/ha-data-table"; // tslint:disable-next-line -import { SelectionChangedEvent } from "../../../../components/ha-data-table"; +import { + SelectionChangedEvent, + DataTabelColumnContainer, +} from "../../../../components/ha-data-table"; import computeStateName from "../../../../common/entity/compute_state_name"; import computeDomain from "../../../../common/entity/compute_domain"; @@ -38,6 +44,8 @@ export class HuiUnusedEntities extends LitElement { @property() public hass?: HomeAssistant; + @property() public narrow?: boolean; + @property() private _unusedEntities: string[] = []; private _selectedEntities: string[] = []; @@ -46,31 +54,41 @@ export class HuiUnusedEntities extends LitElement { return this.lovelace!.config; } - private _columns = { - entity: { - title: "Entity", - sortable: true, - filterable: true, - filterKey: "friendly_name", - direction: "asc", - template: (stateObj) => html` -
- - ${stateObj.friendly_name} -
- `, - }, - entity_id: { + private _columns = memoizeOne((narrow: boolean) => { + const columns: DataTabelColumnContainer = { + entity: { + title: "Entity", + sortable: true, + filterable: true, + filterKey: "friendly_name", + direction: "asc", + template: (stateObj) => html` +
+ + ${stateObj.friendly_name} +
+ `, + }, + }; + + if (narrow) { + return columns; + } + + columns.entity_id = { title: "Entity id", sortable: true, filterable: true, - }, - domain: { + }; + columns.domain = { title: "Domain", sortable: true, filterable: true, - }, - last_changed: { + }; + columns.last_changed = { title: "Last Changed", type: "numeric", sortable: true, @@ -80,8 +98,10 @@ export class HuiUnusedEntities extends LitElement { .datetime=${lastChanged} > `, - }, - }; + }; + + return columns; + }); protected updated(changedProperties: PropertyValues): void { super.updated(changedProperties); @@ -114,7 +134,7 @@ export class HuiUnusedEntities extends LitElement { { const stateObj = this.hass!.states[entity]; return { diff --git a/src/panels/lovelace/hui-root.ts b/src/panels/lovelace/hui-root.ts index be69750dfa..939dba9c46 100644 --- a/src/panels/lovelace/hui-root.ts +++ b/src/panels/lovelace/hui-root.ts @@ -602,6 +602,7 @@ class HUIRoot extends LitElement { () => { unusedEntities.hass = this.hass!; unusedEntities.lovelace = this.lovelace!; + unusedEntities.narrow = this.narrow; } ); if (this.config.background) {