useFetchNip05.tsx raw

   1  import { verifyNip05 } from '@/lib/nip05'
   2  import { useEffect, useState } from 'react'
   3  
   4  export function useFetchNip05(nip05?: string, pubkey?: string) {
   5    const [nip05IsVerified, setNip05IsVerified] = useState(false)
   6    const [nip05Name, setNip05Name] = useState<string>('')
   7    const [nip05Domain, setNip05Domain] = useState<string>('')
   8    const [isFetching, setIsFetching] = useState(true)
   9  
  10    useEffect(() => {
  11      if (!nip05 || !pubkey) {
  12        setIsFetching(false)
  13        return
  14      }
  15      verifyNip05(nip05, pubkey).then(({ isVerified, nip05Name, nip05Domain }) => {
  16        setNip05IsVerified(isVerified)
  17        setNip05Name(nip05Name)
  18        setNip05Domain(nip05Domain)
  19        setIsFetching(false)
  20      })
  21    }, [nip05, pubkey])
  22  
  23    return { nip05IsVerified, nip05Name, nip05Domain, isFetching }
  24  }
  25