Skip to content

useGetUserEmail

Hook for getting the authenticated user's email

Import

import { useGetUserEmail } from '@zerodev/wallet-react'

Usage

import { useGetUserEmail } from '@zerodev/wallet-react'
import { useAccount } from 'wagmi'
 
function UserProfile() {
  const { isConnected } = useAccount()
  const { data: userEmail, isLoading } = useGetUserEmail({})
 
  if (!isConnected) return null
 
  if (isLoading) return <p>Loading email...</p>
 
  return <p>Email: {userEmail?.email ?? 'Not available'}</p>
}

Parameters

import { type UseGetUserEmailParameters } from '@zerodev/wallet-react'

This hook takes an empty object {} as its argument. No additional parameters are required.

Return Types

data

{ email: string } | undefined

  • Defaults to undefined
  • The authenticated user's email address, if available.

email

string

The user's email address. This is available when the user authenticated with Email OTP, Magic Link, or Google OAuth. It may not be available for passkey-only authentication.

error

Error | null

  • The error object for the query, if an error was thrown.
  • Defaults to null

isError / isPending / isSuccess

boolean

Boolean variables derived from status.

isFetched

boolean

Will be true if the query has been fetched.

isLoading

boolean

  • Is true whenever the first fetch for a query is in-flight
  • Is the same as isFetching && isPending

status

'error' | 'pending' | 'success'

  • pending if there's no cached data and no query attempt was finished yet.
  • error if the query attempt resulted in an error. The corresponding error property has the error received from the attempted fetch
  • success if the query has received a response with no errors and is ready to display its data. The corresponding data property on the query is the data received from the successful fetch or if the query's enabled property is set to false and has not been fetched yet data is the first initialData supplied to the query on initialization.

refetch

(options: { cancelRefetch?: boolean | undefined; throwOnError?: boolean | undefined }) => Promise<UseQueryResult>

  • A function to manually refetch the query.
  • throwOnError
    • When set to true, an error will be thrown if the query fails.
    • When set to false, an error will be logged if the query fails.
  • cancelRefetch
    • When set to true, a currently running request will be cancelled before a new request is made.
    • When set to false, no refetch will be made if there is already a request running.
    • Defaults to true