about summary refs log tree commit diff
path: root/app/assets/javascripts/components
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/components')
-rw-r--r--app/assets/javascripts/components/components/status.jsx3
-rw-r--r--app/assets/javascripts/components/components/upload_form.jsx4
-rw-r--r--app/assets/javascripts/components/features/status/index.jsx18
3 files changed, 21 insertions, 4 deletions
diff --git a/app/assets/javascripts/components/components/status.jsx b/app/assets/javascripts/components/components/status.jsx
index 3882fc97f..8cdbd5625 100644
--- a/app/assets/javascripts/components/components/status.jsx
+++ b/app/assets/javascripts/components/components/status.jsx
@@ -40,8 +40,9 @@ const Status = React.createClass({
     if (e.button === 0) {
       e.preventDefault();
       hashHistory.push(`/accounts/${id}`);
-      e.stopPropagation();
     }
+
+    e.stopPropagation();
   },
 
   render () {
diff --git a/app/assets/javascripts/components/components/upload_form.jsx b/app/assets/javascripts/components/components/upload_form.jsx
index 429e672c0..f0b6f7992 100644
--- a/app/assets/javascripts/components/components/upload_form.jsx
+++ b/app/assets/javascripts/components/components/upload_form.jsx
@@ -25,9 +25,11 @@ const UploadForm = React.createClass({
       );
     }.bind(this));
 
+    const noMoreAllowed = (this.props.media.some(m => m.get('type') === 'video')) || (this.props.media.size > 3);
+
     return (
       <div style={{ marginBottom: '20px', padding: '10px', paddingTop: '0' }}>
-        <UploadButton onSelectFile={this.props.onSelectFile} disabled={this.props.is_uploading || this.props.media.size > 3} />
+        <UploadButton onSelectFile={this.props.onSelectFile} disabled={this.props.is_uploading || noMoreAllowed } />
 
         <div style={{ marginTop: '10px', overflow: 'hidden' }}>
           {uploads}
diff --git a/app/assets/javascripts/components/features/status/index.jsx b/app/assets/javascripts/components/features/status/index.jsx
index 122db8906..39bc2bec5 100644
--- a/app/assets/javascripts/components/features/status/index.jsx
+++ b/app/assets/javascripts/components/features/status/index.jsx
@@ -4,6 +4,8 @@ import ImmutablePropTypes       from 'react-immutable-proptypes';
 import { fetchStatus }          from '../../actions/statuses';
 import Immutable                from 'immutable';
 import EmbeddedStatus           from '../../components/status';
+import { favourite, reblog }    from '../../actions/interactions';
+import { replyCompose }         from '../../actions/compose';
 
 function selectStatus(state, id) {
   let status = state.getIn(['timelines', 'statuses', id]);
@@ -49,8 +51,20 @@ const Status = React.createClass({
     }
   },
 
+  handleFavouriteClick (status) {
+    this.props.dispatch(favourite(status));
+  },
+
+  handleReplyClick (status) {
+    this.props.dispatch(replyCompose(status));
+  },
+
+  handleReblogClick (status) {
+    this.props.dispatch(reblog(status));
+  },
+
   renderChildren (list) {
-    return list.map(s => <EmbeddedStatus status={s} key={s.get('id')} />);
+    return list.map(s => <EmbeddedStatus status={s} key={s.get('id')} onReply={this.handleReplyClick} onFavourite={this.handleFavouriteClick} onReblog={this.handleReblogClick} />);
   },
 
   render () {
@@ -63,7 +77,7 @@ const Status = React.createClass({
     return (
       <div>
         {this.renderChildren(ancestors)}
-        <EmbeddedStatus status={status} />
+        <EmbeddedStatus status={status} onReply={this.handleReplyClick} onFavourite={this.handleFavouriteClick} onReblog={this.handleReblogClick} />
         {this.renderChildren(descendants)}
       </div>
     );