Skip to content

Commit

Permalink
fix: input clear error (#7523)
Browse files Browse the repository at this point in the history
  • Loading branch information
hippo2cat authored Apr 25, 2024
1 parent d6cc262 commit 8e8073d
Showing 1 changed file with 10 additions and 10 deletions.
20 changes: 10 additions & 10 deletions components/vc-input/Input.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import {
triggerFocus,
} from './utils/commonUtils';
import BaseInput from './BaseInput';
import BaseInputCore from '../_util/BaseInput';
import BaseInputCore, { type BaseInputExpose } from '../_util/BaseInput';

export default defineComponent({
name: 'VCInput',
Expand All @@ -24,7 +24,7 @@ export default defineComponent({
setup(props, { slots, attrs, expose, emit }) {
const stateValue = shallowRef(props.value === undefined ? props.defaultValue : props.value);
const focused = shallowRef(false);
const inputRef = shallowRef<HTMLInputElement>();
const inputRef = shallowRef<BaseInputExpose>();
const rootRef = shallowRef<ComponentPublicInstance>();
watch(
() => props.value,
Expand All @@ -42,30 +42,30 @@ export default defineComponent({
);
const focus = (option?: InputFocusOptions) => {
if (inputRef.value) {
triggerFocus(inputRef.value, option);
triggerFocus(inputRef.value.input, option);
}
};

const blur = () => {
inputRef.value?.blur();
inputRef.value.input?.blur();
};

const setSelectionRange = (
start: number,
end: number,
direction?: 'forward' | 'backward' | 'none',
) => {
inputRef.value?.setSelectionRange(start, end, direction);
inputRef.value.input?.setSelectionRange(start, end, direction);
};

const select = () => {
inputRef.value?.select();
inputRef.value.input?.select();
};

expose({
focus,
blur,
input: computed(() => (inputRef.value as any)?.input),
input: computed(() => (inputRef.value.input as any)?.input),
stateValue,
setSelectionRange,
select,
Expand All @@ -81,7 +81,7 @@ export default defineComponent({
stateValue.value = value;
} else {
nextTick(() => {
if (inputRef.value.value !== stateValue.value) {
if (inputRef.value.input.value !== stateValue.value) {
rootRef.value?.$forceUpdate();
}
});
Expand All @@ -94,7 +94,7 @@ export default defineComponent({
const { value } = e.target as any;
if (stateValue.value === value) return;
const newVal = e.target.value;
resolveOnChange(inputRef.value, e, triggerChange);
resolveOnChange(inputRef.value.input as HTMLInputElement, e, triggerChange);
setValue(newVal);
};

Expand All @@ -116,7 +116,7 @@ export default defineComponent({
};

const handleReset = (e: MouseEvent) => {
resolveOnChange(inputRef.value, e, triggerChange);
resolveOnChange(inputRef.value.input as HTMLInputElement, e, triggerChange);
setValue('', () => {
focus();
});
Expand Down

0 comments on commit 8e8073d

Please sign in to comment.