diff --git a/client/src/components/Journey/JourneyMap.tsx b/client/src/components/Journey/JourneyMap.tsx index cb2500bb..de9552ea 100644 --- a/client/src/components/Journey/JourneyMap.tsx +++ b/client/src/components/Journey/JourneyMap.tsx @@ -183,6 +183,12 @@ const JourneyMap = forwardRef(function JourneyMap( maxZoom: 18, attribution: '© OpenStreetMap', referrerPolicy: 'strict-origin-when-cross-origin', + // Leaflet defaults updateWhenIdle:true on mobile (waits for pan to settle + // before loading tiles). On the journey mobile combined view we flyTo + // constantly when switching cards, so tiles lag visibly — force eager + // updates and keep a larger ring of off-screen tiles ready. + updateWhenIdle: false, + keepBuffer: 4, } as any).addTo(map) const items = buildMarkerItems(entries) diff --git a/client/src/pages/JourneyDetailPage.tsx b/client/src/pages/JourneyDetailPage.tsx index ce1f4d9d..98717a22 100644 --- a/client/src/pages/JourneyDetailPage.tsx +++ b/client/src/pages/JourneyDetailPage.tsx @@ -230,6 +230,8 @@ export default function JourneyDetailPage() { const lifecycle = computeJourneyLifecycle(current.status, tripDateMin || null, tripDateMax || null) const showMobileCombined = isMobile && view === 'timeline' + const showMobileGallery = isMobile && view === 'gallery' + const isMobileChromeless = showMobileCombined || showMobileGallery return (
@@ -262,8 +264,8 @@ export default function JourneyDetailPage() { /> )} - {/* Floating top bar on mobile combined view: back | tabs+title | settings */} - {showMobileCombined && ( + {/* Floating top bar on mobile Journey + Gallery views: back | tabs+title | settings */} + {isMobileChromeless && (
-
+
- {current?.title && ( -
- {current.title} -
- )}
{canEditJourney ? ( @@ -323,8 +328,8 @@ export default function JourneyDetailPage() { {t('journey.detail.backToJourney')} - {/* Hero card — full width */} -
+ {/* Hero card — hidden on mobile gallery/journey views (floating top bar handles branding there) */} +
{current.cover_image && (
@@ -418,8 +423,8 @@ export default function JourneyDetailPage() { {/* Left column */}
- {/* View Controls */} -
+ {/* View Controls — hidden on mobile (floating top bar has them) */} +
{(isMobile ? [ @@ -516,8 +521,11 @@ export default function JourneyDetailPage() {
)} - {/* Gallery View */} -
+ {/* Gallery View — mobile gets extra top padding so the floating top bar doesn't overlap */} +