Skip to content

Commit e5606d1

Browse files
author
zhang ping
committed
fix: can not input composition characters in safari when autoresize is enabled
1 parent 12dc37f commit e5606d1

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

src/ResizableTextArea.tsx

+8-2
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,10 @@ class ResizableTextArea extends React.Component<TextAreaProps, TextAreaState> {
7070

7171
resizeOnNextFrame = () => {
7272
cancelAnimationFrame(this.nextFrameActionId);
73-
this.nextFrameActionId = requestAnimationFrame(this.resizeTextarea);
73+
this.nextFrameActionId = requestAnimationFrame(() => this.resizeTextarea());
7474
};
7575

76-
resizeTextarea = () => {
76+
resizeTextarea = (silent?: boolean) => {
7777
const { autoSize } = this.props;
7878
if (!autoSize || !this.textArea) {
7979
return;
@@ -85,6 +85,12 @@ class ResizableTextArea extends React.Component<TextAreaProps, TextAreaState> {
8585
minRows,
8686
maxRows,
8787
);
88+
if (silent) {
89+
this.setState({
90+
textareaStyles,
91+
});
92+
return;
93+
}
8894
this.setState(
8995
{ textareaStyles, resizeStatus: RESIZE_STATUS.RESIZING },
9096
() => {

src/index.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ class TextArea extends React.Component<TextAreaProps, TextAreaState> {
6262
handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {
6363
const { onChange } = this.props;
6464
this.setValue(e.target.value, () => {
65-
this.resizableTextArea.resizeTextarea();
65+
this.resizableTextArea.resizeTextarea(true);
6666
});
6767
if (onChange) {
6868
onChange(e);

0 commit comments

Comments
 (0)