Drill into whenAppViewReady
(cherry picked from commit e290e5be3df509bdd9d0e626a164996c9dee3636)
This commit is contained in:
+43
-21
@@ -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(
|
||||
agent: BskyAgent,
|
||||
uri: string,
|
||||
fn: (res: AppBskyGraphGetList.Response) => boolean,
|
||||
) {
|
||||
@@ -289,7 +311,7 @@ async function whenAppViewReady(
|
||||
1e3, // 1s delay between tries
|
||||
fn,
|
||||
() =>
|
||||
getAgent().app.bsky.graph.getList({
|
||||
agent.app.bsky.graph.getList({
|
||||
list: uri,
|
||||
limit: 1,
|
||||
}),
|
||||
|
||||
@@ -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(
|
||||
agent: BskyAgent,
|
||||
actor: string,
|
||||
fn: (res: AppBskyActorGetProfile.Response) => boolean,
|
||||
) {
|
||||
@@ -523,7 +526,7 @@ async function whenAppViewReady(
|
||||
5, // 5 tries
|
||||
1e3, // 1s delay between tries
|
||||
fn,
|
||||
() => getAgent().app.bsky.actor.getProfile({actor}),
|
||||
() => agent.app.bsky.actor.getProfile({actor}),
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user