Separate list deletion into chunks (close #1430) (#1431)

This commit is contained in:
Paul Frazee 2023-09-11 14:28:30 -07:00 committed by GitHub
parent 977f9228f8
commit f8c611118e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -7,6 +7,7 @@ import {
AppBskyGraphListitem, AppBskyGraphListitem,
} from '@atproto/api' } from '@atproto/api'
import {Image as RNImage} from 'react-native-image-crop-picker' import {Image as RNImage} from 'react-native-image-crop-picker'
import chunk from 'lodash.chunk'
import {RootStoreModel} from '../root-store' import {RootStoreModel} from '../root-store'
import * as apilib from 'lib/api/index' import * as apilib from 'lib/api/index'
import {cleanError} from 'lib/strings/errors' import {cleanError} from 'lib/strings/errors'
@ -211,12 +212,17 @@ export class ListModel {
rkey: urip.rkey, rkey: urip.rkey,
} }
} }
const writes = records
.map(record => createDel(record.uri))
.concat([createDel(this.uri)])
// apply in chunks
for (const writesChunk of chunk(writes, 10)) {
await this.rootStore.agent.com.atproto.repo.applyWrites({ await this.rootStore.agent.com.atproto.repo.applyWrites({
repo: this.rootStore.me.did, repo: this.rootStore.me.did,
writes: [createDel(this.uri)].concat( writes: writesChunk,
records.map(record => createDel(record.uri)),
),
}) })
}
this.rootStore.emitListDeleted(this.uri) this.rootStore.emitListDeleted(this.uri)
} }