Clean up sending
This commit is contained in:
@@ -772,7 +772,7 @@ export class Convo {
|
|||||||
|
|
||||||
private pendingMessageFailure: 'recoverable' | 'unrecoverable' | null = null
|
private pendingMessageFailure: 'recoverable' | 'unrecoverable' | null = null
|
||||||
|
|
||||||
async sendMessage(message: ChatBskyConvoSendMessage.InputSchema['message']) {
|
sendMessage(message: ChatBskyConvoSendMessage.InputSchema['message']) {
|
||||||
// Ignore empty messages for now since they have no other purpose atm
|
// Ignore empty messages for now since they have no other purpose atm
|
||||||
if (!message.text.trim()) return
|
if (!message.text.trim()) return
|
||||||
|
|
||||||
@@ -825,6 +825,9 @@ export class Convo {
|
|||||||
})
|
})
|
||||||
const res = response.data
|
const res = response.data
|
||||||
|
|
||||||
|
// remove from queue
|
||||||
|
this.pendingMessages.delete(id)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Insert into `newMessages` as soon as we have a real ID. That way, when
|
* 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.
|
* we get an event log back, we can replace in situ.
|
||||||
@@ -833,15 +836,14 @@ export class Convo {
|
|||||||
...res,
|
...res,
|
||||||
$type: 'chat.bsky.convo.defs#messageView',
|
$type: 'chat.bsky.convo.defs#messageView',
|
||||||
})
|
})
|
||||||
this.pendingMessages.delete(id)
|
// render new message state, prior to firehose
|
||||||
|
|
||||||
await this.processPendingMessages()
|
|
||||||
|
|
||||||
this.commit()
|
this.commit()
|
||||||
|
|
||||||
|
// continue queue processing
|
||||||
|
await this.processPendingMessages()
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
logger.error(e, {context: `Convo: failed to send message`})
|
logger.error(e, {context: `Convo: failed to send message`})
|
||||||
this.handleSendMessageFailure(e)
|
this.handleSendMessageFailure(e)
|
||||||
} finally {
|
|
||||||
this.isProcessingPendingMessages = false
|
this.isProcessingPendingMessages = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ export type ConvoItem =
|
|||||||
type DeleteMessage = (messageId: string) => Promise<void>
|
type DeleteMessage = (messageId: string) => Promise<void>
|
||||||
type SendMessage = (
|
type SendMessage = (
|
||||||
message: ChatBskyConvoSendMessage.InputSchema['message'],
|
message: ChatBskyConvoSendMessage.InputSchema['message'],
|
||||||
) => Promise<void>
|
) => void
|
||||||
type FetchMessageHistory = () => Promise<void>
|
type FetchMessageHistory = () => Promise<void>
|
||||||
|
|
||||||
export type ConvoStateUninitialized = {
|
export type ConvoStateUninitialized = {
|
||||||
|
|||||||
Reference in New Issue
Block a user