Add attribution for starter pack follows (#9834)

This commit is contained in:
Samuel Newman
2026-02-09 18:01:55 +02:00
committed by GitHub
parent 18eea81e76
commit 3be1f5caa9
4 changed files with 22 additions and 7 deletions
@@ -96,10 +96,13 @@ export function StepFinished() {
const {selectedInterests} = interestsStepResults
await Promise.all([
bulkWriteFollows(agent, [
BSKY_APP_ACCOUNT_DID,
...(listItems?.map(i => i.subject.did) ?? []),
]),
bulkWriteFollows(
agent,
[BSKY_APP_ACCOUNT_DID, ...(listItems?.map(i => i.subject.did) ?? [])],
starterPack
? {uri: starterPack.uri, cid: starterPack.cid}
: undefined,
),
(async () => {
// Interests need to get saved first, then we can write the feeds to prefs
await agent.setInterestsPref({tags: selectedInterests})
@@ -72,7 +72,10 @@ export function StarterPackCard({
let followUris: Map<string, string>
try {
followUris = await bulkWriteFollows(agent, dids)
followUris = await bulkWriteFollows(agent, dids, {
uri: view.uri,
cid: view.cid,
})
} catch (e) {
setIsProcessing(false)
Toast.show(_(msg`An error occurred while trying to follow all`), {
+7 -1
View File
@@ -4,13 +4,18 @@ import {
type AppBskyGraphGetFollows,
type BskyAgent,
type ComAtprotoRepoApplyWrites,
type ComAtprotoRepoStrongRef,
} from '@atproto/api'
import {TID} from '@atproto/common-web'
import chunk from 'lodash.chunk'
import {until} from '#/lib/async/until'
export async function bulkWriteFollows(agent: BskyAgent, dids: string[]) {
export async function bulkWriteFollows(
agent: BskyAgent,
dids: string[],
via?: ComAtprotoRepoStrongRef.Main,
) {
const session = agent.session
if (!session) {
@@ -22,6 +27,7 @@ export async function bulkWriteFollows(agent: BskyAgent, dids: string[]) {
$type: 'app.bsky.graph.follow',
subject: did,
createdAt: new Date().toISOString(),
via,
}
})
@@ -372,7 +372,10 @@ function Header({
let followUris: Map<string, string>
try {
followUris = await bulkWriteFollows(agent, dids)
followUris = await bulkWriteFollows(agent, dids, {
uri: starterPack.uri,
cid: starterPack.cid,
})
} catch (e) {
setIsProcessing(false)
Toast.show(_(msg`An error occurred while trying to follow all`), 'xmark')