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