UNPKG

use-reducer-async

Version:
3 lines (2 loc) 671 B
import{useReducer as t,useRef as n,useCallback as r,useLayoutEffect as e,useEffect as o,useState as c}from"react";const i="undefined"==typeof window||/ServerSideRendering/.test(window.navigator&&window.navigator.userAgent)?o:e;function u(e,u,a,s){const d=(()=>{const[t,r]=c(()=>new AbortController),e=n(t);return o(()=>()=>{e.current.abort(),e.current=new AbortController,r(e.current)},[]),t.signal})(),l=s||a,[w,g]=t(e,u,s&&a),p=n(w);i(()=>{p.current=w},[w]);const f=r(()=>p.current,[]),b=r(t=>{const{type:n}=t||{},r=n&&l[n]||null;r?r({dispatch:b,getState:f,signal:d})(t):g(t)},[l,f,d]);return[w,b]}export{u as useReducerAsync}; //# sourceMappingURL=index.modern.js.map