frontend/js/common/entity/state_icon.js
Paulus Schoutsen 912969111f
Move all of hassUtil to JS (#1153)
* Move all of hassUtil to JS

* Fix tests
2018-05-09 21:33:31 -04:00

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);
}