UNPKG

@robotical/sensors-dashboard

Version:

A dashboard tool for depicting Marty data by Robotical

69 lines (66 loc) 2.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = LandingPage; require("core-js/modules/web.dom-collections.iterator.js"); var _Header = _interopRequireDefault(require("../../components/Header")); var _MainContent = _interopRequireDefault(require("../../components/MainContent")); var _stylesModule = _interopRequireDefault(require("./styles.module.css")); var _react = require("react"); var _ModalState = _interopRequireDefault(require("../../state-observables/modal/ModalState")); var _Modal = _interopRequireDefault(require("../../components/Modal")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function LandingPage(_ref) { let { isInModal } = _ref; const [modalData, setModalData] = (0, _react.useState)(null); const [shouldCloseModal, setShouldCloseModal] = (0, _react.useState)(false); const mainRef = (0, _react.useRef)(null); const modalSubscriptionHelper = { notify(eventTopic, eventData) { switch (eventTopic) { case "SetModal": setModalData(eventData); break; case "CloseModal": setShouldCloseModal(true); break; } } }; // Create subscription to the modal state (0, _react.useEffect)(() => { // Subscribe _ModalState.default.subscribe(modalSubscriptionHelper, ["SetModal", "CloseModal"]); // Return unsubscribe function return () => { _ModalState.default.unsubscribe(modalSubscriptionHelper); }; }, []); const resetModal = () => { setShouldCloseModal(false); setModalData(null); }; return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, { children: [!!(modalData !== null && modalData !== void 0 && modalData.modalContent) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Modal.default, { title: modalData && modalData.modalTitle || "", modalResetter: resetModal, shouldCloseModal: shouldCloseModal, withLogo: true, children: modalData === null || modalData === void 0 ? void 0 : modalData.modalContent }), /*#__PURE__*/(0, _jsxRuntime.jsx)("main", { id: "sensors-dashboard-modal-main-container" }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("main", { className: _stylesModule.default.mainContainer, ref: mainRef, children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Header.default, { isInModal: isInModal }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_MainContent.default, { mainRef: mainRef })] })] }); }