Commit f50867b0 authored by afc163's avatar afc163

Better dispatch and saga for login logic

parent 41fffed2
...@@ -3,7 +3,7 @@ import PropTypes from 'prop-types'; ...@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
import { Layout, Menu, Icon, Avatar, Dropdown, Tag, message, Spin } from 'antd'; import { Layout, Menu, Icon, Avatar, Dropdown, Tag, message, Spin } from 'antd';
import DocumentTitle from 'react-document-title'; import DocumentTitle from 'react-document-title';
import { connect } from 'dva'; import { connect } from 'dva';
import { Link, routerRedux, Route, Redirect, Switch } from 'dva/router'; import { Link, Route, Redirect, Switch } from 'dva/router';
import moment from 'moment'; import moment from 'moment';
import groupBy from 'lodash/groupBy'; import groupBy from 'lodash/groupBy';
import { ContainerQuery } from 'react-container-query'; import { ContainerQuery } from 'react-container-query';
...@@ -80,12 +80,6 @@ class BasicLayout extends React.PureComponent { ...@@ -80,12 +80,6 @@ class BasicLayout extends React.PureComponent {
if (key === 'logout') { if (key === 'logout') {
this.props.dispatch({ this.props.dispatch({
type: 'login/logout', type: 'login/logout',
payload: {
status: false,
},
callback: () => {
this.props.dispatch(routerRedux.push('/user/login'));
},
}); });
} }
} }
......
import { routerRedux } from 'dva/router';
import { fakeAccountLogin, fakeMobileLogin } from '../services/api'; import { fakeAccountLogin, fakeMobileLogin } from '../services/api';
export default { export default {
...@@ -15,7 +16,7 @@ export default { ...@@ -15,7 +16,7 @@ export default {
}); });
const response = yield call(fakeAccountLogin, payload); const response = yield call(fakeAccountLogin, payload);
yield put({ yield put({
type: 'loginHandle', type: 'changeLoginStatus',
payload: response, payload: response,
}); });
yield put({ yield put({
...@@ -30,7 +31,7 @@ export default { ...@@ -30,7 +31,7 @@ export default {
}); });
const response = yield call(fakeMobileLogin); const response = yield call(fakeMobileLogin);
yield put({ yield put({
type: 'loginHandle', type: 'changeLoginStatus',
payload: response, payload: response,
}); });
yield put({ yield put({
...@@ -38,19 +39,19 @@ export default { ...@@ -38,19 +39,19 @@ export default {
payload: false, payload: false,
}); });
}, },
*logout({ payload, callback }, { put }) { *logout(_, { put }) {
yield put({ yield put({
type: 'logoutHandle', type: 'changeLoginStatus',
payload, payload: {
status: false,
},
}); });
if (callback) { yield put(routerRedux.push('/user/login'));
callback();
}
}, },
}, },
reducers: { reducers: {
loginHandle(state, { payload }) { changeLoginStatus(state, { payload }) {
return { return {
...state, ...state,
status: payload.status, status: payload.status,
...@@ -63,11 +64,5 @@ export default { ...@@ -63,11 +64,5 @@ export default {
submitting: payload, submitting: payload,
}; };
}, },
logoutHandle(state, { payload }) {
return {
...state,
status: payload.status,
};
},
}, },
}; };
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment