53 lines
1.5 KiB
TypeScript
53 lines
1.5 KiB
TypeScript
import { useDispatch, useSelector } from 'react-redux'
|
|
import { CLEAR_SESSIONKEY, CLEAR_TOKEN, CLEAR_USERINFO, SET_ADMINUSERINFO, SET_SESSIONKEY, SET_SORTCODE, SET_TOKEN, SET_USERINFO } from '@/constants/userInfo'
|
|
import type { DataParam, SortCodeParam, UserAdminParam, 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: { session_key: sessionkey } })
|
|
}
|
|
|
|
const setUserInfo = (userInfo: UserParam) => {
|
|
dispatch({ type: SET_USERINFO, data: { userInfo } })
|
|
}
|
|
|
|
const setAdminUserInfo = (adminUserInfo: UserAdminParam) => {
|
|
dispatch({ type: SET_ADMINUSERINFO, data: { adminUserInfo } })
|
|
}
|
|
|
|
const setSortCode = (sortCode: SortCodeParam) => {
|
|
dispatch({ type: SET_SORTCODE, data: { sort_code: sortCode } })
|
|
}
|
|
|
|
const removeUserInfo = () => {
|
|
dispatch({ type: CLEAR_USERINFO })
|
|
}
|
|
|
|
const removeToken = () => {
|
|
dispatch({ type: CLEAR_TOKEN })
|
|
}
|
|
|
|
const removeSessionKey = () => {
|
|
dispatch({ type: CLEAR_SESSIONKEY })
|
|
}
|
|
|
|
return {
|
|
setToken,
|
|
setUserInfo,
|
|
setAdminUserInfo,
|
|
setSessionKey,
|
|
removeUserInfo,
|
|
removeToken,
|
|
removeSessionKey,
|
|
setSortCode,
|
|
userInfo, // 响应式数据返回
|
|
}
|
|
}
|