import { useCallback, useEffect, useRef, useState } from 'react' import reactLogo from '../assets/react.svg' import viteLogo from '/vite.svg' import './App.css' import { useUserAPI } from '../providers/pond/userAPI' import { useAuth0 } from '@auth0/auth0-react' import { or } from '../utils/types' import LoadingScreen from './LoadingScreen' import { pond } from "protobuf-ts/pond"; export default function UserWrapper() { const [count, setCount] = useState(0) const [loading, setLoading] = useState(false) const userAPI = useUserAPI(); const useAuth = useAuth0(); const hasFetched = useRef(false); const [user, setUser] = useState(undefined) let user_id = or(useAuth.user?.sub, "") const loadUser = useCallback(() => { if (hasFetched.current) return; setLoading(true) userAPI.getUser(user_id).then(resp => { setUser(resp) }).finally(() => { setLoading(false) hasFetched.current = true; }) }, []) useEffect(() => { if (loading) return; loadUser() }, [loading]) if (!user || loading) return ( ) return ( <>
Vite logo React logo

Vite + React

Hello, {user.settings?.name}!

Coming soon

) }