Make pending message like normal message

This commit is contained in:
Eric Bailey
2024-05-01 15:59:38 -05:00
parent e2556d9f40
commit d08228669a
2 changed files with 15 additions and 11 deletions
@@ -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 <MessageItem item={item.message} next={item.nextMessage} />
} else if (item.type === 'deleted-message') {
return <Text>Deleted message</Text>
} else if (item.type === 'pending-message') {
return <Text>{item.message.text}</Text>
} else if (item.type === 'pending-retry') {
return (
<View>
+14 -8
View File
@@ -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<void> | 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,
})
})