Phase 54 — Map Parity + Filter-Chip Redesign

The Home map and Explore map are now the same map (verified live — identical markers + chips). This board is about the chips on top of it: today there are 18 content chips crammed into one scroll row, sitting on top of a Now / Coming / History row. They don't respect the active time layer, which creates empty/confusing states. Tap any chip below — they're live.

Verified: Home map = Explore map ✓ Recommended: Variant A — Contextual chips 2 alternatives to compare
Today — the problem

Two stacked rows, 18 chips, blind to the layer

Only ~5 chips fit on screen; the rest hide off the right edge. Content chips ignore the time layer — pick History then tap Developments and you still see stale "memory" pins. Story pins say "Business."

NABEWburg ▾
3
7
10
2
Story pin → labelled "Business" 🐛 Bug D
Now
Coming
History
3-way layer row
⚡ All
🔴 Live
🚨 Safety
📅 Events
🆘 Help
💡 Tips
🏪 Market
🏠 Properties
🏬 Businesses
🏗️ Developments
📋 Permits
📜 History
📦 Packages
🤝 Community
👨‍👩‍👧 Families
💞 Singles
🤗 Meet Neighbors
🔑 Listings
← 18 chips, only ~5 visible. Scroll →

Try scrolling the bottom chip row — most of it is hidden.

What's broken

  • Clutter: 18 chips in one horizontal scroll on top of a second row. The map shrinks; discoverability is poor.
  • Bug A — wrong layer: development & permit pins leak across Now/Coming/History (the layer gating in NabeMap is wide).
  • Bug C — incompatible combo: History layer + "Developments" chip → still shows orange memory pins (Peter Luger, McCarren Pool). The chip does nothing useful. Verified live.
  • Bug D — mislabelled pins: story/camera pins open a popup badged "Business" with a "View Full →" button (MarkerPopup has no story branch). Verified live.
  • Story dots barely findable — no label, no legend entry.
★ Recommended — Variant A

Layer-first, contextual chips

The time layer becomes a clean segmented control. The chip row below it changes to match the layer — you only ever see chips that can return results. The bad combo can't exist.

NABEWburg ▾
3
10
2
Happening now

Tap Now / Coming / History — watch the chips below swap.

Why this wins

  • Fixes Bug C by construction: "Developments" simply doesn't exist on the History layer, so the empty/confusing combo is impossible.
  • Far fewer chips: Now shows ~9, Coming shows 3, History shows 2 — each set fits with little scrolling.
  • Layer reads as the primary lens (a real segmented control, not 3 look-alike chips next to 18 more).
  • Story dots: shown as photo dots + a "Stories" chip on the Now layer, with a popup branch that says "Story" not "Business" (Bug D fix).
Build cost: LOW–MEDIUM. Mostly a data map (layer → allowed chip ids) + a contextual filter in MapFilterChips. One layout swap (segmented control). Add a story case to MarkerPopup. No new map plumbing — NabeMap already gates by layer.
Alternative — Variant B

Grouped categories + "More" sheet

Same layer-first idea, but the long Now list collapses into a few category groups (People, Places, Listings) plus an overflow More chip that opens a sheet. Fewest chips on screen.

NABEWburg ▾
8
Happening now

Tap a layer, then the + More chip to open the filter sheet.

Trade-offs

  • Cleanest surface — 3-4 chips max on the map at any time; the rest live in the sheet.
  • Group chips (People, Places) act as quick toggles; granular sub-filters (Families / Singles / Meet) move into the sheet.
  • Cost of an extra tap for less-used filters — fine for power filters, slightly slower for common ones.
  • Also fixes Bug C/D the same way (contextual per layer + Story branch).
Build cost: MEDIUM. Needs the layer→chips map AND a new bottom-sheet (reuse vaul Drawer) + group→subtype mapping. More UI surface to build & test than A.
Alternative — Variant C

Category-first, then sub-filter

Keep one row, but it's two-level: pick a category first (Live, Social, Places, Real estate), and a second contextual row of sub-filters appears only for that category. Layer stays as the segmented control.

NABEWburg ▾
2
6

Tap a layer, then a category chip — the sub-filter row updates.

Trade-offs

  • Most scalable — handles future filter types without ever overflowing; the second row only shows when a category is picked.
  • Mental model is one extra level deep (category → sub) which some users find less direct than flat chips.
  • Two visible rows when drilled in — slightly more chrome than A or B.
  • Same Bug C/D fixes via contextual layer + Story branch.
Build cost: MEDIUM–HIGH. Two-level state (category + sub-filter) on top of the layer map, plus the category→sub mapping. The most polished feel, the most code.
Shared across all three variants: a contextual layer→chips map (so an incompatible combo like History+Developments can never be selected — Bug C), a new story case in MarkerPopup.tsx that renders a "Story" badge + "View story →" instead of "Business" (Bug D), tightened layer gating in NabeMap.tsx so dev/permit pins sit on the right layer (Bug A), and a "Stories" legend entry so photo dots are findable. Recommendation: ship Variant A — it removes the clutter and kills all three bugs with the least new surface to build and test.