@oiij/use
Version:
Som Composable Functions for Vue 3
33 lines (31 loc) • 623 B
JavaScript
import { nextTick, ref } from "vue";
import { useEventListener } from "@vueuse/core";
//#region src/composables/use-context-menu.ts
function useContextMenu(templateRef) {
const x = ref(0);
const y = ref(0);
const show = ref(false);
function contextMenuEvent(e) {
e.preventDefault();
hide();
nextTick(() => {
show.value = true;
x.value = e.clientX;
y.value = e.clientY;
});
}
function hide() {
show.value = false;
}
useEventListener(templateRef, "contextmenu", contextMenuEvent);
return {
templateRef,
x,
y,
show,
hide,
contextMenuEvent
};
}
//#endregion
export { useContextMenu };