UNPKG

1.82 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _lodash = require('lodash');
8
9var _lodash2 = _interopRequireDefault(_lodash);
10
11var _react = require('react');
12
13var _react2 = _interopRequireDefault(_react);
14
15var _linkClass = require('./linkClass');
16
17var _linkClass2 = _interopRequireDefault(_linkClass);
18
19function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
21/**
22 * @see https://facebook.github.io/react/blog/2015/09/10/react-v0.14-rc1.html#stateless-function-components
23 */
24
25exports.default = function (Component, defaultStyles, options) {
26 var WrappedComponent = function WrappedComponent() {
27 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
28 args[_key - 1] = arguments[_key];
29 }
30
31 var props = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
32
33 var styles = void 0,
34 useProps = void 0;
35
36 if (props.styles) {
37 useProps = props;
38 styles = props.styles;
39 } else if (_lodash2.default.isObject(defaultStyles)) {
40 useProps = _lodash2.default.assign({}, props, {
41 styles: defaultStyles
42 });
43
44 styles = defaultStyles;
45 } else {
46 useProps = props;
47 styles = {};
48 }
49
50 var renderResult = Component.apply(undefined, [useProps].concat(args));
51
52 if (renderResult) {
53 return (0, _linkClass2.default)(renderResult, styles, options);
54 }
55
56 return _react2.default.createElement('noscript');
57 };
58
59 _lodash2.default.assign(WrappedComponent, Component);
60
61 return WrappedComponent;
62}; /* eslint-disable react/prop-types */
63
64module.exports = exports['default'];
\No newline at end of file