sharyn
Version:
Combines all the other packages under one.
78 lines (63 loc) • 2.63 kB
JavaScript
;
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;