@onyx-p/imlib-web 2.2.6 → 2.2.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 CHANGED
@@ -20718,6 +20718,9 @@ function generateOldMessageId() {
20718
20718
  oldestMessageId--;
20719
20719
  return oldestMessageId;
20720
20720
  }
20721
+ function getCurrentMessageId() {
20722
+ return lastMessageId;
20723
+ }
20721
20724
 
20722
20725
  class MessageLoader {
20723
20726
  watcher;
@@ -20822,7 +20825,7 @@ class MessageLoader {
20822
20825
  RecallMessageStore.remove(m.content.messageUId);
20823
20826
  } else {
20824
20827
  m.isOffLineMessage = isOffLineMessage;
20825
- if (!m.messageId) {
20828
+ if (!m.messageId || m.messageId > getCurrentMessageId()) {
20826
20829
  m.messageId = generateNewMessageId();
20827
20830
  }
20828
20831
  ConversationManager$1.get().setConversationCacheByMessage(m);
@@ -29108,7 +29111,11 @@ async function saveSentMessage(receivedMessage, options) {
29108
29111
  const cache = MessageCache$1.get();
29109
29112
  if (receivedMessage.isPersited && cache) {
29110
29113
  await cache.upsertMessage(receivedMessage);
29111
- const latestMessage = await cache.getLatestMessage(options.conversation);
29114
+ const cachedLatestMessage = await cache.getLatestMessage(options.conversation);
29115
+ let latestMessage = receivedMessage;
29116
+ if (cachedLatestMessage && Long.fromString(cachedLatestMessage.sentTime).greaterThan(Long.fromString(receivedMessage.sentTime))) {
29117
+ latestMessage = cachedLatestMessage;
29118
+ }
29112
29119
  ConversationManager$1.get().updateLatestMessage(options.conversation, latestMessage);
29113
29120
  }
29114
29121
  } catch (error) {
@@ -29186,9 +29193,11 @@ class IMClient extends EventEmitter {
29186
29193
  }
29187
29194
  return true;
29188
29195
  });
29189
- this.emit(Events.MESSAGES, {
29190
- messages: filteredMessages
29191
- });
29196
+ if (filteredMessages.length) {
29197
+ this.emit(Events.MESSAGES, {
29198
+ messages: filteredMessages
29199
+ });
29200
+ }
29192
29201
  },
29193
29202
  pullFinished: () => {
29194
29203
  this.emit(Events.PULL_OFFLINE_MESSAGE_FINISHED);
@@ -29316,7 +29325,7 @@ class IMClient extends EventEmitter {
29316
29325
  const remotesMessages = remotesResult.data.list;
29317
29326
  for (let i = remotesMessages.length - 1; i >= 0; i--) {
29318
29327
  const message = remotesMessages[i];
29319
- if (!message.messageId) {
29328
+ if (!message.messageId || message.messageId > getCurrentMessageId()) {
29320
29329
  message.messageId = generateOldMessageId();
29321
29330
  }
29322
29331
  }
package/index.umd.js CHANGED
@@ -20724,6 +20724,9 @@
20724
20724
  oldestMessageId--;
20725
20725
  return oldestMessageId;
20726
20726
  }
20727
+ function getCurrentMessageId() {
20728
+ return lastMessageId;
20729
+ }
20727
20730
 
20728
20731
  class MessageLoader {
20729
20732
  watcher;
@@ -20828,7 +20831,7 @@
20828
20831
  RecallMessageStore.remove(m.content.messageUId);
20829
20832
  } else {
20830
20833
  m.isOffLineMessage = isOffLineMessage;
20831
- if (!m.messageId) {
20834
+ if (!m.messageId || m.messageId > getCurrentMessageId()) {
20832
20835
  m.messageId = generateNewMessageId();
20833
20836
  }
20834
20837
  ConversationManager$1.get().setConversationCacheByMessage(m);
@@ -29114,7 +29117,11 @@
29114
29117
  const cache = MessageCache$1.get();
29115
29118
  if (receivedMessage.isPersited && cache) {
29116
29119
  await cache.upsertMessage(receivedMessage);
29117
- const latestMessage = await cache.getLatestMessage(options.conversation);
29120
+ const cachedLatestMessage = await cache.getLatestMessage(options.conversation);
29121
+ let latestMessage = receivedMessage;
29122
+ if (cachedLatestMessage && Long.fromString(cachedLatestMessage.sentTime).greaterThan(Long.fromString(receivedMessage.sentTime))) {
29123
+ latestMessage = cachedLatestMessage;
29124
+ }
29118
29125
  ConversationManager$1.get().updateLatestMessage(options.conversation, latestMessage);
29119
29126
  }
29120
29127
  } catch (error) {
@@ -29192,9 +29199,11 @@
29192
29199
  }
29193
29200
  return true;
29194
29201
  });
29195
- this.emit(exports.Events.MESSAGES, {
29196
- messages: filteredMessages
29197
- });
29202
+ if (filteredMessages.length) {
29203
+ this.emit(exports.Events.MESSAGES, {
29204
+ messages: filteredMessages
29205
+ });
29206
+ }
29198
29207
  },
29199
29208
  pullFinished: () => {
29200
29209
  this.emit(exports.Events.PULL_OFFLINE_MESSAGE_FINISHED);
@@ -29322,7 +29331,7 @@
29322
29331
  const remotesMessages = remotesResult.data.list;
29323
29332
  for (let i = remotesMessages.length - 1; i >= 0; i--) {
29324
29333
  const message = remotesMessages[i];
29325
- if (!message.messageId) {
29334
+ if (!message.messageId || message.messageId > getCurrentMessageId()) {
29326
29335
  message.messageId = generateOldMessageId();
29327
29336
  }
29328
29337
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onyx-p/imlib-web",
3
- "version": "2.2.6",
3
+ "version": "2.2.8",
4
4
  "main": "index.umd.js",
5
5
  "module": "index.esm.js",
6
6
  "types": "types/index.d.ts",