UNPKG

sharyn

Version:

Combines all the other packages under one.

78 lines (63 loc) 2.63 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.configureWithClientMainQuery = void 0; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectSpread")); var _reactRedux = require("react-redux"); var _lifecycle = _interopRequireDefault(require("recompose/lifecycle")); var _compose = _interopRequireDefault(require("recompose/compose")); var _mapProps = _interopRequireDefault(require("recompose/mapProps")); var _withProps = _interopRequireDefault(require("recompose/withProps")); /* eslint-disable import/no-extraneous-dependencies */ // flow-disable-next-line var configuredFetchPageThunk; var configureWithClientMainQuery = function configureWithClientMainQuery(fetchPageThunk) { configuredFetchPageThunk = fetchPageThunk; }; exports.configureWithClientMainQuery = configureWithClientMainQuery; var lifecycle = { componentDidMount: function componentDidMount() { if (!this.props.isServerRender) { if (!configuredFetchPageThunk) { throw Error('You must configure a fetchPageThunk with configureWithClientMainQuery'); } var _this$props = this.props, dispatch = _this$props.dispatch, route = _this$props.route, fetchPageOptions = _this$props.fetchPageOptions; if (route.mainQuery) { var urlParams = this.props.match.params; var _route$mainQuery = route.mainQuery, query = _route$mainQuery.query, mapUrlParams = _route$mainQuery.mapUrlParams, mapResp = _route$mainQuery.mapResp; dispatch(configuredFetchPageThunk((0, _objectSpread2.default)({ query: query, urlParams: urlParams, mapUrlParams: mapUrlParams, mapResp: mapResp }, fetchPageOptions))); } } } }; var withClientMainQuery = function withClientMainQuery(fetchPageOptions) { return (0, _compose.default)((0, _withProps.default)(function (props) { return { fetchPageOptions: fetchPageOptions instanceof Function ? fetchPageOptions(props) : fetchPageOptions }; }), (0, _reactRedux.connect)(function (_ref) { var env = _ref.env; return { isServerRender: env.isServerRender }; }), (0, _lifecycle.default)(lifecycle), (0, _mapProps.default)(function (props) { var newProps = (0, _objectSpread2.default)({}, props); delete newProps.fetchPageOptions; return newProps; })); }; var _default = withClientMainQuery; exports.default = _default;