vuestic-ui
Version:
Vue 3 UI Framework
24 lines (23 loc) • 970 B
JavaScript
import { watch, unref } from "vue";
import { u as useWindow } from "./useWindow.mjs";
import { u as unwrapEl } from "../utils/unwrapEl.mjs";
import { a as addEventListener, r as removeEventListener } from "../utils/add-event-listener.mjs";
const useEvent = (event, listener, target) => {
const source = target && typeof target !== "boolean" ? target : useWindow();
const capture = typeof target === "boolean" ? target : false;
watch(source, (newValue, oldValue) => {
if (!Array.isArray(event)) {
addEventListener(unwrapEl(unref(newValue)), event, listener, capture);
removeEventListener(unwrapEl(unref(oldValue)), event, listener, capture);
} else {
event.forEach((e) => {
addEventListener(unwrapEl(unref(newValue)), e, listener, capture);
removeEventListener(unwrapEl(unref(oldValue)), e, listener, capture);
});
}
}, { immediate: true });
};
export {
useEvent as u
};
//# sourceMappingURL=useEvent.mjs.map