imMessageList
ChatMessage 气泡列表排序、历史窗口与去重辅助(UI 视图层,与 imMessageListOps 的 API 层不同)。
函数
typescript
function isLocalOutboundImMessageForList(m: ChatMessage): boolean
function compareImMessagesChronologicalAsc(a: ChatMessage, b: ChatMessage): number
function sortImViewMessagesChronological(msgs: ChatMessage[]): ChatMessage[]
function imMessageViewHistoryTimeBounds(messages: readonly ChatMessage[]): MessageHistoryWindowTimeBounds | null
function shouldIncludeLocalOutboundInViewHistory(m: ChatMessage, historyMessages: readonly ChatMessage[]): boolean
function preferImViewMessageForClientMessageIdDedupe(a: ChatMessage, b: ChatMessage): ChatMessage
function displayedServerMessageIdsFromView(messages: readonly ChatMessage[]): Set<string>
function resolveLoadOlderBeforeMessageId(messages: ChatMessage[]): string | null
function filterImMessagesPrependNotInDisplayed(prior: readonly ChatMessage[], older: readonly ChatMessage[]): ChatMessage[]
function mergeImMessagesAfterPrepend(existing: ChatMessage[], prepend: ChatMessage[]): ChatMessage[]
function mergeImMessagesPreservingLocalOutbound(priorDisplayed: ChatMessage[], hydrated: ChatMessage[]): ChatMessage[]
function upsertImMessageInList(list: ChatMessage[], mapped: ChatMessage): ChatMessage[]
function filterImMessagesExcludingId(messages: readonly ChatMessage[], messageId: ChatMessage['id']): ChatMessage[]
function filterImMessagesExcludingIds(messages: readonly ChatMessage[], messageIds: readonly ChatMessage['id'][]): ChatMessage[]