about summary refs log tree commit diff
path: root/app/assets/javascripts/components/features/compose/components/upload_button.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/components/features/compose/components/upload_button.jsx')
-rw-r--r--app/assets/javascripts/components/features/compose/components/upload_button.jsx35
1 files changed, 20 insertions, 15 deletions
diff --git a/app/assets/javascripts/components/features/compose/components/upload_button.jsx b/app/assets/javascripts/components/features/compose/components/upload_button.jsx
index 2ba0e8fd2..64b36a4df 100644
--- a/app/assets/javascripts/components/features/compose/components/upload_button.jsx
+++ b/app/assets/javascripts/components/features/compose/components/upload_button.jsx
@@ -1,5 +1,5 @@
-import PureRenderMixin from 'react-addons-pure-render-mixin';
 import IconButton from '../../../components/icon_button';
+import PropTypes from 'prop-types';
 import { defineMessages, injectIntl } from 'react-intl';
 
 const messages = defineMessages({
@@ -11,31 +11,28 @@ const iconStyle = {
   height: null
 };
 
-const UploadButton = React.createClass({
+class UploadButton extends React.PureComponent {
 
-  propTypes: {
-    disabled: React.PropTypes.bool,
-    onSelectFile: React.PropTypes.func.isRequired,
-    style: React.PropTypes.object,
-    resetFileKey: React.PropTypes.number,
-    intl: React.PropTypes.object.isRequired
-  },
-
-  mixins: [PureRenderMixin],
+  constructor (props, context) {
+    super(props, context);
+    this.handleChange = this.handleChange.bind(this);
+    this.handleClick = this.handleClick.bind(this);
+    this.setRef = this.setRef.bind(this);
+  }
 
   handleChange (e) {
     if (e.target.files.length > 0) {
       this.props.onSelectFile(e.target.files);
     }
-  },
+  }
 
   handleClick () {
     this.fileElement.click();
-  },
+  }
 
   setRef (c) {
     this.fileElement = c;
-  },
+  }
 
   render () {
     const { intl, resetFileKey, disabled } = this.props;
@@ -48,6 +45,14 @@ const UploadButton = React.createClass({
     );
   }
 
-});
+}
+
+UploadButton.propTypes = {
+  disabled: PropTypes.bool,
+  onSelectFile: PropTypes.func.isRequired,
+  style: PropTypes.object,
+  resetFileKey: PropTypes.number,
+  intl: PropTypes.object.isRequired
+};
 
 export default injectIntl(UploadButton);