v0.22.0 — ISS-022/025/027 hover route trace (job list, on-board rows, relocation panel) #34

Merged
kamilkrzywda merged 5 commits from feat/hover-trace into master 2026-09-20 03:58:04 +02:00
Owner

What (issues #22 + #25 + #27 — connected, one PR per the AGENTS.md rule)

Hovering now draws the entire route trace as a dashed great-circle line on the map, not just endpoint rings:

  • #22 job list: hovering an open package draws its origin→destination trace (zero pane edits — the hover target already carried both ICAOs; Map now renders it). The target airport gets a distinct green ring (#4ade80) vs the yellow endpoint rings, per "make target airport circle different color"
  • #25 on-board rows: hovering a package row in the On board panel draws the same trace and keeps that plane's halo (hover target gains optional planeId)
  • #27 relocation panel: with a grounded plane + destination selected, hovering the Relocate section previews the planned route line + rings the target airport only

How

  • HoverTarget extended: {kind:'package';…;planeId?} | {kind:'route';fromIcao;toIcao} (hoverTypes.ts)
  • New pure builder hoverRouteGeoJson(from, to, airportsByIcao) in lib/mapData.ts (+5 unit tests) using the existing great-circle slerp
  • Map: new hover-routes source + top-most dashed hover-route line layer (#facc15, w4, dash [2,2]) re-added on every styledata; new airports-target-highlight green ring layer for the destination only (package + route hovers); existing highlight layers untouched
  • LeftPane: cargo-row enter/leave handlers (#25), Relocate section enter/leave → {kind:'route'} when both selected (relocate-section testid, #27)

E2E (hover.spec.ts, 41 tests total, was 39)

  • Extended open-package test: trace endpoints vs /api/airports, target-layer = destination only, clears on unhover
  • New: on-board cargo row → trace + plane halo together
  • New: Relocate section hover → planned route + target-only ring (both via the new green layer assertions)

Version

  • package.json → 0.22.0; CHANGELOG.md entry at top

Checks (local)

  • tsc --noEmit clean; unit 288/288 green (was 283); playwright test --list = 41 tests in 12 files
  • e2e not run locally by design — CI verifies against the isolated stack
## What (issues #22 + #25 + #27 — connected, one PR per the AGENTS.md rule) Hovering now draws the **entire route trace** as a dashed great-circle line on the map, not just endpoint rings: - **#22 job list**: hovering an open package draws its origin→destination trace (zero pane edits — the hover target already carried both ICAOs; Map now renders it). The **target airport gets a distinct green ring** (`#4ade80`) vs the yellow endpoint rings, per "make target airport circle different color" - **#25 on-board rows**: hovering a package row in the On board panel draws the same trace and keeps that plane's halo (hover target gains optional `planeId`) - **#27 relocation panel**: with a grounded plane + destination selected, hovering the Relocate section previews the planned route line + rings the **target airport only** ## How - `HoverTarget` extended: `{kind:'package';…;planeId?} | {kind:'route';fromIcao;toIcao}` (hoverTypes.ts) - New pure builder `hoverRouteGeoJson(from, to, airportsByIcao)` in lib/mapData.ts (+5 unit tests) using the existing great-circle slerp - Map: new `hover-routes` source + top-most dashed `hover-route` line layer (`#facc15`, w4, dash [2,2]) re-added on every styledata; new `airports-target-highlight` green ring layer for the destination only (package + route hovers); existing highlight layers untouched - LeftPane: cargo-row enter/leave handlers (#25), Relocate section enter/leave → `{kind:'route'}` when both selected (`relocate-section` testid, #27) ## E2E (hover.spec.ts, 41 tests total, was 39) - Extended open-package test: trace endpoints vs `/api/airports`, target-layer = destination only, clears on unhover - New: on-board cargo row → trace + plane halo together - New: Relocate section hover → planned route + target-only ring (both via the new green layer assertions) ## Version - `package.json` → **0.22.0**; `CHANGELOG.md` entry at top ## Checks (local) - `tsc --noEmit` clean; unit 288/288 green (was 283); `playwright test --list` = 41 tests in 12 files - e2e not run locally by design — CI verifies against the isolated stack
kamilkrzywda added 2 commits 2026-09-20 00:07:50 +02:00
kamilkrzywda scheduled this pull request to auto merge when all checks succeed 2026-09-20 00:11:38 +02:00
kamilkrzywda added 1 commit 2026-09-20 00:52:15 +02:00
kamilkrzywda added 1 commit 2026-09-20 03:22:28 +02:00
kamilkrzywda added 1 commit 2026-09-20 03:50:28 +02:00
kamilkrzywda merged commit 5391636979 into master 2026-09-20 03:58:04 +02:00
kamilkrzywda deleted branch feat/hover-trace 2026-09-20 03:58:04 +02:00
Sign in to join this conversation.