import { useAtomValue } from 'jotai' import { useCallback, useEffect, useState } from 'react' import { useAuthControllerMe } from '@/api/query/auth/auth' import { HelperRenderJson, HelperSection } from '@/components' import { Button, ScrollView, Text } from '@/design-system' import { Token, getToken } from '@/services' import { isRefreshingTokenAtom } from '@/store' import { wait } from '@/utils' export const UserSessionScreen = () => { const isRefreshing = useAtomValue(isRefreshingTokenAtom) const { data, refetch, isPending, isRefetching } = useAuthControllerMe({ query: { enabled: false, }, }) const [token, setToken] = useState(null) const fetchToken = useCallback(async () => { const token = await getToken() if (token) { setToken(token) } }, []) const fetchUser = useCallback(async () => { await refetch() // Refetch function could refresh token, so we are fetching it from store again await wait(100) await fetchToken() }, [fetchToken, refetch]) useEffect(() => { fetchToken() }, [fetchToken]) return ( Is fetching user data: {isPending || isRefetching} User data: {data}