The map legend says what it shows, and opens there
Some checks are pending
build-gate / build (push) Waiting to run
Some checks are pending
build-gate / build (push) Waiting to run
"Zone" was our internal word leaking into the UI. The thing the map paints IS a
UPG-100 list -- 27 of them, one per printable packet -- so the tab is named for
that, and the legend opens on it. Region stays, described as what it actually
does: sort those lists by world area when you want that.
ORDER IS DELIBERATELY UNCHANGED, and the comment now says why. Tab INDEX is
coupled to tree DEPTH inside the shared legend -- `activeTab = Math.min(sel.depth,
...)` and again on breadcrumb -- and the tree nests region(0) -> zone(1) ->
group(2). Moving the list tab to index 0 to make it open first would have made
selecting a zone jump to the Region tab instead, and SEVEN profiles share that
component. I started that way and backed it out.
Opening on the list tab uses the mechanism already built for it: `:default-tab`,
added for country-posters with the same need ("it opens to the country's semantic
level in the legend"). One prop at the call site, no shared behaviour touched,
and the component clamps an out-of-range value so it degrades to the top
generation rather than blanking.
LegendMobile takes neither tabs nor defaultTab -- it derives its own view -- so
there is nothing to wire there.
Card: BUILD-UPG100-MAP-LEGEND-LEADS-WITH-THE-UPG-100-LIST (the rename + default
half; print-from-selection is still open and is the packet's entry point).
This commit is contained in:
parent
90b8109fd0
commit
7d38f90b3d
1 changed files with 26 additions and 4 deletions
|
|
@ -271,14 +271,35 @@ const LEGEND_TITLE = 'My UPG 100 List — Legend'
|
|||
// by coincidence — the catalog means the ROP-2.5 sense, not this bundle's). Prefixed ids own no
|
||||
// catalog entry, so the labels below are what render. If these tabs are ever translated, add
|
||||
// `upg100Region`/`upg100Zone`/`upg100Group` to tabs.json rather than reusing a generic key.
|
||||
// ★ "Zone" RENAMED, ORDER DELIBERATELY UNCHANGED (2026-09-23).
|
||||
// Driver: "the user does not know what zones means" — the thing the map paints IS
|
||||
// a UPG-100 list (27 of them); "zone" was our internal word leaking into the UI.
|
||||
// So the LABEL now names what it shows. Region stays as what it actually is: a way
|
||||
// to SORT those lists by world area when you want that.
|
||||
//
|
||||
// ⚠ DO NOT REORDER THESE TO MAKE THE LIST TAB OPEN FIRST. Tab INDEX is coupled to
|
||||
// tree DEPTH in the shared legend: `activeTab = Math.min(sel.depth, …)` and again
|
||||
// on breadcrumb (SemanticTreeLegend ~231 and ~418). The tree nests region(0) →
|
||||
// zone(1) → group(2), so moving zone to index 0 would make selecting a zone jump
|
||||
// to the Region tab. Seven profiles share that component.
|
||||
// Opening on the list tab is done the way the codebase already provides for it:
|
||||
// `:default-tab="1"` at the call site — the prop country-posters added for exactly
|
||||
// this ("it opens to the country's semantic level in the legend").
|
||||
//
|
||||
// NOTE the warning above: these prefixed ids own no catalog entry, so THESE labels
|
||||
// are what render. If the packet is ever translated, add upg100Zone / upg100Region
|
||||
// / upg100Group to tabs.json rather than reusing a generic key.
|
||||
const LEGEND_TABS = [
|
||||
{ id: 'upg100Region', label: 'Region',
|
||||
info: 'Region — the broadest grouping, one row per world area (Africa, India, Middle East, Deaf, …). Counts are the UUPGs and population summed across every zone beneath it.' },
|
||||
{ id: 'upg100Zone', label: 'Zone',
|
||||
info: 'Zone — the prayer zones inside a region (e.g. Frontier Asia (uncovered) within Asia, or the Indian states within India). This is the level the map paints and colours.' },
|
||||
info: 'Region — sort the UPG-100 lists by world area (Africa, India, Middle East, Deaf, …). Counts are the UUPGs and population summed across every list beneath it.' },
|
||||
{ id: 'upg100Zone', label: 'UPG-100 Lists',
|
||||
info: 'UPG-100 Lists — each one is a prayer list of the unreached people groups in an area, and is what the map paints and colours. Every list prints as its own packet.' },
|
||||
{ id: 'upg100Group', label: 'People Group',
|
||||
info: 'People Group — the individual unreached groups inside a zone, largest prayer need first. Each map dot is one of these.' },
|
||||
info: 'People Group — the individual unreached groups inside a list, largest prayer need first. Each map dot is one of these.' },
|
||||
]
|
||||
// The generation the legend OPENS on: index 1 = the UPG-100 Lists tab. A reader
|
||||
// should meet the lists first and reach for Region only to sort them.
|
||||
const LEGEND_DEFAULT_TAB = 1
|
||||
|
||||
const geocoderContext = 'people-groups'
|
||||
const geocoderPlaceholder = 'Search people group, zone, or territory…'
|
||||
|
|
@ -1810,6 +1831,7 @@ onBeforeUnmount(() => {
|
|||
v-if="legendNodes.length"
|
||||
:nodes="legendNodes"
|
||||
:tabs="LEGEND_TABS"
|
||||
:default-tab="LEGEND_DEFAULT_TAB"
|
||||
:columns="['count', 'pop']"
|
||||
:title="LEGEND_TITLE"
|
||||
:export-enabled="true"
|
||||
|
|
|
|||
Loading…
Reference in a new issue