@onyx-p/imlib-web 2.4.6 → 2.4.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.esm.js +113 -96
- package/index.umd.js +113 -96
- package/package.json +1 -1
package/index.esm.js
CHANGED
@@ -20136,14 +20136,6 @@ class ConversationManager {
|
|
20136
20136
|
val: newLocalConversation.unreadMentionedCount
|
20137
20137
|
};
|
20138
20138
|
}
|
20139
|
-
if (isPersited) {
|
20140
|
-
updateConOptions.conversation.updateTime = parseInt(message.sentTime);
|
20141
|
-
updateConOptions.conversation.latestMessage = message;
|
20142
|
-
updateConOptions.updatedItems.latestMessage = {
|
20143
|
-
time: parseInt(message.sentTime),
|
20144
|
-
val: message
|
20145
|
-
};
|
20146
|
-
}
|
20147
20139
|
if (Object.keys(updateConOptions.updatedItems).length) {
|
20148
20140
|
this.setUpdatedConversation(updateConOptions);
|
20149
20141
|
}
|
@@ -21316,29 +21308,55 @@ class MessageCache {
|
|
21316
21308
|
if (!messageUIds || messageUIds.length === 0 || !this.db) {
|
21317
21309
|
return;
|
21318
21310
|
}
|
21319
|
-
|
21320
|
-
|
21321
|
-
|
21322
|
-
|
21323
|
-
|
21324
|
-
|
21325
|
-
const
|
21326
|
-
|
21327
|
-
const
|
21328
|
-
|
21329
|
-
|
21330
|
-
|
21331
|
-
|
21332
|
-
|
21333
|
-
|
21334
|
-
|
21335
|
-
|
21311
|
+
return new Promise(resolve => {
|
21312
|
+
const transaction = this.db.transaction(this.STORE_NAME, 'readwrite');
|
21313
|
+
const store = transaction.objectStore(this.STORE_NAME);
|
21314
|
+
const index = store.index('messageUId');
|
21315
|
+
let pendingRequests = messageUIds.length;
|
21316
|
+
for (const messageUId of messageUIds) {
|
21317
|
+
const request = index.get(messageUId);
|
21318
|
+
request.onsuccess = () => {
|
21319
|
+
const message = request.result;
|
21320
|
+
if (message) {
|
21321
|
+
const recallContent = {
|
21322
|
+
messageUId: messageUId
|
21323
|
+
};
|
21324
|
+
const updatedMessage = {
|
21325
|
+
...message,
|
21326
|
+
messageType: MessageTypes.RECALL,
|
21327
|
+
content: this.encryptContent(recallContent)
|
21328
|
+
};
|
21329
|
+
const putRequest = store.put(updatedMessage);
|
21330
|
+
putRequest.onerror = () => {
|
21331
|
+
checkComplete();
|
21332
|
+
};
|
21333
|
+
putRequest.onsuccess = () => {
|
21334
|
+
checkComplete();
|
21335
|
+
};
|
21336
|
+
} else {
|
21337
|
+
checkComplete();
|
21338
|
+
}
|
21339
|
+
};
|
21340
|
+
request.onerror = () => {
|
21341
|
+
checkComplete();
|
21342
|
+
};
|
21343
|
+
}
|
21344
|
+
function checkComplete() {
|
21345
|
+
pendingRequests--;
|
21346
|
+
if (pendingRequests === 0) {
|
21347
|
+
resolve();
|
21336
21348
|
}
|
21349
|
+
}
|
21350
|
+
transaction.oncomplete = () => {
|
21351
|
+
resolve();
|
21352
|
+
};
|
21353
|
+
transaction.onerror = () => {
|
21354
|
+
resolve();
|
21337
21355
|
};
|
21338
21356
|
});
|
21339
21357
|
}
|
21340
21358
|
}
|
21341
|
-
let cache;
|
21359
|
+
let cache = null;
|
21342
21360
|
var MessageCache$1 = {
|
21343
21361
|
create(appkey, currentUserId) {
|
21344
21362
|
cache = new MessageCache(appkey, currentUserId);
|
@@ -21442,9 +21460,14 @@ class MessageLoader {
|
|
21442
21460
|
};
|
21443
21461
|
});
|
21444
21462
|
await ConversationManager$1.get().loadConvsationsIfNotExist(cons);
|
21445
|
-
serverMessageParser.parse(msg, (done, outputMsgs) => {
|
21463
|
+
serverMessageParser.parse(msg, async (done, outputMsgs) => {
|
21446
21464
|
try {
|
21447
|
-
|
21465
|
+
for (const [dialogId, l] of outputMsgs.entries()) {
|
21466
|
+
if (l.length === 0) {
|
21467
|
+
return;
|
21468
|
+
}
|
21469
|
+
await this.processMessages(l, !this.pullOfflineFinished);
|
21470
|
+
}
|
21448
21471
|
} catch (error) {
|
21449
21472
|
logger.error('processMessages error', error);
|
21450
21473
|
}
|
@@ -21481,70 +21504,80 @@ class MessageLoader {
|
|
21481
21504
|
}
|
21482
21505
|
});
|
21483
21506
|
}
|
21484
|
-
processMessages(
|
21485
|
-
const
|
21507
|
+
async processMessages(l, isOffLineMessage) {
|
21508
|
+
const conversation = {
|
21509
|
+
conversationType: l[0].conversationType,
|
21510
|
+
targetId: l[0].targetId
|
21511
|
+
};
|
21512
|
+
let messageList = [];
|
21513
|
+
const recallMessageIndexes = [];
|
21486
21514
|
let recallMessageUIds = [];
|
21487
|
-
|
21488
|
-
|
21489
|
-
|
21490
|
-
|
21491
|
-
|
21492
|
-
if (m.content.messageUId) {
|
21493
|
-
RecallMessageStore.remove(m.content.messageUId);
|
21494
|
-
recallMessageUIds.push(m.content.messageUId);
|
21495
|
-
} else {
|
21496
|
-
logger.error('recallMessage’s messageUId is undefined', m);
|
21497
|
-
}
|
21498
|
-
} else if (m.messageUId) {
|
21499
|
-
m.isOffLineMessage = isOffLineMessage;
|
21500
|
-
if (!m.messageId || m.messageId > getCurrentMessageId()) {
|
21501
|
-
m.messageId = generateNewMessageId();
|
21502
|
-
}
|
21503
|
-
ConversationManager$1.get().setConversationCacheByMessage(m);
|
21504
|
-
messageList.push(m);
|
21505
|
-
if (m.messageType === MessageTypes.RECALL) {
|
21506
|
-
recallMessageIndexes.push(messageList.length - 1);
|
21507
|
-
}
|
21508
|
-
if ([NotiMessageTypes.PRIVATE_OPEN_BURNAFTERREADING, NotiMessageTypes.GROUP_OPEN_BURNAFTERREADING, NotiMessageTypes.PRIVATE_CLOSE_BURNAFTERREADING, NotiMessageTypes.GROUP_CLOSE_BURNAFTERREADING].includes(m.messageType)) {
|
21509
|
-
this.handleBurnAfterReadingMessage(m);
|
21510
|
-
}
|
21515
|
+
l.forEach(m => {
|
21516
|
+
if (m.messageType === MessageTypes.RECALL && RecallMessageStore.has(m.content.messageUId)) {
|
21517
|
+
if (m.content.messageUId) {
|
21518
|
+
RecallMessageStore.remove(m.content.messageUId);
|
21519
|
+
recallMessageUIds.push(m.content.messageUId);
|
21511
21520
|
} else {
|
21512
|
-
logger.error('
|
21521
|
+
logger.error('recallMessage’s messageUId is undefined', m);
|
21513
21522
|
}
|
21514
|
-
})
|
21515
|
-
|
21516
|
-
|
21517
|
-
|
21518
|
-
const recallMessage = messageList[index];
|
21519
|
-
const recallContent = recallMessage.content;
|
21520
|
-
const messageIndex = messageList.findIndex(m => m.messageUId === recallContent.messageUId);
|
21521
|
-
if (messageIndex !== -1) {
|
21522
|
-
deletedMessageIndexes.push(messageIndex);
|
21523
|
-
} else {
|
21524
|
-
recallMessageUIds.push(recallContent.messageUId);
|
21525
|
-
deletedMessageIndexes.push(index);
|
21523
|
+
} else if (m.messageUId) {
|
21524
|
+
m.isOffLineMessage = isOffLineMessage;
|
21525
|
+
if (!m.messageId || m.messageId > getCurrentMessageId()) {
|
21526
|
+
m.messageId = generateNewMessageId();
|
21526
21527
|
}
|
21528
|
+
ConversationManager$1.get().setConversationCacheByMessage(m);
|
21529
|
+
messageList.push(m);
|
21530
|
+
if (m.messageType === MessageTypes.RECALL) {
|
21531
|
+
recallMessageIndexes.push(messageList.length - 1);
|
21532
|
+
}
|
21533
|
+
if ([NotiMessageTypes.PRIVATE_OPEN_BURNAFTERREADING, NotiMessageTypes.GROUP_OPEN_BURNAFTERREADING, NotiMessageTypes.PRIVATE_CLOSE_BURNAFTERREADING, NotiMessageTypes.GROUP_CLOSE_BURNAFTERREADING].includes(m.messageType)) {
|
21534
|
+
this.handleBurnAfterReadingMessage(m);
|
21535
|
+
}
|
21536
|
+
} else {
|
21537
|
+
logger.error('message‘s messageUId is undefined', m);
|
21527
21538
|
}
|
21528
|
-
if (deletedMessageIndexes.length) {
|
21529
|
-
let messageList_tmp = [];
|
21530
|
-
messageList.forEach((m, index) => {
|
21531
|
-
if (!deletedMessageIndexes.includes(index)) {
|
21532
|
-
messageList_tmp.push(m);
|
21533
|
-
}
|
21534
|
-
});
|
21535
|
-
messageList = messageList_tmp;
|
21536
|
-
}
|
21537
|
-
messages.push(...messageList);
|
21538
21539
|
});
|
21539
|
-
let
|
21540
|
+
let deletedMessageIndexes = [];
|
21541
|
+
for (let i = recallMessageIndexes.length - 1; i >= 0; i--) {
|
21542
|
+
const index = recallMessageIndexes[i];
|
21543
|
+
const recallMessage = messageList[index];
|
21544
|
+
const recallContent = recallMessage.content;
|
21545
|
+
const messageIndex = messageList.findIndex(m => m.messageUId === recallContent.messageUId);
|
21546
|
+
if (messageIndex !== -1) {
|
21547
|
+
deletedMessageIndexes.push(index);
|
21548
|
+
const targetMessage = messageList[messageIndex];
|
21549
|
+
messageList[messageIndex] = recallMessage;
|
21550
|
+
messageList[index] = targetMessage;
|
21551
|
+
deletedMessageIndexes.push(index);
|
21552
|
+
} else {
|
21553
|
+
recallMessageUIds.push(recallContent.messageUId);
|
21554
|
+
deletedMessageIndexes.push(index);
|
21555
|
+
}
|
21556
|
+
}
|
21557
|
+
if (deletedMessageIndexes.length) {
|
21558
|
+
let messageList_tmp = [];
|
21559
|
+
messageList.forEach((m, index) => {
|
21560
|
+
if (!deletedMessageIndexes.includes(index)) {
|
21561
|
+
messageList_tmp.push(m);
|
21562
|
+
}
|
21563
|
+
});
|
21564
|
+
messageList = messageList_tmp;
|
21565
|
+
}
|
21566
|
+
let normalMessages = this.handleReceiptMessages(messageList);
|
21540
21567
|
if (normalMessages.length) {
|
21568
|
+
await MessageCache$1.get()?.addMessages(normalMessages, {
|
21569
|
+
conversationType: normalMessages[0].conversationType,
|
21570
|
+
targetId: normalMessages[0].targetId
|
21571
|
+
});
|
21541
21572
|
this.handleBatchMessages(normalMessages);
|
21542
21573
|
MessageReceiptManager$1.get()?.sendArrivalReceipts(normalMessages);
|
21543
21574
|
}
|
21544
21575
|
if (recallMessageUIds.length) {
|
21545
|
-
MessageCache$1.get()?.convertToRecallMessages(recallMessageUIds);
|
21576
|
+
await MessageCache$1.get()?.convertToRecallMessages(recallMessageUIds);
|
21546
21577
|
this.watcher.onRecall?.(recallMessageUIds);
|
21547
21578
|
}
|
21579
|
+
const latestMessage = await MessageCache$1.get()?.getLatestMessage(conversation);
|
21580
|
+
ConversationManager$1.get().updateLatestMessage(conversation, latestMessage);
|
21548
21581
|
}
|
21549
21582
|
handleBurnAfterReadingMessage(message) {
|
21550
21583
|
const content = message.content;
|
@@ -21600,23 +21633,7 @@ class MessageLoader {
|
|
21600
21633
|
return [];
|
21601
21634
|
}
|
21602
21635
|
}
|
21603
|
-
handleBatchMessages(messages) {
|
21604
|
-
if (messages.length) {
|
21605
|
-
const targetGroups = new Map();
|
21606
|
-
messages.forEach(message => {
|
21607
|
-
if (!targetGroups.has(message.targetId)) {
|
21608
|
-
targetGroups.set(message.targetId, []);
|
21609
|
-
}
|
21610
|
-
targetGroups.get(message.targetId).push(message);
|
21611
|
-
});
|
21612
|
-
targetGroups.forEach((targetMessages, targetId) => {
|
21613
|
-
const conversationType = targetMessages[0].conversationType;
|
21614
|
-
MessageCache$1.get()?.addMessages(targetMessages, {
|
21615
|
-
conversationType,
|
21616
|
-
targetId
|
21617
|
-
});
|
21618
|
-
});
|
21619
|
-
}
|
21636
|
+
async handleBatchMessages(messages) {
|
21620
21637
|
const filteredMessages = messages.filter(m => {
|
21621
21638
|
if (m.messageDirection === MessageDirection.SEND && m.messageId && SentMessageStore.has(m.messageId)) {
|
21622
21639
|
SentMessageStore.remove(m.messageId);
|
package/index.umd.js
CHANGED
@@ -20142,14 +20142,6 @@
|
|
20142
20142
|
val: newLocalConversation.unreadMentionedCount
|
20143
20143
|
};
|
20144
20144
|
}
|
20145
|
-
if (isPersited) {
|
20146
|
-
updateConOptions.conversation.updateTime = parseInt(message.sentTime);
|
20147
|
-
updateConOptions.conversation.latestMessage = message;
|
20148
|
-
updateConOptions.updatedItems.latestMessage = {
|
20149
|
-
time: parseInt(message.sentTime),
|
20150
|
-
val: message
|
20151
|
-
};
|
20152
|
-
}
|
20153
20145
|
if (Object.keys(updateConOptions.updatedItems).length) {
|
20154
20146
|
this.setUpdatedConversation(updateConOptions);
|
20155
20147
|
}
|
@@ -21322,29 +21314,55 @@
|
|
21322
21314
|
if (!messageUIds || messageUIds.length === 0 || !this.db) {
|
21323
21315
|
return;
|
21324
21316
|
}
|
21325
|
-
|
21326
|
-
|
21327
|
-
|
21328
|
-
|
21329
|
-
|
21330
|
-
|
21331
|
-
const
|
21332
|
-
|
21333
|
-
const
|
21334
|
-
|
21335
|
-
|
21336
|
-
|
21337
|
-
|
21338
|
-
|
21339
|
-
|
21340
|
-
|
21341
|
-
|
21317
|
+
return new Promise(resolve => {
|
21318
|
+
const transaction = this.db.transaction(this.STORE_NAME, 'readwrite');
|
21319
|
+
const store = transaction.objectStore(this.STORE_NAME);
|
21320
|
+
const index = store.index('messageUId');
|
21321
|
+
let pendingRequests = messageUIds.length;
|
21322
|
+
for (const messageUId of messageUIds) {
|
21323
|
+
const request = index.get(messageUId);
|
21324
|
+
request.onsuccess = () => {
|
21325
|
+
const message = request.result;
|
21326
|
+
if (message) {
|
21327
|
+
const recallContent = {
|
21328
|
+
messageUId: messageUId
|
21329
|
+
};
|
21330
|
+
const updatedMessage = {
|
21331
|
+
...message,
|
21332
|
+
messageType: MessageTypes.RECALL,
|
21333
|
+
content: this.encryptContent(recallContent)
|
21334
|
+
};
|
21335
|
+
const putRequest = store.put(updatedMessage);
|
21336
|
+
putRequest.onerror = () => {
|
21337
|
+
checkComplete();
|
21338
|
+
};
|
21339
|
+
putRequest.onsuccess = () => {
|
21340
|
+
checkComplete();
|
21341
|
+
};
|
21342
|
+
} else {
|
21343
|
+
checkComplete();
|
21344
|
+
}
|
21345
|
+
};
|
21346
|
+
request.onerror = () => {
|
21347
|
+
checkComplete();
|
21348
|
+
};
|
21349
|
+
}
|
21350
|
+
function checkComplete() {
|
21351
|
+
pendingRequests--;
|
21352
|
+
if (pendingRequests === 0) {
|
21353
|
+
resolve();
|
21342
21354
|
}
|
21355
|
+
}
|
21356
|
+
transaction.oncomplete = () => {
|
21357
|
+
resolve();
|
21358
|
+
};
|
21359
|
+
transaction.onerror = () => {
|
21360
|
+
resolve();
|
21343
21361
|
};
|
21344
21362
|
});
|
21345
21363
|
}
|
21346
21364
|
}
|
21347
|
-
let cache;
|
21365
|
+
let cache = null;
|
21348
21366
|
var MessageCache$1 = {
|
21349
21367
|
create(appkey, currentUserId) {
|
21350
21368
|
cache = new MessageCache(appkey, currentUserId);
|
@@ -21448,9 +21466,14 @@
|
|
21448
21466
|
};
|
21449
21467
|
});
|
21450
21468
|
await ConversationManager$1.get().loadConvsationsIfNotExist(cons);
|
21451
|
-
serverMessageParser.parse(msg, (done, outputMsgs) => {
|
21469
|
+
serverMessageParser.parse(msg, async (done, outputMsgs) => {
|
21452
21470
|
try {
|
21453
|
-
|
21471
|
+
for (const [dialogId, l] of outputMsgs.entries()) {
|
21472
|
+
if (l.length === 0) {
|
21473
|
+
return;
|
21474
|
+
}
|
21475
|
+
await this.processMessages(l, !this.pullOfflineFinished);
|
21476
|
+
}
|
21454
21477
|
} catch (error) {
|
21455
21478
|
logger.error('processMessages error', error);
|
21456
21479
|
}
|
@@ -21487,70 +21510,80 @@
|
|
21487
21510
|
}
|
21488
21511
|
});
|
21489
21512
|
}
|
21490
|
-
processMessages(
|
21491
|
-
const
|
21513
|
+
async processMessages(l, isOffLineMessage) {
|
21514
|
+
const conversation = {
|
21515
|
+
conversationType: l[0].conversationType,
|
21516
|
+
targetId: l[0].targetId
|
21517
|
+
};
|
21518
|
+
let messageList = [];
|
21519
|
+
const recallMessageIndexes = [];
|
21492
21520
|
let recallMessageUIds = [];
|
21493
|
-
|
21494
|
-
|
21495
|
-
|
21496
|
-
|
21497
|
-
|
21498
|
-
if (m.content.messageUId) {
|
21499
|
-
RecallMessageStore.remove(m.content.messageUId);
|
21500
|
-
recallMessageUIds.push(m.content.messageUId);
|
21501
|
-
} else {
|
21502
|
-
logger.error('recallMessage’s messageUId is undefined', m);
|
21503
|
-
}
|
21504
|
-
} else if (m.messageUId) {
|
21505
|
-
m.isOffLineMessage = isOffLineMessage;
|
21506
|
-
if (!m.messageId || m.messageId > getCurrentMessageId()) {
|
21507
|
-
m.messageId = generateNewMessageId();
|
21508
|
-
}
|
21509
|
-
ConversationManager$1.get().setConversationCacheByMessage(m);
|
21510
|
-
messageList.push(m);
|
21511
|
-
if (m.messageType === MessageTypes.RECALL) {
|
21512
|
-
recallMessageIndexes.push(messageList.length - 1);
|
21513
|
-
}
|
21514
|
-
if ([NotiMessageTypes.PRIVATE_OPEN_BURNAFTERREADING, NotiMessageTypes.GROUP_OPEN_BURNAFTERREADING, NotiMessageTypes.PRIVATE_CLOSE_BURNAFTERREADING, NotiMessageTypes.GROUP_CLOSE_BURNAFTERREADING].includes(m.messageType)) {
|
21515
|
-
this.handleBurnAfterReadingMessage(m);
|
21516
|
-
}
|
21521
|
+
l.forEach(m => {
|
21522
|
+
if (m.messageType === MessageTypes.RECALL && RecallMessageStore.has(m.content.messageUId)) {
|
21523
|
+
if (m.content.messageUId) {
|
21524
|
+
RecallMessageStore.remove(m.content.messageUId);
|
21525
|
+
recallMessageUIds.push(m.content.messageUId);
|
21517
21526
|
} else {
|
21518
|
-
logger.error('
|
21527
|
+
logger.error('recallMessage’s messageUId is undefined', m);
|
21519
21528
|
}
|
21520
|
-
})
|
21521
|
-
|
21522
|
-
|
21523
|
-
|
21524
|
-
const recallMessage = messageList[index];
|
21525
|
-
const recallContent = recallMessage.content;
|
21526
|
-
const messageIndex = messageList.findIndex(m => m.messageUId === recallContent.messageUId);
|
21527
|
-
if (messageIndex !== -1) {
|
21528
|
-
deletedMessageIndexes.push(messageIndex);
|
21529
|
-
} else {
|
21530
|
-
recallMessageUIds.push(recallContent.messageUId);
|
21531
|
-
deletedMessageIndexes.push(index);
|
21529
|
+
} else if (m.messageUId) {
|
21530
|
+
m.isOffLineMessage = isOffLineMessage;
|
21531
|
+
if (!m.messageId || m.messageId > getCurrentMessageId()) {
|
21532
|
+
m.messageId = generateNewMessageId();
|
21532
21533
|
}
|
21534
|
+
ConversationManager$1.get().setConversationCacheByMessage(m);
|
21535
|
+
messageList.push(m);
|
21536
|
+
if (m.messageType === MessageTypes.RECALL) {
|
21537
|
+
recallMessageIndexes.push(messageList.length - 1);
|
21538
|
+
}
|
21539
|
+
if ([NotiMessageTypes.PRIVATE_OPEN_BURNAFTERREADING, NotiMessageTypes.GROUP_OPEN_BURNAFTERREADING, NotiMessageTypes.PRIVATE_CLOSE_BURNAFTERREADING, NotiMessageTypes.GROUP_CLOSE_BURNAFTERREADING].includes(m.messageType)) {
|
21540
|
+
this.handleBurnAfterReadingMessage(m);
|
21541
|
+
}
|
21542
|
+
} else {
|
21543
|
+
logger.error('message‘s messageUId is undefined', m);
|
21533
21544
|
}
|
21534
|
-
if (deletedMessageIndexes.length) {
|
21535
|
-
let messageList_tmp = [];
|
21536
|
-
messageList.forEach((m, index) => {
|
21537
|
-
if (!deletedMessageIndexes.includes(index)) {
|
21538
|
-
messageList_tmp.push(m);
|
21539
|
-
}
|
21540
|
-
});
|
21541
|
-
messageList = messageList_tmp;
|
21542
|
-
}
|
21543
|
-
messages.push(...messageList);
|
21544
21545
|
});
|
21545
|
-
let
|
21546
|
+
let deletedMessageIndexes = [];
|
21547
|
+
for (let i = recallMessageIndexes.length - 1; i >= 0; i--) {
|
21548
|
+
const index = recallMessageIndexes[i];
|
21549
|
+
const recallMessage = messageList[index];
|
21550
|
+
const recallContent = recallMessage.content;
|
21551
|
+
const messageIndex = messageList.findIndex(m => m.messageUId === recallContent.messageUId);
|
21552
|
+
if (messageIndex !== -1) {
|
21553
|
+
deletedMessageIndexes.push(index);
|
21554
|
+
const targetMessage = messageList[messageIndex];
|
21555
|
+
messageList[messageIndex] = recallMessage;
|
21556
|
+
messageList[index] = targetMessage;
|
21557
|
+
deletedMessageIndexes.push(index);
|
21558
|
+
} else {
|
21559
|
+
recallMessageUIds.push(recallContent.messageUId);
|
21560
|
+
deletedMessageIndexes.push(index);
|
21561
|
+
}
|
21562
|
+
}
|
21563
|
+
if (deletedMessageIndexes.length) {
|
21564
|
+
let messageList_tmp = [];
|
21565
|
+
messageList.forEach((m, index) => {
|
21566
|
+
if (!deletedMessageIndexes.includes(index)) {
|
21567
|
+
messageList_tmp.push(m);
|
21568
|
+
}
|
21569
|
+
});
|
21570
|
+
messageList = messageList_tmp;
|
21571
|
+
}
|
21572
|
+
let normalMessages = this.handleReceiptMessages(messageList);
|
21546
21573
|
if (normalMessages.length) {
|
21574
|
+
await MessageCache$1.get()?.addMessages(normalMessages, {
|
21575
|
+
conversationType: normalMessages[0].conversationType,
|
21576
|
+
targetId: normalMessages[0].targetId
|
21577
|
+
});
|
21547
21578
|
this.handleBatchMessages(normalMessages);
|
21548
21579
|
MessageReceiptManager$1.get()?.sendArrivalReceipts(normalMessages);
|
21549
21580
|
}
|
21550
21581
|
if (recallMessageUIds.length) {
|
21551
|
-
MessageCache$1.get()?.convertToRecallMessages(recallMessageUIds);
|
21582
|
+
await MessageCache$1.get()?.convertToRecallMessages(recallMessageUIds);
|
21552
21583
|
this.watcher.onRecall?.(recallMessageUIds);
|
21553
21584
|
}
|
21585
|
+
const latestMessage = await MessageCache$1.get()?.getLatestMessage(conversation);
|
21586
|
+
ConversationManager$1.get().updateLatestMessage(conversation, latestMessage);
|
21554
21587
|
}
|
21555
21588
|
handleBurnAfterReadingMessage(message) {
|
21556
21589
|
const content = message.content;
|
@@ -21606,23 +21639,7 @@
|
|
21606
21639
|
return [];
|
21607
21640
|
}
|
21608
21641
|
}
|
21609
|
-
handleBatchMessages(messages) {
|
21610
|
-
if (messages.length) {
|
21611
|
-
const targetGroups = new Map();
|
21612
|
-
messages.forEach(message => {
|
21613
|
-
if (!targetGroups.has(message.targetId)) {
|
21614
|
-
targetGroups.set(message.targetId, []);
|
21615
|
-
}
|
21616
|
-
targetGroups.get(message.targetId).push(message);
|
21617
|
-
});
|
21618
|
-
targetGroups.forEach((targetMessages, targetId) => {
|
21619
|
-
const conversationType = targetMessages[0].conversationType;
|
21620
|
-
MessageCache$1.get()?.addMessages(targetMessages, {
|
21621
|
-
conversationType,
|
21622
|
-
targetId
|
21623
|
-
});
|
21624
|
-
});
|
21625
|
-
}
|
21642
|
+
async handleBatchMessages(messages) {
|
21626
21643
|
const filteredMessages = messages.filter(m => {
|
21627
21644
|
if (m.messageDirection === exports.MessageDirection.SEND && m.messageId && SentMessageStore.has(m.messageId)) {
|
21628
21645
|
SentMessageStore.remove(m.messageId);
|