From a433ac48e99e0ec154283a0ec8ba5e057c8d1462 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Wed, 25 Jan 2023 11:05:35 +0100 Subject: [PATCH] Use device class icon for number domain (#15194) --- src/common/entity/domain_icon.ts | 14 ++++++++++++-- src/common/entity/number_icon.ts | 13 +++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 src/common/entity/number_icon.ts diff --git a/src/common/entity/domain_icon.ts b/src/common/entity/domain_icon.ts index 1387f13e71..38295a7612 100644 --- a/src/common/entity/domain_icon.ts +++ b/src/common/entity/domain_icon.ts @@ -3,6 +3,8 @@ import { mdiAccountArrowRight, mdiAirHumidifier, mdiAirHumidifierOff, + mdiAudioVideo, + mdiAudioVideoOff, mdiBluetooth, mdiBluetoothConnect, mdiCalendar, @@ -25,8 +27,6 @@ import { mdiPackageUp, mdiPowerPlug, mdiPowerPlugOff, - mdiAudioVideo, - mdiAudioVideoOff, mdiRestart, mdiSpeaker, mdiSpeakerOff, @@ -53,6 +53,7 @@ import { DEFAULT_DOMAIN_ICON, FIXED_DOMAIN_ICONS } from "../const"; import { alarmPanelIcon } from "./alarm_panel_icon"; import { binarySensorIcon } from "./binary_sensor_icon"; import { coverIcon } from "./cover_icon"; +import { numberIcon } from "./number_icon"; import { sensorIcon } from "./sensor_icon"; export const domainIcon = ( @@ -180,6 +181,15 @@ export const domainIconWithoutDefault = ( } } + case "number": { + const icon = numberIcon(stateObj); + if (icon) { + return icon; + } + + break; + } + case "person": return compareState === "not_home" ? mdiAccountArrowRight : mdiAccount; diff --git a/src/common/entity/number_icon.ts b/src/common/entity/number_icon.ts new file mode 100644 index 0000000000..c468be6fed --- /dev/null +++ b/src/common/entity/number_icon.ts @@ -0,0 +1,13 @@ +/** Return an icon representing a number state. */ +import { HassEntity } from "home-assistant-js-websocket"; +import { FIXED_DEVICE_CLASS_ICONS } from "../const"; + +export const numberIcon = (stateObj?: HassEntity): string | undefined => { + const dclass = stateObj?.attributes.device_class; + + if (dclass && dclass in FIXED_DEVICE_CLASS_ICONS) { + return FIXED_DEVICE_CLASS_ICONS[dclass]; + } + + return undefined; +};