@amityco/ts-sdk-react-native 6.22.0 → 6.23.0

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.
Files changed (67) hide show
  1. package/dist/@types/domains/channel.d.ts +1 -0
  2. package/dist/@types/domains/channel.d.ts.map +1 -1
  3. package/dist/@types/domains/post.d.ts +2 -3
  4. package/dist/@types/domains/post.d.ts.map +1 -1
  5. package/dist/channelRepository/api/getChannel.d.ts +1 -1
  6. package/dist/channelRepository/api/getChannel.d.ts.map +1 -1
  7. package/dist/channelRepository/api/getChannelByIds.d.ts +1 -1
  8. package/dist/channelRepository/api/getChannelByIds.d.ts.map +1 -1
  9. package/dist/channelRepository/api/markAsRead.d.ts +3 -1
  10. package/dist/channelRepository/api/markAsRead.d.ts.map +1 -1
  11. package/dist/channelRepository/channelMembership/observers/getMembers/ChannelMemberQueryStreamController.d.ts +2 -2
  12. package/dist/channelRepository/channelMembership/observers/getMembers/ChannelMemberQueryStreamController.d.ts.map +1 -1
  13. package/dist/channelRepository/events/onChannelMemberRoleAdded.d.ts +1 -1
  14. package/dist/channelRepository/events/onChannelMemberRoleAdded.d.ts.map +1 -1
  15. package/dist/channelRepository/events/onChannelMemberRoleRemoved.d.ts +1 -1
  16. package/dist/channelRepository/events/onChannelMemberRoleRemoved.d.ts.map +1 -1
  17. package/dist/channelRepository/observers/getChannel.d.ts.map +1 -1
  18. package/dist/channelRepository/observers/getChannels/ChannelLiveCollectionController.d.ts.map +1 -1
  19. package/dist/channelRepository/observers/observeChannel.d.ts.map +1 -1
  20. package/dist/channelRepository/observers/observeChannels.d.ts.map +1 -1
  21. package/dist/client/api/logout.d.ts +1 -1
  22. package/dist/core/liveCollection/LiveCollectionController.d.ts.map +1 -1
  23. package/dist/index.cjs.js +120 -86
  24. package/dist/index.esm.js +120 -86
  25. package/dist/index.umd.js +2 -2
  26. package/dist/messagePreview/utils/getChannelMessagePreviewWithUser.d.ts +35 -1
  27. package/dist/messagePreview/utils/getChannelMessagePreviewWithUser.d.ts.map +1 -1
  28. package/dist/messageRepository/events/onMessageCreated.d.ts.map +1 -1
  29. package/dist/messageRepository/utils/markReadMessage.d.ts +2 -0
  30. package/dist/messageRepository/utils/markReadMessage.d.ts.map +1 -0
  31. package/dist/postRepository/api/createPost.d.ts +1 -1
  32. package/dist/postRepository/api/createPost.d.ts.map +1 -1
  33. package/dist/subChannelRepository/observers/getSubChannel.d.ts.map +1 -1
  34. package/dist/subChannelRepository/observers/getSubChannels/SubChannelLiveCollectionController.d.ts.map +1 -1
  35. package/dist/utils/linkedObject/channelLinkedObject.d.ts +2 -0
  36. package/dist/utils/linkedObject/channelLinkedObject.d.ts.map +1 -0
  37. package/dist/utils/linkedObject/index.d.ts +1 -0
  38. package/dist/utils/linkedObject/index.d.ts.map +1 -1
  39. package/dist/utils/linkedObject/messageLinkedObject.d.ts.map +1 -1
  40. package/dist/utils/object.d.ts +1 -0
  41. package/dist/utils/object.d.ts.map +1 -1
  42. package/package.json +1 -1
  43. package/src/@types/domains/channel.ts +1 -0
  44. package/src/@types/domains/post.ts +3 -3
  45. package/src/channelRepository/api/getChannel.ts +1 -1
  46. package/src/channelRepository/api/getChannelByIds.ts +4 -3
  47. package/src/channelRepository/api/markAsRead.ts +6 -2
  48. package/src/channelRepository/channelMembership/observers/getMembers/ChannelMemberQueryStreamController.ts +5 -2
  49. package/src/channelRepository/events/onChannelMemberRoleAdded.ts +1 -1
  50. package/src/channelRepository/events/onChannelMemberRoleRemoved.ts +1 -1
  51. package/src/channelRepository/observers/getChannel.ts +6 -2
  52. package/src/channelRepository/observers/getChannels/ChannelLiveCollectionController.ts +3 -1
  53. package/src/channelRepository/observers/observeChannel.ts +15 -3
  54. package/src/channelRepository/observers/observeChannels.ts +8 -4
  55. package/src/client/api/logout.ts +1 -1
  56. package/src/communityRepository/communityMembership/events/utils.ts +2 -2
  57. package/src/core/liveCollection/LiveCollectionController.ts +4 -3
  58. package/src/messagePreview/utils/getChannelMessagePreviewWithUser.ts +5 -1
  59. package/src/messageRepository/events/onMessageCreated.ts +4 -0
  60. package/src/messageRepository/utils/markReadMessage.ts +8 -0
  61. package/src/postRepository/api/createPost.ts +1 -2
  62. package/src/subChannelRepository/observers/getSubChannel.ts +8 -4
  63. package/src/subChannelRepository/observers/getSubChannels/SubChannelLiveCollectionController.ts +9 -6
  64. package/src/utils/linkedObject/channelLinkedObject.ts +8 -0
  65. package/src/utils/linkedObject/index.ts +2 -0
  66. package/src/utils/linkedObject/messageLinkedObject.ts +2 -7
  67. package/src/utils/object.ts +15 -0
