UNPKG

@hakit/core

Version:

A collection of React hooks and helpers for Home Assistant to easily communicate with the Home Assistant WebSocket API.

3 lines (2 loc) 1.31 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("lodash");const i=require("../../../index-iGClY3ec.cjs"),v=require("react");require("../useLocale/locales/index.js");require("home-assistant-js-websocket");require("../../utils/date.js");require("@iconify/react");require("use-debounce");function h(){const{joinHassUrl:n}=i.useHass.getState().helpers,r=i.useHass(e=>e.areas),o=i.useHass(e=>e.devices),c=i.useHass(e=>e.floors),a=i.useHass(e=>e.entitiesRegistryDisplay),u=i.useHass(e=>e.entities);return v.useMemo(()=>{const e=Object.values(r);return q({areas:e,devices:o,entitiesRegistryDisplay:a,floors:c,joinHassUrl:n,hassEntities:u})},[r,o,n,a,c,u])}function q({areas:n,devices:r,entitiesRegistryDisplay:o,floors:c,joinHassUrl:a,hassEntities:u}){const e=t=>{const d=[];for(const s of Object.values(r))s.area_id===t.area_id&&s.entry_type!=="service"&&d.push(s);const l=new Set,_=[];for(const s of Object.values(o)){const p=s.area_id===t.area_id,y=!s.area_id&&s.device_id&&r[s.device_id]?.area_id===t.area_id;if(p||y){const f=u[s.entity_id];f&&!l.has(s.entity_id)&&(l.add(s.entity_id),_.push(f))}}return{...t,picture:t.picture?a(t.picture):null,devices:d,entities:_,floor:t.floor_id&&c[t.floor_id]||null}};return n.map(e)}exports.useAreas=h; //# sourceMappingURL=index.js.map