mirror of
https://github.com/gadgethd/ukmesh.git
synced 2026-09-10 00:55:33 +00:00
- split backend API into route/service/repository boundaries across stats, owner, and pathing\n- extract shared API bootstrap and helper modules\n- reduce MapLibreMap into smaller frontend map modules with extracted builders, config, popup UI, and types\n- continue worker modularization by extracting RF terrain/tile helpers alongside RF config and loss helpers\n- add repo-local architecture, DB lifecycle, link model, pathing, frontend map, and contributing docs\n\nThis is the verified refactor checkpoint: backend and frontend builds passed, worker syntax checks passed, affected containers were rebuilt, and /healthz is OK.
28 lines
751 B
Markdown
28 lines
751 B
Markdown
# Frontend Map
|
|
|
|
## Current structure
|
|
|
|
- `MapLibreMap.tsx`
|
|
- imperative map lifecycle and source refresh scheduling
|
|
- `geojsonBuilders.ts`
|
|
- pure GeoJSON builders and clash calculations
|
|
- `mapConfig.ts`
|
|
- map constants and style config
|
|
- `NodePopupContent.tsx`
|
|
- popup UI
|
|
- `LiveOverlayController.tsx`
|
|
- live path overlay controller
|
|
|
|
## State ownership
|
|
|
|
- live nodes/packets: `useNodes.ts`
|
|
- coverage: `useCoverage.ts`
|
|
- links: `useLinkState.ts`
|
|
- overlay/path state: `overlayStore.ts`
|
|
|
|
## Contributor rules
|
|
|
|
- do not reintroduce React-driven full-map rerenders for live packet/node traffic
|
|
- put pure map data shaping in builder modules, not in the top-level map component
|
|
- keep map visibility rules explicit and centralized where possible
|