UNPKG

2.27 kBJavaScriptView Raw
1'use strict';
2
3var _assign2 = require('lodash/assign');
4
5var _assign3 = _interopRequireDefault(_assign2);
6
7var _isObject2 = require('lodash/isObject');
8
9var _isObject3 = _interopRequireDefault(_isObject2);
10
11Object.defineProperty(exports, "__esModule", {
12 value: true
13});
14
15var _linkClass = require('./linkClass');
16
17var _linkClass2 = _interopRequireDefault(_linkClass);
18
19var _react = require('react');
20
21var _react2 = _interopRequireDefault(_react);
22
23function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
25/* eslint-disable react/prop-types */
26
27var wrapStatelessFunction = undefined;
28
29/**
30 * @see https://facebook.github.io/react/blog/2015/09/10/react-v0.14-rc1.html#stateless-function-components
31 * @param {Function} Component
32 * @param {Object} defaultStyles
33 * @param {Object} options
34 * @returns {Function}
35 */
36wrapStatelessFunction = function wrapStatelessFunction(Component, defaultStyles, options) {
37 var WrappedComponent = undefined;
38
39 WrappedComponent = function WrappedComponent() {
40 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
41 args[_key - 1] = arguments[_key];
42 }
43
44 var props = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
45
46 var renderResult = undefined,
47 styles = undefined,
48 useProps = undefined;
49
50 if (props.styles) {
51 useProps = props;
52 styles = props.styles;
53 } else if ((0, _isObject3.default)(defaultStyles)) {
54 useProps = (0, _assign3.default)({}, props, {
55 styles: defaultStyles
56 });
57
58 styles = defaultStyles;
59 } else {
60 useProps = props;
61 styles = {};
62 }
63
64 renderResult = Component.apply(undefined, [useProps].concat(args));
65
66 if (renderResult) {
67 return (0, _linkClass2.default)(renderResult, styles, options);
68 }
69
70 return _react2.default.createElement('noscript');
71 };
72
73 (0, _assign3.default)(WrappedComponent, Component);
74
75 return WrappedComponent;
76};
77
78exports.default = wrapStatelessFunction;
79module.exports = exports['default'];
80//# sourceMappingURL=wrapStatelessFunction.js.map