UNPKG

7.28 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.contextTypes = undefined;
7
8var _extends2 = require('babel-runtime/helpers/extends');
9
10var _extends3 = _interopRequireDefault(_extends2);
11
12var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
13
14var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
15
16var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
17
18var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
19
20var _createClass2 = require('babel-runtime/helpers/createClass');
21
22var _createClass3 = _interopRequireDefault(_createClass2);
23
24var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
25
26var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
27
28var _inherits2 = require('babel-runtime/helpers/inherits');
29
30var _inherits3 = _interopRequireDefault(_inherits2);
31
32var _react = require('react');
33
34var _react2 = _interopRequireDefault(_react);
35
36function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
38var contextTypes = exports.contextTypes = {
39 page: _react2.default.PropTypes.object
40}; /**
41 * @copyright 2016-present, Sitegen team
42 */
43
44var CollectionContext = function (_React$Component) {
45 (0, _inherits3.default)(CollectionContext, _React$Component);
46
47 function CollectionContext() {
48 (0, _classCallCheck3.default)(this, CollectionContext);
49 return (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(CollectionContext).apply(this, arguments));
50 }
51
52 (0, _createClass3.default)(CollectionContext, [{
53 key: 'render',
54 value: function render() {
55 var _props = this.props;
56 var Component = _props.Component;
57 var page = _props.page;
58 var props = _props.props;
59
60 page = page.map(function (item) {
61 return (0, _extends3.default)({}, item, {
62 path: _createPath(props.route, props.routes, item.path)
63 });
64 });
65 return _react2.default.createElement(Component, (0, _extends3.default)({}, props, { page: page }));
66 }
67 }, {
68 key: 'getChildContext',
69 value: function getChildContext() {
70 var _props2 = this.props;
71 var pageNumber = _props2.pageNumber;
72 var pageCount = _props2.pageCount;
73 var _props2$props = _props2.props;
74 var routes = _props2$props.routes;
75 var route = _props2$props.route;
76
77 return {
78 page: {
79 collection: { pageNumber: pageNumber, pageCount: pageCount },
80 routes: routes,
81 route: route,
82 createPath: function createPath() {
83 for (var _len = arguments.length, rest = Array(_len), _key = 0; _key < _len; _key++) {
84 rest[_key] = arguments[_key];
85 }
86
87 return _createPath.apply(undefined, [route, routes].concat(rest));
88 }
89 }
90 };
91 }
92 }]);
93 return CollectionContext;
94}(_react2.default.Component);
95
96CollectionContext.contextTypes = contextTypes;
97CollectionContext.childContextTypes = contextTypes;
98exports.default = CollectionContext;
99
100
101function _createPath(route, routes) {
102 var basepath = [];
103 for (var i = 0; i < routes.length; i++) {
104 basepath.push(routes[i].path);
105 if (routes[i] === route) {
106 break;
107 }
108 }
109 basepath = basepath.join('');
110
111 for (var _len2 = arguments.length, rest = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
112 rest[_key2 - 2] = arguments[_key2];
113 }
114
115 if (rest.length > 0) {
116 return [basepath].concat(rest).join('/');
117 } else {
118 return basepath;
119 }
120}
121//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbmRyZXlwb3BwL1dvcmtzcGFjZS9zaXRlZ2VuL3NyYy9Db2xsZWN0aW9uQ29udGV4dC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSUE7Ozs7OztBQUVPLElBQUksc0NBQWU7QUFDeEIsUUFBTSxnQkFBTSxTQUFOLENBQWdCO0FBREUsQ0FBbkIsQzs7OztJQUljLGlCOzs7Ozs7Ozs7OzZCQUtWO0FBQUEsbUJBQ3dCLEtBQUssS0FEN0I7QUFBQSxVQUNGLFNBREUsVUFDRixTQURFO0FBQUEsVUFDUyxJQURULFVBQ1MsSUFEVDtBQUFBLFVBQ2UsS0FEZixVQUNlLEtBRGY7O0FBRVAsYUFBTyxLQUFLLEdBQUwsQ0FBUztBQUFBLDBDQUNYLElBRFc7QUFFZCxnQkFBTSxZQUFXLE1BQU0sS0FBakIsRUFBd0IsTUFBTSxNQUE5QixFQUFzQyxLQUFLLElBQTNDO0FBRlE7QUFBQSxPQUFULENBQVA7QUFJQSxhQUFPLDhCQUFDLFNBQUQsNkJBQWUsS0FBZixJQUFzQixNQUFNLElBQTVCLElBQVA7QUFDRDs7O3NDQUVpQjtBQUFBLG9CQUNzQyxLQUFLLEtBRDNDO0FBQUEsVUFDWCxVQURXLFdBQ1gsVUFEVztBQUFBLFVBQ0MsU0FERCxXQUNDLFNBREQ7QUFBQSxrQ0FDWSxLQURaO0FBQUEsVUFDb0IsTUFEcEIsaUJBQ29CLE1BRHBCO0FBQUEsVUFDNEIsS0FENUIsaUJBQzRCLEtBRDVCOztBQUVoQixhQUFPO0FBQ0wsY0FBTTtBQUNKLHNCQUFZLEVBQUMsc0JBQUQsRUFBYSxvQkFBYixFQURSO0FBRUosa0JBQVEsTUFGSjtBQUdKLGlCQUFPLEtBSEg7QUFJSixvQkFKSSx3QkFJZ0I7QUFBQSw4Q0FBTixJQUFNO0FBQU4sa0JBQU07QUFBQTs7QUFDbEIsbUJBQU8sOEJBQVcsS0FBWCxFQUFrQixNQUFsQixTQUE2QixJQUE3QixFQUFQO0FBQ0Q7QUFORztBQURELE9BQVA7QUFVRDs7O0VBMUI0QyxnQkFBTSxTOztBQUFoQyxpQixDQUVaLFksR0FBZSxZO0FBRkgsaUIsQ0FHWixpQixHQUFvQixZO2tCQUhSLGlCOzs7QUE2QnJCLFNBQVMsV0FBVCxDQUFvQixLQUFwQixFQUEyQixNQUEzQixFQUE0QztBQUMxQyxNQUFJLFdBQVcsRUFBZjtBQUNBLE9BQUssSUFBSSxJQUFJLENBQWIsRUFBZ0IsSUFBSSxPQUFPLE1BQTNCLEVBQW1DLEdBQW5DLEVBQXdDO0FBQ3RDLGFBQVMsSUFBVCxDQUFjLE9BQU8sQ0FBUCxFQUFVLElBQXhCO0FBQ0EsUUFBSSxPQUFPLENBQVAsTUFBYyxLQUFsQixFQUF5QjtBQUN2QjtBQUNEO0FBQ0Y7QUFDRCxhQUFXLFNBQVMsSUFBVCxDQUFjLEVBQWQsQ0FBWDs7QUFSMEMscUNBQU4sSUFBTTtBQUFOLFFBQU07QUFBQTs7QUFTMUMsTUFBSSxLQUFLLE1BQUwsR0FBYyxDQUFsQixFQUFxQjtBQUNuQixXQUFPLENBQUMsUUFBRCxFQUFXLE1BQVgsQ0FBa0IsSUFBbEIsRUFBd0IsSUFBeEIsQ0FBNkIsR0FBN0IsQ0FBUDtBQUNELEdBRkQsTUFFTztBQUNMLFdBQU8sUUFBUDtBQUNEO0FBQ0YiLCJmaWxlIjoiQ29sbGVjdGlvbkNvbnRleHQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBjb3B5cmlnaHQgMjAxNi1wcmVzZW50LCBTaXRlZ2VuIHRlYW1cbiAqL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgbGV0IGNvbnRleHRUeXBlcyA9IHtcbiAgcGFnZTogUmVhY3QuUHJvcFR5cGVzLm9iamVjdCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbGxlY3Rpb25Db250ZXh0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcblxuICBzdGF0aWMgY29udGV4dFR5cGVzID0gY29udGV4dFR5cGVzO1xuICBzdGF0aWMgY2hpbGRDb250ZXh0VHlwZXMgPSBjb250ZXh0VHlwZXM7XG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7Q29tcG9uZW50LCBwYWdlLCBwcm9wc30gPSB0aGlzLnByb3BzO1xuICAgIHBhZ2UgPSBwYWdlLm1hcChpdGVtID0+ICh7XG4gICAgICAuLi5pdGVtLFxuICAgICAgcGF0aDogY3JlYXRlUGF0aChwcm9wcy5yb3V0ZSwgcHJvcHMucm91dGVzLCBpdGVtLnBhdGgpLFxuICAgIH0pKTtcbiAgICByZXR1cm4gPENvbXBvbmVudCB7Li4ucHJvcHN9IHBhZ2U9e3BhZ2V9IC8+O1xuICB9XG5cbiAgZ2V0Q2hpbGRDb250ZXh0KCkge1xuICAgIGxldCB7cGFnZU51bWJlciwgcGFnZUNvdW50LCBwcm9wczoge3JvdXRlcywgcm91dGV9fSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2U6IHtcbiAgICAgICAgY29sbGVjdGlvbjoge3BhZ2VOdW1iZXIsIHBhZ2VDb3VudH0sXG4gICAgICAgIHJvdXRlczogcm91dGVzLFxuICAgICAgICByb3V0ZTogcm91dGUsXG4gICAgICAgIGNyZWF0ZVBhdGgoLi4ucmVzdCkge1xuICAgICAgICAgIHJldHVybiBjcmVhdGVQYXRoKHJvdXRlLCByb3V0ZXMsIC4uLnJlc3QpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVQYXRoKHJvdXRlLCByb3V0ZXMsIC4uLnJlc3QpIHtcbiAgbGV0IGJhc2VwYXRoID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcm91dGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgYmFzZXBhdGgucHVzaChyb3V0ZXNbaV0ucGF0aCk7XG4gICAgaWYgKHJvdXRlc1tpXSA9PT0gcm91dGUpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICBiYXNlcGF0aCA9IGJhc2VwYXRoLmpvaW4oJycpO1xuICBpZiAocmVzdC5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIFtiYXNlcGF0aF0uY29uY2F0KHJlc3QpLmpvaW4oJy8nKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYmFzZXBhdGg7XG4gIH1cbn1cbiJdfQ==
\No newline at end of file