ha-frontend-cdce8p/src/common/entity/get_view_entities.ts
Bram Kragten 82f80db558
Update typescript, prettier, tslint -> eslint (#5536)
* Update typescript, prettier, tslint -> eslint

* Organize imports

* Use glob for eslint fix react import
2020-04-14 09:05:45 -07:00

36 lines
1.0 KiB
TypeScript

import { HassEntities } from "home-assistant-js-websocket";
import { GroupEntity } from "../../types";
import { computeDomain } from "./compute_domain";
import { getGroupEntities } from "./get_group_entities";
// Return an object containing all entities that the view will show
// including embedded groups.
export const getViewEntities = (
entities: HassEntities,
view: GroupEntity
): HassEntities => {
const viewEntities = {};
view.attributes.entity_id.forEach((entityId) => {
const entity = entities[entityId];
if (entity && !entity.attributes.hidden) {
viewEntities[entity.entity_id] = entity;
if (computeDomain(entity.entity_id) === "group") {
const groupEntities = getGroupEntities(entities, entity as GroupEntity);
Object.keys(groupEntities).forEach((grEntityId) => {
const grEntity = groupEntities[grEntityId];
if (!grEntity.attributes.hidden) {
viewEntities[grEntityId] = grEntity;
}
});
}
}
});
return viewEntities;
};