thundercats-react
Version:
Thundercats addon for use with React
50 lines (36 loc) • 1.42 kB
JavaScript
Object.defineProperty(exports, '__esModule', {
value: true
});
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _invariant = require('invariant');
var _invariant2 = _interopRequireDefault(_invariant);
var ContextWrapper = _react2['default'].createClass({
displayName: 'ThunderCatsContextWrapper',
propTypes: {
cat: _react2['default'].PropTypes.object.isRequired,
children: _react2['default'].PropTypes.element.isRequired
},
childContextTypes: {
cat: _react2['default'].PropTypes.object.isRequired
},
getChildContext: function getChildContext() {
return {
cat: this.props.cat
};
},
render: function render() {
return _react.Children.only(this.props.children);
}
});
// wrap a component in this context wrapper
/* eslint-disable react/no-multi-comp, react/display-name */
ContextWrapper.wrap = function wrap(element, cat) {
(0, _invariant2['default'])(_react2['default'].isValidElement(element), 'ContextWrapper wrap expects a valid React element');
(0, _invariant2['default'])(typeof cat === 'object', 'ContextWrapper expects an instance of Cat');
return _react2['default'].createElement(ContextWrapper, { cat: cat }, element);
};
exports['default'] = ContextWrapper;
module.exports = exports['default'];
;