feat(content): wire ImageGrid/ImageDetail and PlaceGrid/PlaceDetail into ContentPanel

Add missing content type wiring so images and places render properly
in the content panel with full grid → detail navigation flow.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-03-04 12:12:34 +00:00
co-authored by Claude Opus 4.6
parent 705e184a5b
commit fe94693ef6
@@ -82,6 +82,16 @@
:podcast="selectedPodcast" :podcast="selectedPodcast"
@back="closePodcastDetail" @back="closePodcastDetail"
/> />
<ImageDetail
v-else-if="selectedImage"
:image="selectedImage"
@back="closeImageDetail"
/>
<PlaceDetail
v-else-if="selectedPlace"
:place="selectedPlace"
@back="closePlaceDetail"
/>
<AppDetail <AppDetail
v-else-if="selectedApp" v-else-if="selectedApp"
:app="selectedApp" :app="selectedApp"
@@ -144,6 +154,18 @@
:title="panelTitle" :title="panelTitle"
@select-podcast="openPodcastDetail" @select-podcast="openPodcastDetail"
/> />
<ImageGrid
v-else-if="activeTab === 'image'"
:images="panelImages"
:title="panelTitle"
@select-image="openImageDetail"
/>
<PlaceGrid
v-else-if="activeTab === 'place'"
:places="panelPlaces"
:title="panelTitle"
@select-place="openPlaceDetail"
/>
<NewsGrid <NewsGrid
v-else-if="activeTab === 'news'" v-else-if="activeTab === 'news'"
:articles="panelWebResults" :articles="panelWebResults"
@@ -198,6 +220,10 @@ import BookGrid from './BookGrid.vue'
import BookDetail from './BookDetail.vue' import BookDetail from './BookDetail.vue'
import TVSeriesGrid from './TVSeriesGrid.vue' import TVSeriesGrid from './TVSeriesGrid.vue'
import TVSeriesDetail from './TVSeriesDetail.vue' import TVSeriesDetail from './TVSeriesDetail.vue'
import ImageGrid from './ImageGrid.vue'
import ImageDetail from './ImageDetail.vue'
import PlaceGrid from './PlaceGrid.vue'
import PlaceDetail from './PlaceDetail.vue'
import PodcastGrid from './PodcastGrid.vue' import PodcastGrid from './PodcastGrid.vue'
import PodcastDetail from './PodcastDetail.vue' import PodcastDetail from './PodcastDetail.vue'
import NewsGrid from './NewsGrid.vue' import NewsGrid from './NewsGrid.vue'
@@ -231,6 +257,8 @@ const {
panelPodcasts, panelPodcasts,
panelWebResults, panelWebResults,
panelWebsites, panelWebsites,
panelImages,
panelPlaces,
panelApps, panelApps,
panelMagazineSections, panelMagazineSections,
panelMagazineHeroImage, panelMagazineHeroImage,
@@ -243,6 +271,8 @@ const {
selectedTVSeries, selectedTVSeries,
selectedSong, selectedSong,
selectedPodcast, selectedPodcast,
selectedImage,
selectedPlace,
selectedArticle, selectedArticle,
selectedApp, selectedApp,
selectedDesignSystemItem, selectedDesignSystemItem,
@@ -257,6 +287,10 @@ const {
closeSongDetail, closeSongDetail,
openPodcastDetail, openPodcastDetail,
closePodcastDetail, closePodcastDetail,
openImageDetail,
closeImageDetail,
openPlaceDetail,
closePlaceDetail,
openAppDetail, openAppDetail,
closeAppDetail, closeAppDetail,
closeArticleDetail, closeArticleDetail,
@@ -270,7 +304,7 @@ const {
} = useContentPanel() } = useContentPanel()
const hasDetailOpen = computed(() => const hasDetailOpen = computed(() =>
!!(selectedFilm.value || selectedBook.value || selectedTVSeries.value || selectedSong.value || selectedPodcast.value || selectedArticle.value || selectedApp.value || selectedDesignSystemItem.value || longFormArticle.value || pdfUrl.value || mapPlaces.value.length > 0) !!(selectedFilm.value || selectedBook.value || selectedTVSeries.value || selectedSong.value || selectedPodcast.value || selectedImage.value || selectedPlace.value || selectedArticle.value || selectedApp.value || selectedDesignSystemItem.value || longFormArticle.value || pdfUrl.value || mapPlaces.value.length > 0)
) )
const windowWidth = ref(window.innerWidth) const windowWidth = ref(window.innerWidth)