Commit Graph

2 Commits

Author SHA1 Message Date
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
Daniel Pupius
d95a74c1d7 refactor(web): replace Google Maps with MapLibre, clean up map components
- 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>
2026-03-15 20:22:12 +00:00