@onyx-p/imlib-web 2.4.6 → 2.4.8
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 +118 -96
- package/index.umd.js +118 -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,59 @@ 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
|
+
isPersited: true,
|
21329
|
+
isCounted: false,
|
21330
|
+
isMentioned: false,
|
21331
|
+
disableNotification: true
|
21332
|
+
};
|
21333
|
+
const putRequest = store.put(updatedMessage);
|
21334
|
+
putRequest.onerror = () => {
|
21335
|
+
checkComplete();
|
21336
|
+
};
|
21337
|
+
putRequest.onsuccess = () => {
|
21338
|
+
checkComplete();
|
21339
|
+
};
|
21340
|
+
} else {
|
21341
|
+
checkComplete();
|
21342
|
+
}
|
21343
|
+
};
|
21344
|
+
request.onerror = () => {
|
21345
|
+
checkComplete();
|
21346
|
+
};
|
21347
|
+
}
|
21348
|
+
function checkComplete() {
|
21349
|
+
pendingRequests--;
|
21350
|
+
if (pendingRequests === 0) {
|
21351
|
+
resolve();
|
21336
21352
|
}
|
21353
|
+
}
|
21354
|
+
transaction.oncomplete = () => {
|
21355
|
+
resolve();
|
21356
|
+
};
|
21357
|
+
transaction.onerror = () => {
|
21358
|
+
resolve();
|
21337
21359
|
};
|
21338
21360
|
});
|
21339
21361
|
}
|
21340
21362
|
}
|
21341
|
-
let cache;
|
21363
|
+
let cache = null;
|
21342
21364
|
var MessageCache$1 = {
|
21343
21365
|
create(appkey, currentUserId) {
|
21344
21366
|
cache = new MessageCache(appkey, currentUserId);
|
@@ -21442,9 +21464,14 @@ class MessageLoader {
|
|
21442
21464
|
};
|
21443
21465
|
});
|
21444
21466
|
await ConversationManager$1.get().loadConvsationsIfNotExist(cons);
|
21445
|
-
serverMessageParser.parse(msg, (done, outputMsgs) => {
|
21467
|
+
serverMessageParser.parse(msg, async (done, outputMsgs) => {
|
21446
21468
|
try {
|
21447
|
-
|
21469
|
+
for (const [dialogId, l] of outputMsgs.entries()) {
|
21470
|
+
if (l.length === 0) {
|
21471
|
+
return;
|
21472
|
+
}
|
21473
|
+
await this.processMessages(l, !this.pullOfflineFinished);
|
21474
|
+
}
|
21448
21475
|
} catch (error) {
|
21449
21476
|
logger.error('processMessages error', error);
|
21450
21477
|
}
|
@@ -21481,70 +21508,81 @@ class MessageLoader {
|
|
21481
21508
|
}
|
21482
21509
|
});
|
21483
21510
|
}
|
21484
|
-
processMessages(
|
21485
|
-
const
|
21511
|
+
async processMessages(l, isOffLineMessage) {
|
21512
|
+
const conversation = {
|
21513
|
+
conversationType: l[0].conversationType,
|
21514
|
+
targetId: l[0].targetId
|
21515
|
+
};
|
21516
|
+
let messageList = [];
|
21517
|
+
const recallMessageIndexes = [];
|
21486
21518
|
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
|
-
}
|
21519
|
+
l.forEach(m => {
|
21520
|
+
if (m.messageType === MessageTypes.RECALL && RecallMessageStore.has(m.content.messageUId)) {
|
21521
|
+
if (m.content.messageUId) {
|
21522
|
+
RecallMessageStore.remove(m.content.messageUId);
|
21523
|
+
recallMessageUIds.push(m.content.messageUId);
|
21511
21524
|
} else {
|
21512
|
-
logger.error('
|
21525
|
+
logger.error('recallMessage’s messageUId is undefined', m);
|
21513
21526
|
}
|
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);
|
21527
|
+
} else if (m.messageUId) {
|
21528
|
+
m.isOffLineMessage = isOffLineMessage;
|
21529
|
+
if (!m.messageId || m.messageId > getCurrentMessageId()) {
|
21530
|
+
m.messageId = generateNewMessageId();
|
21526
21531
|
}
|
21532
|
+
ConversationManager$1.get().setConversationCacheByMessage(m);
|
21533
|
+
messageList.push(m);
|
21534
|
+
if (m.messageType === MessageTypes.RECALL) {
|
21535
|
+
recallMessageIndexes.push(messageList.length - 1);
|
21536
|
+
}
|
21537
|
+
if ([NotiMessageTypes.PRIVATE_OPEN_BURNAFTERREADING, NotiMessageTypes.GROUP_OPEN_BURNAFTERREADING, NotiMessageTypes.PRIVATE_CLOSE_BURNAFTERREADING, NotiMessageTypes.GROUP_CLOSE_BURNAFTERREADING].includes(m.messageType)) {
|
21538
|
+
this.handleBurnAfterReadingMessage(m);
|
21539
|
+
}
|
21540
|
+
} else {
|
21541
|
+
logger.error('message‘s messageUId is undefined', m);
|
21527
21542
|
}
|
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
21543
|
});
|
21539
|
-
let
|
21544
|
+
let deletedMessageIndexes = [];
|
21545
|
+
for (let i = recallMessageIndexes.length - 1; i >= 0; i--) {
|
21546
|
+
const index = recallMessageIndexes[i];
|
21547
|
+
const recallMessage = messageList[index];
|
21548
|
+
const recallContent = recallMessage.content;
|
21549
|
+
const messageIndex = messageList.findIndex(m => m.messageUId === recallContent.messageUId);
|
21550
|
+
if (messageIndex !== -1) {
|
21551
|
+
const targetMessage = messageList[messageIndex];
|
21552
|
+
recallMessage.messageId = targetMessage.messageId;
|
21553
|
+
recallMessage.sentTime = targetMessage.sentTime;
|
21554
|
+
messageList[messageIndex] = recallMessage;
|
21555
|
+
messageList[index] = targetMessage;
|
21556
|
+
deletedMessageIndexes.push(index);
|
21557
|
+
} else {
|
21558
|
+
recallMessageUIds.push(recallContent.messageUId);
|
21559
|
+
deletedMessageIndexes.push(index);
|
21560
|
+
}
|
21561
|
+
}
|
21562
|
+
if (deletedMessageIndexes.length) {
|
21563
|
+
let messageList_tmp = [];
|
21564
|
+
messageList.forEach((m, index) => {
|
21565
|
+
if (!deletedMessageIndexes.includes(index)) {
|
21566
|
+
messageList_tmp.push(m);
|
21567
|
+
}
|
21568
|
+
});
|
21569
|
+
messageList = messageList_tmp;
|
21570
|
+
}
|
21571
|
+
let normalMessages = this.handleReceiptMessages(messageList);
|
21540
21572
|
if (normalMessages.length) {
|
21573
|
+
await MessageCache$1.get()?.addMessages(normalMessages, {
|
21574
|
+
conversationType: normalMessages[0].conversationType,
|
21575
|
+
targetId: normalMessages[0].targetId
|
21576
|
+
});
|
21541
21577
|
this.handleBatchMessages(normalMessages);
|
21542
21578
|
MessageReceiptManager$1.get()?.sendArrivalReceipts(normalMessages);
|
21543
21579
|
}
|
21544
21580
|
if (recallMessageUIds.length) {
|
21545
|
-
MessageCache$1.get()?.convertToRecallMessages(recallMessageUIds);
|
21581
|
+
await MessageCache$1.get()?.convertToRecallMessages(recallMessageUIds);
|
21546
21582
|
this.watcher.onRecall?.(recallMessageUIds);
|
21547
21583
|
}
|
21584
|
+
const latestMessage = await MessageCache$1.get()?.getLatestMessage(conversation);
|
21585
|
+
ConversationManager$1.get().updateLatestMessage(conversation, latestMessage);
|
21548
21586
|
}
|
21549
21587
|
handleBurnAfterReadingMessage(message) {
|
21550
21588
|
const content = message.content;
|
@@ -21600,23 +21638,7 @@ class MessageLoader {
|
|
21600
21638
|
return [];
|
21601
21639
|
}
|
21602
21640
|
}
|
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
|
-
}
|
21641
|
+
async handleBatchMessages(messages) {
|
21620
21642
|
const filteredMessages = messages.filter(m => {
|
21621
21643
|
if (m.messageDirection === MessageDirection.SEND && m.messageId && SentMessageStore.has(m.messageId)) {
|
21622
21644
|
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,59 @@
|
|
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
|
+
isPersited: true,
|
21335
|
+
isCounted: false,
|
21336
|
+
isMentioned: false,
|
21337
|
+
disableNotification: true
|
21338
|
+
};
|
21339
|
+
const putRequest = store.put(updatedMessage);
|
21340
|
+
putRequest.onerror = () => {
|
21341
|
+
checkComplete();
|
21342
|
+
};
|
21343
|
+
putRequest.onsuccess = () => {
|
21344
|
+
checkComplete();
|
21345
|
+
};
|
21346
|
+
} else {
|
21347
|
+
checkComplete();
|
21348
|
+
}
|
21349
|
+
};
|
21350
|
+
request.onerror = () => {
|
21351
|
+
checkComplete();
|
21352
|
+
};
|
21353
|
+
}
|
21354
|
+
function checkComplete() {
|
21355
|
+
pendingRequests--;
|
21356
|
+
if (pendingRequests === 0) {
|
21357
|
+
resolve();
|
21342
21358
|
}
|
21359
|
+
}
|
21360
|
+
transaction.oncomplete = () => {
|
21361
|
+
resolve();
|
21362
|
+
};
|
21363
|
+
transaction.onerror = () => {
|
21364
|
+
resolve();
|
21343
21365
|
};
|
21344
21366
|
});
|
21345
21367
|
}
|
21346
21368
|
}
|
21347
|
-
let cache;
|
21369
|
+
let cache = null;
|
21348
21370
|
var MessageCache$1 = {
|
21349
21371
|
create(appkey, currentUserId) {
|
21350
21372
|
cache = new MessageCache(appkey, currentUserId);
|
@@ -21448,9 +21470,14 @@
|
|
21448
21470
|
};
|
21449
21471
|
});
|
21450
21472
|
await ConversationManager$1.get().loadConvsationsIfNotExist(cons);
|
21451
|
-
serverMessageParser.parse(msg, (done, outputMsgs) => {
|
21473
|
+
serverMessageParser.parse(msg, async (done, outputMsgs) => {
|
21452
21474
|
try {
|
21453
|
-
|
21475
|
+
for (const [dialogId, l] of outputMsgs.entries()) {
|
21476
|
+
if (l.length === 0) {
|
21477
|
+
return;
|
21478
|
+
}
|
21479
|
+
await this.processMessages(l, !this.pullOfflineFinished);
|
21480
|
+
}
|
21454
21481
|
} catch (error) {
|
21455
21482
|
logger.error('processMessages error', error);
|
21456
21483
|
}
|
@@ -21487,70 +21514,81 @@
|
|
21487
21514
|
}
|
21488
21515
|
});
|
21489
21516
|
}
|
21490
|
-
processMessages(
|
21491
|
-
const
|
21517
|
+
async processMessages(l, isOffLineMessage) {
|
21518
|
+
const conversation = {
|
21519
|
+
conversationType: l[0].conversationType,
|
21520
|
+
targetId: l[0].targetId
|
21521
|
+
};
|
21522
|
+
let messageList = [];
|
21523
|
+
const recallMessageIndexes = [];
|
21492
21524
|
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
|
-
}
|
21525
|
+
l.forEach(m => {
|
21526
|
+
if (m.messageType === MessageTypes.RECALL && RecallMessageStore.has(m.content.messageUId)) {
|
21527
|
+
if (m.content.messageUId) {
|
21528
|
+
RecallMessageStore.remove(m.content.messageUId);
|
21529
|
+
recallMessageUIds.push(m.content.messageUId);
|
21517
21530
|
} else {
|
21518
|
-
logger.error('
|
21531
|
+
logger.error('recallMessage’s messageUId is undefined', m);
|
21519
21532
|
}
|
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);
|
21533
|
+
} else if (m.messageUId) {
|
21534
|
+
m.isOffLineMessage = isOffLineMessage;
|
21535
|
+
if (!m.messageId || m.messageId > getCurrentMessageId()) {
|
21536
|
+
m.messageId = generateNewMessageId();
|
21532
21537
|
}
|
21538
|
+
ConversationManager$1.get().setConversationCacheByMessage(m);
|
21539
|
+
messageList.push(m);
|
21540
|
+
if (m.messageType === MessageTypes.RECALL) {
|
21541
|
+
recallMessageIndexes.push(messageList.length - 1);
|
21542
|
+
}
|
21543
|
+
if ([NotiMessageTypes.PRIVATE_OPEN_BURNAFTERREADING, NotiMessageTypes.GROUP_OPEN_BURNAFTERREADING, NotiMessageTypes.PRIVATE_CLOSE_BURNAFTERREADING, NotiMessageTypes.GROUP_CLOSE_BURNAFTERREADING].includes(m.messageType)) {
|
21544
|
+
this.handleBurnAfterReadingMessage(m);
|
21545
|
+
}
|
21546
|
+
} else {
|
21547
|
+
logger.error('message‘s messageUId is undefined', m);
|
21533
21548
|
}
|
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
21549
|
});
|
21545
|
-
let
|
21550
|
+
let deletedMessageIndexes = [];
|
21551
|
+
for (let i = recallMessageIndexes.length - 1; i >= 0; i--) {
|
21552
|
+
const index = recallMessageIndexes[i];
|
21553
|
+
const recallMessage = messageList[index];
|
21554
|
+
const recallContent = recallMessage.content;
|
21555
|
+
const messageIndex = messageList.findIndex(m => m.messageUId === recallContent.messageUId);
|
21556
|
+
if (messageIndex !== -1) {
|
21557
|
+
const targetMessage = messageList[messageIndex];
|
21558
|
+
recallMessage.messageId = targetMessage.messageId;
|
21559
|
+
recallMessage.sentTime = targetMessage.sentTime;
|
21560
|
+
messageList[messageIndex] = recallMessage;
|
21561
|
+
messageList[index] = targetMessage;
|
21562
|
+
deletedMessageIndexes.push(index);
|
21563
|
+
} else {
|
21564
|
+
recallMessageUIds.push(recallContent.messageUId);
|
21565
|
+
deletedMessageIndexes.push(index);
|
21566
|
+
}
|
21567
|
+
}
|
21568
|
+
if (deletedMessageIndexes.length) {
|
21569
|
+
let messageList_tmp = [];
|
21570
|
+
messageList.forEach((m, index) => {
|
21571
|
+
if (!deletedMessageIndexes.includes(index)) {
|
21572
|
+
messageList_tmp.push(m);
|
21573
|
+
}
|
21574
|
+
});
|
21575
|
+
messageList = messageList_tmp;
|
21576
|
+
}
|
21577
|
+
let normalMessages = this.handleReceiptMessages(messageList);
|
21546
21578
|
if (normalMessages.length) {
|
21579
|
+
await MessageCache$1.get()?.addMessages(normalMessages, {
|
21580
|
+
conversationType: normalMessages[0].conversationType,
|
21581
|
+
targetId: normalMessages[0].targetId
|
21582
|
+
});
|
21547
21583
|
this.handleBatchMessages(normalMessages);
|
21548
21584
|
MessageReceiptManager$1.get()?.sendArrivalReceipts(normalMessages);
|
21549
21585
|
}
|
21550
21586
|
if (recallMessageUIds.length) {
|
21551
|
-
MessageCache$1.get()?.convertToRecallMessages(recallMessageUIds);
|
21587
|
+
await MessageCache$1.get()?.convertToRecallMessages(recallMessageUIds);
|
21552
21588
|
this.watcher.onRecall?.(recallMessageUIds);
|
21553
21589
|
}
|
21590
|
+
const latestMessage = await MessageCache$1.get()?.getLatestMessage(conversation);
|
21591
|
+
ConversationManager$1.get().updateLatestMessage(conversation, latestMessage);
|
21554
21592
|
}
|
21555
21593
|
handleBurnAfterReadingMessage(message) {
|
21556
21594
|
const content = message.content;
|
@@ -21606,23 +21644,7 @@
|
|
21606
21644
|
return [];
|
21607
21645
|
}
|
21608
21646
|
}
|
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
|
-
}
|
21647
|
+
async handleBatchMessages(messages) {
|
21626
21648
|
const filteredMessages = messages.filter(m => {
|
21627
21649
|
if (m.messageDirection === exports.MessageDirection.SEND && m.messageId && SentMessageStore.has(m.messageId)) {
|
21628
21650
|
SentMessageStore.remove(m.messageId);
|