about summary refs log tree commit diff
path: root/app/assets/javascripts/components/reducers/compose.jsx
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2016-08-31 22:58:10 +0200
committerEugen Rochko <eugen@zeonfederated.com>2016-08-31 22:58:10 +0200
commitdbae8062f4ff6dcad98c90f6654b27111806013a (patch)
tree68b423ac1d0c52b601dfac6838e26ce049323f57 /app/assets/javascripts/components/reducers/compose.jsx
parent1e0e17ba85deebd6763ed9414f3cc2e2a23e1dbd (diff)
Replies in the compose form
Diffstat (limited to 'app/assets/javascripts/components/reducers/compose.jsx')
-rw-r--r--app/assets/javascripts/components/reducers/compose.jsx30
1 files changed, 19 insertions, 11 deletions
diff --git a/app/assets/javascripts/components/reducers/compose.jsx b/app/assets/javascripts/components/reducers/compose.jsx
index 93e0c7ebe..601cc6449 100644
--- a/app/assets/javascripts/components/reducers/compose.jsx
+++ b/app/assets/javascripts/components/reducers/compose.jsx
@@ -1,24 +1,32 @@
-import { COMPOSE_CHANGE, COMPOSE_SUBMIT_REQUEST, COMPOSE_SUBMIT_SUCCESS, COMPOSE_SUBMIT_FAIL } from '../actions/compose';
-import Immutable                                                                               from 'immutable';
+import * as constants from '../actions/compose';
+import Immutable                                                                                              from 'immutable';
 
 const initialState = Immutable.Map({
   text: '',
-  in_reply_to_id: null,
-  isSubmitting: false
+  in_reply_to: null,
+  is_submitting: false
 });
 
 export default function compose(state = initialState, action) {
   switch(action.type) {
-    case COMPOSE_CHANGE:
+    case constants.COMPOSE_CHANGE:
       return state.set('text', action.text);
-    case COMPOSE_SUBMIT_REQUEST:
-      return state.set('isSubmitting', true);
-    case COMPOSE_SUBMIT_SUCCESS:
+    case constants.COMPOSE_REPLY:
       return state.withMutations(map => {
-        map.set('text', '').set('isSubmitting', false);
+        map.set('in_reply_to', action.payload).set('text', `@${action.payload.getIn(['account', 'acct'])} `);
       });
-    case COMPOSE_SUBMIT_FAIL:
-      return state.set('isSubmitting', false);
+    case constants.COMPOSE_REPLY_CANCEL:
+      return state.withMutations(map => {
+        map.set('in_reply_to', null).set('text', '');
+      });
+    case constants.COMPOSE_SUBMIT_REQUEST:
+      return state.set('is_submitting', true);
+    case constants.COMPOSE_SUBMIT_SUCCESS:
+      return state.withMutations(map => {
+        map.set('text', '').set('is_submitting', false),set('in_reply_to', null);
+      });
+    case constants.COMPOSE_SUBMIT_FAIL:
+      return state.set('is_submitting', false);
     default:
       return state;
   }