summaryrefslogtreecommitdiffstats
path: root/.next/dist/lib/withData.js
diff options
context:
space:
mode:
authorWes Bos <wesbos@gmail.com>2017-08-08 22:09:05 -0400
committerWes Bos <wesbos@gmail.com>2017-08-08 22:09:05 -0400
commit222ab374d53a206332b1ab51c7c43f6d5dc7a31e (patch)
tree2b446d96bfc6c7efab07f3d0fbb84d96ecb1253b /.next/dist/lib/withData.js
yep
Diffstat (limited to '.next/dist/lib/withData.js')
-rw-r--r--.next/dist/lib/withData.js195
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