diff options
author | Paul Frazee <pfrazee@gmail.com> | 2023-11-09 15:35:25 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-09 15:35:25 -0800 |
commit | fb4f5709c43c070653c917e3196b9b1c120418a6 (patch) | |
tree | 74e6ff954441b6da3044853e16ebf5dd12213c87 /src/state/queries/resolve-uri.ts | |
parent | 625cbc435f15bc0d611661b44dbf8add990dff7d (diff) | |
download | voidsky-fb4f5709c43c070653c917e3196b9b1c120418a6.tar.zst |
Refactor post threads to use react query (#1851)
* Add post and post-thread queries * Update PostThread components to use new queries * Move from normalized cache to shadow cache model * Merge post shadow into the post automatically * Remove dead code * Remove old temporary session * Fix: set agent on session creation * Temporarily double-login * Handle post-thread uri resolution errors
Diffstat (limited to 'src/state/queries/resolve-uri.ts')
-rw-r--r-- | src/state/queries/resolve-uri.ts | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/state/queries/resolve-uri.ts b/src/state/queries/resolve-uri.ts new file mode 100644 index 000000000..770be5cf8 --- /dev/null +++ b/src/state/queries/resolve-uri.ts @@ -0,0 +1,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() + }) +} |