| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- import { queryNotices } from '../services/api';
- export default {
- namespace: 'global',
- state: {
- collapsed: false,
- notices: [],
- fetchingNotices: false,
- },
- effects: {
- *fetchNotices(_, { call, put }) {
- yield put({
- type: 'changeNoticeLoading',
- payload: true,
- });
- const data = yield call(queryNotices);
- yield put({
- type: 'saveNotices',
- payload: data,
- });
- },
- *clearNotices(_, { put, select }) {
- const count = yield select(state => state.global.notices.length);
- yield put({
- type: 'user/changeNotifyCount',
- payload: count,
- });
- },
- },
- reducers: {
- changeLayoutCollapsed(state, { payload }) {
- return {
- ...state,
- collapsed: payload,
- };
- },
- saveNotices(state, { payload }) {
- return {
- ...state,
- notices: payload,
- fetchingNotices: false,
- };
- },
- clearNotices(state, { payload }) {
- return {
- ...state,
- notices: state.notices.filter(item => item.type !== payload),
- };
- },
- changeNoticeLoading(state, { payload }) {
- return {
- ...state,
- fetchingNotices: payload,
- };
- },
- },
- };
|