refactor(#86): polygonTypes generiek + setHighlight unified #92

Closed
opened 2026-04-21 15:07:15 +02:00 by Ghost · 1 comment
Ghost commented 2026-04-21 15:07:15 +02:00 (Migrated from codeberg.org)

Part of #86 (code-audit scope 1). Combineert AUDIT.md §2 + §6.

Context

  1. De 3 `polygonTypes` (province/water/country) verschillen op slechts 4 data-velden: `maxZoom`, `padding`, `skipFit`-predicate, `animate`. De rest is identiek.
  2. `setHighlight` (markers) en `setHighlightPolygon` (polygonen) hebben weinig code-overlap maar wel dispatch-overlap: alle 6 call-sites moeten kiezen op item-type. Unified `setHighlight(type, item, mapMode)` met een `place`-entry in het polygonTypes-register bespaart ~15-20 LOC én maakt call-sites consistent.

Scope

  • `polygonTypes` herschrijven als register met 4 data-velden (geen per-type closures meer waar vermijdbaar)
  • `polygonTypes` uitbreiden met `place`-entry voor markers
  • `setHighlight` en `setHighlightPolygon` samenvoegen tot één dispatcher
  • Alle 6 call-sites updaten

Verificatie

  • `node test.js` groen
  • `npx playwright test` 166 groen (vooral set57, set67, set71-75 met Leaflet-interacties)
  • Handmatig: klik-op-kaart in province/water/country-quiz geeft identiek feedback-gedrag als voorheen

Effort/Impact/Risico

2 / 3 / 2

Afhankelijkheid

Liever na #90 (buildPolygonLayer dedup) — kleinere tak eerst.

Part of #86 (code-audit scope 1). Combineert [AUDIT.md §2](../blob/dev/AUDIT.md#2-polygontypes-register-indexhtml820-877-58-loc) + [§6](../blob/dev/AUDIT.md#6-sethighlight-vs-sethighlightpolygon). ## Context 1. De 3 \`polygonTypes\` (province/water/country) verschillen op slechts 4 data-velden: \`maxZoom\`, \`padding\`, \`skipFit\`-predicate, \`animate\`. De rest is identiek. 2. \`setHighlight\` (markers) en \`setHighlightPolygon\` (polygonen) hebben weinig code-overlap maar wel dispatch-overlap: alle 6 call-sites moeten kiezen op item-type. Unified \`setHighlight(type, item, mapMode)\` met een \`place\`-entry in het polygonTypes-register bespaart ~15-20 LOC én maakt call-sites consistent. ## Scope - \`polygonTypes\` herschrijven als register met 4 data-velden (geen per-type closures meer waar vermijdbaar) - \`polygonTypes\` uitbreiden met \`place\`-entry voor markers - \`setHighlight\` en \`setHighlightPolygon\` samenvoegen tot één dispatcher - Alle 6 call-sites updaten ## Verificatie - [ ] \`node test.js\` groen - [ ] \`npx playwright test\` 166 groen (vooral set57, set67, set71-75 met Leaflet-interacties) - [ ] Handmatig: klik-op-kaart in province/water/country-quiz geeft identiek feedback-gedrag als voorheen ## Effort/Impact/Risico 2 / 3 / 2 ## Afhankelijkheid Liever na #90 (buildPolygonLayer dedup) — kleinere tak eerst.
Ghost commented 2026-04-21 17:35:41 +02:00 (Migrated from codeberg.org)

Fixed in v2.18.9 — polygonTypes unified via data-driven fields + single setHighlight dispatcher (closes dispatcher-duplication noted in audit §3.4).

Fixed in v2.18.9 — polygonTypes unified via data-driven fields + single setHighlight dispatcher (closes dispatcher-duplication noted in audit §3.4).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jelmer/topoquiz#92
No description provided.