import { reactive, ref } from 'vue' import ContextMenuBase from '@/components/ui/ContextMenuBase.vue' export type ContextMenuContext = Record export const useContextMenu = () => { const base = ref>() const context = reactive({}) const open = (top: number, left: number, ctx: ContextMenuContext = {}) => { base.value?.open(top, left, ctx) Object.assign(context, ctx) } const close = () => base.value?.close() const trigger = (func: Closure) => { close() func() } return { base, ContextMenuBase, open, close, trigger, context } }