diff --git a/app/assets/javascripts/components/actions/follow.jsx b/app/assets/javascripts/components/actions/follow.jsx new file mode 100644 index 000000000..1c4e2c66a --- /dev/null +++ b/app/assets/javascripts/components/actions/follow.jsx @@ -0,0 +1,48 @@ +import api from '../api' + +export const FOLLOW_CHANGE = 'FOLLOW_CHANGE'; +export const FOLLOW_SUBMIT = 'FOLLOW_SUBMIT'; +export const FOLLOW_SUBMIT_REQUEST = 'FOLLOW_SUBMIT_REQUEST'; +export const FOLLOW_SUBMIT_SUCCESS = 'FOLLOW_SUBMIT_SUCCESS'; +export const FOLLOW_SUBMIT_FAIL = 'FOLLOW_SUBMIT_FAIL'; + +export function followChange(text) { + return { + type: FOLLOW_CHANGE, + text: text + }; +} + +export function followSubmit() { + return function (dispatch, getState) { + dispatch(followSubmitRequest()); + + api(getState).post('/api/follows', { + uri: getState().getIn(['follow', 'text']) + }).then(function (response) { + dispatch(followSubmitSuccess(response.data)); + }).catch(function (error) { + dispatch(followSubmitFail(error)); + }); + }; +} + +export function followSubmitRequest() { + return { + type: FOLLOW_SUBMIT_REQUEST + }; +} + +export function followSubmitSuccess(account) { + return { + type: FOLLOW_SUBMIT_SUCCESS, + account: account + }; +} + +export function followSubmitFail(error) { + return { + type: FOLLOW_SUBMIT_FAIL, + error: error + }; +} diff --git a/app/assets/javascripts/components/components/status.jsx b/app/assets/javascripts/components/components/status.jsx index fabe85bab..9f46e0e76 100644 --- a/app/assets/javascripts/components/components/status.jsx +++ b/app/assets/javascripts/components/components/status.jsx @@ -34,10 +34,10 @@ const Status = React.createClass({ if (status.get('reblog') !== null) { return ( -