about summary refs log tree commit diff
path: root/app/assets/javascripts/components/actions
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2016-08-31 16:15:12 +0200
committerEugen Rochko <eugen@zeonfederated.com>2016-08-31 16:15:12 +0200
commit72591cc6d59d774e66d1d42af44bdc00f71f99f8 (patch)
treee2ab1fba6e9b446b92f065af920483b998a2c2ab /app/assets/javascripts/components/actions
parent92afd296509de82e7550f67064b032db916b1f63 (diff)
Cleaning up action names and compose drawer
Diffstat (limited to 'app/assets/javascripts/components/actions')
-rw-r--r--app/assets/javascripts/components/actions/compose.jsx49
-rw-r--r--app/assets/javascripts/components/actions/meta.jsx4
-rw-r--r--app/assets/javascripts/components/actions/statuses.jsx81
-rw-r--r--app/assets/javascripts/components/actions/timelines.jsx19
4 files changed, 70 insertions, 83 deletions
diff --git a/app/assets/javascripts/components/actions/compose.jsx b/app/assets/javascripts/components/actions/compose.jsx
new file mode 100644
index 000000000..614ed1a89
--- /dev/null
+++ b/app/assets/javascripts/components/actions/compose.jsx
@@ -0,0 +1,49 @@
+import api from '../api'
+
+export const COMPOSE_CHANGE         = 'COMPOSE_CHANGE';
+export const COMPOSE_SUBMIT         = 'COMPOSE_SUBMIT';
+export const COMPOSE_SUBMIT_REQUEST = 'COMPOSE_SUBMIT_REQUEST';
+export const COMPOSE_SUBMIT_SUCCESS = 'COMPOSE_SUBMIT_SUCCESS';
+export const COMPOSE_SUBMIT_FAIL    = 'COMPOSE_SUBMIT_FAIL';
+
+export function changeCompose(text) {
+  return {
+    type: COMPOSE_CHANGE,
+    text: text
+  };
+}
+
+export function submitCompose() {
+  return function (dispatch, getState) {
+    dispatch(submitComposeRequest());
+
+    api(getState).post('/api/statuses', {
+      status: getState().getIn(['compose', 'text'], ''),
+      in_reply_to_id: getState().getIn(['compose', 'in_reply_to_id'], null)
+    }).then(function (response) {
+      dispatch(submitComposeSuccess(response.data));
+    }).catch(function (error) {
+      dispatch(submitComposeFail(error));
+    });
+  };
+}
+
+export function submitComposeRequest() {
+  return {
+    type: COMPOSE_SUBMIT_REQUEST
+  };
+}
+
+export function submitComposeSuccess(response) {
+  return {
+    type: COMPOSE_SUBMIT_SUCCESS
+  };
+}
+
+export function submitComposeFail(error) {
+  return {
+    type: COMPOSE_SUBMIT_FAIL,
+    error: error
+  };
+}
+
diff --git a/app/assets/javascripts/components/actions/meta.jsx b/app/assets/javascripts/components/actions/meta.jsx
index 1b64db1c2..e0f127231 100644
--- a/app/assets/javascripts/components/actions/meta.jsx
+++ b/app/assets/javascripts/components/actions/meta.jsx
@@ -1,8 +1,8 @@
-export const SET_ACCESS_TOKEN = 'SET_ACCESS_TOKEN';
+export const ACCESS_TOKEN_SET = 'ACCESS_TOKEN_SET';
 
 export function setAccessToken(token) {
   return {
-    type: SET_ACCESS_TOKEN,
+    type: ACCESS_TOKEN_SET,
     token: token
   };
 }
diff --git a/app/assets/javascripts/components/actions/statuses.jsx b/app/assets/javascripts/components/actions/statuses.jsx
deleted file mode 100644
index 45d62fab2..000000000
--- a/app/assets/javascripts/components/actions/statuses.jsx
+++ /dev/null
@@ -1,81 +0,0 @@
-import fetch from 'isomorphic-fetch'
-
-export const SET_TIMELINE = 'SET_TIMELINE';
-export const ADD_STATUS   = 'ADD_STATUS';
-
-export const PUBLISH       = 'PUBLISH';
-export const PUBLISH_START = 'PUBLISH_START';
-export const PUBLISH_SUCC  = 'PUBLISH_SUCC';
-export const PUBLISH_ERROR = 'PUBLISH_ERROR';
-
-export function setTimeline(timeline, statuses) {
-  return {
-    type: SET_TIMELINE,
-    timeline: timeline,
-    statuses: statuses
-  };
-}
-
-export function addStatus(timeline, status) {
-  return {
-    type: ADD_STATUS,
-    timeline: timeline,
-    status: status
-  };
-}
-
-export function publishStart() {
-  return {
-    type: PUBLISH_START
-  };
-}
-
-export function publishError(error) {
-  return {
-    type: PUBLISH_ERROR,
-    error: error
-  };
-}
-
-export function publishSucc(status) {
-  return {
-    type: PUBLISH_SUCC,
-    status: status
-  };
-}
-
-export function publish(text, in_reply_to_id) {
-  return function (dispatch, getState) {
-    const access_token = getState().getIn(['meta', 'access_token']);
-
-    var data = new FormData();
-
-    data.append('status', text);
-
-    if (in_reply_to_id !== null) {
-      data.append('in_reply_to_id', in_reply_to_id);
-    }
-
-    dispatch(publishStart());
-
-    return fetch('/api/statuses', {
-      method: 'POST',
-
-      headers: {
-        'Authorization': `Bearer ${access_token}`
-      },
-
-      body: data
-    }).then(function (response) {
-      return response.json();
-    }).then(function (json) {
-      if (json.error) {
-        dispatch(publishError(json.error));
-      } else {
-        dispatch(publishSucc(json));
-      }
-    }).catch(function (error) {
-      dispatch(publishError(error));
-    });
-  };
-}
diff --git a/app/assets/javascripts/components/actions/timelines.jsx b/app/assets/javascripts/components/actions/timelines.jsx
new file mode 100644
index 000000000..91f06511a
--- /dev/null
+++ b/app/assets/javascripts/components/actions/timelines.jsx
@@ -0,0 +1,19 @@
+export const TIMELINE_SET    = 'TIMELINE_SET';
+export const TIMELINE_UPDATE = 'TIMELINE_UPDATE';
+
+
+export function setTimeline(timeline, statuses) {
+  return {
+    type: TIMELINE_SET,
+    timeline: timeline,
+    statuses: statuses
+  };
+}
+
+export function updateTimeline(timeline, status) {
+  return {
+    type: TIMELINE_UPDATE,
+    timeline: timeline,
+    status: status
+  };
+}