kitchen-simulator
Version:
It is a kitchen simulator (self-contained micro-frontend).
56 lines (55 loc) • 2.53 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
import _createClass from "@babel/runtime/helpers/esm/createClass";
import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
import _inherits from "@babel/runtime/helpers/esm/inherits";
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
import React from 'react';
import ReactDOM from 'react-dom';
import LiteRenderer from "./LiteRenderer";
export function renderKitchenSimulator(container) {
var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var setExternalEventFn = null;
// Internal wrapper that exposes a state setter
var Wrapper = /*#__PURE__*/function (_React$Component) {
function Wrapper(p) {
var _this;
_classCallCheck(this, Wrapper);
_this = _callSuper(this, Wrapper, [p]);
_this.state = {
externalEvent: p.externalEvent || null
};
setExternalEventFn = _this.setExternalEvent.bind(_this);
return _this;
}
_inherits(Wrapper, _React$Component);
return _createClass(Wrapper, [{
key: "setExternalEvent",
value: function setExternalEvent(newEvent) {
this.setState({
externalEvent: newEvent
});
}
}, {
key: "render",
value: function render() {
return /*#__PURE__*/React.createElement(LiteRenderer, _extends({}, this.props, {
externalEvent: this.state.externalEvent
}));
}
}]);
}(React.Component); // Mount once
ReactDOM.render(/*#__PURE__*/React.createElement(Wrapper, props), container);
return {
updateExternalEvent: function updateExternalEvent(newExternalEvent) {
var _setExternalEventFn;
(_setExternalEventFn = setExternalEventFn) === null || _setExternalEventFn === void 0 || _setExternalEventFn(newExternalEvent);
},
unmount: function unmount() {
ReactDOM.unmountComponentAtNode(container);
}
};
}
export default renderKitchenSimulator;