48 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import api from '../api'
 | |
| 
 | |
| export const FOLLOW_CHANGE         = 'FOLLOW_CHANGE';
 | |
| 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 changeFollow(text) {
 | |
|   return {
 | |
|     type: FOLLOW_CHANGE,
 | |
|     text: text
 | |
|   };
 | |
| };
 | |
| 
 | |
| export function submitFollow(router) {
 | |
|   return function (dispatch, getState) {
 | |
|     dispatch(submitFollowRequest());
 | |
| 
 | |
|     api(getState).post('/api/v1/follows', {
 | |
|       uri: getState().getIn(['follow', 'text'])
 | |
|     }).then(function (response) {
 | |
|       dispatch(submitFollowSuccess(response.data));
 | |
|       router.push(`/accounts/${response.data.id}`);
 | |
|     }).catch(function (error) {
 | |
|       dispatch(submitFollowFail(error));
 | |
|     });
 | |
|   };
 | |
| };
 | |
| 
 | |
| export function submitFollowRequest() {
 | |
|   return {
 | |
|     type: FOLLOW_SUBMIT_REQUEST
 | |
|   };
 | |
| };
 | |
| 
 | |
| export function submitFollowSuccess(account) {
 | |
|   return {
 | |
|     type: FOLLOW_SUBMIT_SUCCESS,
 | |
|     account: account
 | |
|   };
 | |
| };
 | |
| 
 | |
| export function submitFollowFail(error) {
 | |
|   return {
 | |
|     type: FOLLOW_SUBMIT_FAIL,
 | |
|     error: error
 | |
|   };
 | |
| };
 |