// @ts-nocheck import { useSession } from 'next-auth/react' import { useEffect, useState } from 'react' import useSignOut from './useSignOut' import { DefaultUser, User } from '@models/User' export default function useGetCurrentUser() { const { data: session, status } = useSession() const { signOut } = useSignOut() const [loading, setLoading] = useState(status === 'loading') const [user, setUser] = useState() useEffect(() => { if ( status !== 'loading' && session && session?.error === 'RefreshAccessTokenError' ) { signOut() } }, [session, signOut, status]) useEffect(() => { if (status === 'loading') { setUser(undefined) setLoading(true) return } if (status === 'unauthenticated') { setUser(undefined) setLoading(false) return } const tmp = { id: session?.user?.user_id ?? DefaultUser.id, displayName: session?.user?.name ?? DefaultUser.displayName, avatarUrl: session?.user?.image ?? DefaultUser.avatarUrl, email: session?.user?.email ?? DefaultUser.email, } setUser(tmp) setLoading(false) }, [ session?.user?.email, session?.user?.image, session?.user?.name, session?.user?.user_id, status, ]) return { user, loading } }