package/dist/index.esm.js CHANGED
@@ -79,13 +79,12 @@ const PostContentType = Object.freeze({
79
79
  VIDEO: 'video',
80
80
  LIVESTREAM: 'liveStream',
81
81
  POLL: 'poll',
82
- CUSTOM: 'custom',
83
82
  });
84
83
 
85
84
  function getVersion() {
86
85
  try {
87
- // the string ''v6.22.0-esm'' should be replaced by actual value by @rollup/plugin-replace
88
- return 'v6.22.0-esm';
86
+ // the string ''v6.23.0-esm'' should be replaced by actual value by @rollup/plugin-replace
87
+ return 'v6.23.0-esm';
89
88
  }
90
89
  catch (error) {
91
90
  return '__dev__';
@@ -21456,6 +21455,27 @@ const postLinkedObject = (post) => {
21456
21455
  } });
21457
21456
  };
21458
21457
 
21458
+ const getCachedMarker$2 = (message) => {
21459
+ var _a, _b;
21460
+ const key = {
21461
+ creatorId: 'creatorPrivateId' in message ? message.creatorPrivateId : message.creatorId,
21462
+ feedId: (_a = message.messageFeedId) !== null && _a !== void 0 ? _a : message.subChannelId,
21463
+ contentId: message.messageId,
21464
+ };
21465
+ return (_b = pullFromCache([
21466
+ 'messageMarker',
21467
+ 'get',
21468
+ getResolver('messageMarker')(key),
21469
+ ])) === null || _b === void 0 ? void 0 : _b.data;
21470
+ };
21471
+ const getMessageReadCount = (message, marker) => {
21472
+ var _a;
21473
+ // Look in the marker param first
21474
+ return (_a = marker !== null && marker !== void 0 ? marker :
21475
+ // If the marker param is not set, look in the cache
21476
+ getCachedMarker$2(message)) !== null && _a !== void 0 ? _a : { readCount: 0, deliveredCount: 0 };
21477
+ }; // and if not found in cache use default value `0`
21478
+
21459
21479
  /**
21460
21480
  *
21461
21481
  * Mark subChannel as read by readToSegment
@@ -21714,26 +21734,11 @@ var ReadReceiptSyncEngine = {
21714
21734
  },
21715
21735
  };
21716
21736
 
21717
- const getCachedMarker$2 = (message) => {
21718
- var _a, _b;
21719
- const key = {
21720
- creatorId: 'creatorPrivateId' in message ? message.creatorPrivateId : message.creatorId,
21721
- feedId: (_a = message.messageFeedId) !== null && _a !== void 0 ? _a : message.subChannelId,
21722
- contentId: message.messageId,
21723
- };
21724
- return (_b = pullFromCache([
21725
- 'messageMarker',
21726
- 'get',
21727
- getResolver('messageMarker')(key),
21728
- ])) === null || _b === void 0 ? void 0 : _b.data;
21729
- };
21730
- const getMessageReadCount = (message, marker) => {
21731
- var _a;
21732
- // Look in the marker param first
21733
- return (_a = marker !== null && marker !== void 0 ? marker :
21734
- // If the marker param is not set, look in the cache
21735
- getCachedMarker$2(message)) !== null && _a !== void 0 ? _a : { readCount: 0, deliveredCount: 0 };
21736
- }; // and if not found in cache use default value `0`
21737
+ const markReadMessage = (message) => {
21738
+ const { subChannelId, channelSegment } = message;
21739
+ const markReadReceiptEngine = ReadReceiptSyncEngine.getInstance();
21740
+ markReadReceiptEngine.markRead(subChannelId, channelSegment);
21741
+ };
21737
21742
 
21738
21743
  const messageLinkedObject = (message) => {
21739
21744
  const rest = __rest(message, ["creatorPrivateId"]);
@@ -21742,11 +21747,7 @@ const messageLinkedObject = (message) => {
21742
21747
  },
21743
21748
  get deliveredCount() {
21744
21749
  return getMessageReadCount(message).deliveredCount;
21745
- }, markRead: () => {
21746
- const { subChannelId, channelSegment } = message;
21747
- const markReadReceiptEngine = ReadReceiptSyncEngine.getInstance();
21748
- markReadReceiptEngine.markRead(subChannelId, channelSegment);
21749
- } });
21750
+ }, markRead: () => markReadMessage(message) });
21750
21751
  };
21751
21752
 
21752
21753
  const reactorLinkedObject = (reactor) => {
@@ -21759,6 +21760,45 @@ const reactorLinkedObject = (reactor) => {
21759
21760
  } });
21760
21761
  };
21761
21762
 
21763
+ /**
21764
+ * ```js
21765
+ * import { ChannelRepository } from '@amityco/ts-sdk-react-native'
21766
+ * const success = await ChannelRepository.markAsRead('channelId')
21767
+ * ```
21768
+ *
21769
+ * @deprecated Please use the {@link Amity.Channel.markAsRead} method instead
21770
+ *
21771
+ * Updating all {@link Amity.SubChannel} in specify {@link Amity.Channel} as read
21772
+ *
21773
+ * @param channelId the ID of to specify {@link Amity.Channel}
21774
+ * @returns A success boolean if the {@link Amity.Channel} was mark read
21775
+ *
21776
+ * @category Channel API
21777
+ * @async
21778
+ */
21779
+ const markAsRead = async (channelId) => {
21780
+ const client = getActiveClient();
21781
+ client.log('channel/markAsRead', channelId);
21782
+ const { data } = await client.http.put(`/api/v1/markers/channels/${channelId}/mark-read`);
21783
+ const { userMarkers, userEntityMarkers: userEntityMarkersPayload, userFeedMarkers: userFeedMarkersPayload } = data, rest = __rest(data, ["userMarkers", "userEntityMarkers", "userFeedMarkers"]);
21784
+ const cachedAt = client.cache && Date.now();
21785
+ const channelMarkers = convertChannelMarkerResponse(userEntityMarkersPayload);
21786
+ const subChannelMarkers = convertSubChannelMarkerResponse(userFeedMarkersPayload);
21787
+ if (client.cache)
21788
+ ingestInCache(Object.assign({ userMarkers, userEntityMarkers: channelMarkers, userFeedMarkers: subChannelMarkers }, rest), { cachedAt });
21789
+ fireEvent('local.channelMarker.updated', {
21790
+ userEntityMarkers: channelMarkers,
21791
+ });
21792
+ fireEvent('local.subChannelMarker.updated', {
21793
+ userFeedMarkers: subChannelMarkers,
21794
+ });
21795
+ return true;
21796
+ };
21797
+
21798
+ const channelLinkedObject = (channel) => {
21799
+ return Object.assign(Object.assign({}, channel), { markAsRead: () => markAsRead(channel.channelInternalId) });
21800
+ };
21801
+
21762
21802
  const LinkedObject = {
21763
21803
  comment: commentLinkedObject,
21764
21804
  post: postLinkedObject,
@@ -21768,6 +21808,7 @@ const LinkedObject = {
21768
21808
  storyTarget: storyTargetLinkedObject,
21769
21809
  message: messageLinkedObject,
21770
21810
  reactor: reactorLinkedObject,
21811
+ channel: channelLinkedObject,
21771
21812
  };
21772
21813
 
21773
21814
  const getChannelMessagePreviewWithUser = (channel) => {
@@ -22322,7 +22363,7 @@ const getChannelByIds = async (channelIds) => {
22322
22363
  ingestInCache(data, { cachedAt });
22323
22364
  fireEvent('local.channel.fetched', data.channels);
22324
22365
  return {
22325
- data: data.channels,
22366
+ data: data.channels.map(channel => LinkedObject.channel(channel)),
22326
22367
  cachedAt,
22327
22368
  };
22328
22369
  };
@@ -22353,7 +22394,7 @@ getChannelByIds.locally = (channelIds) => {
22353
22394
  const channels = cached.map(({ data }) => data);
22354
22395
  const oldest = (_b = cached.sort((a, b) => (a.cachedAt < b.cachedAt ? -1 : 1))) === null || _b === void 0 ? void 0 : _b[0];
22355
22396
  return {
22356
- data: channels,
22397
+ data: channels.map(channel => LinkedObject.channel(channel)),
22357
22398
  cachedAt: oldest.cachedAt,
22358
22399
  };
22359
22400
  };
@@ -23856,7 +23897,7 @@ var objectResolverEngineOnLoginHandler = () => {
23856
23897
  */
23857
23898
  /**
23858
23899
  * ```js
23859
- * import { disconnectClient } from '@amityco/ts-sdk-react-native'
23900
+ * import { Client } from '@amityco/ts-sdk-react-native';
23860
23901
  * const success = await Client.logout()
23861
23902
  * ```
23862
23903
  *
@@ -24416,6 +24457,7 @@ const updateSubChannelUnreadFromMessage = (message) => {
24416
24457
  */
24417
24458
  const onMessageCreatedMqtt = (callback) => {
24418
24459
  const client = getActiveClient();
24460
+ const user = getActiveUser();
24419
24461
  const filter = async (rawPayload) => {
24420
24462
  const payload = await prepareMessagePayload(rawPayload);
24421
24463
  // update unreadCountInfo in cache
@@ -24428,6 +24470,8 @@ const onMessageCreatedMqtt = (callback) => {
24428
24470
  // Update in cache
24429
24471
  ingestInCache(payload);
24430
24472
  payload.messages.forEach(message => {
24473
+ if (message.creatorPrivateId === user._id)
24474
+ markReadMessage(message);
24431
24475
  callback(message);
24432
24476
  });
24433
24477
  };
@@ -25401,6 +25445,18 @@ const convertGetterPropsToStatic = (obj) => {
25401
25445
  return [key, value];
25402
25446
  });
25403
25447
  return Object.fromEntries(entries);
25448
+ };
25449
+ const removeFunctionProperties = (obj) => {
25450
+ if (!isObject(obj)) {
25451
+ return obj;
25452
+ }
25453
+ const entries = Object.entries(obj).map(([key, value]) => {
25454
+ if (typeof value === 'function') {
25455
+ return [key, undefined];
25456
+ }
25457
+ return [key, value];
25458
+ });
25459
+ return Object.fromEntries(entries);
25404
25460
  };
25405
25461
 
25406
25462
  /**
@@ -30024,39 +30080,6 @@ const unmuteChannel = async (channelId) => {
30024
30080
  };
30025
30081
  /* end_public_function */
30026
30082
 
30027
- /**
30028
- * ```js
30029
- * import { ChannelRepository } from '@amityco/ts-sdk-react-native'
30030
- * const success = await ChannelRepository.markAsRead('channelId')
30031
- * ```
30032
- *
30033
- * Updating all {@link Amity.SubChannel} in specify {@link Amity.Channel} as read
30034
- *
30035
- * @param channelId the ID of to specify {@link Amity.Channel}
30036
- * @returns A success boolean if the {@link Amity.Channel} was mark read
30037
- *
30038
- * @category Channel API
30039
- * @async
30040
- */
30041
- const markAsRead = async (channelId) => {
30042
- const client = getActiveClient();
30043
- client.log('channel/markAsRead', channelId);
30044
- const { data } = await client.http.put(`/api/v1/markers/channels/${channelId}/mark-read`);
30045
- const { userMarkers, userEntityMarkers: userEntityMarkersPayload, userFeedMarkers: userFeedMarkersPayload } = data, rest = __rest(data, ["userMarkers", "userEntityMarkers", "userFeedMarkers"]);
30046
- const cachedAt = client.cache && Date.now();
30047
- const channelMarkers = convertChannelMarkerResponse(userEntityMarkersPayload);
30048
- const subChannelMarkers = convertSubChannelMarkerResponse(userFeedMarkersPayload);
30049
- if (client.cache)
30050
- ingestInCache(Object.assign({ userMarkers, userEntityMarkers: channelMarkers, userFeedMarkers: subChannelMarkers }, rest), { cachedAt });
30051
- fireEvent('local.channelMarker.updated', {
30052
- userEntityMarkers: channelMarkers,
30053
- });
30054
- fireEvent('local.subChannelMarker.updated', {
30055
- userFeedMarkers: subChannelMarkers,
30056
- });
30057
- return true;
30058
- };
30059
-
30060
30083
  const convertEventPayload = (eventHandler, sourceModelProp, destinationDomain) => (callback) => eventHandler(sourceModel => {
30061
30084
  var _a;
30062
30085
  if (!sourceModel) {
@@ -30096,10 +30119,10 @@ const observeChannel = (channelId, callback) => {
30096
30119
  if (((_a = result.data) === null || _a === void 0 ? void 0 : _a.channelId) !== channelId)
30097
30120
  return;
30098
30121
  if (callback instanceof Function)
30099
- return callback(result);
30122
+ return callback(Object.assign(Object.assign({}, result), { data: LinkedObject.channel(result.data) }));
30100
30123
  if (action !== 'onFetch')
30101
- (_b = callback.onEvent) === null || _b === void 0 ? void 0 : _b.call(callback, action, result);
30102
- (_c = callback[action]) === null || _c === void 0 ? void 0 : _c.call(callback, result);
30124
+ (_b = callback.onEvent) === null || _b === void 0 ? void 0 : _b.call(callback, action, Object.assign(Object.assign({}, result), { data: LinkedObject.channel(result.data) }));
30125
+ (_c = callback[action]) === null || _c === void 0 ? void 0 : _c.call(callback, Object.assign(Object.assign({}, result), { data: LinkedObject.channel(result.data) }));
30103
30126
  };
30104
30127
  const disposers = [];
30105
30128
  disposers.push(onChannelUpdated(data => router({ data, loading: false, origin: 'event' }, "onUpdate" /* Amity.ChannelActionType.OnUpdate */)), onChannelDeleted(data => router({ data, loading: false, origin: 'event' }, "onDelete" /* Amity.ChannelActionType.OnDelete */)), onChannelJoined(data => router({ data, loading: false, origin: 'event' }, "onJoin" /* Amity.ChannelActionType.OnJoin */)), onChannelLeft(data => router({ data, loading: false, origin: 'event' }, "onLeft" /* Amity.ChannelActionType.OnLeft */)), onChannelMuted(data => router({ data, loading: false, origin: 'event' }, "onMute" /* Amity.ChannelActionType.OnMute */)), onChannelMemberAdded(data => router({ data, loading: false, origin: 'event' }, "onMemberAdded" /* Amity.ChannelActionType.OnMemberAdded */)), onChannelMemberRemoved(data => router({ data, loading: false, origin: 'event' }, "onMemberRemoved" /* Amity.ChannelActionType.OnMemberRemoved */)), convertEventPayload(onChannelMarkerFetched, 'entityId', 'channel')(data => router({ data, loading: false, origin: 'event' }, "onUpdate" /* Amity.ChannelActionType.OnUpdate */)));
@@ -30133,9 +30156,9 @@ const observeChannels = (callback) => {
30133
30156
  const router = (channel, action) => {
30134
30157
  var _a, _b;
30135
30158
  if (callback instanceof Function)
30136
- return callback(channel);
30137
- (_a = callback.onEvent) === null || _a === void 0 ? void 0 : _a.call(callback, action, channel);
30138
- (_b = callback[action]) === null || _b === void 0 ? void 0 : _b.call(callback, channel);
30159
+ return callback(LinkedObject.channel(channel));
30160
+ (_a = callback.onEvent) === null || _a === void 0 ? void 0 : _a.call(callback, action, LinkedObject.channel(channel));
30161
+ (_b = callback[action]) === null || _b === void 0 ? void 0 : _b.call(callback, LinkedObject.channel(channel));
30139
30162
  };
30140
30163
  disposers.push(onChannelCreated(data => router(data, "onCreate" /* Amity.ChannelActionType.OnCreate */)), onChannelUpdated(data => router(data, "onUpdate" /* Amity.ChannelActionType.OnUpdate */)), onChannelDeleted(data => router(data, "onDelete" /* Amity.ChannelActionType.OnDelete */)), onChannelJoined(data => router(data, "onJoin" /* Amity.ChannelActionType.OnJoin */)), onChannelLeft(data => router(data, "onLeft" /* Amity.ChannelActionType.OnLeft */)), onChannelMuted(data => router(data, "onMute" /* Amity.ChannelActionType.OnMute */)), onChannelMemberAdded(data => router(data, "onMemberAdded" /* Amity.ChannelActionType.OnMemberAdded */)), onChannelMemberRemoved(data => router(data, "onMemberRemoved" /* Amity.ChannelActionType.OnMemberRemoved */)), convertEventPayload(onChannelMarkerFetched, 'entityId', 'channel')(data => router(data, "onUpdate" /* Amity.ChannelActionType.OnUpdate */)));
30141
30164
  return () => {
@@ -31541,9 +31564,10 @@ class LiveCollectionController {
31541
31564
  }
31542
31565
  }
31543
31566
  shouldNotify(data) {
31544
- if (isEqual(this.snapshot, data))
31567
+ const newData = data.map(convertGetterPropsToStatic).map(removeFunctionProperties);
31568
+ if (isEqual(this.snapshot, newData))
31545
31569
  return false;
31546
- this.snapshot = data.map(payload => convertGetterPropsToStatic(payload));
31570
+ this.snapshot = newData;
31547
31571
  return true;
31548
31572
  }
31549
31573
  getCacheKey() {
@@ -31982,9 +32006,11 @@ const getSubChannel = (subChannelId, callback) => {
31982
32006
  updateSubChannelCache(message.subChannelId, subChannel, {
31983
32007
  messagePreviewId: message.messageId,
31984
32008
  });
31985
- callback(message);
31986
32009
  };
31987
- return onMessageCreatedMqtt(updateMessagePreview);
32010
+ return onMessageCreatedMqtt(async (message) => {
32011
+ await updateMessagePreview(message);
32012
+ callback(message);
32013
+ });
31988
32014
  }, 'subChannelId', 'subChannel'),
31989
32015
  convertEventPayload((callback) => {
31990
32016
  const updateMessagePreview = async (message) => {
@@ -32005,9 +32031,11 @@ const getSubChannel = (subChannelId, callback) => {
32005
32031
  updateSubChannelCache(message.subChannelId, subChannel, {
32006
32032
  messagePreviewId: message.messageId,
32007
32033
  });
32008
- callback(message);
32009
32034
  };
32010
- return onMessageCreatedLocal(updateMessagePreview);
32035
+ return onMessageCreatedLocal(async (message) => {
32036
+ await updateMessagePreview(message);
32037
+ callback(message);
32038
+ });
32011
32039
  }, 'subChannelId', 'subChannel'),
32012
32040
  convertEventPayload((callback) => {
32013
32041
  const updateMessagePreview = async (message) => {
@@ -32173,6 +32201,13 @@ class SubChannelLiveCollectionController extends LiveCollectionController {
32173
32201
  },
32174
32202
  {
32175
32203
  fn: callback => {
32204
+ const updateMessagePreview = async (message) => {
32205
+ const client = getActiveClient();
32206
+ const messagePreviewSetting = await client.getMessagePreviewSetting(false);
32207
+ if (messagePreviewSetting === "no-message-preview" /* Amity.MessagePreviewSetting.NO_MESSAGE_PREVIEW */)
32208
+ return;
32209
+ handleMessageCreated(message);
32210
+ };
32176
32211
  return onMessageCreatedMqtt(async (message) => {
32177
32212
  var _a, _b;
32178
32213
  const cacheData = pullFromCache([
@@ -32185,11 +32220,7 @@ class SubChannelLiveCollectionController extends LiveCollectionController {
32185
32220
  const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
32186
32221
  if (!collection || !collection.data.includes(message.subChannelId))
32187
32222
  return;
32188
- const client = getActiveClient();
32189
- const messagePreviewSetting = await client.getMessagePreviewSetting(false);
32190
- if (messagePreviewSetting === "no-message-preview" /* Amity.MessagePreviewSetting.NO_MESSAGE_PREVIEW */)
32191
- return;
32192
- handleMessageCreated(message);
32223
+ await updateMessagePreview(message);
32193
32224
  const subChannelCache = (_b = pullFromCache([
32194
32225
  'subChannel',
32195
32226
  'get',
@@ -32489,7 +32520,7 @@ const getChannel = (channelId, callback) => {
32489
32520
  const reactor = async (response) => {
32490
32521
  if (!response.data)
32491
32522
  return callback(response);
32492
- const data = Object.assign(Object.assign({}, response), { data: getChannelMessagePreviewWithUser(response.data) });
32523
+ const data = Object.assign(Object.assign({}, response), { data: LinkedObject.channel(getChannelMessagePreviewWithUser(response.data)) });
32493
32524
  const newSnapshot = __rest(data, ["origin"]);
32494
32525
  /**
32495
32526
  * check equality of previous data and current data to avoid redundancy
@@ -32531,7 +32562,10 @@ const getChannel = (channelId, callback) => {
32531
32562
  });
32532
32563
  callback(message);
32533
32564
  };
32534
- return onMessageCreatedMqtt(updateMessagePreview);
32565
+ return onMessageCreatedMqtt(async (message) => {
32566
+ await updateMessagePreview(message);
32567
+ callback(message);
32568
+ });
32535
32569
  }, 'channelId', 'channel'),
32536
32570
  convertEventPayload((callback) => {
32537
32571
  const updateMessagePreview = async (message) => {
@@ -32823,7 +32857,8 @@ class ChannelLiveCollectionController extends LiveCollectionController {
32823
32857
  .map(channelId => pullFromCache(['channel', 'get', channelId]))
32824
32858
  .filter(Boolean)
32825
32859
  .map(({ data }) => data)
32826
- .map(getChannelMessagePreviewWithUser)) !== null && _b !== void 0 ? _b : [];
32860
+ .map(getChannelMessagePreviewWithUser)
32861
+ .map(LinkedObject.channel)) !== null && _b !== void 0 ? _b : [];
32827
32862
  if (this.paginationController instanceof ChannelPaginationController) {
32828
32863
  data = this.applyFilter(data);
32829
32864
  }
@@ -34248,7 +34283,7 @@ function hasPermission(member, payload, permission) {
34248
34283
  return true;
34249
34284
  }
34250
34285
  return payload
34251
- .users.find(user => user.userId === member.userId)
34286
+ .communityUsers.find(user => user.userId === member.userId)
34252
34287
  .permissions.some(x => x === permission);
34253
34288
  }
34254
34289
  function getEventRelatedMember(event, payload) {
@@ -35972,7 +36007,6 @@ getPostByIds.locally = (postIds) => {
35972
36007
  const createPost = async (bundle) => {
35973
36008
  const client = getActiveClient();
35974
36009
  client.log('post/createPost', bundle);
35975
- // API-FIX: backend rejects that we pass the dataType manually T_T
35976
36010
  if (!bundle.dataType || ['text', 'image', 'file', 'video'].includes(bundle.dataType)) {
35977
36011
  // eslint-disable-next-line no-param-reassign
35978
36012
  delete bundle.dataType;