UNPKG

zoid

Version:
90 lines (65 loc) 3.54 kB
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } import { extend } from 'belter/src'; import { CONTEXT } from '../constants'; export var react = { global: function global() { if (window.React && window.ReactDOM) { return { React: window.React, ReactDOM: window.ReactDOM }; } }, register: function register(component, _ref) { var React = _ref.React, ReactDOM = _ref.ReactDOM; if (React.createClass) { // $FlowFixMe component.react = React.createClass({ render: function render() { return React.createElement('div', null); }, componentDidMount: function componentDidMount() { component.log('instantiate_react_component'); var el = ReactDOM.findDOMNode(this); var parent = component.init(extend({}, this.props), null, el); this.setState({ parent: parent }); parent.render(CONTEXT.IFRAME, el); }, componentDidUpdate: function componentDidUpdate() { if (this.state && this.state.parent) { this.state.parent.updateProps(extend({}, this.props)); } } }); } else { // $FlowFixMe component.react = function (_React$Component) { _inherits(_class, _React$Component); function _class() { _classCallCheck(this, _class); return _possibleConstructorReturn(this, _React$Component.apply(this, arguments)); } _class.prototype.render = function render() { return React.createElement('div', null); }; _class.prototype.componentDidMount = function componentDidMount() { component.log('instantiate_react_component'); var el = ReactDOM.findDOMNode(this); var parent = component.init(extend({}, this.props), null, el); this.setState({ parent: parent }); parent.render(CONTEXT.IFRAME, el); }; _class.prototype.componentDidUpdate = function componentDidUpdate() { if (this.state && this.state.parent) { this.state.parent.updateProps(extend({}, this.props)); } }; return _class; }(React.Component); } return component.react; } };