refactor: remove seqNo from message and conversation models, update related logic

This commit is contained in:
mlogclub
2026-06-24 23:02:52 +08:00
parent 85cfee1967
commit eb4064bfa9
8 changed files with 21 additions and 39 deletions
+8 -11
View File
@@ -29,7 +29,7 @@ import {
parseImMessageCursorId,
} from "@/lib/im-message-merge"
import {
markMessagesReadToSeqNo,
markMessagesReadToMessageId,
normalizeRealtimeMessage,
patchConversation,
patchConversationWithMessage,
@@ -88,18 +88,18 @@ function markConversationReadMessages(
payload: ImRealtimeEnvelope["data"] | ImRealtimeEnvelope["payload"]
) {
let next = messages
if ((payload?.agentLastReadSeqNo ?? 0) > 0) {
next = markMessagesReadToSeqNo(
if ((payload?.agentLastReadMessageId ?? 0) > 0) {
next = markMessagesReadToMessageId(
next,
payload?.agentLastReadSeqNo ?? 0,
payload?.agentLastReadMessageId ?? 0,
"agent",
payload?.agentLastReadAt
)
}
if ((payload?.customerLastReadSeqNo ?? 0) > 0) {
next = markMessagesReadToSeqNo(
if ((payload?.customerLastReadMessageId ?? 0) > 0) {
next = markMessagesReadToMessageId(
next,
payload?.customerLastReadSeqNo ?? 0,
payload?.customerLastReadMessageId ?? 0,
"customer",
payload?.customerLastReadAt
)
@@ -464,7 +464,7 @@ export const useSupportChatStore = create<SupportChatStore>((set, get) => {
set((current) => ({
readingMessageId: 0,
messages: current.messages.map((item) => {
if ((item.seqNo ?? 0) > (lastMessage.seqNo ?? 0)) {
if (item.id > lastMessage.id) {
return item
}
return item.customerRead ? item : { ...item, customerRead: true }
@@ -474,7 +474,6 @@ export const useSupportChatStore = create<SupportChatStore>((set, get) => {
...current.conversation,
customerUnreadCount: 0,
customerLastReadMessageId: lastMessage.id,
customerLastReadSeqNo: lastMessage.seqNo,
}
: null,
}))
@@ -509,7 +508,6 @@ export const useSupportChatStore = create<SupportChatStore>((set, get) => {
? {
...state.conversation,
customerLastReadMessageId: nextMessage.id,
customerLastReadSeqNo: nextMessage.seqNo,
customerUnreadCount: 0,
lastMessageAt: nextMessage.sentAt,
lastMessageSummary: summarizeIMMessage(nextMessage),
@@ -575,7 +573,6 @@ export const useSupportChatStore = create<SupportChatStore>((set, get) => {
? {
...state.conversation,
customerLastReadMessageId: nextMessage.id,
customerLastReadSeqNo: nextMessage.seqNo,
customerUnreadCount: 0,
lastMessageAt: nextMessage.sentAt,
lastMessageSummary: summarizeIMMessage(nextMessage),