UNPKG

2.63 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.default = exports.configureWithClientMainQuery = void 0;
9
10var _objectSpread2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectSpread"));
11
12var _reactRedux = require("react-redux");
13
14var _lifecycle = _interopRequireDefault(require("recompose/lifecycle"));
15
16var _compose = _interopRequireDefault(require("recompose/compose"));
17
18var _mapProps = _interopRequireDefault(require("recompose/mapProps"));
19
20var _withProps = _interopRequireDefault(require("recompose/withProps"));
21
22/* eslint-disable import/no-extraneous-dependencies */
23// flow-disable-next-line
24var configuredFetchPageThunk;
25
26var configureWithClientMainQuery = function configureWithClientMainQuery(fetchPageThunk) {
27 configuredFetchPageThunk = fetchPageThunk;
28};
29
30exports.configureWithClientMainQuery = configureWithClientMainQuery;
31var lifecycle = {
32 componentDidMount: function componentDidMount() {
33 if (!this.props.isFirstRender) {
34 if (!configuredFetchPageThunk) {
35 throw Error('You must configure a fetchPageThunk with configureWithClientMainQuery');
36 }
37
38 var _this$props = this.props,
39 dispatch = _this$props.dispatch,
40 route = _this$props.route,
41 fetchPageOptions = _this$props.fetchPageOptions;
42
43 if (route.mainQuery) {
44 var urlParams = this.props.match.params;
45 var _route$mainQuery = route.mainQuery,
46 query = _route$mainQuery.query,
47 mapUrlParams = _route$mainQuery.mapUrlParams,
48 mapResp = _route$mainQuery.mapResp;
49 dispatch(configuredFetchPageThunk((0, _objectSpread2.default)({
50 query: query,
51 urlParams: urlParams,
52 mapUrlParams: mapUrlParams,
53 mapResp: mapResp
54 }, fetchPageOptions)));
55 }
56 }
57 }
58};
59
60var withClientMainQuery = function withClientMainQuery(fetchPageOptions) {
61 return (0, _compose.default)((0, _withProps.default)(function (props) {
62 return {
63 fetchPageOptions: fetchPageOptions instanceof Function ? fetchPageOptions(props) : fetchPageOptions
64 };
65 }), (0, _reactRedux.connect)(function (_ref) {
66 var env = _ref.env;
67 return {
68 isFirstRender: env.isFirstRender
69 };
70 }), (0, _lifecycle.default)(lifecycle), (0, _mapProps.default)(function (props) {
71 var newProps = (0, _objectSpread2.default)({}, props);
72 delete newProps.fetchPageOptions;
73 return newProps;
74 }));
75};
76
77var _default = withClientMainQuery;
78exports.default = _default;
\No newline at end of file