[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 { try {
await Promise.all([ await Promise.all([
bulkWriteFollows( bulkWriteFollows(
getAgent,
suggestedAccountsStepResults.accountDids.concat(BSKY_APP_ACCOUNT_DID), suggestedAccountsStepResults.accountDids.concat(BSKY_APP_ACCOUNT_DID),
), ),
// these must be serial // 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 {until} from '#/lib/async/until'
import {getAgent} from '#/state/session'
import {PRIMARY_FEEDS} from './StepAlgoFeeds' import {PRIMARY_FEEDS} from './StepAlgoFeeds'
function shuffle(array: any) { function shuffle(array: any) {
@ -63,7 +66,10 @@ export function aggregateInterestItems(
return Array.from(new Set(results)).slice(0, 20) 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 const session = getAgent().session
if (!session) { if (!session) {
@ -87,10 +93,15 @@ export async function bulkWriteFollows(dids: string[]) {
repo: session.did, repo: session.did,
writes: followWrites, writes: followWrites,
}) })
await whenFollowsIndexed(session.did, res => !!res.data.follows.length) await whenFollowsIndexed(
getAgent,
session.did,
res => !!res.data.follows.length,
)
} }
async function whenFollowsIndexed( async function whenFollowsIndexed(
getAgent: () => BskyAgent,
actor: string, actor: string,
fn: (res: AppBskyGraphGetFollows.Response) => boolean, fn: (res: AppBskyGraphGetFollows.Response) => boolean,
) { ) {