Skip to content

Commit

Permalink
Merge 521eb4d into 1794a24
Browse files Browse the repository at this point in the history
  • Loading branch information
zombieJ committed Apr 13, 2021
2 parents 1794a24 + 521eb4d commit 7032e44
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 3 deletions.
6 changes: 3 additions & 3 deletions components/input/TextArea.tsx
Expand Up @@ -86,7 +86,7 @@ const TextArea = React.forwardRef<TextAreaRef, TextAreaProps>(
// Patch composition onChange when value changed
if (triggerValue !== value) {
handleSetValue(triggerValue);
resolveOnChange(innerRef.current as any, e, onChange, triggerValue);
resolveOnChange(e.currentTarget, e, onChange, triggerValue);
}

onCompositionEnd?.(e);
Expand All @@ -99,15 +99,15 @@ const TextArea = React.forwardRef<TextAreaRef, TextAreaProps>(
}

handleSetValue(triggerValue);
resolveOnChange(innerRef.current as any, e, onChange, triggerValue);
resolveOnChange(e.currentTarget, e, onChange, triggerValue);
};

// ============================== Reset ===============================
const handleReset = (e: React.MouseEvent<HTMLElement, MouseEvent>) => {
handleSetValue('', () => {
innerRef.current?.focus();
});
resolveOnChange(innerRef.current as any, e, onChange);
resolveOnChange(innerRef.current?.resizableTextArea?.textArea!, e, onChange);
};

const prefixCls = getPrefixCls('input', customizePrefixCls);
Expand Down
32 changes: 32 additions & 0 deletions components/input/__tests__/textarea.test.js
Expand Up @@ -379,4 +379,36 @@ describe('TextArea allowClear', () => {
const wrapper = mount(<Input.TextArea defaultValue="Light" value={undefined} />);
expect(wrapper.find('textarea').at(0).getDOMNode().value).toBe('Light');
});

it('onChange event should return HTMLInputElement', () => {
const onChange = jest.fn();
const wrapper = mount(<Input.TextArea onChange={onChange} allowClear />);

function isNativeElement() {
expect(onChange).toHaveBeenCalledWith(
expect.objectContaining({
target: wrapper.find('textarea').instance(),
}),
);

onChange.mockReset();
}

// Change
wrapper.find('textarea').simulate('change', {
target: {
value: 'bamboo',
},
});
isNativeElement();

// Composition End
wrapper.find('textarea').instance().value = 'light'; // enzyme not support change `currentTarget`
wrapper.find('textarea').simulate('compositionEnd');
isNativeElement();

// Reset
wrapper.find('.ant-input-clear-icon').first().simulate('click');
isNativeElement();
});
});

0 comments on commit 7032e44

Please sign in to comment.