@hanxx/vue-hooks
Version:
⚡️ Awesome Vue Hooks
25 lines (24 loc) • 793 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var composition_api_1 = require("@vue/composition-api");
function useClickAway(onClickAway, dom, eventName) {
if (eventName === void 0) { eventName = 'click'; }
var element = dom || composition_api_1.ref(null);
var handler = function (event) {
// @ts-ignore
if (!element.value || element.value.contains(event.target)) {
return;
}
onClickAway(event);
};
composition_api_1.onMounted(function () {
document.addEventListener(eventName, handler);
});
composition_api_1.onUnmounted(function () {
document.removeEventListener(eventName, handler);
});
return {
element: element,
};
}
exports.default = useClickAway;
;