diff --git a/src/screens/Messages/Conversation/MessagesList.tsx b/src/screens/Messages/Conversation/MessagesList.tsx index d3f9916ec4..381f5fe4eb 100644 --- a/src/screens/Messages/Conversation/MessagesList.tsx +++ b/src/screens/Messages/Conversation/MessagesList.tsx @@ -26,12 +26,10 @@ function MaybeLoader({isLoading}: {isLoading: boolean}) { } function renderItem({item}: {item: ConvoItem}) { - if (item.type === 'message') { + if (item.type === 'message' || item.type === 'pending-message') { return } else if (item.type === 'deleted-message') { return Deleted message - } else if (item.type === 'pending-message') { - return {item.message.text} } else if (item.type === 'pending-retry') { return ( diff --git a/src/state/messages/convo.ts b/src/state/messages/convo.ts index 73ef8d73e7..e60ba0ac30 100644 --- a/src/state/messages/convo.ts +++ b/src/state/messages/convo.ts @@ -24,7 +24,7 @@ export enum ConvoStatus { export type ConvoItem = | { - type: 'message' + type: 'message' | 'pending-message' key: string message: ChatBskyConvoDefs.MessageView nextMessage: @@ -41,11 +41,6 @@ export type ConvoItem = | ChatBskyConvoDefs.DeletedMessageView | null } - | { - type: 'pending-message' - key: string - message: ChatBskyConvoSendMessage.InputSchema['message'] - } | { type: 'pending-retry' key: string @@ -113,6 +108,10 @@ export class Convo { private pendingEventIngestion: Promise | undefined private isProcessingPendingMessages = false + get sender() { + return this.convo?.members.find(m => m.did === this.__tempFromUserDid) + } + constructor(params: ConvoParams) { this.convoId = params.convoId this.agent = params.agent @@ -324,7 +323,7 @@ export class Convo { this.newMessages.set(res.id, { ...res, $type: 'chat.bsky.convo.defs#messageView', - sender: this.convo?.members.find(m => m.did === this.__tempFromUserDid), + sender: this.sender, }) this.pendingMessages.delete(id) @@ -440,7 +439,14 @@ export class Convo { items.unshift({ type: 'pending-message', key: m.id, - message: m.message, + message: { + ...m.message, + id: nanoid(), + rev: '__fake__', + sentAt: new Date().toISOString(), + sender: this.sender, + }, + nextMessage: null, }) })