diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/state/messages/convo/agent.ts | 40 |
1 files changed, 17 insertions, 23 deletions
diff --git a/src/state/messages/convo/agent.ts b/src/state/messages/convo/agent.ts index 8f520bc9e..8673c70ad 100644 --- a/src/state/messages/convo/agent.ts +++ b/src/state/messages/convo/agent.ts @@ -766,12 +766,12 @@ export class Convo { logger.DebugContext.convo, ) - const pendingMessages = Array.from(this.pendingMessages.values()) + const pendingMessage = Array.from(this.pendingMessages.values()).shift() /* * If there are no pending messages, we're done. */ - if (pendingMessages.length === 0) { + if (!pendingMessage) { this.isProcessingPendingMessages = false return } @@ -779,34 +779,28 @@ export class Convo { try { this.isProcessingPendingMessages = true + const {id, message} = pendingMessage + const response = await networkRetry(2, () => { - return this.agent.api.chat.bsky.convo.sendMessageBatch( + return this.agent.api.chat.bsky.convo.sendMessage( { - items: pendingMessages.map(({message}) => ({ - convoId: this.convoId, - message, - })), + convoId: this.convoId, + message, }, {encoding: 'application/json', headers: DM_SERVICE_HEADERS}, ) }) + const res = response.data - const {items} = response.data - - for (let i = 0; i < items.length; i++) { - const msg = items[i] - const tempId = pendingMessages[i].id - - /* - * Insert into `newMessages` as soon as we have a real ID. That way, when - * we get an event log back, we can replace in situ. - */ - this.newMessages.set(msg.id, { - ...msg, - $type: 'chat.bsky.convo.defs#messageView', - }) - this.pendingMessages.delete(tempId) - } + /* + * Insert into `newMessages` as soon as we have a real ID. That way, when + * we get an event log back, we can replace in situ. + */ + this.newMessages.set(res.id, { + ...res, + $type: 'chat.bsky.convo.defs#messageView', + }) + this.pendingMessages.delete(id) await this.processPendingMessages() |