diff --git a/plugin-designs/regions-dashboard/regions-mfe.vue b/plugin-designs/regions-dashboard/regions-mfe.vue index c29e0d0b4..48c5345d1 100644 --- a/plugin-designs/regions-dashboard/regions-mfe.vue +++ b/plugin-designs/regions-dashboard/regions-mfe.vue @@ -96,7 +96,22 @@ let offScroll = null // partner who asked for MapLibre a Mapbox map in every nested pane -- the pane reads // provider as undefined and falls back. Same shape of bug as the missing 'urlSync' here // before it: the inner map cannot honour a key the shell never passed down. -const INHERITED_PAGE_KEYS = ['assetsBase', 'apiBaseUrl', 'prayBaseUrl', 'locale', 'lang', 'languageCode', 'isDark', 'qa', 'pinHint', 'urlSync', 'provider', 'list'] +// ★ 'tokenUrl' and 'dataSource' added 2026-09-26. exp-shepherd's universal-props RE-MEASURE (main +// dee9f9c9) named the first: tokenUrl "is absent from the INHERITED_PAGE_KEYS of country-posters-mfe, +// upg-100-mfe and regions-mfe". Measuring what that costs HERE, honestly: it is LATENT, not a live +// token failure. This composite IS mounted under a ProfileLoader, and that loader already watches +// config.tokenUrl, fetches it, and publishes the answer PAGE-WIDE (ProfileLoader.vue:130-134), which +// every pane reads through useSharedMapToken. So the panes do get a token today. What they do NOT get +// is the URL, so a pane can never RE-ask the token service on its own -- it is stuck with whatever the +// page published. Forwarding the key costs one word and removes the asymmetry. +// ★ 'dataSource' is a SECOND gap of the same shape, and it is NOT latent. The matrix's own +// embedder table lists it ("dataSource | wrong/partial data | Regions uses pray-tools"), nothing +// pins it in spec.config or either pane.config, and nothing publishes it page-wide the way the token +// is published. So a partner setting dataSource on had it silently dropped and both +// panes fell back to sources.json activeSource. Of the four keys that table documents, assetsBase was +// already here, tk is covered by the page-wide publish, profile is deliberately NOT inherited (see +// below), and this was the one genuinely missing. +const INHERITED_PAGE_KEYS = ['assetsBase', 'apiBaseUrl', 'prayBaseUrl', 'tokenUrl', 'dataSource', 'locale', 'lang', 'languageCode', 'isDark', 'qa', 'pinHint', 'urlSync', 'provider', 'list'] function paneElement(pane) { const el = document.createElement(TAG)