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"
@back="closePodcastDetail"
/>
<ImageDetail
v-else-if="selectedImage"
:image="selectedImage"
@back="closeImageDetail"
/>
<PlaceDetail
v-else-if="selectedPlace"
:place="selectedPlace"
@back="closePlaceDetail"
/>
<AppDetail
v-else-if="selectedApp"
:app="selectedApp"
@@ -144,6 +154,18 @@
:title="panelTitle"
@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
v-else-if="activeTab === 'news'"
:articles="panelWebResults"
@@ -198,6 +220,10 @@ import BookGrid from './BookGrid.vue'
import BookDetail from './BookDetail.vue'
import TVSeriesGrid from './TVSeriesGrid.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 PodcastDetail from './PodcastDetail.vue'
import NewsGrid from './NewsGrid.vue'
@@ -231,6 +257,8 @@ const {
panelPodcasts,
panelWebResults,
panelWebsites,
panelImages,
panelPlaces,
panelApps,
panelMagazineSections,
panelMagazineHeroImage,
@@ -243,6 +271,8 @@ const {
selectedTVSeries,
selectedSong,
selectedPodcast,
selectedImage,
selectedPlace,
selectedArticle,
selectedApp,
selectedDesignSystemItem,
@@ -257,6 +287,10 @@ const {
closeSongDetail,
openPodcastDetail,
closePodcastDetail,
openImageDetail,
closeImageDetail,
openPlaceDetail,
closePlaceDetail,
openAppDetail,
closeAppDetail,
closeArticleDetail,
@@ -270,7 +304,7 @@ const {
} = useContentPanel()
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)