2024-10-23 00:29:37 +09:00

44 lines
1.0 KiB
TypeScript

import { useQuery, useQueryClient } from '@tanstack/react-query'
import { api } from '../../common/api'
const useQueryOptions = {
refetchOnWindowFocus: false,
staleTime: 60 * 1000,
retry: 1,
}
interface Props {
walletAddress: string | null
setUserInfo?: (userInfo: any) => void
}
const useGetUserInfo = ({ walletAddress, setUserInfo }: Props) => {
const queryKey = ['getUserInfo']
const queryClient = useQueryClient()
const fetchData = async () => {
const token = sessionStorage.getItem('accessToken')
api.defaults.headers.common['Authorization'] = `Bearer ${token}`
return await api.get('/user').then((res) => {
setUserInfo && setUserInfo(res.data)
return res.data
})
}
const updateCache = (newData: any) => {
queryClient.setQueryData(queryKey, newData)
}
const response = useQuery({
queryKey: queryKey,
queryFn: fetchData,
enabled: !!walletAddress,
...useQueryOptions,
})
return { ...response, updateCache }
}
export default useGetUserInfo