vue-hooks-plus
Version:
Vue hooks library
26 lines (25 loc) • 707 B
JavaScript
import { defineComponent, ref, isVNode, cloneVNode, computed } from "vue";
import useMouse from ".";
const UseMouse = defineComponent({
name: "UseMouse",
slots: Object,
setup(_, { slots }) {
const targetRef = ref();
const data = useMouse(targetRef);
return () => {
var _a;
const targetVNode = (_a = slots.target) == null ? void 0 : _a.call(slots);
let target = null;
if (targetVNode && targetVNode.length === 1 && isVNode(targetVNode[0])) {
target = cloneVNode(targetVNode[0], { ref: targetRef });
}
return [
target,
slots.default && slots.default(computed(() => data.value).value)
];
};
}
});
export {
UseMouse
};