parent
c249ceb10c
commit
2d57bcf1b7
@ -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 |
||||
}; |
||||
} |
@ -0,0 +1,24 @@ |
||||
import * as constants from '../actions/follow'; |
||||
import Immutable from 'immutable'; |
||||
|
||||
const initialState = Immutable.Map({ |
||||
text: '', |
||||
is_submitting: false |
||||
}); |
||||
|
||||
export default function compose(state = initialState, action) { |
||||
switch(action.type) { |
||||
case constants.FOLLOW_CHANGE: |
||||
return state.set('text', action.text); |
||||
case constants.FOLLOW_SUBMIT_REQUEST: |
||||
return state.set('is_submitting', true); |
||||
case constants.FOLLOW_SUBMIT_SUCCESS: |
||||
return state.withMutations(map => { |
||||
map.set('text', '').set('is_submitting', false); |
||||
}); |
||||
case constants.FOLLOW_SUBMIT_FAIL: |
||||
return state.set('is_submitting', false); |
||||
default: |
||||
return state; |
||||
} |
||||
} |
Loading…
Reference in new issue