UNPKG

@robotical/sensors-dashboard

Version:

A dashboard tool for depicting Marty data by Robotical

101 lines (100 loc) 4.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; require("core-js/modules/web.dom-collections.iterator.js"); require("core-js/modules/es.json.stringify.js"); var _stylesModule = _interopRequireDefault(require("./styles.module.css")); var _marty_selected = _interopRequireDefault(require("../../../assets/connect-button/marty_selected.svg")); var _cog_selected = _interopRequireDefault(require("../../../assets/connect-button/cog_selected.svg")); var _disconnect_button = require("../../../assets/connect-button/disconnect_button.svg"); var _disconnect_buttonHover = require("../../../assets/connect-button/disconnect_button-hover.svg"); var _react = require("react"); var _RaftSignal = _interopRequireDefault(require("../RaftSignal")); var _RaftBattery = _interopRequireDefault(require("../RaftBattery")); var _raft = require("@robotical/webapp-types/dist-types/src/types/raft"); var _Logger = _interopRequireDefault(require("../../../services/logger/Logger")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const SHOW_LOGS = true; const TAG = "RobotButton"; const RobotButton = _ref => { let { robotType, connectedRaft, onClickDisconnect } = _ref; const [connectedRaftName, setConnectedRaftName] = (0, _react.useState)(""); const [batteryStrength, setBatteryStrength] = (0, _react.useState)(0); const [RSSI, setRSSI] = (0, _react.useState)(-200); const [isDisconnectHovered, setIsDisconnectHovered] = (0, _react.useState)(false); (0, _react.useEffect)(() => { if (!connectedRaft) return; const batteryUpdateTimout = setInterval(() => { setBatteryStrength(connectedRaft.getBatteryStrength()); setRSSI(connectedRaft.getRSSI()); }, 1000); return () => clearInterval(batteryUpdateTimout); }, [connectedRaft]); (0, _react.useEffect)(() => { if (connectedRaft) { setTimeout(() => { connectedRaft.getRaftName().then(name => { console.log("name", name); setConnectedRaftName(name); }).catch(error => { _Logger.default.error(SHOW_LOGS, TAG, "Error getting raft name " + JSON.stringify(error)); }); }, 500); } }, [connectedRaft]); const robotIcon = robotType === _raft.RaftTypeE.MARTY ? _marty_selected.default : _cog_selected.default; return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: [_stylesModule.default.robotButtonContainer, _stylesModule.default.selected].join(" "), children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { className: _stylesModule.default.robotButtonContainerInner, children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: _stylesModule.default.robotButtonIconContainer, children: /*#__PURE__*/(0, _jsxRuntime.jsx)("img", { src: robotIcon, alt: "Robot icon", className: _stylesModule.default.robotButtonIcon }) }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: _stylesModule.default.batteryContainer, children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: _stylesModule.default.batteryIcon, children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_RaftBattery.default, { batteryStrength: batteryStrength }) }) }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: _stylesModule.default.signalContainer, children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_RaftSignal.default, { connectedRaft: connectedRaft, signalStrength: RSSI }) }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: _stylesModule.default.robotButtonNameContainer, children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: _stylesModule.default.robotButtonName, children: truncateRobotName(connectedRaftName) }) }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: _stylesModule.default.trashContainer, onClick: () => onClickDisconnect(connectedRaft.id), onMouseEnter: () => setIsDisconnectHovered(true), onMouseLeave: () => setIsDisconnectHovered(false), children: isDisconnectHovered ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_disconnect_buttonHover.ReactComponent, {}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_disconnect_button.ReactComponent, {}) })] }) }); }; var _default = exports.default = RobotButton; function truncateRobotName(name) { if (name.length > 13) { return name.substring(0, 11) + "..."; } return name; }