@kappys/react-query-suspense
Version:
Library to avoid render complex items when the state or data is not ready yet.
8 lines (6 loc) • 809 B
JavaScript
import { useQueryClient, QueriesObserver } from '@tanstack/react-query';
import a from 'react';
var u=({queryKeys:o,context:s=void 0})=>{let t=useQueryClient();return new QueriesObserver(s!==void 0?s:t,o.map(e=>({queryKey:e}))).getCurrentResult().map(e=>e.fetchStatus==="fetching"&&e.status==="loading"||e.isError).some(e=>e)};var n=({context:o,queryKeys:s,deferredFetch:t=!1})=>{let r=u({queryKeys:s,context:o}),m=a.useRef(r);return r&&(m.current=!0),t?!(!r&&m.current):r};var b=({queryKeys:o,Fallback:s,deferredFetch:t,children:r,context:m})=>{let e=n({queryKeys:o,context:m,deferredFetch:t});return a.createElement(a.Fragment,null,e?s:r)};
export { b as ReactQuerySuspense, u as useReactQueryPromiseTracker, n as useReactQuerySuspense };
//# sourceMappingURL=out.js.map
//# sourceMappingURL=index.mjs.map