You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
810 B

import { ref } from 'vue';
import { isFunction } from '@vue/shared';
import { isKorean } from '../../../utils/isDef.mjs';
function useInput(handleInput) {
const isComposing = ref(false);
const handleCompositionStart = () => {
isComposing.value = true;
};
const handleCompositionUpdate = (event) => {
const text = event.target.value;
const lastCharacter = text[text.length - 1] || "";
isComposing.value = !isKorean(lastCharacter);
};
const handleCompositionEnd = (event) => {
if (isComposing.value) {
isComposing.value = false;
if (isFunction(handleInput)) {
handleInput(event);
}
}
};
return {
handleCompositionStart,
handleCompositionUpdate,
handleCompositionEnd
};
}
export { useInput };
//# sourceMappingURL=useInput.mjs.map