about summary refs log tree commit diff
path: root/app/assets/javascripts/components/components/extended_video_player.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/components/components/extended_video_player.jsx')
-rw-r--r--app/assets/javascripts/components/components/extended_video_player.jsx36
1 files changed, 20 insertions, 16 deletions
diff --git a/app/assets/javascripts/components/components/extended_video_player.jsx b/app/assets/javascripts/components/components/extended_video_player.jsx
index a64515583..bbbe09da8 100644
--- a/app/assets/javascripts/components/components/extended_video_player.jsx
+++ b/app/assets/javascripts/components/components/extended_video_player.jsx
@@ -1,33 +1,30 @@
-import PureRenderMixin from 'react-addons-pure-render-mixin';
+import PropTypes from 'prop-types';
 
-const ExtendedVideoPlayer = React.createClass({
+class ExtendedVideoPlayer extends React.PureComponent {
 
-  propTypes: {
-    src: React.PropTypes.string.isRequired,
-    time: React.PropTypes.number,
-    controls: React.PropTypes.bool.isRequired,
-    muted: React.PropTypes.bool.isRequired
-  },
-
-  mixins: [PureRenderMixin],
+  constructor (props, context) {
+    super(props, context);
+    this.handleLoadedData = this.handleLoadedData.bind(this);
+    this.setRef = this.setRef.bind(this);
+  }
 
   handleLoadedData () {
     if (this.props.time) {
       this.video.currentTime = this.props.time;
     }
-  },
+  }
 
   componentDidMount () {
     this.video.addEventListener('loadeddata', this.handleLoadedData);
-  },
+  }
 
   componentWillUnmount () {
     this.video.removeEventListener('loadeddata', this.handleLoadedData);
-  },
+  }
 
   setRef (c) {
     this.video = c;
-  },
+  }
 
   render () {
     return (
@@ -42,8 +39,15 @@ const ExtendedVideoPlayer = React.createClass({
         />
       </div>
     );
-  },
+  }
+
+}
 
-});
+ExtendedVideoPlayer.propTypes = {
+  src: PropTypes.string.isRequired,
+  time: PropTypes.number,
+  controls: PropTypes.bool.isRequired,
+  muted: PropTypes.bool.isRequired
+};
 
 export default ExtendedVideoPlayer;