From aa4c5ca69715983bfdd1138d332e4780d00f13a0 Mon Sep 17 00:00:00 2001 From: "shakespeare.diy" Date: Fri, 24 Jul 2026 10:32:57 +0700 Subject: [PATCH] Desktop map Layers popover (#6) + canonical entity colors (#7) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #6 Desktop parity: - Replaced the four separate Spots/Shops/Gear/Tours toggle buttons in the desktop map toolbar with a single grouped "Layers" popover (with count badge), matching the mobile control. Declutters the dense toolbar row. #7 Entity color discipline: - Locked the four map-entity colors to a single canonical value each, matching the map markers (source of truth): Spots #ff0040, Shops #9333ea, Gear #f97316, Tours #06b6d4. - Fixed the mismatch I'd introduced (Layers popover + Add FAB used #a855f7 purple instead of the marker's #9333ea). Everything now agrees. Note: broader purple usage (Stash, Cashu, NWC, Editors) is intentionally left as-is — those are separate semantic uses, not the map entity language. Co-authored-by: shakespeare.diy --- src/pages/MapPage.tsx | 103 ++++++++++++++++++++++-------------------- 1 file changed, 54 insertions(+), 49 deletions(-) diff --git a/src/pages/MapPage.tsx b/src/pages/MapPage.tsx index 22b7e89..84164e3 100644 --- a/src/pages/MapPage.tsx +++ b/src/pages/MapPage.tsx @@ -1165,53 +1165,58 @@ export default function MapPage() { {/* Row 2: Entity toggles + Sort/Filter + Add buttons (DESKTOP ONLY) */}
- {/* Entity toggles */} - - - - + {/* Layers — grouped popover (matches the mobile Layers control). + Replaces four separate entity-toggle buttons to declutter the + desktop toolbar while keeping the entity color language. */} + + + + + +

Show on Map

+
+ {[ + { key: 'spots', label: 'Spots', dot: '#ff0040', active: showSpots, toggle: () => setShowSpots(v => !v) }, + { key: 'shops', label: 'Shops', dot: '#9333ea', active: showShops, toggle: () => setShowShops(v => !v) }, + { key: 'gear', label: 'Gear', dot: '#f97316', active: showGear, toggle: () => setShowGear(v => !v) }, + { key: 'tours', label: 'Tours', dot: '#06b6d4', active: showTours, toggle: () => setShowTours(v => !v) }, + ].map(({ key, label, dot, active, toggle }) => ( + + ))} +
+
+
{/* BTC Map toggle */} @@ -1548,7 +1553,7 @@ export default function MapPage() {
{[ { key: 'spots', label: 'Spots', dot: '#ff0040', active: showSpots, toggle: () => setShowSpots(v => !v) }, - { key: 'shops', label: 'Shops', dot: '#a855f7', active: showShops, toggle: () => setShowShops(v => !v) }, + { key: 'shops', label: 'Shops', dot: '#9333ea', active: showShops, toggle: () => setShowShops(v => !v) }, { key: 'gear', label: 'Gear', dot: '#f97316', active: showGear, toggle: () => setShowGear(v => !v) }, { key: 'tours', label: 'Tours', dot: '#06b6d4', active: showTours, toggle: () => setShowTours(v => !v) }, ].map(({ key, label, dot, active, toggle }) => ( @@ -1594,7 +1599,7 @@ export default function MapPage() { <> {[ { label: 'Add Spot', to: '/create-spot', bg: 'bg-[#ff0040]', icon: }, - { label: 'Add Shop', to: '/create-shop', bg: 'bg-[#a855f7]', icon: }, + { label: 'Add Shop', to: '/create-shop', bg: 'bg-[#9333ea]', icon: }, { label: 'Offer Tour', to: '/create-tour', bg: 'bg-[#06b6d4]', icon: }, ].map((a, i) => (