-
Notifications
You must be signed in to change notification settings - Fork 220
feat(connections): Add connections page (replaces new device dialog) #919
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(connections): Add connections page (replaces new device dialog) #919
Conversation
|
@danditomaso is attempting to deploy a commit to the Meshtastic Team on Vercel. A member of the Team first needs to authorize it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR refactors the Dashboard page into a Connections page, introducing a comprehensive connection management system. The changes support saving, managing, and switching between multiple device connections (HTTP, Bluetooth, Serial) with persistent storage.
Key changes:
- Replaced Dashboard with a new Connections page that manages device connections
- Added connection state management with status tracking and persistence
- Implemented LRU (Least Recently Used) list hook for recent HTTP connections
- Added UI components for connection management (AlertDialog, Card, Badge)
Reviewed Changes
Copilot reviewed 64 out of 66 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/web/src/pages/Connections/index.tsx | New Connections page with card-based UI for managing connections |
| packages/web/src/pages/Connections/useConnections.ts | Core connection management logic and lifecycle hooks |
| packages/web/src/pages/Connections/utils.ts | Helper functions for connection creation and status checks |
| packages/web/src/core/stores/deviceStore/index.ts | Added savedConnections state and CRUD operations |
| packages/web/src/core/stores/deviceStore/types.ts | New Connection and ConnectionStatus type definitions |
| packages/web/src/core/hooks/useLRUList.ts | Reusable LRU list hook with localStorage persistence |
| packages/web/src/components/UI/AlertDialog.tsx | New AlertDialog component using Radix UI primitives |
| packages/web/src/components/UI/Card.tsx | New Card component for connection cards |
| packages/web/src/components/UI/Badge.tsx | New Badge component for status indicators |
| packages/web/src/components/Dialog/AddConnectionDialog/* | Dialog for adding new connections with validation |
| packages/web/src/routes.tsx | Updated routes to use Connections instead of Dashboard |
| packages/web/public/i18n/locales/*/connections.json | Renamed dashboard namespace to connections |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
The Config_DisplayConfig_GpsCoordinateFormat export doesn't exist in the protobufs package. The correct export is Config_DisplayConfig_DeprecatedGpsCoordinateFormat, which matches what's used in the validation schema. Added TODO comment explaining that this field is deprecated since protobufs 2.7.4 and should be migrated to DeviceUIConfig.gps_format when DeviceUI settings are implemented.
- Split long enum reference across multiple lines to improve code readability - Maintains consistent code formatting standards without changing functionality
* fix(core): ensure core package works in browser * style(core): revert new line removal
* feat: scaffold UI library * Update packages/ui/src/components/theme-provider.tsx Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * add lock file * lint/formatting fixes --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
|
|
|
Description
This PR introduces the Connections page to the web client. This will replace the New Connection dialog that was previously used. Some benefits of this page is it stores connections in the deviceStore and persists the connection details to indexDB. Users can add HTTP, Bluetooth or Serial connections and HTTP connections are will also have a reachability test to show if nodes are reachable.
Related Issues
Fixes #589
Fixes #701
Fixes #241
Changes Made
Testing Done
Screenshots (if applicable)
Checklist
CONTRIBUTING_I18N_DEVELOPER_GUIDE.md for more details)