/** Return an icon representing a state. */ import { DEFAULT_DOMAIN_ICON } from '../const.js'; import computeDomain from './compute_domain.js'; import domainIcon from './domain_icon.js'; import binarySensorIcon from './binary_sensor_icon.js'; import coverIcon from './cover_icon.js'; import sensorIcon from './sensor_icon.js'; import inputDateTimeIcon from './input_dateteime_icon.js'; const domainIcons = { binary_sensor: binarySensorIcon, cover: coverIcon, sensor: sensorIcon, input_datetime: inputDateTimeIcon, }; export default function stateIcon(state) { if (!state) { return DEFAULT_DOMAIN_ICON; } else if (state.attributes.icon) { return state.attributes.icon; } const domain = computeDomain(state.entity_id); if (domain in domainIcons) { return domainIcons[domain](state); } return domainIcon(domain, state.state); }