fix(assets): dismiss context menu on scroll and outside click (#8952)

This commit is contained in:
Jin Yi
2026-02-21 13:19:13 +09:00
committed by GitHub
parent 5fe902358c
commit c05644045f
2 changed files with 43 additions and 16 deletions

View File

@@ -199,7 +199,8 @@ import {
useDebounceFn,
useElementHover,
useResizeObserver,
useStorage
useStorage,
useTimeoutFn
} from '@vueuse/core'
import Divider from 'primevue/divider'
import { useToast } from 'primevue/usetoast'
@@ -483,7 +484,16 @@ function handleAssetSelect(asset: AssetItem, assets?: AssetItem[]) {
handleAssetClick(asset, index, assetList)
}
const { start: scheduleCleanup, stop: cancelCleanup } = useTimeoutFn(
() => {
contextMenuAsset.value = null
},
0,
{ immediate: false }
)
function handleAssetContextMenu(event: MouseEvent, asset: AssetItem) {
cancelCleanup()
contextMenuAsset.value = asset
void nextTick(() => {
contextMenuRef.value?.show(event)
@@ -491,10 +501,7 @@ function handleAssetContextMenu(event: MouseEvent, asset: AssetItem) {
}
function handleContextMenuHide() {
// Delay clearing to allow command callbacks to emit before component unmounts
requestAnimationFrame(() => {
contextMenuAsset.value = null
})
scheduleCleanup()
}
const handleBulkDownload = (assets: AssetItem[]) => {