1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _extends2 = require('babel-runtime/helpers/extends');
|
8 |
|
9 | var _extends3 = _interopRequireDefault(_extends2);
|
10 |
|
11 | exports.default = client;
|
12 |
|
13 | require('babel-polyfill');
|
14 |
|
15 | var _react = require('react');
|
16 |
|
17 | var _react2 = _interopRequireDefault(_react);
|
18 |
|
19 | var _reactDom = require('react-dom');
|
20 |
|
21 | var _reactDom2 = _interopRequireDefault(_reactDom);
|
22 |
|
23 | var _reactRouter = require('react-router');
|
24 |
|
25 | var _createBrowserHistory = require('history/lib/createBrowserHistory');
|
26 |
|
27 | var _createBrowserHistory2 = _interopRequireDefault(_createBrowserHistory);
|
28 |
|
29 | var _useStandardScroll = require('scroll-behavior/lib/useStandardScroll');
|
30 |
|
31 | var _useStandardScroll2 = _interopRequireDefault(_useStandardScroll);
|
32 |
|
33 | var _create = require('./create');
|
34 |
|
35 | var _create2 = _interopRequireDefault(_create);
|
36 |
|
37 | var _apiclient = require('./apiclient');
|
38 |
|
39 | var _apiclient2 = _interopRequireDefault(_apiclient);
|
40 |
|
41 | var _reactRedux = require('react-redux');
|
42 |
|
43 | var _reduxConnect = require('redux-connect');
|
44 |
|
45 | var _fetcher = require('./fetcher');
|
46 |
|
47 | var _fetcher2 = _interopRequireDefault(_fetcher);
|
48 |
|
49 | var _App = require('./App');
|
50 |
|
51 | var _App2 = _interopRequireDefault(_App);
|
52 |
|
53 | var _cookieDough = require('cookie-dough');
|
54 |
|
55 | var _cookieDough2 = _interopRequireDefault(_cookieDough);
|
56 |
|
57 | var _createRouterOpts = require('./createRouterOpts');
|
58 |
|
59 | var _createRouterOpts2 = _interopRequireDefault(_createRouterOpts);
|
60 |
|
61 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
62 |
|
63 |
|
64 |
|
65 |
|
66 | function client(_ref) {
|
67 | var urls = _ref.urls,
|
68 | reducers = _ref.reducers,
|
69 | routes = _ref.routes,
|
70 | _ref$dest = _ref.dest,
|
71 | dest = _ref$dest === undefined ? document.getElementById('content') : _ref$dest,
|
72 | _ref$isDevelopment = _ref.isDevelopment,
|
73 | isDevelopment = _ref$isDevelopment === undefined ? false : _ref$isDevelopment;
|
74 |
|
75 | var createScrollHistory = (0, _useStandardScroll2.default)(_createBrowserHistory2.default);
|
76 |
|
77 | var history = (0, _reactRouter.useRouterHistory)(createScrollHistory)((0, _createRouterOpts2.default)({
|
78 | shouldUpdateScroll: function shouldUpdateScroll(oldLocation, newLocation) {
|
79 | return (
|
80 |
|
81 | oldLocation ? newLocation.pathname !== oldLocation.pathname : newLocation.pathname !== location.pathname
|
82 | );
|
83 | }
|
84 | }));
|
85 |
|
86 | var store = (0, _create2.default)({ reducers: reducers, history: history, data: window.__data, isDevelopment: isDevelopment });
|
87 | var fetcher = new _fetcher2.default({
|
88 | dispatch: store.dispatch,
|
89 | client: new _apiclient2.default(),
|
90 | urls: urls,
|
91 | serialized: window.__fetcher,
|
92 | type: 'client'
|
93 | });
|
94 | var cookie = (0, _cookieDough2.default)();
|
95 |
|
96 | var component = _react2.default.createElement(
|
97 | _reactRouter.Router,
|
98 | {
|
99 | render: function render(props) {
|
100 | return _react2.default.createElement(_reduxConnect.ReduxAsyncConnect, (0, _extends3.default)({}, props, { cookie: cookie, helpers: { fetcher: fetcher }, filter: function filter(item) {
|
101 | return !item.deferred;
|
102 | } }));
|
103 | },
|
104 | history: history
|
105 | },
|
106 | _react2.default.createElement(
|
107 | _reactRouter.Route,
|
108 | {
|
109 | component: _App2.default,
|
110 | urls: urls,
|
111 | cookie: cookie,
|
112 | fetcher: fetcher
|
113 | },
|
114 | routes(store, cookie)
|
115 | )
|
116 | );
|
117 |
|
118 | _reactDom2.default.render(_react2.default.createElement(
|
119 | _reactRedux.Provider,
|
120 | { store: store, key: 'provider' },
|
121 | component
|
122 | ), dest);
|
123 |
|
124 | if (process.env.NODE_ENV !== 'production') {
|
125 | window.React = _react2.default;
|
126 | if (!dest || !dest.firstChild || !dest.firstChild.attributes || !dest.firstChild.attributes['data-react-checksum']) {
|
127 | console.error('Server-side React render was discarded. Make sure that your initial render does not contain any client-side code.');
|
128 | }
|
129 | }
|
130 | }
|
131 | module.exports = exports['default']; |
\ | No newline at end of file |