diff --git a/src/state/messages/convo.ts b/src/state/messages/convo.ts index 18bb526eea..c3d5ffc28d 100644 --- a/src/state/messages/convo.ts +++ b/src/state/messages/convo.ts @@ -279,6 +279,8 @@ export class Convo { * this.pastMessages.set(log.message.id, log.message) */ this.pastMessages.delete(log.message.id) + this.newMessages.delete(log.message.id) + this.deletedMessages.delete(log.message.id) } } } @@ -412,6 +414,30 @@ export class Convo { } } + async deleteMessage(messageId: string) { + this.deletedMessages.add(messageId) + this.commit() + + try { + await this.agent.api.chat.bsky.convo.deleteMessageForSelf( + { + convoId: this.convoId, + messageId, + }, + { + encoding: 'application/json', + headers: { + Authorization: this.__tempFromUserDid, + }, + }, + ) + } catch (e) { + this.deletedMessages.delete(messageId) + this.commit() + throw e + } + } + /* * Items in reverse order, since FlatList inverts */ @@ -514,32 +540,6 @@ export class Convo { }) } - async deleteMessage(messageId: string) { - this.deletedMessages.add(messageId) - this.commit() - - await this.agent.api.chat.bsky.convo.deleteMessageForSelf( - { - convoId: this.convoId, - messageId, - }, - { - encoding: 'application/json', - headers: { - Authorization: this.__tempFromUserDid, - }, - }, - ) - - // remove from optimistic - this.deletedMessages.delete(messageId) - // remove from either new or past messages - this.pastMessages.delete(messageId) - this.newMessages.delete(messageId) - // commit - this.commit() - } - destroy() { this.status = ConvoStatus.Destroyed this.commit()