- {/* Header */}
+ {/* Header — the provider buttons live in the page header next to Upload */}
{allPhotos.length} {t('journey.detail.photos')}
-
- {availableProviders.map(p => (
-
- ))}
-
{allPhotos.length === 0 ? (
diff --git a/client/src/pages/JourneyDetailPage.tsx b/client/src/pages/JourneyDetailPage.tsx
index 14a0d1a0c..6c63a28f2 100644
--- a/client/src/pages/JourneyDetailPage.tsx
+++ b/client/src/pages/JourneyDetailPage.tsx
@@ -10,7 +10,7 @@ import EmptyState from '../components/shared/EmptyState'
import { Outlet } from 'react-router'
import {
ArrowLeft, MoreHorizontal, List, Grid, MapPin,
- Plus, ChevronUp, ChevronDown, Eye, EyeOff, BookOpen,
+ Plus, ChevronUp, ChevronDown, Eye, EyeOff, BookOpen, Image,
} from 'lucide-react'
import MobileMapTimeline from '../components/Journey/MobileMapTimeline'
import MobileEntryView from '../components/Journey/MobileEntryView'
@@ -44,7 +44,8 @@ function JourneyDetailPageDesktop() {
showInvite, setShowInvite, showAddTrip, setShowAddTrip,
unlinkTrip, setUnlinkTrip, showSettings, setShowSettings,
hideSkeletons, setHideSkeletons,
- mapRef, fullMapRef, galleryUploadRef, activeLocationId, handleMarkerClick, handleLocationClick,
+ mapRef, fullMapRef, galleryUploadRef, galleryProviders, setGalleryProviders, galleryBrowseRef,
+ activeLocationId, handleMarkerClick, handleLocationClick,
mapEntries, sidebarMapItems, tripDates, isMobile, tracks,
feedEdge, scrollFeedTo,
loadJourney, updateEntry, deleteEntry, reorderEntries, uploadPhotos, deletePhoto,
@@ -346,14 +347,27 @@ function JourneyDetailPageDesktop() {
)}
{canEditEntries && view === 'gallery' && (
-
+
+ {galleryProviders.map(p => (
+
+ ))}
+
+
)}
@@ -452,6 +466,7 @@ function JourneyDetailPageDesktop() {
>