UNPKG

@hanxx/vue-hooks

Version:
25 lines (24 loc) 793 B
"use strict"; 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;