about summary refs log tree commit diff
path: root/src/state/queries/resolve-uri.ts
blob: 26e0a475b7c00dc8ee03c97fe4f7678c942d64a1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import {useQuery} from '@tanstack/react-query'
import {AtUri} from '@atproto/api'
import {useSession} from '../session'

export const RQKEY = (uri: string) => ['resolved-uri', uri]

export function useResolveUriQuery(uri: string) {
  const {agent} = useSession()
  return useQuery<string | undefined, Error>({
    queryKey: RQKEY(uri),
    async queryFn() {
      const urip = new AtUri(uri)
      if (!urip.host.startsWith('did:')) {
        const res = await agent.resolveHandle({handle: urip.host})
        urip.host = res.data.did
      }
      return urip.toString()
    },
  })
}