mirror of
https://github.com/home-assistant/frontend.git
synced 2025-11-12 04:20:28 +00:00
Default entity name to friendly name
This commit is contained in:
@@ -235,5 +235,8 @@
|
|||||||
"tslib": "2.8.1",
|
"tslib": "2.8.1",
|
||||||
"@material/mwc-list@^0.27.0": "patch:@material/mwc-list@npm%3A0.27.0#~/.yarn/patches/@material-mwc-list-npm-0.27.0-5344fc9de4.patch"
|
"@material/mwc-list@^0.27.0": "patch:@material/mwc-list@npm%3A0.27.0#~/.yarn/patches/@material-mwc-list-npm-0.27.0-5344fc9de4.patch"
|
||||||
},
|
},
|
||||||
"packageManager": "yarn@4.10.3"
|
"packageManager": "yarn@4.10.3",
|
||||||
|
"volta": {
|
||||||
|
"node": "22.21.1"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -312,7 +312,7 @@ export class HaEntityNamePicker extends LitElement {
|
|||||||
private _toValue = memoizeOne(
|
private _toValue = memoizeOne(
|
||||||
(items: EntityNameItem[]): typeof this.value => {
|
(items: EntityNameItem[]): typeof this.value => {
|
||||||
if (items.length === 0) {
|
if (items.length === 0) {
|
||||||
return "";
|
return undefined;
|
||||||
}
|
}
|
||||||
if (items.length === 1) {
|
if (items.length === 1) {
|
||||||
const item = items[0];
|
const item = items[0];
|
||||||
|
|||||||
@@ -1,28 +1,29 @@
|
|||||||
import type { HassEntity } from "home-assistant-js-websocket";
|
import type { HassEntity } from "home-assistant-js-websocket";
|
||||||
import {
|
|
||||||
DEFAULT_ENTITY_NAME,
|
|
||||||
type EntityNameItem,
|
|
||||||
} from "../../../../common/entity/compute_entity_name_display";
|
|
||||||
import type { HomeAssistant } from "../../../../types";
|
|
||||||
import { ensureArray } from "../../../../common/array/ensure-array";
|
import { ensureArray } from "../../../../common/array/ensure-array";
|
||||||
|
import type { EntityNameItem } from "../../../../common/entity/compute_entity_name_display";
|
||||||
|
import { computeStateName } from "../../../../common/entity/compute_state_name";
|
||||||
|
import type { HomeAssistant } from "../../../../types";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Computes the display name for an entity in Lovelace (cards and badges).
|
* Computes the display name for an entity in Lovelace (cards and badges).
|
||||||
*
|
*
|
||||||
* @param hass - The Home Assistant instance
|
* @param hass - The Home Assistant instance
|
||||||
* @param stateObj - The entity state object
|
* @param stateObj - The entity state object
|
||||||
* @param nameConfig - The name configuration (string for override, or EntityNameItem[] for structured naming)
|
* @param config - The name configuration (string for override, or EntityNameItem[] for structured naming)
|
||||||
* @returns The computed entity name
|
* @returns The computed entity name
|
||||||
*/
|
*/
|
||||||
export const computeLovelaceEntityName = (
|
export const computeLovelaceEntityName = (
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
stateObj: HassEntity | undefined,
|
stateObj: HassEntity | undefined,
|
||||||
nameConfig: string | EntityNameItem | EntityNameItem[] | undefined
|
config: string | EntityNameItem | EntityNameItem[] | undefined
|
||||||
): string => {
|
): string => {
|
||||||
if (typeof nameConfig === "string") {
|
// If no config is provided, fall back to the default state name
|
||||||
return nameConfig;
|
if (!config) {
|
||||||
|
return stateObj ? computeStateName(stateObj) : "";
|
||||||
|
}
|
||||||
|
if (typeof config === "string") {
|
||||||
|
return config;
|
||||||
}
|
}
|
||||||
const config = nameConfig || DEFAULT_ENTITY_NAME;
|
|
||||||
if (stateObj) {
|
if (stateObj) {
|
||||||
return hass.formatEntityName(stateObj, config);
|
return hass.formatEntityName(stateObj, config);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { customElement, property, state } from "lit/decorators";
|
|||||||
import memoizeOne from "memoize-one";
|
import memoizeOne from "memoize-one";
|
||||||
import { array, assert, assign, object, optional, string } from "superstruct";
|
import { array, assert, assign, object, optional, string } from "superstruct";
|
||||||
import { fireEvent } from "../../../../common/dom/fire_event";
|
import { fireEvent } from "../../../../common/dom/fire_event";
|
||||||
import { DEFAULT_ENTITY_NAME } from "../../../../common/entity/compute_entity_name_display";
|
|
||||||
import { supportsFeature } from "../../../../common/entity/supports-feature";
|
import { supportsFeature } from "../../../../common/entity/supports-feature";
|
||||||
import type { LocalizeFunc } from "../../../../common/translations/localize";
|
import type { LocalizeFunc } from "../../../../common/translations/localize";
|
||||||
import "../../../../components/ha-form/ha-form";
|
import "../../../../components/ha-form/ha-form";
|
||||||
@@ -65,9 +64,7 @@ export class HuiAlarmPanelCardEditor
|
|||||||
{
|
{
|
||||||
name: "name",
|
name: "name",
|
||||||
selector: {
|
selector: {
|
||||||
entity_name: {
|
entity_name: {},
|
||||||
default_name: DEFAULT_ENTITY_NAME,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
context: { entity: "entity" },
|
context: { entity: "entity" },
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import { customElement, property, state } from "lit/decorators";
|
|||||||
import memoizeOne from "memoize-one";
|
import memoizeOne from "memoize-one";
|
||||||
import { assert, assign, boolean, object, optional, string } from "superstruct";
|
import { assert, assign, boolean, object, optional, string } from "superstruct";
|
||||||
import { fireEvent } from "../../../../common/dom/fire_event";
|
import { fireEvent } from "../../../../common/dom/fire_event";
|
||||||
import { DEFAULT_ENTITY_NAME } from "../../../../common/entity/compute_entity_name_display";
|
|
||||||
import "../../../../components/ha-form/ha-form";
|
import "../../../../components/ha-form/ha-form";
|
||||||
import type {
|
import type {
|
||||||
HaFormSchema,
|
HaFormSchema,
|
||||||
@@ -73,7 +72,7 @@ export class HuiButtonCardEditor
|
|||||||
{
|
{
|
||||||
name: "name",
|
name: "name",
|
||||||
selector: {
|
selector: {
|
||||||
entity_name: { default_name: DEFAULT_ENTITY_NAME },
|
entity_name: {},
|
||||||
},
|
},
|
||||||
context: { entity: "entity" },
|
context: { entity: "entity" },
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ import {
|
|||||||
string,
|
string,
|
||||||
union,
|
union,
|
||||||
} from "superstruct";
|
} from "superstruct";
|
||||||
import { DEFAULT_ENTITY_NAME } from "../../../../common/entity/compute_entity_name_display";
|
|
||||||
import { fireEvent } from "../../../../common/dom/fire_event";
|
import { fireEvent } from "../../../../common/dom/fire_event";
|
||||||
import type { LocalizeFunc } from "../../../../common/translations/localize";
|
import type { LocalizeFunc } from "../../../../common/translations/localize";
|
||||||
import "../../../../components/ha-form/ha-form";
|
import "../../../../components/ha-form/ha-form";
|
||||||
@@ -86,9 +85,7 @@ export class HuiEntityBadgeEditor
|
|||||||
{
|
{
|
||||||
name: "name",
|
name: "name",
|
||||||
selector: {
|
selector: {
|
||||||
entity_name: {
|
entity_name: {},
|
||||||
default_name: DEFAULT_ENTITY_NAME,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
context: { entity: "entity" },
|
context: { entity: "entity" },
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import { assert, assign, boolean, object, optional, string } from "superstruct";
|
import { assert, assign, boolean, object, optional, string } from "superstruct";
|
||||||
import { DEFAULT_ENTITY_NAME } from "../../../../common/entity/compute_entity_name_display";
|
|
||||||
import type { LocalizeFunc } from "../../../../common/translations/localize";
|
import type { LocalizeFunc } from "../../../../common/translations/localize";
|
||||||
import type { HaFormSchema } from "../../../../components/ha-form/types";
|
import type { HaFormSchema } from "../../../../components/ha-form/types";
|
||||||
import { headerFooterConfigStructs } from "../../header-footer/structs";
|
import { headerFooterConfigStructs } from "../../header-footer/structs";
|
||||||
@@ -26,9 +25,7 @@ const SCHEMA = [
|
|||||||
{
|
{
|
||||||
name: "name",
|
name: "name",
|
||||||
selector: {
|
selector: {
|
||||||
entity_name: {
|
entity_name: {},
|
||||||
default_name: DEFAULT_ENTITY_NAME,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
context: { entity: "entity" },
|
context: { entity: "entity" },
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ import {
|
|||||||
string,
|
string,
|
||||||
} from "superstruct";
|
} from "superstruct";
|
||||||
import { fireEvent } from "../../../../common/dom/fire_event";
|
import { fireEvent } from "../../../../common/dom/fire_event";
|
||||||
import { DEFAULT_ENTITY_NAME } from "../../../../common/entity/compute_entity_name_display";
|
|
||||||
import "../../../../components/ha-form/ha-form";
|
import "../../../../components/ha-form/ha-form";
|
||||||
import type { SchemaUnion } from "../../../../components/ha-form/types";
|
import type { SchemaUnion } from "../../../../components/ha-form/types";
|
||||||
import { NON_NUMERIC_ATTRIBUTES } from "../../../../data/entity_attributes";
|
import { NON_NUMERIC_ATTRIBUTES } from "../../../../data/entity_attributes";
|
||||||
@@ -102,9 +101,7 @@ export class HuiGaugeCardEditor
|
|||||||
{
|
{
|
||||||
name: "name",
|
name: "name",
|
||||||
selector: {
|
selector: {
|
||||||
entity_name: {
|
entity_name: {},
|
||||||
default_name: DEFAULT_ENTITY_NAME,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
context: { entity: "entity" },
|
context: { entity: "entity" },
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ import {
|
|||||||
} from "superstruct";
|
} from "superstruct";
|
||||||
import type { HASSDomEvent } from "../../../../common/dom/fire_event";
|
import type { HASSDomEvent } from "../../../../common/dom/fire_event";
|
||||||
import { fireEvent } from "../../../../common/dom/fire_event";
|
import { fireEvent } from "../../../../common/dom/fire_event";
|
||||||
import { DEFAULT_ENTITY_NAME } from "../../../../common/entity/compute_entity_name_display";
|
|
||||||
import "../../../../components/ha-expansion-panel";
|
import "../../../../components/ha-expansion-panel";
|
||||||
import "../../../../components/ha-form/ha-form";
|
import "../../../../components/ha-form/ha-form";
|
||||||
import type {
|
import type {
|
||||||
@@ -61,9 +60,7 @@ const SCHEMA = [
|
|||||||
{
|
{
|
||||||
name: "name",
|
name: "name",
|
||||||
selector: {
|
selector: {
|
||||||
entity_name: {
|
entity_name: {},
|
||||||
default_name: DEFAULT_ENTITY_NAME,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
context: { entity: "entity" },
|
context: { entity: "entity" },
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
|
import { mdiGestureTap } from "@mdi/js";
|
||||||
import type { CSSResultGroup } from "lit";
|
import type { CSSResultGroup } from "lit";
|
||||||
import { html, LitElement, nothing } from "lit";
|
import { html, LitElement, nothing } from "lit";
|
||||||
import { customElement, property, state } from "lit/decorators";
|
import { customElement, property, state } from "lit/decorators";
|
||||||
import { assert, assign, object, optional, string } from "superstruct";
|
import { assert, assign, object, optional, string } from "superstruct";
|
||||||
import { mdiGestureTap } from "@mdi/js";
|
|
||||||
import { fireEvent } from "../../../../common/dom/fire_event";
|
import { fireEvent } from "../../../../common/dom/fire_event";
|
||||||
import { DEFAULT_ENTITY_NAME } from "../../../../common/entity/compute_entity_name_display";
|
|
||||||
import "../../../../components/ha-form/ha-form";
|
import "../../../../components/ha-form/ha-form";
|
||||||
import type { SchemaUnion } from "../../../../components/ha-form/types";
|
import type { SchemaUnion } from "../../../../components/ha-form/types";
|
||||||
import type { HomeAssistant } from "../../../../types";
|
import type { HomeAssistant } from "../../../../types";
|
||||||
@@ -37,9 +36,7 @@ const SCHEMA = [
|
|||||||
{
|
{
|
||||||
name: "name",
|
name: "name",
|
||||||
selector: {
|
selector: {
|
||||||
entity_name: {
|
entity_name: {},
|
||||||
default_name: DEFAULT_ENTITY_NAME,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
context: { entity: "entity" },
|
context: { entity: "entity" },
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { html, LitElement, nothing } from "lit";
|
|||||||
import { customElement, property, state } from "lit/decorators";
|
import { customElement, property, state } from "lit/decorators";
|
||||||
import { assert, assign, object, optional, string } from "superstruct";
|
import { assert, assign, object, optional, string } from "superstruct";
|
||||||
import { fireEvent } from "../../../../common/dom/fire_event";
|
import { fireEvent } from "../../../../common/dom/fire_event";
|
||||||
import { DEFAULT_ENTITY_NAME } from "../../../../common/entity/compute_entity_name_display";
|
|
||||||
import "../../../../components/ha-form/ha-form";
|
import "../../../../components/ha-form/ha-form";
|
||||||
import type {
|
import type {
|
||||||
HaFormSchema,
|
HaFormSchema,
|
||||||
@@ -33,9 +32,7 @@ const SCHEMA = [
|
|||||||
{
|
{
|
||||||
name: "name",
|
name: "name",
|
||||||
selector: {
|
selector: {
|
||||||
entity_name: {
|
entity_name: {},
|
||||||
default_name: DEFAULT_ENTITY_NAME,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
context: { entity: "entity" },
|
context: { entity: "entity" },
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import memoizeOne from "memoize-one";
|
|
||||||
import { mdiGestureTap } from "@mdi/js";
|
import { mdiGestureTap } from "@mdi/js";
|
||||||
import type { CSSResultGroup } from "lit";
|
import type { CSSResultGroup } from "lit";
|
||||||
import { html, LitElement, nothing } from "lit";
|
import { html, LitElement, nothing } from "lit";
|
||||||
import { customElement, property, state } from "lit/decorators";
|
import { customElement, property, state } from "lit/decorators";
|
||||||
|
import memoizeOne from "memoize-one";
|
||||||
import {
|
import {
|
||||||
assert,
|
assert,
|
||||||
assign,
|
assign,
|
||||||
@@ -15,7 +15,6 @@ import {
|
|||||||
} from "superstruct";
|
} from "superstruct";
|
||||||
import { fireEvent } from "../../../../common/dom/fire_event";
|
import { fireEvent } from "../../../../common/dom/fire_event";
|
||||||
import { computeDomain } from "../../../../common/entity/compute_domain";
|
import { computeDomain } from "../../../../common/entity/compute_domain";
|
||||||
import { DEFAULT_ENTITY_NAME } from "../../../../common/entity/compute_entity_name_display";
|
|
||||||
import type { LocalizeFunc } from "../../../../common/translations/localize";
|
import type { LocalizeFunc } from "../../../../common/translations/localize";
|
||||||
import "../../../../components/ha-form/ha-form";
|
import "../../../../components/ha-form/ha-form";
|
||||||
import type {
|
import type {
|
||||||
@@ -71,9 +70,7 @@ export class HuiPictureEntityCardEditor
|
|||||||
{
|
{
|
||||||
name: "name",
|
name: "name",
|
||||||
selector: {
|
selector: {
|
||||||
entity_name: {
|
entity_name: {},
|
||||||
default_name: DEFAULT_ENTITY_NAME,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
context: { entity: "entity" },
|
context: { entity: "entity" },
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { html, LitElement, nothing } from "lit";
|
|||||||
import { customElement, property, state } from "lit/decorators";
|
import { customElement, property, state } from "lit/decorators";
|
||||||
import { assert, assign, object, optional, string } from "superstruct";
|
import { assert, assign, object, optional, string } from "superstruct";
|
||||||
import { fireEvent } from "../../../../common/dom/fire_event";
|
import { fireEvent } from "../../../../common/dom/fire_event";
|
||||||
import { DEFAULT_ENTITY_NAME } from "../../../../common/entity/compute_entity_name_display";
|
|
||||||
import "../../../../components/ha-form/ha-form";
|
import "../../../../components/ha-form/ha-form";
|
||||||
import type { SchemaUnion } from "../../../../components/ha-form/types";
|
import type { SchemaUnion } from "../../../../components/ha-form/types";
|
||||||
import type { HomeAssistant } from "../../../../types";
|
import type { HomeAssistant } from "../../../../types";
|
||||||
@@ -25,9 +24,7 @@ const SCHEMA = [
|
|||||||
{
|
{
|
||||||
name: "name",
|
name: "name",
|
||||||
selector: {
|
selector: {
|
||||||
entity_name: {
|
entity_name: {},
|
||||||
default_name: DEFAULT_ENTITY_NAME,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
context: { entity: "entity" },
|
context: { entity: "entity" },
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import memoizeOne from "memoize-one";
|
|
||||||
import type { CSSResultGroup } from "lit";
|
import type { CSSResultGroup } from "lit";
|
||||||
import { html, LitElement, nothing } from "lit";
|
import { html, LitElement, nothing } from "lit";
|
||||||
import { customElement, property, state } from "lit/decorators";
|
import { customElement, property, state } from "lit/decorators";
|
||||||
|
import memoizeOne from "memoize-one";
|
||||||
import {
|
import {
|
||||||
assert,
|
assert,
|
||||||
assign,
|
assign,
|
||||||
@@ -12,18 +12,17 @@ import {
|
|||||||
string,
|
string,
|
||||||
union,
|
union,
|
||||||
} from "superstruct";
|
} from "superstruct";
|
||||||
import { DEFAULT_ENTITY_NAME } from "../../../../common/entity/compute_entity_name_display";
|
|
||||||
import type { LocalizeFunc } from "../../../../common/translations/localize";
|
|
||||||
import { fireEvent } from "../../../../common/dom/fire_event";
|
import { fireEvent } from "../../../../common/dom/fire_event";
|
||||||
|
import type { LocalizeFunc } from "../../../../common/translations/localize";
|
||||||
import "../../../../components/ha-form/ha-form";
|
import "../../../../components/ha-form/ha-form";
|
||||||
import type { SchemaUnion } from "../../../../components/ha-form/types";
|
import type { SchemaUnion } from "../../../../components/ha-form/types";
|
||||||
import type { HomeAssistant } from "../../../../types";
|
import type { HomeAssistant } from "../../../../types";
|
||||||
|
import { DEFAULT_HOURS_TO_SHOW } from "../../cards/hui-sensor-card";
|
||||||
import type { SensorCardConfig } from "../../cards/types";
|
import type { SensorCardConfig } from "../../cards/types";
|
||||||
import type { LovelaceCardEditor } from "../../types";
|
import type { LovelaceCardEditor } from "../../types";
|
||||||
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
|
import { baseLovelaceCardConfig } from "../structs/base-card-struct";
|
||||||
import { entityNameStruct } from "../structs/entity-name-struct";
|
import { entityNameStruct } from "../structs/entity-name-struct";
|
||||||
import { configElementStyle } from "./config-elements-style";
|
import { configElementStyle } from "./config-elements-style";
|
||||||
import { DEFAULT_HOURS_TO_SHOW } from "../../cards/hui-sensor-card";
|
|
||||||
|
|
||||||
const cardConfigStruct = assign(
|
const cardConfigStruct = assign(
|
||||||
baseLovelaceCardConfig,
|
baseLovelaceCardConfig,
|
||||||
@@ -71,9 +70,7 @@ export class HuiSensorCardEditor
|
|||||||
{
|
{
|
||||||
name: "name",
|
name: "name",
|
||||||
selector: {
|
selector: {
|
||||||
entity_name: {
|
entity_name: {},
|
||||||
default_name: DEFAULT_ENTITY_NAME,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
context: { entity: "entity" },
|
context: { entity: "entity" },
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import {
|
|||||||
} from "superstruct";
|
} from "superstruct";
|
||||||
import type { HASSDomEvent } from "../../../../common/dom/fire_event";
|
import type { HASSDomEvent } from "../../../../common/dom/fire_event";
|
||||||
import { fireEvent } from "../../../../common/dom/fire_event";
|
import { fireEvent } from "../../../../common/dom/fire_event";
|
||||||
import { DEFAULT_ENTITY_NAME } from "../../../../common/entity/compute_entity_name_display";
|
import { computeDomain } from "../../../../common/entity/compute_domain";
|
||||||
import "../../../../components/ha-expansion-panel";
|
import "../../../../components/ha-expansion-panel";
|
||||||
import "../../../../components/ha-form/ha-form";
|
import "../../../../components/ha-form/ha-form";
|
||||||
import type {
|
import type {
|
||||||
@@ -35,7 +35,6 @@ import type { EditDetailElementEvent, EditSubElementEvent } from "../types";
|
|||||||
import { configElementStyle } from "./config-elements-style";
|
import { configElementStyle } from "./config-elements-style";
|
||||||
import "./hui-card-features-editor";
|
import "./hui-card-features-editor";
|
||||||
import type { FeatureType } from "./hui-card-features-editor";
|
import type { FeatureType } from "./hui-card-features-editor";
|
||||||
import { computeDomain } from "../../../../common/entity/compute_domain";
|
|
||||||
|
|
||||||
const COMPATIBLE_FEATURES_TYPES: Record<string, FeatureType[]> = {
|
const COMPATIBLE_FEATURES_TYPES: Record<string, FeatureType[]> = {
|
||||||
climate: [
|
climate: [
|
||||||
@@ -89,9 +88,7 @@ export class HuiThermostatCardEditor
|
|||||||
{
|
{
|
||||||
name: "name",
|
name: "name",
|
||||||
selector: {
|
selector: {
|
||||||
entity_name: {
|
entity_name: {},
|
||||||
default_name: DEFAULT_ENTITY_NAME,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
context: { entity: "entity" },
|
context: { entity: "entity" },
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ import {
|
|||||||
} from "superstruct";
|
} from "superstruct";
|
||||||
import type { HASSDomEvent } from "../../../../common/dom/fire_event";
|
import type { HASSDomEvent } from "../../../../common/dom/fire_event";
|
||||||
import { fireEvent } from "../../../../common/dom/fire_event";
|
import { fireEvent } from "../../../../common/dom/fire_event";
|
||||||
import { DEFAULT_ENTITY_NAME } from "../../../../common/entity/compute_entity_name_display";
|
|
||||||
import type { LocalizeFunc } from "../../../../common/translations/localize";
|
import type { LocalizeFunc } from "../../../../common/translations/localize";
|
||||||
import { orderProperties } from "../../../../common/util/order-properties";
|
import { orderProperties } from "../../../../common/util/order-properties";
|
||||||
import "../../../../components/ha-expansion-panel";
|
import "../../../../components/ha-expansion-panel";
|
||||||
@@ -102,9 +101,7 @@ export class HuiTileCardEditor
|
|||||||
{
|
{
|
||||||
name: "name",
|
name: "name",
|
||||||
selector: {
|
selector: {
|
||||||
entity_name: {
|
entity_name: {},
|
||||||
default_name: DEFAULT_ENTITY_NAME,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
context: { entity: "entity" },
|
context: { entity: "entity" },
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import {
|
|||||||
string,
|
string,
|
||||||
} from "superstruct";
|
} from "superstruct";
|
||||||
import { fireEvent } from "../../../../common/dom/fire_event";
|
import { fireEvent } from "../../../../common/dom/fire_event";
|
||||||
import { DEFAULT_ENTITY_NAME } from "../../../../common/entity/compute_entity_name_display";
|
|
||||||
import { supportsFeature } from "../../../../common/entity/supports-feature";
|
import { supportsFeature } from "../../../../common/entity/supports-feature";
|
||||||
import type { LocalizeFunc } from "../../../../common/translations/localize";
|
import type { LocalizeFunc } from "../../../../common/translations/localize";
|
||||||
import "../../../../components/ha-form/ha-form";
|
import "../../../../components/ha-form/ha-form";
|
||||||
@@ -153,9 +152,7 @@ export class HuiWeatherForecastCardEditor
|
|||||||
{
|
{
|
||||||
name: "name",
|
name: "name",
|
||||||
selector: {
|
selector: {
|
||||||
entity_name: {
|
entity_name: {},
|
||||||
default_name: DEFAULT_ENTITY_NAME,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
context: { entity: "entity" },
|
context: { entity: "entity" },
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ import {
|
|||||||
union,
|
union,
|
||||||
} from "superstruct";
|
} from "superstruct";
|
||||||
import { fireEvent } from "../../../../common/dom/fire_event";
|
import { fireEvent } from "../../../../common/dom/fire_event";
|
||||||
import { DEFAULT_ENTITY_NAME } from "../../../../common/entity/compute_entity_name_display";
|
|
||||||
import type { LocalizeFunc } from "../../../../common/translations/localize";
|
import type { LocalizeFunc } from "../../../../common/translations/localize";
|
||||||
import "../../../../components/ha-expansion-panel";
|
import "../../../../components/ha-expansion-panel";
|
||||||
import "../../../../components/ha-form/ha-form";
|
import "../../../../components/ha-form/ha-form";
|
||||||
@@ -94,9 +93,7 @@ export class HuiHeadingEntityEditor
|
|||||||
{
|
{
|
||||||
name: "name",
|
name: "name",
|
||||||
selector: {
|
selector: {
|
||||||
entity_name: {
|
entity_name: {},
|
||||||
default_name: DEFAULT_ENTITY_NAME,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
context: { entity: "entity" },
|
context: { entity: "entity" },
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import { describe, expect, it, vi } from "vitest";
|
import { describe, expect, it, vi } from "vitest";
|
||||||
import { DEFAULT_ENTITY_NAME } from "../../../../../src/common/entity/compute_entity_name_display";
|
|
||||||
import { computeLovelaceEntityName } from "../../../../../src/panels/lovelace/common/entity/compute-lovelace-entity-name";
|
import { computeLovelaceEntityName } from "../../../../../src/panels/lovelace/common/entity/compute-lovelace-entity-name";
|
||||||
import type { HomeAssistant } from "../../../../../src/types";
|
import type { HomeAssistant } from "../../../../../src/types";
|
||||||
import { mockStateObj } from "../../../../common/entity/context/context-mock";
|
import { mockStateObj } from "../../../../common/entity/context/context-mock";
|
||||||
@@ -23,30 +22,29 @@ describe("computeLovelaceEntityName", () => {
|
|||||||
expect(mockFormatEntityName).not.toHaveBeenCalled();
|
expect(mockFormatEntityName).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("returns empty string when nameConfig is empty string", () => {
|
it("return state name when nameConfig is empty string", () => {
|
||||||
const mockFormatEntityName = vi.fn();
|
const mockFormatEntityName = vi.fn();
|
||||||
const hass = createMockHass(mockFormatEntityName);
|
const hass = createMockHass(mockFormatEntityName);
|
||||||
const stateObj = mockStateObj({ entity_id: "light.kitchen" });
|
const stateObj = mockStateObj({ entity_id: "light.kitchen" });
|
||||||
|
|
||||||
const result = computeLovelaceEntityName(hass, stateObj, "");
|
const result = computeLovelaceEntityName(hass, stateObj, "");
|
||||||
|
|
||||||
expect(result).toBe("");
|
expect(result).toBe("Kitchen Light");
|
||||||
expect(mockFormatEntityName).not.toHaveBeenCalled();
|
expect(mockFormatEntityName).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("calls formatEntityName with DEFAULT_ENTITY_NAME when nameConfig is undefined", () => {
|
it("return state name when nameConfig is undefined", () => {
|
||||||
const mockFormatEntityName = vi.fn(() => "Formatted Name");
|
const mockFormatEntityName = vi.fn(() => "Formatted Name");
|
||||||
const hass = createMockHass(mockFormatEntityName);
|
const hass = createMockHass(mockFormatEntityName);
|
||||||
const stateObj = mockStateObj({ entity_id: "light.kitchen" });
|
const stateObj = mockStateObj({
|
||||||
|
entity_id: "light.kitchen",
|
||||||
|
attributes: { friendly_name: "Kitchen Light" },
|
||||||
|
});
|
||||||
|
|
||||||
const result = computeLovelaceEntityName(hass, stateObj, undefined);
|
const result = computeLovelaceEntityName(hass, stateObj, undefined);
|
||||||
|
|
||||||
expect(result).toBe("Formatted Name");
|
expect(result).toBe("Kitchen Light");
|
||||||
expect(mockFormatEntityName).toHaveBeenCalledTimes(1);
|
expect(mockFormatEntityName).not.toHaveBeenCalled();
|
||||||
expect(mockFormatEntityName).toHaveBeenCalledWith(
|
|
||||||
stateObj,
|
|
||||||
DEFAULT_ENTITY_NAME
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it("calls formatEntityName with EntityNameItem config", () => {
|
it("calls formatEntityName with EntityNameItem config", () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user