diff --git a/frontend/src/views/GalleryView.vue b/frontend/src/views/GalleryView.vue
index d11148a..2e2933a 100644
--- a/frontend/src/views/GalleryView.vue
+++ b/frontend/src/views/GalleryView.vue
@@ -11,6 +11,7 @@
@@ -33,6 +34,7 @@ import { useModalStore } from '../stores/modal.js'
import GalleryGrid from '../components/gallery/GalleryGrid.vue'
import TimelineSidebar from '../components/gallery/TimelineSidebar.vue'
import EmptyState from '../components/gallery/EmptyState.vue'
+import PostInfoHeader from '../components/gallery/PostInfoHeader.vue'
import ImageViewer from '../components/modal/ImageViewer.vue'
import BulkEditorPanel from '../components/gallery/BulkEditorPanel.vue'
import { useGallerySelectionStore } from '../stores/gallerySelection.js'
@@ -44,8 +46,10 @@ const router = useRouter()
const route = useRoute()
onMounted(async () => {
+ const postId = parseInt(route.query.post_id, 10)
const tagId = parseInt(route.query.tag_id, 10)
- if (!isNaN(tagId)) store.setTagFilter(tagId)
+ if (!isNaN(postId)) store.setPostFilter(postId)
+ else if (!isNaN(tagId)) store.setTagFilter(tagId)
await store.loadInitial()
await store.loadTimeline()
// Open modal if URL has ?image=N
@@ -59,6 +63,12 @@ watch(() => route.query.tag_id, (q) => {
store.setTagFilter(isNaN(tagId) ? null : tagId)
})
+watch(() => route.query.post_id, (q) => {
+ sel.clear() // result set changed — selected ids are no longer valid
+ const postId = parseInt(q, 10)
+ store.setPostFilter(isNaN(postId) ? null : postId)
+})
+
watch(() => route.query.image, (q) => {
const id = parseInt(q, 10)
if (!isNaN(id) && id !== modal.currentImageId) modal.open(id)