@hanxx/vue-hooks
Version:
⚡️ Awesome Vue Hooks
22 lines (21 loc) • 656 B
JavaScript
import { onMounted, onUnmounted, ref } from '@vue/composition-api';
export default function useClickAway(onClickAway, dom, eventName) {
if (eventName === void 0) { eventName = 'click'; }
var element = dom || ref(null);
var handler = function (event) {
// @ts-ignore
if (!element.value || element.value.contains(event.target)) {
return;
}
onClickAway(event);
};
onMounted(function () {
document.addEventListener(eventName, handler);
});
onUnmounted(function () {
document.removeEventListener(eventName, handler);
});
return {
element: element,
};
}