song-ui-u
Version:
vue3 + js的PC前端组件库
72 lines (69 loc) • 1.58 kB
JavaScript
import { ref, getCurrentInstance } from 'vue';
const useEvent = (options = {}) => {
let isFocus = ref(false);
let isHover = ref(false);
let isComposition = ref(false);
const { emit } = getCurrentInstance();
const changeEvent = (e) => {
emit("change", e);
};
const keydownEvent = (e) => {
emit("keydown", e);
};
const keyupEvent = (e) => {
emit("keyup", e);
};
const focusEvent = (e) => {
isFocus.value = true;
emit("focus", e);
};
const blurEvent = (e) => {
isFocus.value = false;
emit("blur", e);
options?.afterBlur?.();
};
const mouseenterEvent = (e) => {
isHover.value = true;
emit("mouseenter", e);
};
const mouselevelEvent = (e) => {
isHover.value = false;
emit("mouselevel", e);
};
const compositionStartEvent = (e) => {
isComposition.value = true;
emit("compositionstart", e);
};
const compositionUpdateEvent = (e) => {
isComposition.value = true;
emit("compositionupdate", e);
};
const compositionEndEvent = (e) => {
emit("compositionend", e);
return new Promise((resolve, reject) => {
if (isComposition.value) {
isComposition.value = false;
resolve();
return false;
}
reject();
});
};
return {
focusEvent,
blurEvent,
mouseenterEvent,
mouselevelEvent,
compositionStartEvent,
compositionUpdateEvent,
compositionEndEvent,
changeEvent,
keydownEvent,
keyupEvent,
isFocus,
isHover,
isComposition
};
};
export { useEvent };
//# sourceMappingURL=index.mjs.map