| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- import {createSlice, PayloadAction } from '@reduxjs/toolkit';
- import Taro from '@tarojs/taro';
- interface UserState {
- id:string|null;
- nickname: string | null;
- avatar: string | null;
- token: string | null;
- scenario_select_count: number | 0;
- isLogin: boolean;
- }
- // const initialState: UserState = await getUserDataFromLocalStorage();
- const initialState: UserState = {
- id:null,
- isLogin: false,
- nickname: null,
- avatar: null,
- scenario_select_count: 0,
- token: null,
- }
- const userSlice = createSlice({
- name: 'user',
- initialState,
- reducers: {
- loginSuccess(state, action: PayloadAction<any>) {
- const { id,nickname, avatar, token,scenario_select_count } = action.payload;
- state.id = id;
- state.nickname = nickname;
- state.avatar = avatar;
- state.token = token;
- state.scenario_select_count = scenario_select_count;
- state.isLogin = true;
- global.token = token;
- Taro.setStorage({ key: 'userData', data: JSON.stringify(action.payload) });
- },
- registerSuccess(state, action: PayloadAction<any>) {
- const { id,nickname, avatar, token,scenario_select_count } = action.payload;
- state.id = id;
- state.nickname = nickname;
- state.avatar = avatar;
- state.token = token;
- state.scenario_select_count = scenario_select_count;
- state.isLogin = true;
- global.token = token;
- Taro.setStorage({ key: 'userData', data: JSON.stringify(action.payload) });
- },
- logoutSuccess(state) {
- debugger
- state.id = null;
- state.nickname = null;
- state.avatar = null;
- state.token = null;
- state.isLogin = false;
- state.scenario_select_count = 0;
- global.token = '';
- Taro.clearStorage();
- },
- clearSuccess(state) {
- debugger
- state.id = null;
- state.nickname = null;
- state.avatar = null;
- state.token = null;
- state.isLogin = false;
- state.scenario_select_count = 0;
- global.token = '';
- Taro.clearStorage();
- },
- getInfoSuccess(state, action: PayloadAction<any>) {
- const {id, nickname, avatar, token,scenario_select_count } = action.payload;
- state.id = id;
- state.nickname = nickname;
- state.avatar = avatar;
- state.token = token;
- state.scenario_select_count = scenario_select_count;
- state.isLogin = true;
- global.token = token;
- Taro.setStorage({ key: 'userData', data: JSON.stringify(action.payload) });
- },
- updateSuccess(state, action: PayloadAction<any>) {
- const { nickname, avatar, token } = action.payload;
- state.nickname = nickname;
- state.avatar = avatar;
- state.token = token;
- state.isLogin = true;
- Taro.setStorage({ key: 'userData', data: JSON.stringify(action.payload) });
- }
- },
- });
- export const { loginSuccess, registerSuccess, logoutSuccess, getInfoSuccess, updateSuccess, clearSuccess } = userSlice.actions;
- export default userSlice.reducer;
- // export const login = (username: string, password: string) => (dispatch: any) => {
- // request({
- // url: API_LOGIN, method: 'POST', data: { username, password }
- // }).then(res => {
- // dispatch(loginSuccess(res));
- // })
- // }
- // export const wxLogin = createAsyncThunk('user/wxLogin', async (payload: { code: string, encryptedData: string,iv:string }, { dispatch }) => {
- // console.log(payload.code)
- // request({
- // url: API_LOGIN, method: 'POST',
- // data: {
- // code: payload.code,
- // type: 'WX_MP',
- // app_version: '1',
- // client_version: '1',
- // client_type: 'WX_MP',
- // extra: {
- // encryptedData: payload.encryptedData,
- // iv: payload.iv
- // }
- // }
- // }).then(res => {
- // dispatch(loginSuccess(res));
- // })
- // });
- // /*
- // export const wxLogin = (code: string) => (dispatch: any) => {
-
- // request({
- // url: API_LOGIN, method: 'POST', data: { code,type:'WX_MP',app_version:'1',client_version:'1',client_type:'WXP_MP' }
- // }).then(res => {
- // console.log(res);
- // dispatch(loginSuccess(res));
- // })
- // }*/
- // export const register = (name: string,email:string, password: string) => (dispatch: any) => {
- // request({
- // url: API_REGISTER, method: 'POST', data: { client_type:'IOS',username:name,email:email, password:password }
- // }).then(res => {
- // dispatch(registerSuccess(res));
- // })
- // }
- // export const logout = () => (dispatch: any) => {
- // request({
- // url: API_LOGOUT, method: 'GET', data: {}
- // }).then(res => {
- // dispatch(logoutSuccess());
- // })
- // }
- // export const clear = () => (dispatch: any) => {
- // request({
- // url: API_CLEAR_USER, method: 'POST', data: {}
- // }).then(res => {
- // dispatch(clearSuccess());
- // })
- // }
- // export const getInfo = () => (dispatch: any) => {
- // request({
- // url: API_USER_INFO, method: 'GET', data: {}
- // }).then(res => {
- // dispatch(getInfoSuccess(res));
- // })
- // }
- // export const update = () => (dispatch: any) => {
- // request({
- // url: API_USER_INFO, method: 'POST', data: {}
- // }).then(res => {
- // dispatch(updateSuccess(res));
- // })
- // }
|