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:
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)
|
||||||
|
|||||||
Reference in New Issue
Block a user