mirror of
https://github.com/home-assistant/frontend.git
synced 2025-06-25 03:26:34 +00:00
33 lines
865 B
JavaScript
33 lines
865 B
JavaScript
/** 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);
|
|
}
|