diff --git a/src/components/button/MoreButton.vue b/src/components/button/MoreButton.vue index ea0f98708..0b0e6f209 100644 --- a/src/components/button/MoreButton.vue +++ b/src/components/button/MoreButton.vue @@ -68,4 +68,8 @@ const toggle = (event: Event) => { const hide = () => { popover.value?.hide() } + +defineExpose({ + hide +}) diff --git a/src/components/sidebar/tabs/AssetsSidebarTab.vue b/src/components/sidebar/tabs/AssetsSidebarTab.vue index 7543216bd..c49449875 100644 --- a/src/components/sidebar/tabs/AssetsSidebarTab.vue +++ b/src/components/sidebar/tabs/AssetsSidebarTab.vue @@ -85,10 +85,13 @@ :show-output-count="shouldShowOutputCount(item)" :output-count="getOutputCount(item)" :show-delete-button="shouldShowDeleteButton" + :open-popover-id="openPopoverId" @click="handleAssetSelect(item)" @zoom="handleZoomClick(item)" @output-count-click="enterFolderView(item)" @asset-deleted="refreshAssets" + @popover-opened="openPopoverId = item.id" + @popover-closed="openPopoverId = null" /> @@ -199,6 +202,9 @@ const folderPromptId = ref(null) const folderExecutionTime = ref(undefined) const isInFolderView = computed(() => folderPromptId.value !== null) +// Track which asset's popover is open (for single-instance popover management) +const openPopoverId = ref(null) + // Determine if delete button should be shown // Hide delete button when in input tab and not in cloud (OSS mode - files are from local folders) const shouldShowDeleteButton = computed(() => { diff --git a/src/platform/assets/components/MediaAssetCard.vue b/src/platform/assets/components/MediaAssetCard.vue index ac8d769d7..e78b3c096 100644 --- a/src/platform/assets/components/MediaAssetCard.vue +++ b/src/platform/assets/components/MediaAssetCard.vue @@ -71,9 +71,10 @@
@@ -139,7 +140,7 @@