Commit Graph
59 Commits
Author SHA1 Message Date
Dan DitomasoandGitHub e53edfb00f feat(state): enable deviceStore persistance (#922) 2025-10-31 08:26:21 -04:00
Kamil DzieniszewskiandGitHub 1df63bb84b style: fix line wrapping for GPS coordinate format enum (#918)
- Split long enum reference across multiple lines to improve code readability
- Maintains consistent code formatting standards without changing functionality
2025-10-29 10:17:38 -04:00
Kamil DzieniszewskiandGitHub 679f7986cc fix: use correct deprecated GPS coordinate format enum (#917)
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.
2025-10-29 10:12:04 -04:00
0cf677c8d5 Feat(config): Align settings menu to match android/ios (#906)
* feat: aligned settings menu to match android/ios

* updated sidebar text size.

* Update packages/web/public/i18n/locales/en/config.json

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/web/public/i18n/locales/en/config.json

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/web/src/components/PageComponents/Settings/User.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/web/src/components/PageComponents/ModuleConfig/Telemetry.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* linting/formatting fixes

* fixed formatting issue

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-24 13:31:22 -04:00
cdad811295 Persists device and app stores across sessions (#860)
* Persistence for device and app data

* esphemeral -> ephemeral

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* devices -> app

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Additional waypoint methods, update mock, update tests

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-23 17:27:41 -04:00
Dan DitomasoandGitHub 80c9306db3 feat(i18n): add fr localization support (#902)
* feat: add fr support

* fix(i18n): ensure langs are sorted before being displayed.
2025-10-21 19:42:56 -04:00
64d1f0f7aa fix(ui): logic on waypoint layer component caused 0 to be shown in UI (#896)
* fix(ui): logic on waypoint layer component caused 0 to be shown in UI

* Update packages/web/src/components/PageComponents/Map/Popups/WaypointDetail.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-17 21:28:17 -04:00
acfa7d2269 Add badge indicator on layers icon. (#894)
* feat: indicate number of layers enabled.

* Update packages/web/src/components/PageComponents/Map/Tools/MapLayerTool.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: reduced code duplication in layers component

* fixed unread message bubble

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-16 09:56:32 -04:00
Dan DitomasoGitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Copilotdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
8f62fb7877 Show nodes on right sidebar on app load (#892)
* fix: show nodes on right sidebar on app load

* chore: update protobuf version to latest (#890)

* chore(deps-dev): bump happy-dom from 19.0.2 to 20.0.0 (#891)

Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 19.0.2 to 20.0.0.
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](https://github.com/capricorn86/happy-dom/compare/v19.0.2...v20.0.0)

---
updated-dependencies:
- dependency-name: happy-dom
  dependency-version: 20.0.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update packages/web/src/core/stores/nodeDBStore/index.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-15 22:02:45 -04:00
Dan DitomasoandGitHub 34bdbe4709 chore: update protobuf version to latest (#890) 2025-10-15 10:23:08 -04:00
Dan DitomasoandGitHub 9ab49d1431 Add protobufs repo as git submodule (#882)
* feat: add protobufs git submodule

* fixes

* fixed publishing issue

* fixed lockfile
2025-10-14 08:54:55 -04:00
c66b315623 Restored user's node to ui (messages/node list) (#878)
* fix: restored own node to ui

* Update packages/web/src/pages/Messages.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/web/src/core/stores/nodeDBStore/index.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-11 10:07:56 -04:00
Dan DitomasoandGitHub 76ba4e917e fix: removed en-GB from fallback (#879) 2025-10-11 10:07:40 -04:00
36443fd838 Map improvements - node and neighbor display (#850)
* Improves map node and neighbor display

Updates the map page to enhance the visualization of nodes, waypoints, and neighbor connections.

Adds a map layer tool for toggling the visibility of direct/remote neighbors and position precision indicators.

Introduces clustering to improve map readability when multiple nodes share the exact same location.

Adds SNR lines to visually represent network connections between nodes

Co-Authored-By: jamon <jamon@users.noreply.github.com>

* Clean up

* Update packages/web/src/components/generic/TimeAgo.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/web/src/components/PageComponents/Map/Layers/SNRLayer.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Improve dark mode and expires field

* Review fixes

Co-Authored-By: Dan Ditomaso <dan.ditomaso@gmail.com>

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
Co-authored-by: jamon <jamon@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Dan Ditomaso <dan.ditomaso@gmail.com>
2025-09-18 08:13:34 -04:00
8cc451546d Command Menu improvements (#857)
* Add dialogs for reset and clear actions + clear stores

* Catch failures

* Improve tests, don't reset store on failure

* Remove unnecessary i18n string

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-09-18 08:13:19 -04:00
1bdd923365 Do not unregister form (#856)
Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-09-17 18:34:19 +02:00
aaf85943a8 Address new linting rules (#851)
Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-09-14 21:31:47 -04:00
3e2fe721d3 Improvements to node filtering and storage (#839)
* Improves node filtering and voltage display

Ensures voltage values are always displayed as positive.

Enhances node filtering logic to handle unknown or undefined values, preventing nodes from being unexpectedly hidden.

Updates UI labels for clarity.

Improves Nodes page responsiveness by debouncing node updates and optimizing selector usage, preventing unnecessary re-renders.

Adds validation warnings for key conflicts between nodes.

* Update packages/web/src/core/stores/nodeDBStore/nodeDBStore.test.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/web/src/core/stores/nodeDBStore/nodeValidation.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Revert copilot suggestion

* Review changes

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-12 17:21:13 +02:00
1214b6ecf6 Allow default overrideFrequency (#838)
* Allow overrideFrequency == 0
* Fix typo

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-09-10 20:33:32 +02:00
Dan DitomasoandGitHub aababb8075 Dialog abstraction using DialogWrapper (#830)
* feat: add dialog abstraction system

* removed unneeded file

* fix formatting

* linting fixes
2025-09-10 13:56:45 -04:00
f9bd61af49 Fixed overrideFrequency Input Constraints (#801)
* Fixed overrideFrequency to properly allow for floats with a minimum of 410 MHz and maximum of 930 MHz. Added 3 decimal point check.

* Removed duplicate error message in FormInput.tsx

* Added error message for overrideFrequency in several locales

* Simplified check and reverted translated languages to English besides German. Also fixed a typo in src/components/UI/Input.tsx.

* Let i18n handle fallback + linting

---------

Co-authored-by: philon- <jeremy@gallant.se>
2025-09-04 18:22:06 -04:00
dcb44d27fe Persistent message store (#814)
* Fix default filter behaviour

* Persist message store

* messageStore tests, node PKI validation

Implement node validation and improve merging logic

- Added `validateIncomingNode` function to validate new nodes against existing nodes, checking for public key conflicts and ensuring proper handling of node updates.
- Updated `nodeDBFactory` to utilize the new validation function when adding nodes.
- Enhanced `getNodes` method to optionally include the current node in the results.
- Removed the `mergeNodeInfo` utility as its functionality is now integrated into the validation and merging process.
- Updated tests to cover new validation logic and ensure correct behavior during node addition and merging.
- Cleaned up unused utility functions related to key comparison.

* refactor: reuse eviction logic for message and node stores

* Update format, move hooks

* Improve test performance

* Update imports

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
Co-authored-by: Dan Ditomaso <dan.ditomaso@gmail.com>
2025-09-03 21:00:48 -04:00
Dan DitomasoandGitHub d0f4939a4d Added lint rule to enforce importing with extensions (#831)
* fix: added lint rule to enforce importing with extentions

* fix test import path

* added import file extentions
2025-09-03 17:07:00 -04:00
d66f10e715 Fix rename seperator again (#828)
* Reapply "Seperator -> Separator (#823)" (#827)

This reverts commit e421eb4244.

* Rename new seperator

* Update packages/web/src/components/Dialog/NodeDetailsDialog/NodeDetailsDialog.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/web/src/components/Dialog/RebootDialog.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/web/src/components/PageComponents/Map/NodeDetail.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/web/src/pages/Dashboard/index.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
Co-authored-by: Dan Ditomaso <dan.ditomaso@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-02 22:02:36 -04:00
Dan DitomasoandGitHub e421eb4244 Revert "Seperator -> Separator (#823)" (#827)
This reverts commit 3582499a3c.
2025-09-02 09:41:48 -04:00
ce16bf5aa4 Chat message date display (#824)
* Date handling

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-01 23:00:05 -04:00
3582499a3c Seperator -> Separator (#823)
Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-09-01 21:57:51 -04:00
1946000d14 New channel config (#807)
* Channel config rework

Add staged channel config with tabbed UI, import/export workflow, and global form state refactor

* Improve import dialog config comparison and UI labels

* Review fixes

* Improve state handling

* Fix default filter behaviour

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-09-01 09:07:34 -04:00
01fa030ef9 Fix default filter behaviour (#820)
Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-08-31 21:44:22 -04:00
90cf136b8c Update test format (#821)
* Lint tests, format JSON

* Update test formatting

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-08-31 21:30:11 -04:00
Jeremy GallantandGitHub 91426a89e5 Lint tests, format JSON (#818) 2025-08-31 16:04:34 -04:00
68ec7ee5d8 Persistent nodedb (#780)
* Refactor  and consolitdate store imports

- Created a new index file in the core stores directory to export all stores from a single module.
- Updated imports to use consolidated store exports.

* Remove unnecessary import

* Update imports

* First steps to persist nodeDB

* Use named exports

* Change store import after merge

* Persistent nodeDB initial work

* Key mishmatch warning, new serialization handler

* Minor copilot changes

* Add NODEDB_RETENTION_NUM

* Updated tests

* Refactor PKI mismatch logic

* Clear persisted db on reset

* Only persist on featureFlag

* Mock featureFlag in tests

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-08-24 09:23:20 -04:00
Jeremy GallantandGitHub d4b80cf90b Re-add toaster component (#804) 2025-08-23 20:45:22 -04:00
449fb3ac36 Added feature flags system (#803)
* added feature flag system

* Update packages/web/src/core/services/featureFlags.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* remove process.env

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-22 13:47:24 -04:00
Dan DitomasoandGitHub 1de92cd2e9 Replace workspace formatter/linting tool (#799)
* replaced workspace formatter/linting tool

* format / linting fixes
2025-08-22 12:30:05 -04:00
ee1758a548 Add DFU mode to command menu (#781)
* feat: add dfu mode to command menu

* Update packages/web/src/components/CommandPalette/index.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-13 21:24:45 -04:00
d453ff809a Refactor and consolidate store imports (#774)
* Refactor  and consolitdate store imports

- Created a new index file in the core stores directory to export all stores from a single module.
- Updated imports to use consolidated store exports.

* Remove unnecessary import

* Update imports

* Use named exports

* Change store import after merge

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-08-11 12:36:33 -04:00
32f31cb502 Add client notification (#771)
* ClientNotification WIP

* Test

* ClientNotification WIP

* Add client notification dialog and related functionality

* Update ClientNotificationDialog.tsx

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-08-10 21:59:03 -04:00
Jeremy GallantandGitHub 176d554ef9 Improve NodeDetailsDialog UI and add security info (#770)
* Improve NodeDetailsDialog UI and add security info

Refactored NodeDetailsDialog to use tables for better layout and readability, added a security section displaying public key and verification status, and included messageable status. Updated i18n files with new keys and improved battery level formatting. Fixed logic in Nodes page for handling location packets and improved hardware model sorting.

* Update NodeDetailsDialog.tsx
2025-08-10 21:58:26 -04:00
1dbf0b07b6 refactor-ota-dialog (#768)
Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-08-10 07:49:42 -04:00
27ed4e58bd Fix admin PKI validation (#766)
Admin PKI fields were falsely flagged as unchanged.

Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-08-09 22:38:59 -04:00
a7f56c0bd5 Fix checkbox tests (#767)
Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-08-09 22:37:31 -04:00
Dan DitomasoandGitHub 4dd911e73d Use workspace meshtastic packages (#749)
* refactor: updated web package.json to use workspace

* formatting fixes
2025-07-28 18:18:46 -04:00
Vasilj MiloševićandGitHub a9f6afffc2 Add visually hidden DialogTitle to the CommandDialog (#742)
* Add visually hidden DialogTitle to the CommandDialog

Added a visually hidden DialogTitle to the CommandDialog component in Command.tsx  to maintain accessibility while keeping the clean UI of the command palette.

* add visually hidden component as explicit dependency
2025-07-28 16:44:25 -04:00
Dan DitomasoandGitHub 3c1399b44a Changed position of theme button, hiding tooltip after set time. (#735)
* fix: changed position of theme button, hiding tooltip after set time.

* feat: added usevisibility hook

* updating paths
2025-07-25 12:48:57 -04:00
50ca75da0e Send heartbeat package to keep serial alive (#732)
* Send heartbeat package to keep the serial connection alive

* Update meshDevice.ts

---------

Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-07-24 10:15:27 -04:00
Jeremy GallantandGitHub 5b417a321a Fix node mapping and unknown node display in traceroute dialogs (#728)
Corrects the mapping of 'from' and 'to' nodes in TracerouteResponseDialog to reflect the actual origin and destination of traceroute packets. Also updates TraceRoute to display a localized unknown name for node ID 4294967295 (0xffffff), improving clarity for unknown nodes.
2025-07-23 21:31:05 -04:00
afb7f4bd2e Change chatId validation schema (#731)
Fixes #715

Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-07-22 10:01:31 -04:00
67db8b5be8 Update Switch color scheme (#730)
Co-authored-by: philon- <philon-@users.noreply.github.com>
2025-07-22 09:58:25 -04:00
Dan DitomasoandGitHub 09d6556abd readd device num to serial page (#727) 2025-07-20 14:54:43 -04:00