Files
meshstream/web
Daniel Pupius c54e4a6a21 Improve map and node detail UI
Map:
- Fix __publicField error by setting esbuild target to esnext
- Replace react-map-gl with direct maplibre-gl imperative API across all map components
- Add dark theme styling for MapLibre popup, attribution, and navigation controls
- Add NavigationControl to NetworkMap and NodeLocationMap
- Fix auto-zoom race condition using mapLoaded state
- Fix node click popup being immediately dismissed
- Add MQTT links as separate dashed purple layer
- Reduce node/dot sizes on NetworkMap
- Switch glyph CDN to fonts.openmaptiles.org
- Extend map legend with SNR line color key and MQTT indicator

Node detail:
- Extract shared ConnectionRow and ConnectionList components
- Compact connections table: single row per entry with color-coded SNR, badges, short time
- Apply same compact style to NeighborInfoPacket neighbor list
- Move Connections section into right column below Last Activity
- Split Gateway Node out of Device Information into its own card
- Fold observed node count into "Recently observed nodes (N)" subtext
- Add formatLastSeenShort for compact time display

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 03:20:27 +00:00
..
2026-03-16 03:20:27 +00:00
2025-04-29 12:12:41 -07:00
2025-04-22 16:42:22 -07:00
2025-04-22 13:26:35 -07:00

Meshstream Web Interface

This is the web interface for the Meshstream application, which provides a real-time view of Meshtastic network traffic.

Technologies Used

  • Vite
  • React
  • TypeScript
  • Redux Toolkit
  • Tailwind CSS
  • Tanstack Router

Development

# Install dependencies
pnpm install

# Start development server
pnpm dev

# Build for production
pnpm build

# Preview production build
pnpm preview

Structure

  • src/components/ - React components
  • src/routes/ - Tanstack Router route components
  • src/store/ - Redux store and slices
  • src/hooks/ - Custom React hooks
  • src/lib/ - Utility functions and API clients
  • src/styles/ - CSS styles
  • src/assets/ - Static assets like images

API

The application communicates with the Meshstream server via:

  • REST API endpoints at /api/...
  • Server-Sent Events (SSE) connection at /api/stream

See src/lib/api.ts for more details on the API client implementation.