import { createSlice, PayloadAction } from '@reduxjs/toolkit'; import type { GlobalConfig } from '../../model/config'; export const defaultGlobalConfig: GlobalConfig = { uploadFileLimit: 1 * 1024 * 1024, emailVerification: false, }; export interface GlobalState { /** * 网络状态 */ networkStatus: 'initial' | 'connected' | 'reconnecting' | 'disconnected'; reconnectNum: number; config: GlobalConfig; } const initialState: GlobalState = { networkStatus: 'initial', reconnectNum: 0, config: defaultGlobalConfig, }; const globalSlice = createSlice({ name: 'global', initialState, reducers: { setNetworkStatus( state, action: PayloadAction ) { state.networkStatus = action.payload; }, incReconnectNum(state) { state.reconnectNum += 1; }, setGlobalConfig(state, action: PayloadAction) { state.config = action.payload; }, }, }); export const globalActions = globalSlice.actions; export const globalReducer = globalSlice.reducer;