Make pending message like normal message
This commit is contained in:
@@ -26,12 +26,10 @@ function MaybeLoader({isLoading}: {isLoading: boolean}) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function renderItem({item}: {item: ConvoItem}) {
|
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} />
|
return <MessageItem item={item.message} next={item.nextMessage} />
|
||||||
} else if (item.type === 'deleted-message') {
|
} else if (item.type === 'deleted-message') {
|
||||||
return <Text>Deleted message</Text>
|
return <Text>Deleted message</Text>
|
||||||
} else if (item.type === 'pending-message') {
|
|
||||||
return <Text>{item.message.text}</Text>
|
|
||||||
} else if (item.type === 'pending-retry') {
|
} else if (item.type === 'pending-retry') {
|
||||||
return (
|
return (
|
||||||
<View>
|
<View>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ export enum ConvoStatus {
|
|||||||
|
|
||||||
export type ConvoItem =
|
export type ConvoItem =
|
||||||
| {
|
| {
|
||||||
type: 'message'
|
type: 'message' | 'pending-message'
|
||||||
key: string
|
key: string
|
||||||
message: ChatBskyConvoDefs.MessageView
|
message: ChatBskyConvoDefs.MessageView
|
||||||
nextMessage:
|
nextMessage:
|
||||||
@@ -41,11 +41,6 @@ export type ConvoItem =
|
|||||||
| ChatBskyConvoDefs.DeletedMessageView
|
| ChatBskyConvoDefs.DeletedMessageView
|
||||||
| null
|
| null
|
||||||
}
|
}
|
||||||
| {
|
|
||||||
type: 'pending-message'
|
|
||||||
key: string
|
|
||||||
message: ChatBskyConvoSendMessage.InputSchema['message']
|
|
||||||
}
|
|
||||||
| {
|
| {
|
||||||
type: 'pending-retry'
|
type: 'pending-retry'
|
||||||
key: string
|
key: string
|
||||||
@@ -113,6 +108,10 @@ export class Convo {
|
|||||||
private pendingEventIngestion: Promise<void> | undefined
|
private pendingEventIngestion: Promise<void> | undefined
|
||||||
private isProcessingPendingMessages = false
|
private isProcessingPendingMessages = false
|
||||||
|
|
||||||
|
get sender() {
|
||||||
|
return this.convo?.members.find(m => m.did === this.__tempFromUserDid)
|
||||||
|
}
|
||||||
|
|
||||||
constructor(params: ConvoParams) {
|
constructor(params: ConvoParams) {
|
||||||
this.convoId = params.convoId
|
this.convoId = params.convoId
|
||||||
this.agent = params.agent
|
this.agent = params.agent
|
||||||
@@ -324,7 +323,7 @@ export class Convo {
|
|||||||
this.newMessages.set(res.id, {
|
this.newMessages.set(res.id, {
|
||||||
...res,
|
...res,
|
||||||
$type: 'chat.bsky.convo.defs#messageView',
|
$type: 'chat.bsky.convo.defs#messageView',
|
||||||
sender: this.convo?.members.find(m => m.did === this.__tempFromUserDid),
|
sender: this.sender,
|
||||||
})
|
})
|
||||||
this.pendingMessages.delete(id)
|
this.pendingMessages.delete(id)
|
||||||
|
|
||||||
@@ -440,7 +439,14 @@ export class Convo {
|
|||||||
items.unshift({
|
items.unshift({
|
||||||
type: 'pending-message',
|
type: 'pending-message',
|
||||||
key: m.id,
|
key: m.id,
|
||||||
message: m.message,
|
message: {
|
||||||
|
...m.message,
|
||||||
|
id: nanoid(),
|
||||||
|
rev: '__fake__',
|
||||||
|
sentAt: new Date().toISOString(),
|
||||||
|
sender: this.sender,
|
||||||
|
},
|
||||||
|
nextMessage: null,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user