vuestic-ui
Version:
Vue 3 UI Framework
53 lines (52 loc) • 1.29 kB
JavaScript
import { u as useMount } from "../../../composables/useMount.mjs";
import { V as VaMenu } from "../va-menu.mjs";
import { onBeforeUnmount } from "vue";
const useMenu = () => {
const { createInstance } = useMount(VaMenu);
const instances = [];
const destroyAll = () => instances.forEach((destroy) => destroy());
const show = (props) => {
destroyAll();
props.event.preventDefault();
const destroy = createInstance({
...props,
anchor: props.event.target,
cursor: {
getBoundingClientRect() {
const resX = props.event.clientX;
const resY = props.event.clientY;
return {
width: 0,
height: 0,
x: resX,
y: resY,
top: resY,
right: resX,
bottom: resY,
left: resX
};
},
contextElement: props.event.target
},
stateful: true,
modelValue: true,
preset: "context",
onBeforeUnmount: () => {
destroy();
}
});
instances.push(destroy);
return () => {
destroy();
instances.splice(instances.indexOf(destroy), 1);
};
};
onBeforeUnmount(destroyAll);
return {
show
};
};
export {
useMenu as u
};
//# sourceMappingURL=useMenu.mjs.map