[Session] Drill into `getAgent` into `whenAppViewReady` (#3702)

* Drill into whenAppViewReady

(cherry picked from commit e290e5be3df509bdd9d0e626a164996c9dee3636)

* Drill getAgent instead

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
zio/stable
Eric Bailey 2024-04-25 15:39:28 -05:00 committed by GitHub
parent ec37696034
commit a69e567991
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 45 additions and 20 deletions

View File

@ -4,6 +4,7 @@ import {
AppBskyGraphGetList,
AppBskyGraphList,
AtUri,
BskyAgent,
Facet,
} from '@atproto/api'
import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query'
@ -85,9 +86,13 @@ export function useListCreateMutation() {
)
// wait for the appview to update
await whenAppViewReady(res.uri, (v: AppBskyGraphGetList.Response) => {
return typeof v?.data?.list.uri === 'string'
})
await whenAppViewReady(
getAgent,
res.uri,
(v: AppBskyGraphGetList.Response) => {
return typeof v?.data?.list.uri === 'string'
},
)
return res
},
onSuccess() {
@ -150,12 +155,16 @@ export function useListMetadataMutation() {
).data
// wait for the appview to update
await whenAppViewReady(res.uri, (v: AppBskyGraphGetList.Response) => {
const list = v.data.list
return (
list.name === record.name && list.description === record.description
)
})
await whenAppViewReady(
getAgent,
res.uri,
(v: AppBskyGraphGetList.Response) => {
const list = v.data.list
return (
list.name === record.name && list.description === record.description
)
},
)
return res
},
onSuccess(data, variables) {
@ -220,9 +229,13 @@ export function useListDeleteMutation() {
}
// wait for the appview to update
await whenAppViewReady(uri, (v: AppBskyGraphGetList.Response) => {
return !v?.success
})
await whenAppViewReady(
getAgent,
uri,
(v: AppBskyGraphGetList.Response) => {
return !v?.success
},
)
},
onSuccess() {
invalidateMyLists(queryClient)
@ -244,9 +257,13 @@ export function useListMuteMutation() {
await getAgent().unmuteModList(uri)
}
await whenAppViewReady(uri, (v: AppBskyGraphGetList.Response) => {
return Boolean(v?.data.list.viewer?.muted) === mute
})
await whenAppViewReady(
getAgent,
uri,
(v: AppBskyGraphGetList.Response) => {
return Boolean(v?.data.list.viewer?.muted) === mute
},
)
},
onSuccess(data, variables) {
queryClient.invalidateQueries({
@ -266,11 +283,15 @@ export function useListBlockMutation() {
await getAgent().unblockModList(uri)
}
await whenAppViewReady(uri, (v: AppBskyGraphGetList.Response) => {
return block
? typeof v?.data.list.viewer?.blocked === 'string'
: !v?.data.list.viewer?.blocked
})
await whenAppViewReady(
getAgent,
uri,
(v: AppBskyGraphGetList.Response) => {
return block
? typeof v?.data.list.viewer?.blocked === 'string'
: !v?.data.list.viewer?.blocked
},
)
},
onSuccess(data, variables) {
queryClient.invalidateQueries({
@ -281,6 +302,7 @@ export function useListBlockMutation() {
}
async function whenAppViewReady(
getAgent: () => BskyAgent,
uri: string,
fn: (res: AppBskyGraphGetList.Response) => boolean,
) {

View File

@ -8,6 +8,7 @@ import {
AppBskyEmbedRecordWithMedia,
AppBskyFeedDefs,
AtUri,
BskyAgent,
} from '@atproto/api'
import {
QueryClient,
@ -154,6 +155,7 @@ export function useProfileUpdateMutation() {
return existing
})
await whenAppViewReady(
getAgent,
profile.did,
checkCommitted ||
(res => {
@ -516,6 +518,7 @@ export function precacheThreadPostProfiles(
}
async function whenAppViewReady(
getAgent: () => BskyAgent,
actor: string,
fn: (res: AppBskyActorGetProfile.Response) => boolean,
) {