Remove mobile_app from generated Lovelace (#6873)

* Hide mobile_app from generated Lovelace

* simplify

* Move to computeDefaultViewStates

* removed -> hidden

* Update src/panels/lovelace/common/generate-lovelace-config.ts

Co-authored-by: Bram Kragten <mail@bramkragten.nl>

* Adjust for Set

* Review comments

Co-authored-by: Bram Kragten <mail@bramkragten.nl>
This commit is contained in:
Joakim Sørensen 2020-09-09 23:01:50 +02:00 committed by GitHub
parent 6c2b8c2abb
commit 498882d014
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -63,6 +63,8 @@ const HIDE_DOMAIN = new Set([
"zone", "zone",
]); ]);
const HIDE_PLATFORM = new Set(["mobile_app"]);
let subscribedRegistries = false; let subscribedRegistries = false;
interface SplittedByAreas { interface SplittedByAreas {
@ -206,11 +208,23 @@ export const computeCards = (
return cards; return cards;
}; };
const computeDefaultViewStates = (entities: HassEntities): HassEntities => { const computeDefaultViewStates = (
entities: HassEntities,
entityEntries: EntityRegistryEntry[]
): HassEntities => {
const states = {}; const states = {};
const hiddenEntities = new Set(
entityEntries
.filter((entry) => HIDE_PLATFORM.has(entry.platform))
.map((entry) => entry.entity_id)
);
Object.keys(entities).forEach((entityId) => { Object.keys(entities).forEach((entityId) => {
const stateObj = entities[entityId]; const stateObj = entities[entityId];
if (!HIDE_DOMAIN.has(computeStateDomain(stateObj))) { if (
!HIDE_DOMAIN.has(computeStateDomain(stateObj)) &&
!hiddenEntities.has(stateObj.entity_id)
) {
states[entityId] = entities[entityId]; states[entityId] = entities[entityId];
} }
}); });
@ -317,7 +331,7 @@ export const generateDefaultViewConfig = (
entities: HassEntities, entities: HassEntities,
localize: LocalizeFunc localize: LocalizeFunc
): LovelaceViewConfig => { ): LovelaceViewConfig => {
const states = computeDefaultViewStates(entities); const states = computeDefaultViewStates(entities, entityEntries);
const path = "default_view"; const path = "default_view";
const title = "Home"; const title = "Home";
const icon = undefined; const icon = undefined;