@onyx-p/imlib-web 1.8.4 → 1.8.6

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 CHANGED
@@ -20059,6 +20059,7 @@ class ConversationManager {
20059
20059
  };
20060
20060
  }
20061
20061
  if (isPersited) {
20062
+ updateConOptions.conversation.updateTime = parseInt(message.sentTime);
20062
20063
  updateConOptions.conversation.latestMessage = message;
20063
20064
  updateConOptions.updatedItems.latestMessage = {
20064
20065
  time: message.sentTime,
@@ -20261,7 +20262,7 @@ class ConversationManager {
20261
20262
  updateConOptions.conversation.latestMessage = message;
20262
20263
  updateConOptions.updatedItems.latestMessage = {
20263
20264
  val: message,
20264
- time: message.sentTime?.toString() ?? getServerTime$1().toString()
20265
+ time: message?.sentTime ?? getServerTime$1().toString()
20265
20266
  };
20266
20267
  this.setUpdatedConversation(updateConOptions);
20267
20268
  }
@@ -20498,16 +20499,26 @@ const UNREADMESSAGEUIDS_KEY = 'unreadMessageUids';
20498
20499
  class MessageReceiptManager {
20499
20500
  localStore;
20500
20501
  constructor(appkey, currentUserId) {
20501
- const suffix = `receipt-${appkey}-${currentUserId}`;
20502
+ const suffix = `receipt-v2-${appkey}-${currentUserId}`;
20502
20503
  this.localStore = new AppStorage(suffix);
20503
20504
  }
20504
20505
  storeUnreadMessageUids(messageList) {
20505
20506
  const validMessages = messageList.filter(m => m.isCounted && m.messageDirection !== MessageDirection.SEND);
20506
- const messageUids = validMessages.map(m => m.messageUId);
20507
- const existingUids = this.localStore.get(UNREADMESSAGEUIDS_KEY) || [];
20508
- const updatedUids = [...new Set([...existingUids, ...messageUids])];
20507
+ const messageUidsWithTimestamp = validMessages.map(m => ({
20508
+ uid: m.messageUId,
20509
+ timestamp: Date.now()
20510
+ }));
20511
+ const existingUidsWithTimestamp = this.localStore.get(UNREADMESSAGEUIDS_KEY) || [];
20512
+ const updatedUids = [...existingUidsWithTimestamp, ...messageUidsWithTimestamp];
20509
20513
  this.localStore.set(UNREADMESSAGEUIDS_KEY, updatedUids);
20510
20514
  }
20515
+ cleanExpiredMessages() {
20516
+ const storedMessages = this.localStore.get(UNREADMESSAGEUIDS_KEY) || [];
20517
+ const twoDaysInMs = 2 * 24 * 60 * 60 * 1000;
20518
+ const currentTime = Date.now();
20519
+ const filteredMessages = storedMessages.filter(item => currentTime - item.timestamp <= twoDaysInMs);
20520
+ this.localStore.set(UNREADMESSAGEUIDS_KEY, filteredMessages);
20521
+ }
20511
20522
  formatReceiptMessages(messages) {
20512
20523
  const privateMessages = [];
20513
20524
  const groupMessages = [];
@@ -20569,7 +20580,7 @@ class MessageReceiptManager {
20569
20580
  }
20570
20581
  async sendReadReceipts(messageList) {
20571
20582
  const storedUnreadUids = this.localStore.get(UNREADMESSAGEUIDS_KEY) || [];
20572
- const validMessages = this.filterValidMessages(messageList).filter(m => storedUnreadUids.includes(m.messageUId));
20583
+ const validMessages = this.filterValidMessages(messageList).filter(m => storedUnreadUids.some(item => item.uid === m.messageUId));
20573
20584
  try {
20574
20585
  const {
20575
20586
  privateReceiptMessages,
@@ -20587,7 +20598,7 @@ class MessageReceiptManager {
20587
20598
  }
20588
20599
  const latestUnreadUids = this.localStore.get(UNREADMESSAGEUIDS_KEY) || [];
20589
20600
  const sentMessageUids = validMessages.map(m => m.messageUId);
20590
- const remainingUids = latestUnreadUids.filter(uid => !sentMessageUids.includes(uid));
20601
+ const remainingUids = latestUnreadUids.filter(item => !sentMessageUids.includes(item.uid));
20591
20602
  this.localStore.set(UNREADMESSAGEUIDS_KEY, remainingUids);
20592
20603
  } catch (error) {
20593
20604
  console.error('发送已读回执失败:', error);
@@ -28492,6 +28503,11 @@ class IMClient extends EventEmitter {
28492
28503
  conversationType: conversationObj.conversationType,
28493
28504
  targetId: conversationObj.targetId
28494
28505
  };
28506
+ if (isDef(conversationObj.latestMessage)) {
28507
+ conversationObj.updateTime = parseInt(conversationObj.latestMessage.sentTime);
28508
+ } else {
28509
+ conversationObj.updateTime = (contentList[contentList.length - 1].updateTime ?? 0) + 1;
28510
+ }
28495
28511
  ConversationManager$1.get().addLocalConversation(conversationObj);
28496
28512
  const localConversation = ConversationManager$1.get().get(conOpt);
28497
28513
  Object.assign(conversationObj, localConversation);
@@ -28540,6 +28556,7 @@ class IMClient extends EventEmitter {
28540
28556
  const conversation = {
28541
28557
  ...conOpt,
28542
28558
  ...localConversation,
28559
+ updateTime: isDef(latestMessage?.sentTime) ? parseInt(latestMessage.sentTime) : undefined,
28543
28560
  latestMessage: latestMessage
28544
28561
  };
28545
28562
  return {
package/index.umd.js CHANGED
@@ -20065,6 +20065,7 @@
20065
20065
  };
20066
20066
  }
20067
20067
  if (isPersited) {
20068
+ updateConOptions.conversation.updateTime = parseInt(message.sentTime);
20068
20069
  updateConOptions.conversation.latestMessage = message;
20069
20070
  updateConOptions.updatedItems.latestMessage = {
20070
20071
  time: message.sentTime,
@@ -20267,7 +20268,7 @@
20267
20268
  updateConOptions.conversation.latestMessage = message;
20268
20269
  updateConOptions.updatedItems.latestMessage = {
20269
20270
  val: message,
20270
- time: message.sentTime?.toString() ?? getServerTime$1().toString()
20271
+ time: message?.sentTime ?? getServerTime$1().toString()
20271
20272
  };
20272
20273
  this.setUpdatedConversation(updateConOptions);
20273
20274
  }
@@ -20504,16 +20505,26 @@
20504
20505
  class MessageReceiptManager {
20505
20506
  localStore;
20506
20507
  constructor(appkey, currentUserId) {
20507
- const suffix = `receipt-${appkey}-${currentUserId}`;
20508
+ const suffix = `receipt-v2-${appkey}-${currentUserId}`;
20508
20509
  this.localStore = new AppStorage(suffix);
20509
20510
  }
20510
20511
  storeUnreadMessageUids(messageList) {
20511
20512
  const validMessages = messageList.filter(m => m.isCounted && m.messageDirection !== exports.MessageDirection.SEND);
20512
- const messageUids = validMessages.map(m => m.messageUId);
20513
- const existingUids = this.localStore.get(UNREADMESSAGEUIDS_KEY) || [];
20514
- const updatedUids = [...new Set([...existingUids, ...messageUids])];
20513
+ const messageUidsWithTimestamp = validMessages.map(m => ({
20514
+ uid: m.messageUId,
20515
+ timestamp: Date.now()
20516
+ }));
20517
+ const existingUidsWithTimestamp = this.localStore.get(UNREADMESSAGEUIDS_KEY) || [];
20518
+ const updatedUids = [...existingUidsWithTimestamp, ...messageUidsWithTimestamp];
20515
20519
  this.localStore.set(UNREADMESSAGEUIDS_KEY, updatedUids);
20516
20520
  }
20521
+ cleanExpiredMessages() {
20522
+ const storedMessages = this.localStore.get(UNREADMESSAGEUIDS_KEY) || [];
20523
+ const twoDaysInMs = 2 * 24 * 60 * 60 * 1000;
20524
+ const currentTime = Date.now();
20525
+ const filteredMessages = storedMessages.filter(item => currentTime - item.timestamp <= twoDaysInMs);
20526
+ this.localStore.set(UNREADMESSAGEUIDS_KEY, filteredMessages);
20527
+ }
20517
20528
  formatReceiptMessages(messages) {
20518
20529
  const privateMessages = [];
20519
20530
  const groupMessages = [];
@@ -20575,7 +20586,7 @@
20575
20586
  }
20576
20587
  async sendReadReceipts(messageList) {
20577
20588
  const storedUnreadUids = this.localStore.get(UNREADMESSAGEUIDS_KEY) || [];
20578
- const validMessages = this.filterValidMessages(messageList).filter(m => storedUnreadUids.includes(m.messageUId));
20589
+ const validMessages = this.filterValidMessages(messageList).filter(m => storedUnreadUids.some(item => item.uid === m.messageUId));
20579
20590
  try {
20580
20591
  const {
20581
20592
  privateReceiptMessages,
@@ -20593,7 +20604,7 @@
20593
20604
  }
20594
20605
  const latestUnreadUids = this.localStore.get(UNREADMESSAGEUIDS_KEY) || [];
20595
20606
  const sentMessageUids = validMessages.map(m => m.messageUId);
20596
- const remainingUids = latestUnreadUids.filter(uid => !sentMessageUids.includes(uid));
20607
+ const remainingUids = latestUnreadUids.filter(item => !sentMessageUids.includes(item.uid));
20597
20608
  this.localStore.set(UNREADMESSAGEUIDS_KEY, remainingUids);
20598
20609
  } catch (error) {
20599
20610
  console.error('发送已读回执失败:', error);
@@ -28498,6 +28509,11 @@
28498
28509
  conversationType: conversationObj.conversationType,
28499
28510
  targetId: conversationObj.targetId
28500
28511
  };
28512
+ if (isDef(conversationObj.latestMessage)) {
28513
+ conversationObj.updateTime = parseInt(conversationObj.latestMessage.sentTime);
28514
+ } else {
28515
+ conversationObj.updateTime = (contentList[contentList.length - 1].updateTime ?? 0) + 1;
28516
+ }
28501
28517
  ConversationManager$1.get().addLocalConversation(conversationObj);
28502
28518
  const localConversation = ConversationManager$1.get().get(conOpt);
28503
28519
  Object.assign(conversationObj, localConversation);
@@ -28546,6 +28562,7 @@
28546
28562
  const conversation = {
28547
28563
  ...conOpt,
28548
28564
  ...localConversation,
28565
+ updateTime: isDef(latestMessage?.sentTime) ? parseInt(latestMessage.sentTime) : undefined,
28549
28566
  latestMessage: latestMessage
28550
28567
  };
28551
28568
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onyx-p/imlib-web",
3
- "version": "1.8.4",
3
+ "version": "1.8.6",
4
4
  "main": "index.umd.js",
5
5
  "module": "index.esm.js",
6
6
  "types": "types/index.d.ts",
@@ -63,4 +63,8 @@ export default interface IReceivedConversation {
63
63
  * 阅后即焚的时长
64
64
  */
65
65
  burnAfterReadingTime?: number | null;
66
+ /**
67
+ * 会话更新时间,根据这个排序
68
+ */
69
+ updateTime?: number | null;
66
70
  }