41 lines
1.2 KiB
TypeScript
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, //响应式数据返回
|
|
}
|
|
} |