UNPKG

react-query-handler

Version:

A React component to handle query states with TypeScript support

2 lines (1 loc) 1.47 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=r(e);const n=e.createContext({});exports.QueryHandler=({query:r,loadingComponent:o,errorComponent:a,emptyComponent:l,children:u})=>{const{defaultLoadingComponent:d,defaultErrorComponent:i,defaultEmptyComponent:s}=e.useContext(n),{isLoading:m,isError:c,isSuccess:f,data:p,error:C}=r||{};return m?o||d||t.default.createElement("div",null,"Loading..."):c?a||i||t.default.createElement("div",null,"Error: ",C?.message):f&&(!p||Array.isArray(p)&&0===p.length)?l||s||t.default.createElement("div",null,"No Data Found"):t.default.createElement(t.default.Fragment,null,u)},exports.QueryHandlerProvider=({config:e,children:r})=>t.default.createElement(n.Provider,{value:e},r),exports.useQueryHandler=(r,o)=>{const{isLoading:a,isError:l,isSuccess:u,data:d,error:i}=r||{},{defaultLoadingComponent:s,defaultErrorComponent:m,defaultEmptyComponent:c}=e.useContext(n);return a?o?.loadingComponent||s||t.default.createElement("div",null,"Loading..."):l?o?.errorComponent||m||t.default.createElement("div",null,"Error: ",i?.message):u&&(!d||Array.isArray(d)&&0===d.length)?o?.emptyComponent||c||t.default.createElement("div",null,"No Data Found"):d},exports.useQueryHandlerConfig=()=>{const r=e.useContext(n);if(void 0===r)throw new Error("useQueryHandlerConfig must be used within a QueryHandlerProvider");return r};