about summary refs log tree commit diff
path: root/src/state/queries/resolve-uri.ts
blob: 770be5cf893d3fd08395deee2148f44cd78062d4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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>(RQKEY(uri), async () => {
    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()
  })
}