import type { ConversationData, ImMessage } from './types' export function buildDbName(appKey: string, userId: string): string { return `xuqm_im_${appKey}_${userId}` } export function sortMessages(messages: ImMessage[]): ImMessage[] { const deduped = new Map() messages.forEach((message) => { const existing = deduped.get(message.id) if (!existing || message.createdAt >= existing.createdAt) { deduped.set(message.id, message) } }) return [...deduped.values()] .sort((a, b) => { if (b.createdAt !== a.createdAt) return b.createdAt - a.createdAt return b.id.localeCompare(a.id) }) } export function sortConversations(conversations: ConversationData[]): ConversationData[] { return [...conversations].sort((a, b) => { if (a.isPinned !== b.isPinned) return Number(b.isPinned) - Number(a.isPinned) if (b.lastMsgTime !== a.lastMsgTime) return b.lastMsgTime - a.lastMsgTime return `${a.chatType}:${a.targetId}`.localeCompare(`${b.chatType}:${b.targetId}`) }) }