mirror of
https://github.com/acid-info/logos-ordinals-dashboard.git
synced 2025-02-05 01:53:49 +00:00
44 lines
1.0 KiB
TypeScript
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
|