SignalIndicator now takes an isOnline prop — when a device is offline it renders a dimmed amber glyph with an X instead of showing the last-known (possibly full-bars) RSSI reading, which was misleading on the Device List table view. Card view already special-cased offline devices and is unaffected. Also, while working the device details surface: - DeviceDetail: hover-to-reveal copy button next to the serial number subtitle in the page header. - OverviewTab hero: swapped the redundant "Location" field (already shown in detail on the General tab's map) for live Firmware Version. - GeneralTab: new full-width, compact Firmware hero row (version, channel, validation state, boot count, backup slot) sourced from firmware.status. - ControlTab: max width brought in line with every other tab (2000, was 1400), and added a 4th "Firmware" section with channel selection, Update Now, custom-URL flash, and commit/rollback controls, wired to the firmware.status / ota.* / firmware.commit / firmware.rollback commands documented in the API Reference. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
React + Vite
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Babel (or oxc when used in rolldown-vite) for Fast Refresh
- @vitejs/plugin-react-swc uses SWC for Fast Refresh
React Compiler
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.
Expanding the ESLint configuration
If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the TS template for information on how to integrate TypeScript and typescript-eslint in your project.