UNPKG

@appbuckets/react-ui-smart-components

Version:

UI Extended Components that work with @appbuckets/react-client and @appbuckets/react-ui

90 lines (83 loc) 2.26 kB
'use strict'; var _tslib = require('../_virtual/_tslib.js'); var React = require('react'); var Loader = require('@appbuckets/react-ui/Loader'); var QuerySuspenseError = require('../QuerySuspenseError/QuerySuspenseError.js'); function _interopDefaultLegacy(e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; } function _interopNamespace(e) { if (e && e.__esModule) return e; var n = Object.create(null); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { var d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty( n, k, d.get ? d : { enumerable: true, get: function () { return e[k]; }, } ); } }); } n['default'] = e; return Object.freeze(n); } var React__namespace = /*#__PURE__*/ _interopNamespace(React); var Loader__default = /*#__PURE__*/ _interopDefaultLegacy(Loader); var QuerySuspendedComponent = function (props) { var Component = props.Component, innerProps = props.innerProps, loaderProps = props.loaderProps, query = props.query; // ---- // Loading State // ---- if (query.status === 'loading' || query.isLoading) { return React__namespace.createElement( Loader__default['default'], _tslib.__assign( { centered: true, className: 'mt-6 mb-6', appearance: 'primary', type: 'indeterminate bar', size: 'big', }, loaderProps ) ); } // ---- // Error Status // ---- if (query.status === 'error' || query.isError) { return React__namespace.createElement( QuerySuspenseError, _tslib.__assign({}, query.error) ); } // ---- // Main Component Render // ---- if ((query.status === 'success' || query.isSuccess) && Component) { return React__namespace.createElement( Component, _tslib.__assign({}, innerProps, { state: query }) ); } // ---- // Any other result will fallback to null // ---- return null; }; QuerySuspendedComponent.displayName = 'QuerySuspendedComponent'; module.exports = QuerySuspendedComponent;