From 1fce687f8e03d78b4b842422fc6621bba439e1cd Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 2 Oct 2016 15:14:26 +0200 Subject: Unreblogging and unfavouriting from the UI --- .../components/actions/interactions.jsx | 66 ++++++++++++++++++++-- 1 file changed, 62 insertions(+), 4 deletions(-) (limited to 'app/assets/javascripts/components/actions/interactions.jsx') diff --git a/app/assets/javascripts/components/actions/interactions.jsx b/app/assets/javascripts/components/actions/interactions.jsx index 8ce0c7561..ce7797eaa 100644 --- a/app/assets/javascripts/components/actions/interactions.jsx +++ b/app/assets/javascripts/components/actions/interactions.jsx @@ -8,6 +8,14 @@ export const FAVOURITE_REQUEST = 'FAVOURITE_REQUEST'; export const FAVOURITE_SUCCESS = 'FAVOURITE_SUCCESS'; export const FAVOURITE_FAIL = 'FAVOURITE_FAIL'; +export const UNREBLOG_REQUEST = 'UNREBLOG_REQUEST'; +export const UNREBLOG_SUCCESS = 'UNREBLOG_SUCCESS'; +export const UNREBLOG_FAIL = 'UNREBLOG_FAIL'; + +export const UNFAVOURITE_REQUEST = 'UNFAVOURITE_REQUEST'; +export const UNFAVOURITE_SUCCESS = 'UNFAVOURITE_SUCCESS'; +export const UNFAVOURITE_FAIL = 'UNFAVOURITE_FAIL'; + export function reblog(status) { return function (dispatch, getState) { dispatch(reblogRequest(status)); @@ -24,10 +32,12 @@ export function reblog(status) { export function unreblog(status) { return (dispatch, getState) => { + dispatch(unreblogRequest(status)); + api(getState).post(`/api/v1/statuses/${status.get('id')}/unreblog`).then(response => { - // + dispatch(unreblogSuccess(status, response.data)); }).catch(error => { - // + dispatch(unreblogFail(status, error)); }); }; }; @@ -55,6 +65,29 @@ export function reblogFail(status, error) { }; }; +export function unreblogRequest(status) { + return { + type: UNREBLOG_REQUEST, + status: status + }; +}; + +export function unreblogSuccess(status, response) { + return { + type: UNREBLOG_SUCCESS, + status: status, + response: response + }; +}; + +export function unreblogFail(status, error) { + return { + type: UNREBLOG_FAIL, + status: status, + error: error + }; +}; + export function favourite(status) { return function (dispatch, getState) { dispatch(favouriteRequest(status)); @@ -69,10 +102,12 @@ export function favourite(status) { export function unfavourite(status) { return (dispatch, getState) => { + dispatch(unfavouriteRequest(status)); + api(getState).post(`/api/v1/statuses/${status.get('id')}/unfavourite`).then(response => { - // + dispatch(unfavouriteSuccess(status, response.data)); }).catch(error => { - // + dispatch(unfavouriteFail(status, error)); }); }; }; @@ -99,3 +134,26 @@ export function favouriteFail(status, error) { error: error }; }; + +export function unfavouriteRequest(status) { + return { + type: UNFAVOURITE_REQUEST, + status: status + }; +}; + +export function unfavouriteSuccess(status, response) { + return { + type: UNFAVOURITE_SUCCESS, + status: status, + response: response + }; +}; + +export function unfavouriteFail(status, error) { + return { + type: UNFAVOURITE_FAIL, + status: status, + error: error + }; +}; -- cgit