Picture glance: introduce DOMAINS_TOGGLE (#1440)

* Picture glance: introduce DOMAINS_TOGGLE

* Use set instead of array
This commit is contained in:
c727 2018-07-12 11:58:11 +02:00 committed by Paulus Schoutsen
parent c5fd32afac
commit 1b262f7cea

View File

@ -6,7 +6,6 @@ import '../../../components/ha-card.js';
import '../components/hui-image.js'; import '../components/hui-image.js';
import { STATES_OFF } from '../../../common/const.js'; import { STATES_OFF } from '../../../common/const.js';
import canToggleState from '../../../common/entity/can_toggle_state.js';
import computeStateDisplay from '../../../common/entity/compute_state_display.js'; import computeStateDisplay from '../../../common/entity/compute_state_display.js';
import computeStateName from '../../../common/entity/compute_state_name.js'; import computeStateName from '../../../common/entity/compute_state_name.js';
import stateIcon from '../../../common/entity/state_icon.js'; import stateIcon from '../../../common/entity/state_icon.js';
@ -17,7 +16,11 @@ import LocalizeMixin from '../../../mixins/localize-mixin.js';
import NavigateMixin from '../../../mixins/navigate-mixin.js'; import NavigateMixin from '../../../mixins/navigate-mixin.js';
import computeDomain from '../../../common/entity/compute_domain'; import computeDomain from '../../../common/entity/compute_domain';
const DOMAINS_FORCE_MORE_INFO = ['media_player']; const DOMAINS_TOGGLE = new Set([
'input_boolean',
'light',
'switch'
]);
/* /*
* @appliesMixin EventsMixin * @appliesMixin EventsMixin
@ -89,7 +92,7 @@ class HuiPictureGlanceCard extends NavigateMixin(LocalizeMixin(EventsMixin(Polym
</template> </template>
</div> </div>
<div> <div>
<template is="dom-repeat" items="[[_entitiesService]]"> <template is="dom-repeat" items="[[_entitiesToggle]]">
<template is="dom-if" if="[[_showEntity(item, hass.states)]]"> <template is="dom-if" if="[[_showEntity(item, hass.states)]]">
<paper-icon-button <paper-icon-button
on-click="_callService" on-click="_callService"
@ -111,12 +114,12 @@ class HuiPictureGlanceCard extends NavigateMixin(LocalizeMixin(EventsMixin(Polym
_config: Object, _config: Object,
_entitiesDialog: { _entitiesDialog: {
type: Array, type: Array,
computed: '_computeEntitiesDialog(hass, _config, _entitiesService)', computed: '_computeEntitiesDialog(hass, _config, _entitiesToggle)',
}, },
_entitiesService: { _entitiesToggle: {
type: Array, type: Array,
value: [], value: [],
computed: '_computeEntitiesService(hass, _config)', computed: '_computeEntitiesToggle(hass, _config)',
}, },
}; };
} }
@ -144,15 +147,13 @@ class HuiPictureGlanceCard extends NavigateMixin(LocalizeMixin(EventsMixin(Polym
(entity in hass.states)); (entity in hass.states));
} }
_computeEntitiesService(hass, config) { _computeEntitiesToggle(hass, config) {
if (config.force_dialog) { if (config.force_dialog) {
return []; return [];
} }
return config.entities.filter(entity => return config.entities.filter(entity =>
(entity in hass.states) && (entity in hass.states) && DOMAINS_TOGGLE.has(computeDomain(entity)));
!DOMAINS_FORCE_MORE_INFO.includes(computeDomain(entity)) &&
canToggleState(hass, hass.states[entity]));
} }
_showEntity(entityId, states) { _showEntity(entityId, states) {