diff --git a/src/panels/lovelace/entity-rows/hui-toggle-entity-row.js b/src/panels/lovelace/entity-rows/hui-toggle-entity-row.js index dd412595d3..dc103cfacb 100644 --- a/src/panels/lovelace/entity-rows/hui-toggle-entity-row.js +++ b/src/panels/lovelace/entity-rows/hui-toggle-entity-row.js @@ -4,14 +4,31 @@ import { PolymerElement } from '@polymer/polymer/polymer-element.js'; import '../components/hui-generic-entity-row.js'; import '../../../components/entity/ha-entity-toggle.js'; -class HuiToggleEntityRow extends PolymerElement { +import computeStateDisplay from '../../../common/entity/compute_state_display.js'; + +import LocalizeMixin from '../../../mixins/localize-mixin.js'; + +/* + * @appliesMixin LocalizeMixin + */ +class HuiToggleEntityRow extends LocalizeMixin(PolymerElement) { static get template() { return html` - + + `; } @@ -19,7 +36,15 @@ class HuiToggleEntityRow extends PolymerElement { static get properties() { return { hass: Object, - _config: Object + _config: Object, + _stateObj: { + type: Object, + computed: '_computeStateObj(hass.states, _config.entity)' + }, + _canToggle: { + type: Boolean, + computed: '_computeCanToggle(_stateObj.state)' + } }; } @@ -27,6 +52,14 @@ class HuiToggleEntityRow extends PolymerElement { return states && entityId in states ? states[entityId] : null; } + _computeCanToggle(state) { + return state === 'on' || state === 'off'; + } + + _computeState(stateObj) { + return stateObj && computeStateDisplay(this.localize, stateObj); + } + setConfig(config) { if (!config || !config.entity) { throw new Error('Entity not configured.');