Add some success action chaining
This commit is contained in:
parent
5407f6bfe5
commit
61f1cd1163
4 changed files with 14 additions and 3 deletions
|
@ -5,12 +5,12 @@ import endpoints from '../settings/endpoints';
|
||||||
|
|
||||||
|
|
||||||
export const LOGIN = makeAsyncActionSet('LOGIN');
|
export const LOGIN = makeAsyncActionSet('LOGIN');
|
||||||
export function login(token) {
|
export function login(token, callback) {
|
||||||
return buildAsyncAction(
|
return buildAsyncAction(
|
||||||
LOGIN,
|
LOGIN,
|
||||||
endpoints.get('USER_INFO').query({ 'circle-token': token }).toString(),
|
endpoints.get('USER_INFO').query({ 'circle-token': token }).toString(),
|
||||||
methods.GET,
|
methods.GET,
|
||||||
{},
|
{},
|
||||||
{ token }
|
{ token, callback }
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -121,7 +121,7 @@ export class Login extends React.Component {
|
||||||
loaderHandler.hideLoader();
|
loaderHandler.hideLoader();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.props.login(this.state.token);
|
this.props.login(this.state.token, this.props.nav.push.bind(this.props.nav, RouteMaster.get('HOME')));
|
||||||
}
|
}
|
||||||
|
|
||||||
showAbout() {
|
showAbout() {
|
||||||
|
|
9
app/middleware/actionChain.js
Normal file
9
app/middleware/actionChain.js
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
export default store => next => action => {
|
||||||
|
if (action.meta &&
|
||||||
|
action.meta.callback &&
|
||||||
|
action.type.endsWith('SUCCESS') &&
|
||||||
|
typeof action.meta.callback === 'function') {
|
||||||
|
action.meta.callback();
|
||||||
|
}
|
||||||
|
return next(action);
|
||||||
|
};
|
|
@ -7,6 +7,7 @@ import createEngine from 'redux-storage-engine-reactnativeasyncstorage';
|
||||||
import filter from 'redux-storage-decorator-filter';
|
import filter from 'redux-storage-decorator-filter';
|
||||||
|
|
||||||
import { apiMiddleware } from 'redux-api-middleware';
|
import { apiMiddleware } from 'redux-api-middleware';
|
||||||
|
import actionChain from './middleware/actionChain';
|
||||||
|
|
||||||
const engine = filter(createEngine(settings.get('STORAGE_KEY')));
|
const engine = filter(createEngine(settings.get('STORAGE_KEY')));
|
||||||
|
|
||||||
|
@ -18,6 +19,7 @@ export default function configureStore(initialState) {
|
||||||
|
|
||||||
const createStoreWithMiddleware = applyMiddleware(
|
const createStoreWithMiddleware = applyMiddleware(
|
||||||
apiMiddleware,
|
apiMiddleware,
|
||||||
|
actionChain,
|
||||||
storeMiddleware // Last in list
|
storeMiddleware // Last in list
|
||||||
)(createStore);
|
)(createStore);
|
||||||
|
|
||||||
|
|
Reference in a new issue