import { query as queryUsers, queryCurrent, queryProvince, queryCity } from './service'; export default { namespace: 'BLOCK_NAME_CAMEL_CASE', state: { list: [], currentUser: {}, province: [], city: [], }, effects: { *fetch(_, { call, put }) { const response = yield call(queryUsers); yield put({ type: 'save', payload: response, }); }, *fetchCurrent(_, { call, put }) { const response = yield call(queryCurrent); yield put({ type: 'saveCurrentUser', payload: response, }); }, *fetchProvince(_, { call, put }) { yield put({ type: 'changeLoading', payload: true, }); const response = yield call(queryProvince); yield put({ type: 'setProvince', payload: response, }); }, *fetchCity({ payload }, { call, put }) { const response = yield call(queryCity, payload); yield put({ type: 'setCity', payload: response, }); }, }, reducers: { save(state, action) { return { ...state, list: action.payload, }; }, saveCurrentUser(state, action) { return { ...state, currentUser: action.payload || {}, }; }, changeNotifyCount(state, action) { return { ...state, currentUser: { ...state.currentUser, notifyCount: action.payload.totalCount, unreadCount: action.payload.unreadCount, }, }; }, setProvince(state, action) { return { ...state, province: action.payload, }; }, setCity(state, action) { return { ...state, city: action.payload, }; }, changeLoading(state, action) { return { ...state, isLoading: action.payload, }; }, }, };