1
0
mirror of https://github.com/home-assistant/frontend.git synced 2025-12-20 02:38:53 +00:00
Files
frontend/src/common/entity/state_icon.js
Paulus Schoutsen f70c0aea6c Org files (#1183)
* Organize files

* Import EventsMixin

* Import NavigateMixin

* Dissolve window.hassMixins

* Apply ElementMixin when we use it

* Update tests to point at right dir

* Eslint

* Clean

* Update mixins inside hassio

* Update lint command"

* Fix polymer lint
2018-05-16 13:47:34 -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);
}