blob: f335c25d250cdeea202be38df7d8515b208fe480 [file] [log] [blame]
import { createSlice } from '@reduxjs/toolkit';
interface UserState {
userId: number;
userName: string;
role: string;
isLogin: boolean;
uploadTraffic: number;
downloadTraffic: number;
downloadPoints: number;
avatar: string;
}
const initialState: UserState = {
userId: 0,
userName: '',
role: '',
isLogin: false,
uploadTraffic: 0,
downloadTraffic: 0,
downloadPoints: 0,
avatar: '',
};
export const userSlice = createSlice({
name: 'user',
initialState,
reducers: {
login: (state, action) => {
state.userId = action.payload.userId;
state.userName = action.payload.userName;
state.role = action.payload.role;
state.isLogin = true;
state.uploadTraffic = action.payload.uploadTraffic;
state.downloadTraffic = action.payload.downloadTraffic;
state.downloadPoints = action.payload.downloadPoints;
state.avatar = action.payload.avatar;
console.log('userId', state.userId);
},
logout: (state) => {
state.userId = 0;
state.userName = '';
state.role = '';
state.isLogin = false;
state.uploadTraffic = 0;
state.downloadTraffic = 0;
state.downloadPoints = 0;
state.avatar = '';
},
updateTraffic: (state, action) => {
state.uploadTraffic = action.payload.uploadTraffic;
state.downloadTraffic = action.payload.downloadTraffic;
state.downloadPoints = action.payload.downloadPoints;
},
updateAvatar: (state, action) => {
state.avatar = action.payload.avatar;
}
},
});
export const { login, logout, updateTraffic } = userSlice.actions;
export default userSlice.reducer;