@robotical/sensors-dashboard
Version:
A dashboard tool for depicting Marty data by Robotical
69 lines (66 loc) • 2.57 kB
JavaScript
;
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
})]
})]
});
}