Skip to content

Commit bd23235

Browse files
authored
Merge pull request #4230 from helaoutar/bugfix/4132_edit_message_scroll
2 parents e043ac2 + 9be3668 commit bd23235

File tree

1 file changed

+15
-0
lines changed
  • src/components/TextInputFocusable

1 file changed

+15
-0
lines changed

src/components/TextInputFocusable/index.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ class TextInputFocusable extends React.Component {
118118
this.dragNDropListener = this.dragNDropListener.bind(this);
119119
this.handlePaste = this.handlePaste.bind(this);
120120
this.handlePastedHTML = this.handlePastedHTML.bind(this);
121+
this.handleWheel = this.handleWheel.bind(this);
121122
}
122123

123124
componentDidMount() {
@@ -141,6 +142,7 @@ class TextInputFocusable extends React.Component {
141142
document.addEventListener('dragleave', this.dragNDropListener);
142143
document.addEventListener('drop', this.dragNDropListener);
143144
this.textInput.addEventListener('paste', this.handlePaste);
145+
this.textInput.addEventListener('wheel', this.handleWheel);
144146
}
145147
}
146148

@@ -168,6 +170,7 @@ class TextInputFocusable extends React.Component {
168170
document.removeEventListener('dragleave', this.dragNDropListener);
169171
document.removeEventListener('drop', this.dragNDropListener);
170172
this.textInput.removeEventListener('paste', this.handlePaste);
173+
this.textInput.removeEventListener('wheel', this.handleWheel);
171174
}
172175
}
173176

@@ -304,6 +307,18 @@ class TextInputFocusable extends React.Component {
304307
}
305308
}
306309

310+
/**
311+
* Manually scrolls the text input, then prevents the event from being passed up to the parent.
312+
* @param {Object} event native Event
313+
*/
314+
handleWheel(event) {
315+
if (event.target === document.activeElement) {
316+
this.textInput.scrollTop += event.deltaY;
317+
event.preventDefault();
318+
event.stopPropagation();
319+
}
320+
}
321+
307322
/**
308323
* Check the current scrollHeight of the textarea (minus any padding) and
309324
* divide by line height to get the total number of rows for the textarea.

0 commit comments

Comments
 (0)