UNPKG

kitchen-simulator

Version:

It is a kitchen simulator (self-contained micro-frontend).

56 lines (55 loc) 2.53 kB
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;