import * as usersService from './service'; export default { namespace: 'BLOCK_NAME', state: { list: [], total: null, page: null, }, reducers: { save(state, { payload: { data: list, total, page } }) { return { ...state, list, total, page }; }, }, effects: { *fetch({ payload: { page = 1 } }, { call, put }) { const { data, total, page: currentPage } = yield call(usersService.fetch, { page }); yield put({ type: 'save', payload: { data, total, page: currentPage, }, }); }, *remove({ payload: id }, { call, put, select }) { yield call(usersService.remove, id); const page = yield select(state => state['BLOCK_NAME'].page); yield put({ type: 'fetch', payload: { page } }); }, *patch({ payload: { id, values } }, { call, put, select }) { yield call(usersService.patch, id, values); const page = yield select(state => state['BLOCK_NAME'].page); yield put({ type: 'fetch', payload: { page } }); }, *create({ payload: values }, { call, put, select }) { yield call(usersService.create, values); const page = yield select(state => state['BLOCK_NAME'].page); yield put({ type: 'fetch', payload: { page } }); }, }, };