diff options
| author | Wes Bos <wesbos@gmail.com> | 2017-08-08 22:09:05 -0400 |
|---|---|---|
| committer | Wes Bos <wesbos@gmail.com> | 2017-08-08 22:09:05 -0400 |
| commit | 222ab374d53a206332b1ab51c7c43f6d5dc7a31e (patch) | |
| tree | 2b446d96bfc6c7efab07f3d0fbb84d96ecb1253b /.next/dist/lib/withData.js | |
yep
Diffstat (limited to '.next/dist/lib/withData.js')
| -rw-r--r-- | .next/dist/lib/withData.js | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/.next/dist/lib/withData.js b/.next/dist/lib/withData.js new file mode 100644 index 0000000..3514787 --- /dev/null +++ b/.next/dist/lib/withData.js @@ -0,0 +1,195 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); + +var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); + +var _regenerator = require('babel-runtime/regenerator'); + +var _regenerator2 = _interopRequireDefault(_regenerator); + +var _extends2 = require('babel-runtime/helpers/extends'); + +var _extends3 = _interopRequireDefault(_extends2); + +var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); + +var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); + +var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); + +var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + +var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); + +var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + +var _createClass2 = require('babel-runtime/helpers/createClass'); + +var _createClass3 = _interopRequireDefault(_createClass2); + +var _inherits2 = require('babel-runtime/helpers/inherits'); + +var _inherits3 = _interopRequireDefault(_inherits2); + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactApollo = require('react-apollo'); + +var _head = require('next/dist/lib/head.js'); + +var _head2 = _interopRequireDefault(_head); + +var _initApollo = require('./initApollo'); + +var _initApollo2 = _interopRequireDefault(_initApollo); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var _jsxFileName = '/Users/wesbos/Sites/advanced-react/examples/next/lib/withData.js'; + + +// Gets the display name of a JSX component for dev tools +function getComponentDisplayName(Component) { + return Component.displayName || Component.name || 'Unknown'; +} + +exports.default = function (ComposedComponent) { + var _class, _temp; + + return _temp = _class = function (_React$Component) { + (0, _inherits3.default)(WithData, _React$Component); + + (0, _createClass3.default)(WithData, null, [{ + key: 'getInitialProps', + value: function () { + var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(ctx) { + var serverState, composedInitialProps, apollo, url, state; + return _regenerator2.default.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + serverState = {}; + + // Evaluate the composed component's getInitialProps() + + composedInitialProps = {}; + + if (!ComposedComponent.getInitialProps) { + _context.next = 6; + break; + } + + _context.next = 5; + return ComposedComponent.getInitialProps(ctx); + + case 5: + composedInitialProps = _context.sent; + + case 6: + if (process.browser) { + _context.next = 19; + break; + } + + apollo = (0, _initApollo2.default)(); + // Provide the `url` prop data in case a GraphQL query uses it + + url = { query: ctx.query, pathname: ctx.pathname }; + _context.prev = 9; + _context.next = 12; + return (0, _reactApollo.getDataFromTree)(_react2.default.createElement(_reactApollo.ApolloProvider, { client: apollo, __source: { + fileName: _jsxFileName, + lineNumber: 37 + } + }, _react2.default.createElement(ComposedComponent, (0, _extends3.default)({ url: url }, composedInitialProps, { + __source: { + fileName: _jsxFileName, + lineNumber: 38 + } + })))); + + case 12: + _context.next = 16; + break; + + case 14: + _context.prev = 14; + _context.t0 = _context['catch'](9); + + case 16: + // getDataFromTree does not call componentWillUnmount + // head side effect therefore need to be cleared manually + _head2.default.rewind(); + + // Extract query data from the Apollo store + state = apollo.getInitialState(); + + serverState = { + apollo: { + // Only include the Apollo data state + data: state.data + } + }; + + case 19: + return _context.abrupt('return', (0, _extends3.default)({ + serverState: serverState + }, composedInitialProps)); + + case 20: + case 'end': + return _context.stop(); + } + } + }, _callee, this, [[9, 14]]); + })); + + function getInitialProps(_x) { + return _ref.apply(this, arguments); + } + + return getInitialProps; + }() + }]); + + function WithData(props) { + (0, _classCallCheck3.default)(this, WithData); + + var _this = (0, _possibleConstructorReturn3.default)(this, (WithData.__proto__ || (0, _getPrototypeOf2.default)(WithData)).call(this, props)); + + _this.apollo = (0, _initApollo2.default)(_this.props.serverState); + return _this; + } + + (0, _createClass3.default)(WithData, [{ + key: 'render', + value: function render() { + return _react2.default.createElement(_reactApollo.ApolloProvider, { client: this.apollo, __source: { + fileName: _jsxFileName, + lineNumber: 74 + } + }, _react2.default.createElement(ComposedComponent, (0, _extends3.default)({}, this.props, { + __source: { + fileName: _jsxFileName, + lineNumber: 75 + } + }))); + } + }]); + + return WithData; + }(_react2.default.Component), _class.displayName = 'WithData(' + getComponentDisplayName(ComposedComponent) + ')', _class.propTypes = { + serverState: _propTypes2.default.object.isRequired + }, _temp; +};
\ No newline at end of file |
