UNPKG

@forbespro/lead-agent

Version:
2 lines (1 loc) 4.35 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("react"),he=require("./index36.js"),J=require("./index37.js"),e=require("./index38.js"),I=require("./index39.js"),$=l.use||(c=>{switch(c.status){case"pending":throw c;case"fulfilled":return c.value;case"rejected":throw c.reason;default:throw c.status="pending",c.then(g=>{c.status="fulfilled",c.value=g},g=>{c.status="rejected",c.reason=g}),c}}),G={dedupe:!0},ve=(c,g,d)=>{const{cache:V,compare:F,suspense:M,fallbackData:K,revalidateOnMount:k,revalidateIfStale:y,refreshInterval:A,refreshWhenHidden:Q,refreshWhenOffline:X,keepPreviousData:oe}=d,[L,ce,h,le]=e.b.get(V),[t,Y]=e.s(c),P=l.useRef(!1),w=l.useRef(!1),_=l.useRef(t),U=l.useRef(g),x=l.useRef(d),a=()=>x.current,W=()=>a().isVisible()&&a().isOnline(),[v,j,fe,de]=e.z(V,t),C=l.useRef({}).current,b=e.e(K)?e.e(d.fallback)?e.U:d.fallback[t]:K,Z=(n,r)=>{for(const i in C){const s=i;if(s==="data"){if(!F(n[s],r[s])&&(!e.e(n[s])||!F(N,r[s])))return!1}else if(r[s]!==n[s])return!1}return!0},ee=l.useMemo(()=>{const n=!t||!g?!1:e.e(k)?a().isPaused()||M?!1:y!==!1:k,r=o=>{const E=e.m(o);return delete E._k,n?{isValidating:!0,isLoading:!0,...E}:E},i=v(),s=de(),R=r(i),m=i===s?R:r(s);let u=R;return[()=>{const o=r(v());return Z(o,u)?(u.data=o.data,u.isLoading=o.isLoading,u.isValidating=o.isValidating,u.error=o.error,u):(u=o,o)},()=>m]},[V,t]),p=he.s.useSyncExternalStore(l.useCallback(n=>fe(t,(r,i)=>{Z(i,r)||n()}),[V,t]),ee[0],ee[1]),te=!P.current,Re=L[t]&&L[t].length>0,D=p.data,T=e.e(D)?b&&e.B(b)?$(b):b:D,q=p.error,H=l.useRef(T),N=oe?e.e(D)?e.e(H.current)?T:H.current:D:T,re=Re&&!e.e(q)?!1:te&&!e.e(k)?k:a().isPaused()?!1:M?e.e(T)?!1:y:e.e(T)||y,ne=!!(t&&g&&te&&re),ge=e.e(p.isValidating)?ne:p.isValidating,Ee=e.e(p.isLoading)?ne:p.isLoading,O=l.useCallback(async n=>{const r=U.current;if(!t||!r||w.current||a().isPaused())return!1;let i,s,R=!0;const m=n||{},u=!h[t]||!m.dedupe,o=()=>e.I?!w.current&&t===_.current&&P.current:t===_.current,E={isValidating:!1,isLoading:!1},ae=()=>{j(E)},ie=()=>{const f=h[t];f&&f[1]===s&&delete h[t]},ue={isValidating:!0};e.e(v().data)&&(ue.isLoading=!0);try{if(u&&(j(ue),d.loadingTimeout&&e.e(v().data)&&setTimeout(()=>{R&&o()&&a().onLoadingSlow(t,d)},d.loadingTimeout),h[t]=[r(Y),e.o()]),[i,s]=h[t],i=await i,u&&setTimeout(ie,d.dedupingInterval),!h[t]||h[t][1]!==s)return u&&o()&&a().onDiscarded(t),!1;E.error=e.U;const f=ce[t];if(!e.e(f)&&(s<=f[0]||s<=f[1]||f[1]===0))return ae(),u&&o()&&a().onDiscarded(t),!1;const S=v().data;E.data=F(S,i)?S:i,u&&o()&&a().onSuccess(i,t,d)}catch(f){ie();const S=a(),{shouldRetryOnError:z}=S;S.isPaused()||(E.error=f,u&&o()&&(S.onError(f,t,S),(z===!0||e.a(z)&&z(f))&&(!a().revalidateOnFocus||!a().revalidateOnReconnect||W())&&S.onErrorRetry(f,t,S,Se=>{const B=L[t];B&&B[0]&&B[0](I.ERROR_REVALIDATE_EVENT,Se)},{retryCount:(m.retryCount||0)+1,dedupe:!0})))}return R=!1,ae(),!0},[t,V]),se=l.useCallback((...n)=>e.n(V,_.current,...n),[]);if(e.u(()=>{U.current=g,x.current=d,e.e(D)||(H.current=D)}),e.u(()=>{if(!t)return;const n=O.bind(e.U,G);let r=0;a().revalidateOnFocus&&(r=Date.now()+a().focusThrottleInterval);const i=(R,m={})=>{if(R==I.FOCUS_EVENT){const u=Date.now();a().revalidateOnFocus&&u>r&&W()&&(r=u+a().focusThrottleInterval,n())}else if(R==I.RECONNECT_EVENT)a().revalidateOnReconnect&&W()&&n();else{if(R==I.MUTATE_EVENT)return O();if(R==I.ERROR_REVALIDATE_EVENT)return O(m)}},s=J.subscribeCallback(t,L,i);return w.current=!1,_.current=t,P.current=!0,j({_k:Y}),re&&(e.e(T)||e.r?n():e.t(n)),()=>{w.current=!0,s()}},[t]),e.u(()=>{let n;function r(){const s=e.a(A)?A(v().data):A;s&&n!==-1&&(n=setTimeout(i,s))}function i(){!v().error&&(Q||a().isVisible())&&(X||a().isOnline())?O(G).then(r):r()}return r(),()=>{n&&(clearTimeout(n),n=-1)}},[A,Q,X,t]),l.useDebugValue(N),M&&e.e(T)&&t){if(!e.I&&e.r)throw new Error("Fallback data is required when using Suspense in SSR.");U.current=g,x.current=d,w.current=!1;const n=le[t];if(!e.e(n)){const r=se(n);$(r)}if(e.e(q)){const r=O(G);e.e(N)||(r.status="fulfilled",r.value=!0),$(r)}else throw q}return{mutate:se,get data(){return C.data=!0,N},get error(){return C.error=!0,q},get isValidating(){return C.isValidating=!0,ge},get isLoading(){return C.isLoading=!0,Ee}}},Te=J.withArgs(ve);exports.useSWRConfig=J.useSWRConfig;exports.mutate=e.j;exports.default=Te;