Skip to content

imOutboundListSummary

出站消息在列表摘要、Dexie 合并与 client_message_id 去重中的纯逻辑。

函数

typescript
function isDeliveredServerMessage(m: ImMessage): boolean
function shouldPreserveLocalOutboundDraftOnSync(m: ImMessage): boolean
function shouldPreserveLocalOutboundOnApiMerge(existing: ImMessage, incoming: ImMessage): boolean
function shouldPreserveLocalConversationLastMessage(lm: ImMessage): boolean
function isFailedOutboundSupersededForListAnchor(
  failed: ImMessage,
  messages: readonly ImMessage[],
  myUserId: string,
): boolean
function isSuccessfulSelfOutbound(m: ImMessage, myUserId: string): boolean
function preferImMessageForClientMessageIdDedupe(a: ImMessage, b: ImMessage): ImMessage
function pickPreferredImMessageRow(rows: ImMessage[]): ImMessage | undefined
function imMessagesSameForListSummary(a: ImMessage, b: ImMessage): boolean
function shouldUseFailedMessageAsListTail(
  failed: ImMessage,
  tail?: ImMessage | null,
): boolean
function shouldAnchorFailedPrefixOnListTail(
  failed: ImMessage,
  tail?: ImMessage | null,
): boolean