import type React from "react"; import { useDevice } from "@app/core/providers/useDevice.js"; import { toMGRS } from "@app/core/utils/toMGRS.js"; import { BatteryWidget } from "@components/Widgets/BatteryWidget.js"; import { DeviceWidget } from "@components/Widgets/DeviceWidget.js"; import { PeersWidget } from "@components/Widgets/PeersWidget.js"; import { PositionWidget } from "@components/Widgets/PositionWidget.js"; import { useAppStore } from "@core/stores/appStore.js"; import { useDeviceStore } from "@core/stores/deviceStore.js"; import { CommandLineIcon } from "@heroicons/react/24/outline"; import { Types } from "@meshtastic/meshtasticjs"; import { Input } from "./form/Input.js"; import { Button } from "./form/Button.js"; export const Sidebar = (): JSX.Element => { const { removeDevice } = useDeviceStore(); const { connection, hardware, nodes, status, currentMetrics } = useDevice(); const { selectedDevice, setSelectedDevice, setCommandPaletteOpen } = useAppStore(); const myNode = nodes.find((n) => n.data.num === hardware.myNodeNum); return (
n.data.num === hardware.myNodeNum)?.data.user ?.longName ?? "UNK" } nodeNum={hardware.myNodeNum.toString()} disconnected={status === Types.DeviceStatusEnum.DEVICE_DISCONNECTED} disconnect={() => { void connection?.disconnect(); setSelectedDevice(0); removeDevice(selectedDevice ?? 0); }} reconnect={() => { void connection?.disconnect(); }} />
n.data) .filter((n) => n.num !== hardware.myNodeNum)} />
setCommandPaletteOpen(true)} action={{ icon: , action() { setCommandPaletteOpen(true); } }} />
); };