2022-05-09 10:03:33 +08:00

41 lines
1.2 KiB
TypeScript

import { useDispatch, useSelector } from 'react-redux'
import { CLEAR_SESSIONKEY, SET_USERINFO, SET_TOKEN, SET_SESSIONKEY, CLEAR_USERINFO, CLEAR_TOKEN} from '@/constants/userInfo'
import {DataParam, UserParam} from '@/reducers/userInfo'
export default () => {
const userInfo = useSelector((state:DataParam) => state.userInfo) as DataParam
const dispatch = useDispatch()
const setToken = (token: string) => {
dispatch({type:SET_TOKEN, data:{token}})
}
const setSessionKey = (sessionkey: string) => {
dispatch({type:SET_SESSIONKEY, data:{sessionkey}})
}
const setUserInfo = (userInfo: UserParam) => {
dispatch({type:SET_USERINFO, data:{userInfo}})
}
const removeUserInfo = () => {
dispatch({type:CLEAR_USERINFO})
}
const removeToken = () => {
dispatch({type:CLEAR_TOKEN})
}
const removeSessionKey = () => {
dispatch({type:CLEAR_SESSIONKEY})
}
return {
setToken,
setUserInfo,
setSessionKey,
removeUserInfo,
removeToken,
removeSessionKey,
userInfo, //响应式数据返回
}
}