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.03 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),q=require("lodash");require("../../utils/light/index.js");require("../useLocale/locales/index.js");const _=require("../../../index-CUxh5LWn.cjs");require("../../HassConnect/HassContext.js");require("@iconify/react");require("use-debounce");require("deep-object-diff");require("home-assistant-js-websocket");const g=({blacklist:n=[],whitelist:i=[],min:c=0,max:a=20}={})=>{const{getAllEntities:E}=_.useHass(),[r,b]=t.useState([]),s=E(),l=t.useRef(null),d=!q.isEqual(l.current,s),u=t.useMemo(()=>Object.values(s).filter(e=>{const f=e.attributes.unit_of_measurement==="%"&&e.attributes.device_class==="battery",m=Number(e.state)<=a&&Number(e.state)>=c,h=n.some(o=>e.entity_id.includes(o)),v=i.length===0||i.some(o=>e.entity_id.includes(o));return f&&m&&v&&!h}),[n,s,a,c,i]);return t.useEffect(()=>{d&&!q.isEqual(u,r)&&b(u),l.current=s},[d,u,r,s]),t.useMemo(()=>r,[r])};exports.useLowDevices=g; //# sourceMappingURL=index.js.map