P: merge 087e852c4
This commit is contained in:
commit
95a84b7775
1 changed files with 18 additions and 18 deletions
|
|
@ -180,7 +180,7 @@ useShadowStyles(`
|
|||
|
||||
/* When the geocoder is disabled (FEATURES.geocoder=false), the legend
|
||||
reflows up to fill the freed top slot — matches the geocoder pill
|
||||
position (top:10px) instead of clearing it (top:54px). qa: 2026-05-06. */
|
||||
position (top:10px) instead of clearing it (top:54px). */
|
||||
.dsm-root.dsm-no-geocoder .legend-container,
|
||||
.dsm-root.dsm-no-geocoder .legend-container.collapsed { top: 10px !important; }
|
||||
.dsm-root.dsm-no-geocoder .stl-panel { top: 10px !important; }
|
||||
|
|
@ -222,7 +222,7 @@ const { t, te, locale } = useI18n()
|
|||
// On Mapbox Standard / Streets styles, common label layers carry per-locale
|
||||
// name fields (name_ar, name_de, name_en, name_fr, …). Setting the text-field
|
||||
// expression to `['get', 'name_' + locale]` switches country/place/state names
|
||||
// without reloading the style. See documentation/feedback.md → Section A.
|
||||
// without reloading the style.
|
||||
const MAPBOX_LABEL_LAYERS = [
|
||||
'country-label',
|
||||
'state-label',
|
||||
|
|
@ -260,7 +260,7 @@ const isRTL = computed(() => RTL_LOCALES.has(locale.value))
|
|||
// infoButton — "About this map" help modal trigger
|
||||
// overlapDensity — dim non-matched pins to 0.08 when a legend filter is
|
||||
// active (causes overlap-density bleed that can wash out
|
||||
// orange pins). OFF here per feedback 2026-04-20.
|
||||
// orange pins). OFF here.
|
||||
// darkPinBorder — dark stroke on active pins in light mode. Previously
|
||||
// needed to compensate for density bleed; irrelevant
|
||||
// without overlapDensity.
|
||||
|
|
@ -269,14 +269,14 @@ const FEATURES = {
|
|||
infoButton: false, // before enabling: the help modal needs role="dialog" + aria-modal + Escape + focus trap/return (A11Y-AUDIT-PRAYER-PROGRESS-CONNECTIVITY.md)
|
||||
overlapDensity: false,
|
||||
darkPinBorder: false,
|
||||
// Geocoder search bar feature-flagged OFF on simple-map per user request
|
||||
// (qa: 2026-05-04 — research-map keeps its geocoder; only the simple-map
|
||||
// pages on home/pray/adopt should NOT show search). Flip to true to
|
||||
// restore. Wraps the <GeocoderComponent v-if> in the template.
|
||||
// Geocoder search bar feature-flagged OFF on simple-map: research-map keeps
|
||||
// its geocoder; only the simple-map pages on home/pray/adopt should NOT show
|
||||
// search. Flip to true to restore. Wraps the <GeocoderComponent v-if> in the
|
||||
// template.
|
||||
geocoder: false,
|
||||
// Disabled: no thicker stroke / enlarged radius / pulse animation when a
|
||||
// legend row is selected. Matched pins stay at base-layer style; non-
|
||||
// matched pins dim via 'case' opacity (qa: 2026-05-06 user feedback).
|
||||
// matched pins dim via 'case' opacity.
|
||||
activeOverlayEmphasis: false,
|
||||
}
|
||||
|
||||
|
|
@ -344,8 +344,8 @@ const mapId = (injectedInstanceId?.value || injectedInstanceId) || ('doxa-simple
|
|||
// Re-provide mapId so children (LegendComponent, etc.) can inject it for window event scoping
|
||||
provide('mapId', mapId)
|
||||
// Resolves the active tab's strategy → color for a given feature, used by
|
||||
// useSelectedPin.js so the selection-pin matches the underlying dot color
|
||||
// (qa: 2026-05-06 user feedback). simple-map tab strategyKeys are 'engagement',
|
||||
// useSelectedPin.js so the selection-pin matches the underlying dot color.
|
||||
// simple-map tab strategyKeys are 'engagement',
|
||||
// 'adoption', 'prayer' — mapping to COLOR_MODES below.
|
||||
provide('getActivePinColor', (properties) => {
|
||||
const sk = activeTab.value?.colorStrategy
|
||||
|
|
@ -383,7 +383,7 @@ function _flatItemsToStlNodes(items) {
|
|||
}
|
||||
const legendNodes = computed(() => _flatItemsToStlNodes(flatLegend.items.value))
|
||||
const legendTitle = computed(() => t('legend.titleBar.legend'))
|
||||
// Prayer progress bar (header of the prayer legend; 2026-09-16). The payload
|
||||
// Prayer progress bar (header of the prayer legend). The payload
|
||||
// is null on every non-prayer tab → no bar. Passed as a prop to the desktop STL
|
||||
// below AND provide()d so the MOBILE sheet's embedded <SemanticTreeLegend>
|
||||
// (LegendMobile.vue, untouched) picks it up via inject('legendProgress') — one
|
||||
|
|
@ -511,7 +511,7 @@ const { map, isMapReady, initializeMap, destroy } = useMapInstance({
|
|||
zoom: 1.8,
|
||||
pitch: profileConfig?.value?.pitch ?? mapDefaults.pitch,
|
||||
bearing: profileConfig?.value?.bearing ?? mapDefaults.bearing,
|
||||
// Per-map zoom constraints (feedback #1 /pray): each map (simple, prayer)
|
||||
// Per-map zoom constraints: each map (simple, prayer)
|
||||
// defines its own min/max in profile-config so users don't get lost zooming
|
||||
// too far, and precise locations stay obfuscated. Falls back to mapDefaults.
|
||||
minZoom: profileConfig?.value?.minZoom ?? mapDefaults.minZoom,
|
||||
|
|
@ -663,7 +663,7 @@ const KEYLESS_NIGHT_PAINT = [
|
|||
{ layer: 'boundary_country_z0-4', prop: 'line-color', value: '#c95d74' },
|
||||
{ layer: 'boundary_country_z5-', prop: 'line-color', value: '#c95d74' },
|
||||
// Crisp and opaque: at 0.75 over fiord's blur the rose read as a faint mauve (#5b4659 against
|
||||
// the reference #934f66, rega's side-by-side).
|
||||
// the reference #934f66, measured side by side).
|
||||
{ layer: 'boundary_country_z0-4', prop: 'line-opacity', value: 1 },
|
||||
{ layer: 'boundary_country_z5-', prop: 'line-opacity', value: 1 },
|
||||
{ layer: 'boundary_country_z0-4', prop: 'line-blur', value: 0 },
|
||||
|
|
@ -690,8 +690,8 @@ function paintKeylessNight(m) {
|
|||
// reload → pins/glow never wiped, no flash, instant toggle.
|
||||
watch(() => uiStore.theme, () => mapTheme.applyTheme(map.value))
|
||||
|
||||
// Theme-aware data-pin outline (qa: 2026-05-06 user feedback — Joshua Project
|
||||
// uses a thin near-black outline that's barely visible; reverse-engineered).
|
||||
// Theme-aware data-pin outline (Joshua Project uses a thin near-black outline
|
||||
// that's barely visible; reverse-engineered).
|
||||
// In dark mode the outline goes white so pins stay visible against dark
|
||||
// basemaps. Boot style is light-v11, so the initial circle-stroke-color
|
||||
// in addLanguageFamilyLayer is already 'rgba(0,0,0,0.45)' — this watcher
|
||||
|
|
@ -1323,7 +1323,7 @@ async function onMapReady(normalizedPeopleGroups) {
|
|||
// On a DARK boot the theme-watcher (immediate:false) hasn't run — apply the dark
|
||||
// ring (white colour + THICK width) now, else black pins are left with the light
|
||||
// hairline on the night basemap. _applyPinStroke handles both themes + the prayer
|
||||
// exception. (coder 2026-06-25 reload fix, extended to ring width.)
|
||||
// exception, and sets the ring width as well as the colour.
|
||||
_applyPinStroke()
|
||||
// SHELVED: idle preloader caused slow startup — re-enable when pray-tools API is active
|
||||
// and only for groups that have confirmed valid image URLs
|
||||
|
|
@ -1388,8 +1388,8 @@ onMounted(async () => {
|
|||
// ★ A PANE RELEASED WHILE ITS MAP IS STILL STARTING IS A CANCEL, NOT A FAILURE. This map is a heavy
|
||||
// gallery tab: switching away empties its slot. initializeMap then returns SILENTLY (useMapInstance's
|
||||
// liveness checks) and leaves map.value null, which this reported as "Map failed to initialize —
|
||||
// check token and container": a console ERROR blaming the token for a tab switch (measured
|
||||
// 2026-09-29, a phone in Arabic, switched away 150 and 500 ms in: 2 runs in 10; 0 when the map was
|
||||
// check token and container": a console ERROR blaming the token for a tab switch (measured on
|
||||
// a phone in Arabic, switched away 150 and 500 ms in: 2 runs in 10; 0 when the map was
|
||||
// left to start). Nobody is waiting for this map any more, so return quietly. A mounted pane that
|
||||
// really fails still logs.
|
||||
const released = () => !mapContainer.value || !mapContainer.value.isConnected
|
||||
|
|
|
|||
Loading…
Reference in a new issue