]> cat aescling's git repositories - mastodon.git/commitdiff
Introduce react-textarea-autosize instead of using style.height side effects (#3334)
authorEugen Rochko <eugen@zeonfederated.com>
Fri, 26 May 2017 16:22:23 +0000 (18:22 +0200)
committerGitHub <noreply@github.com>
Fri, 26 May 2017 16:22:23 +0000 (18:22 +0200)
app/javascript/mastodon/components/autosuggest_textarea.js
app/javascript/mastodon/features/compose/components/compose_form.js
package.json
yarn.lock

index 9372e61467d38cd6815fe5f0ab75cc2b5ab20667..10efd17fb6c4910dc05aba4121eedb8657f1b982 100644 (file)
@@ -4,6 +4,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
 import PropTypes from 'prop-types';
 import { isRtl } from '../rtl';
 import ImmutablePureComponent from 'react-immutable-pure-component';
+import Textarea from 'react-textarea-autosize';
 
 const textAtCursorMatchesToken = (str, caretPosition) => {
   let word;
@@ -69,10 +70,6 @@ class AutosuggestTextarea extends ImmutablePureComponent {
       this.props.onSuggestionsClearRequested();
     }
 
-    // auto-resize textarea
-    e.target.style.height = 'auto';
-    e.target.style.height = `${e.target.scrollHeight}px`;
-
     this.props.onChange(e);
   }
 
@@ -160,10 +157,6 @@ class AutosuggestTextarea extends ImmutablePureComponent {
     }
   }
 
-  reset () {
-    this.textarea.style.height = 'auto';
-  }
-
   render () {
     const { value, suggestions, disabled, placeholder, onKeyUp, autoFocus } = this.props;
     const { suggestionsHidden, selectedSuggestion } = this.state;
@@ -175,8 +168,8 @@ class AutosuggestTextarea extends ImmutablePureComponent {
 
     return (
       <div className='autosuggest-textarea'>
-        <textarea
-          ref={this.setTextarea}
+        <Textarea
+          inputRef={this.setTextarea}
           className='autosuggest-textarea__textarea'
           disabled={disabled}
           placeholder={placeholder}
index 43b76e353592b20767a935ececaf10b37dddcbc5..5fa074f4bac24952e2bf0726370b89884a529b75 100644 (file)
@@ -67,7 +67,6 @@ class ComposeForm extends ImmutablePureComponent {
   }
 
   handleSubmit = () => {
-    this.autosuggestTextarea.reset();
     this.props.onSubmit();
   }
 
index edded55c6d03f549cb276f0c4199e6a9f30e17e4..4bf7431e3dc7db4aea2f4b5b279dd5c051eda7f5 100644 (file)
@@ -90,6 +90,7 @@
     "react-router": "^2.8.0",
     "react-router-scroll": "^0.3.2",
     "react-simple-dropdown": "^1.1.4",
+    "react-textarea-autosize": "^5.0.6",
     "react-toggle": "^2.1.1",
     "redis": "^2.6.5",
     "redux": "^3.6.0",
index 31ba0ee6fe82fa1b0a29f1c2e753d00c657c913a..5274f21606149172554e14f7ef3475f975bf89ed 100644 (file)
--- a/yarn.lock
+++ b/yarn.lock
@@ -5590,6 +5590,12 @@ react-test-renderer@^15.5.4:
     fbjs "^0.8.9"
     object-assign "^4.1.0"
 
+react-textarea-autosize@^5.0.6:
+  version "5.0.6"
+  resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-5.0.6.tgz#a3742e0a319484021b4dbfa1519df287768f2133"
+  dependencies:
+    prop-types "^15.5.8"
+
 react-toggle@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/react-toggle/-/react-toggle-2.1.1.tgz#80600a64417a1acc8aaa4c1477f7fbdb88b988fb"