UNPKG

@centarius/state-hoc

Version:

Centarius State HOC

46 lines (35 loc) 1.88 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = _interopRequireDefault(require("react")); var _hoistNonReactStatics = _interopRequireDefault(require("hoist-non-react-statics")); var _core = require("centarius/core"); var centariusHoc = function centariusHoc(_ref) { var _ref$LoadingComponent = _ref.LoadingComponent, LoadingComponent = _ref$LoadingComponent === void 0 ? null : _ref$LoadingComponent, _ref$ErrorComponent = _ref.ErrorComponent, ErrorComponent = _ref$ErrorComponent === void 0 ? null : _ref$ErrorComponent; return function (WrappedComponent) { var CentariusStateWrapper = function CentariusStateWrapper(props) { return _react.default.createElement(_core.CentariusConsumer, null, function (state) { if (state.loading && !!LoadingComponent) { return _react.default.createElement(LoadingComponent, (0, _extends2.default)({}, props, state)); } if (state.error && !!ErrorComponent) { return _react.default.createElement(ErrorComponent, (0, _extends2.default)({}, props, state)); } return _react.default.createElement(WrappedComponent, (0, _extends2.default)({}, props, state)); }); }; var componentName = WrappedComponent.displayName || WrappedComponent.name; CentariusStateWrapper.ErrorComponent = ErrorComponent; CentariusStateWrapper.LoadingComponent = LoadingComponent; CentariusStateWrapper.displayName = "withCentariusStateHoc(" + componentName + ")"; return (0, _hoistNonReactStatics.default)(CentariusStateWrapper, WrappedComponent); }; }; var _default = centariusHoc; exports.default = _default; module.exports = exports.default;