[Session] Drill `getAgent` into `Onboarding/util` (#3704)

* Drill agent into Onboarding/util

(cherry picked from commit 2ba68eb5e446a694730b720f2a5b3307eb0914ef)

* Thread getAgent instead

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
zio/stable
Eric Bailey 2024-04-25 15:53:27 -05:00 committed by GitHub
parent 35005da59e
commit e5fdbfe294
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 16 additions and 4 deletions

View File

@ -57,6 +57,7 @@ export function StepFinished() {
try {
await Promise.all([
bulkWriteFollows(
getAgent,
suggestedAccountsStepResults.accountDids.concat(BSKY_APP_ACCOUNT_DID),
),
// these must be serial

View File

@ -1,7 +1,10 @@
import {AppBskyGraphFollow, AppBskyGraphGetFollows} from '@atproto/api'
import {
AppBskyGraphFollow,
AppBskyGraphGetFollows,
BskyAgent,
} from '@atproto/api'
import {until} from '#/lib/async/until'
import {getAgent} from '#/state/session'
import {PRIMARY_FEEDS} from './StepAlgoFeeds'
function shuffle(array: any) {
@ -63,7 +66,10 @@ export function aggregateInterestItems(
return Array.from(new Set(results)).slice(0, 20)
}
export async function bulkWriteFollows(dids: string[]) {
export async function bulkWriteFollows(
getAgent: () => BskyAgent,
dids: string[],
) {
const session = getAgent().session
if (!session) {
@ -87,10 +93,15 @@ export async function bulkWriteFollows(dids: string[]) {
repo: session.did,
writes: followWrites,
})
await whenFollowsIndexed(session.did, res => !!res.data.follows.length)
await whenFollowsIndexed(
getAgent,
session.did,
res => !!res.data.follows.length,
)
}
async function whenFollowsIndexed(
getAgent: () => BskyAgent,
actor: string,
fn: (res: AppBskyGraphGetFollows.Response) => boolean,
) {