about summary refs log tree commit diff
path: root/app/assets/javascripts/components/features/account/index.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/components/features/account/index.jsx')
-rw-r--r--app/assets/javascripts/components/features/account/index.jsx29
1 files changed, 21 insertions, 8 deletions
diff --git a/app/assets/javascripts/components/features/account/index.jsx b/app/assets/javascripts/components/features/account/index.jsx
index db0925d78..40c06c545 100644
--- a/app/assets/javascripts/components/features/account/index.jsx
+++ b/app/assets/javascripts/components/features/account/index.jsx
@@ -10,7 +10,12 @@ import {
 }                            from '../../actions/accounts';
 import { deleteStatus }      from '../../actions/statuses';
 import { replyCompose }      from '../../actions/compose';
-import { favourite, reblog } from '../../actions/interactions';
+import {
+  favourite,
+  reblog,
+  unreblog,
+  unfavourite
+}                            from '../../actions/interactions';
 import Header                from './components/header';
 import {
   selectStatus,
@@ -54,11 +59,11 @@ const Account = React.createClass({
   },
 
   handleFollow () {
-    this.props.dispatch(followAccount(this.props.account.get('id')));
-  },
-
-  handleUnfollow () {
-    this.props.dispatch(unfollowAccount(this.props.account.get('id')));
+    if (this.props.account.getIn(['relationship', 'following'])) {
+      this.props.dispatch(unfollowAccount(this.props.account.get('id')));
+    } else {
+      this.props.dispatch(followAccount(this.props.account.get('id')));
+    }
   },
 
   handleReply (status) {
@@ -66,11 +71,19 @@ const Account = React.createClass({
   },
 
   handleReblog (status) {
-    this.props.dispatch(reblog(status));
+    if (status.get('reblogged')) {
+      this.props.dispatch(unreblog(status));
+    } else {
+      this.props.dispatch(reblog(status));
+    }
   },
 
   handleFavourite (status) {
-    this.props.dispatch(favourite(status));
+    if (status.get('favourited')) {
+      this.props.dispatch(unfavourite(status));
+    } else {
+      this.props.dispatch(favourite(status));
+    }
   },
 
   handleDelete (status) {