feat(bulk): IR-style BulkEditorPanel + GalleryView select toggle and wiring
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,13 @@
|
||||
<template>
|
||||
<v-container fluid class="py-6">
|
||||
<v-btn
|
||||
class="fc-select-toggle"
|
||||
:color="sel.isSelectMode ? 'accent' : undefined"
|
||||
:variant="sel.isSelectMode ? 'flat' : 'tonal'"
|
||||
size="small"
|
||||
@click="sel.isSelectMode ? sel.exitSelectMode() : sel.enterSelectMode()"
|
||||
>{{ sel.isSelectMode ? 'Done' : 'Select' }}</v-btn>
|
||||
|
||||
<div class="fc-gallery-layout">
|
||||
<div class="fc-gallery-layout__main">
|
||||
<EmptyState v-if="store.isEmpty" />
|
||||
@@ -12,6 +20,7 @@
|
||||
v-if="modal.currentImageId !== null"
|
||||
@close="closeImage"
|
||||
/>
|
||||
<BulkEditorPanel />
|
||||
</v-container>
|
||||
</template>
|
||||
|
||||
@@ -24,9 +33,12 @@ import GalleryGrid from '../components/gallery/GalleryGrid.vue'
|
||||
import TimelineSidebar from '../components/gallery/TimelineSidebar.vue'
|
||||
import EmptyState from '../components/gallery/EmptyState.vue'
|
||||
import ImageViewer from '../components/modal/ImageViewer.vue'
|
||||
import BulkEditorPanel from '../components/gallery/BulkEditorPanel.vue'
|
||||
import { useGallerySelectionStore } from '../stores/gallerySelection.js'
|
||||
|
||||
const store = useGalleryStore()
|
||||
const modal = useModalStore()
|
||||
const sel = useGallerySelectionStore()
|
||||
const router = useRouter()
|
||||
const route = useRoute()
|
||||
|
||||
@@ -41,6 +53,7 @@ onMounted(async () => {
|
||||
})
|
||||
|
||||
watch(() => route.query.tag_id, (q) => {
|
||||
sel.clear() // result set changed — selected ids are no longer valid
|
||||
const tagId = parseInt(q, 10)
|
||||
store.setTagFilter(isNaN(tagId) ? null : tagId)
|
||||
})
|
||||
@@ -69,6 +82,9 @@ function closeImage() {
|
||||
}
|
||||
.fc-gallery-layout__main { flex: 1; min-width: 0; }
|
||||
.fc-gallery-layout__sidebar { flex-shrink: 0; }
|
||||
.fc-select-toggle {
|
||||
position: absolute; top: 12px; right: 16px; z-index: 1101;
|
||||
}
|
||||
|
||||
@media (max-width: 900px) {
|
||||
.fc-gallery-layout { flex-direction: column-reverse; }
|
||||
|
||||
Reference in New Issue
Block a user