@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.21 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react");require("lodash");require("../../utils/light/index.js");require("../useLocale/locales/index.js");require("../../../index-DKqwfDib.cjs");require("../../HassConnect/HassContext.js");const g=require("../../../index-CqE3ydBk.cjs");require("@iconify/react");const y=require("../useStore/index.js"),k=require("use-debounce");require("home-assistant-js-websocket");const h=require("./helpers.js");function v(n,E){const a=y.useStore(e=>e.connection),c=g.useEntity(n),[b,_]=r.useState(null),[f,S]=r.useState(null),s=r.useRef(!1),t=r.useRef(void 0),{type:l="daily"}=E||{},q=r.useCallback((e,o)=>h.subscribeForecast(a,e,o,u=>{s.current&&S(u)}).catch(u=>{s.current=!1,u instanceof Error&&_(u.message)}),[a]),d=k.useDebouncedCallback(async(e,o)=>{if(t.current){const i=await t.current;i&&i(),t.current=void 0}s.current=!0,t.current=await q(e,o)},100,{trailing:!0,leading:!0});if(r.useEffect(()=>(d(n,l),()=>{s.current=!1,t.current&&t.current()}),[l,d,q,n]),b)throw b;return r.useMemo(()=>{const e=h.getForecast(c.attributes,f);return{...c,forecast:e}},[c,f])}exports.useWeather=v;
//# sourceMappingURL=index.js.map