mirror of
https://github.com/dpup/meshstream.git
synced 2026-03-28 17:42:37 +01:00
- Migrate all three map components (Map, GoogleMap, NetworkMap) to MapLibre GL JS - Extract shared CARTO_DARK_STYLE constants into lib/mapStyle.ts - Move buildCircleCoords to lib/mapUtils.ts (was duplicated across components) - Rename exports: Map → LocationMap, GoogleMap → NodeLocationMap - Remove dead props (width, height, nightMode) from LocationMap interface - Lazy-mount GL contexts via IntersectionObserver to prevent WebGL exhaustion - Fix Math.spread RangeError in NetworkMap bounds calculation - Remove showLinks conditional render in favour of visibility layout property - Remove cursor state; set canvas cursor style directly on map interactions - Remove Google Maps API key env vars from .env.example and .env.local - Move Vite dev server to port 5747 (avoids cached redirect on 3000) - Fix CORS/404: set VITE_API_BASE_URL="" so browser uses Vite proxy Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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 componentssrc/routes/- Tanstack Router route componentssrc/store/- Redux store and slicessrc/hooks/- Custom React hookssrc/lib/- Utility functions and API clientssrc/styles/- CSS stylessrc/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.