Child map never shows parent approval of a wishlisted state — minor-mode wishlist branch masks the approved style (profile → travel → map) #735

Closed
opened 2026-07-20 15:45:45 +00:00 by spikerj · 1 comment
Owner

Symptom

toddcan wishlisted Idaho and Louisiana; spikerj approved both from the children-tab state map. On toddcan's own map (profile → travel → map) they still render as plain wishlist — no visible approval.

Verified in the live cluster (not the cause)

The write path is fine: toddcan's profile has Travel.WishlistRegions = ['US-ID','US-LA'] and Permissions.ApprovedCountries = ['US-ID','US-LA'] — codes match exactly, IsMinor=true, and GetProfile maps ApprovedCountries into the child's DTO (ProfileDtos.cs:365).

Root cause (frontend rendering)

country-map.component.ts getFeatureStyle/getTooltipContent: inside the isWishlist branch, minor mode only special-cases the unapproved wishlist (orange "Requested"); an approved-and-wishlisted region falls through to the generic blue "Wishlist" style/tooltip. The dashed "Approved by parent" treatment (and tooltip) only fires when the region is NOT wishlisted — which never happens in the real flow, since approval doesn't remove the wishlist entry.

The identical masking bug on the parent side was fixed in #727 ("a wishlisted entry must never mask its approval state"), but the minor side was explicitly pinned unchanged by a spec ("keeps minor mode unchanged: unapproved wishlist orange, approved wishlist blue"). The minor-mode legend already advertises an "approved" color, so the intent is clear — the child just can only ever see it in a state that can't occur.

Fix

Mirror the #727 parent-side fix in minor mode: approved-and-wishlisted → approved (amber) style + "Approved by parent" tooltip; update the pinned spec.

## Symptom toddcan wishlisted Idaho and Louisiana; spikerj approved both from the children-tab state map. On toddcan's own map (profile → travel → map) they still render as plain wishlist — no visible approval. ## Verified in the live cluster (not the cause) The write path is fine: toddcan's profile has `Travel.WishlistRegions = ['US-ID','US-LA']` **and** `Permissions.ApprovedCountries = ['US-ID','US-LA']` — codes match exactly, `IsMinor=true`, and GetProfile maps `ApprovedCountries` into the child's DTO (`ProfileDtos.cs:365`). ## Root cause (frontend rendering) `country-map.component.ts` `getFeatureStyle`/`getTooltipContent`: inside the `isWishlist` branch, **minor mode only special-cases the *unapproved* wishlist** (orange "Requested"); an approved-and-wishlisted region falls through to the generic blue "Wishlist" style/tooltip. The dashed "Approved by parent" treatment (and tooltip) only fires when the region is NOT wishlisted — which never happens in the real flow, since approval doesn't remove the wishlist entry. The identical masking bug on the parent side was fixed in #727 ("a wishlisted entry must never mask its approval state"), but the minor side was explicitly pinned unchanged by a spec ("keeps minor mode unchanged: unapproved wishlist orange, approved wishlist blue"). The minor-mode legend already advertises an "approved" color, so the intent is clear — the child just can only ever see it in a state that can't occur. ## Fix Mirror the #727 parent-side fix in minor mode: approved-and-wishlisted → approved (amber) style + "Approved by parent" tooltip; update the pinned spec.
Author
Owner

Resolved in spikersoft-angular PR #465 (merged to master, commit bb5bd1aa). Minor mode now mirrors the #727 no-masking rule: an approved-and-wishlisted state renders amber with an "Approved by parent" tooltip; unapproved stays orange "Requested". Pinned spec updated + minor-tooltip case added. Once the frontend deploy rolls, toddcan's domestic map shows Idaho and Louisiana as approved with no data changes. Closing.

Resolved in spikersoft-angular PR #465 (merged to `master`, commit bb5bd1aa). Minor mode now mirrors the #727 no-masking rule: an approved-and-wishlisted state renders amber with an "Approved by parent" tooltip; unapproved stays orange "Requested". Pinned spec updated + minor-tooltip case added. Once the frontend deploy rolls, toddcan's domestic map shows Idaho and Louisiana as approved with no data changes. Closing.
Sign in to join this conversation.