github Yeraze/meshmonitor v1.17.0
v1.17.0 - App.tsx Context Refactoring

latest releases: v2.19.5, v2.19.4, v2.19.3...
one month ago

๐ŸŽ‰ Major Refactoring Release

This release completes a comprehensive refactoring of the MeshMonitor application, extracting state management into focused contexts for better maintainability and testability.

โœจ What's New

App.tsx Context Architecture

Successfully decomposed App.tsx by extracting 45 state variables into 5 focused contexts:

  • SettingsContext (5 variables) - User preferences and application settings
  • MapContext (10 variables) - Map display and interaction state
  • DataContext (11 variables) - Core application data (nodes, channels, messages)
  • MessagingContext (8 variables) - Message composition and conversation state
  • UIContext (10 variables) - UI state, sorting, filtering, and modals

Test Coverage Improvements

  • Added 53 comprehensive type validation tests
  • Total test suite: 335 passing tests
  • All contexts include comprehensive test coverage

Technical Improvements

  • โœ… Clear separation of concerns with focused contexts
  • โœ… All setters support React.SetStateAction for functional updates
  • โœ… Proper TypeScript types throughout
  • โœ… Zero breaking changes
  • โœ… Clean TypeScript compilation
  • โœ… Improved maintainability and code organization

๐Ÿ“Š Refactoring Statistics

State Variables Extracted: 45 total

  • SettingsContext: 5
  • MapContext: 10
  • DataContext: 11
  • MessagingContext: 8
  • UIContext: 10

PRs Merged:

  • #122: ConfigurationTab modularization (Phase 1)
  • #123: SettingsContext (Phase 2.1)
  • #124: MapContext (Phase 2.2)
  • #125: DataContext (Phase 3)
  • #126: MessagingContext (Phase 4)
  • #127: UIContext (Phase 5)

๐Ÿ”ง No Breaking Changes

All refactoring was done in a backward-compatible way. The application functionality remains unchanged while the codebase is now significantly more maintainable.

๐Ÿ› Bug Fixes

The refactoring also ensures proper type safety and eliminates potential state management bugs through consistent use of React context patterns.


Full Changelog: v1.16.0...v1.17.0

๐Ÿค– Generated with Claude Code

What's Changed

  • feat: comprehensive device configuration UI (v1.16.0) by @Yeraze in #118
  • refactor: centralized logging system and refactoring plan by @Yeraze in #119
  • refactor: complete frontend logging migration by @Yeraze in #120
  • refactor: complete backend logging migration (Phase 3) by @Yeraze in #121
  • refactor: modularize ConfigurationTab (Phase 1 of refactoring plan) by @Yeraze in #122
  • refactor: extract settings to SettingsContext (Phase 2.1 of App.tsx decomposition) by @Yeraze in #123
  • refactor: extract map state to MapContext (Phase 2.2) by @Yeraze in #124
  • refactor: extract data management to DataContext (Phase 3) by @Yeraze in #125
  • refactor: extract messaging state to MessagingContext (Phase 4) by @Yeraze in #126
  • refactor: extract UI state to UIContext (Phase 5) by @Yeraze in #127

Full Changelog: v1.15.0...v1.17.0

๐Ÿš€ MeshMonitor v1.17.0

๐Ÿ“ฆ Installation

Docker (recommended):

docker run -d \
  --name meshmonitor \
  -p 8080:3001 \
  -v meshmonitor-data:/data \
  ghcr.io/Yeraze/meshmonitor:v1.17.0

๐Ÿงช Testing

โœ… All tests passed
โœ… TypeScript checks passed
โœ… Docker images built for linux/amd64, linux/arm64, linux/arm/v7

๐Ÿ“‹ Changes

See commit history for detailed changes.

Don't miss a new meshmonitor release

NewReleases is sending notifications on new releases.