vuux
Version:
Vue3 Nuxt3 Nuxt4 组件库
32 lines (31 loc) • 773 B
JavaScript
import { inject as v, ref as u, useSlots as h, computed as a, onMounted as b } from "vue";
const M = (e) => {
const o = v("contextMenuContext"), t = u(!1), s = u(!1), i = h(), l = a(() => o?.isShadow.value), d = a(() => ({
"is-disabled": e.disabled,
"is-hover": t.value
})), r = (m) => {
m.stopPropagation(), !e.disabled && o?.hide();
};
let n;
const c = () => {
e.disabled || (clearTimeout(n), t.value = !0);
}, f = () => {
e.disabled || (n = window.setTimeout(() => {
t.value = !1;
}, 150));
};
return b(() => {
s.value = !!i.default?.();
}), {
isHover: t,
hasSubmenu: s,
isShadow: l,
classNames: d,
handleClick: r,
onMouseEnter: c,
onMouseLeave: f
};
};
export {
M as useContextItem
};