@amityco/ts-sdk-react-native 6.21.1 → 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 (73) 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/index.d.ts +1 -0
  22. package/dist/client/api/index.d.ts.map +1 -1
  23. package/dist/client/api/logout.d.ts +2 -2
  24. package/dist/client/api/secureLogout.d.ts +15 -0
  25. package/dist/client/api/secureLogout.d.ts.map +1 -0
  26. package/dist/core/liveCollection/LiveCollectionController.d.ts.map +1 -1
  27. package/dist/index.cjs.js +149 -87
  28. package/dist/index.esm.js +149 -87
  29. package/dist/index.umd.js +2 -2
  30. package/dist/messagePreview/utils/getChannelMessagePreviewWithUser.d.ts +35 -1
  31. package/dist/messagePreview/utils/getChannelMessagePreviewWithUser.d.ts.map +1 -1
  32. package/dist/messageRepository/events/onMessageCreated.d.ts.map +1 -1
  33. package/dist/messageRepository/utils/markReadMessage.d.ts +2 -0
  34. package/dist/messageRepository/utils/markReadMessage.d.ts.map +1 -0
  35. package/dist/postRepository/api/createPost.d.ts +1 -1
  36. package/dist/postRepository/api/createPost.d.ts.map +1 -1
  37. package/dist/subChannelRepository/observers/getSubChannel.d.ts.map +1 -1
  38. package/dist/subChannelRepository/observers/getSubChannels/SubChannelLiveCollectionController.d.ts.map +1 -1
  39. package/dist/utils/linkedObject/channelLinkedObject.d.ts +2 -0
  40. package/dist/utils/linkedObject/channelLinkedObject.d.ts.map +1 -0
  41. package/dist/utils/linkedObject/index.d.ts +1 -0
  42. package/dist/utils/linkedObject/index.d.ts.map +1 -1
  43. package/dist/utils/linkedObject/messageLinkedObject.d.ts.map +1 -1
  44. package/dist/utils/object.d.ts +1 -0
  45. package/dist/utils/object.d.ts.map +1 -1
  46. package/package.json +1 -1
  47. package/src/@types/domains/channel.ts +1 -0
  48. package/src/@types/domains/post.ts +3 -3
  49. package/src/channelRepository/api/getChannel.ts +1 -1
  50. package/src/channelRepository/api/getChannelByIds.ts +4 -3
  51. package/src/channelRepository/api/markAsRead.ts +6 -2
  52. package/src/channelRepository/channelMembership/observers/getMembers/ChannelMemberQueryStreamController.ts +5 -2
  53. package/src/channelRepository/events/onChannelMemberRoleAdded.ts +1 -1
  54. package/src/channelRepository/events/onChannelMemberRoleRemoved.ts +1 -1
  55. package/src/channelRepository/observers/getChannel.ts +6 -2
  56. package/src/channelRepository/observers/getChannels/ChannelLiveCollectionController.ts +3 -1
  57. package/src/channelRepository/observers/observeChannel.ts +15 -3
  58. package/src/channelRepository/observers/observeChannels.ts +8 -4
  59. package/src/client/api/index.ts +1 -0
  60. package/src/client/api/logout.ts +2 -2
  61. package/src/client/api/secureLogout.ts +33 -0
  62. package/src/communityRepository/communityMembership/events/utils.ts +2 -2
  63. package/src/core/liveCollection/LiveCollectionController.ts +4 -3
  64. package/src/messagePreview/utils/getChannelMessagePreviewWithUser.ts +5 -1
  65. package/src/messageRepository/events/onMessageCreated.ts +4 -0
  66. package/src/messageRepository/utils/markReadMessage.ts +8 -0
  67. package/src/postRepository/api/createPost.ts +1 -2
  68. package/src/subChannelRepository/observers/getSubChannel.ts +8 -4
  69. package/src/subChannelRepository/observers/getSubChannels/SubChannelLiveCollectionController.ts +9 -6
  70. package/src/utils/linkedObject/channelLinkedObject.ts +8 -0
  71. package/src/utils/linkedObject/index.ts +2 -0
  72. package/src/utils/linkedObject/messageLinkedObject.ts +2 -7
  73. package/src/utils/object.ts +15 -0
package/dist/index.cjs.js CHANGED
@@ -113,13 +113,12 @@ const PostContentType = Object.freeze({
113
113
  VIDEO: 'video',
114
114
  LIVESTREAM: 'liveStream',
115
115
  POLL: 'poll',
116
- CUSTOM: 'custom',
117
116
  });
118
117
 
119
118
  function getVersion() {
120
119
  try {
121
- // the string ''v6.21.1-cjs'' should be replaced by actual value by @rollup/plugin-replace
122
- return 'v6.21.1-cjs';
120
+ // the string ''v6.23.0-cjs'' should be replaced by actual value by @rollup/plugin-replace
121
+ return 'v6.23.0-cjs';
123
122
  }
124
123
  catch (error) {
125
124
  return '__dev__';
@@ -5385,6 +5384,27 @@ const postLinkedObject = (post) => {
5385
5384
  } });
5386
5385
  };
5387
5386
 
5387
+ const getCachedMarker$2 = (message) => {
5388
+ var _a, _b;
5389
+ const key = {
5390
+ creatorId: 'creatorPrivateId' in message ? message.creatorPrivateId : message.creatorId,
5391
+ feedId: (_a = message.messageFeedId) !== null && _a !== void 0 ? _a : message.subChannelId,
5392
+ contentId: message.messageId,
5393
+ };
5394
+ return (_b = pullFromCache([
5395
+ 'messageMarker',
5396
+ 'get',
5397
+ getResolver('messageMarker')(key),
5398
+ ])) === null || _b === void 0 ? void 0 : _b.data;
5399
+ };
5400
+ const getMessageReadCount = (message, marker) => {
5401
+ var _a;
5402
+ // Look in the marker param first
5403
+ return (_a = marker !== null && marker !== void 0 ? marker :
5404
+ // If the marker param is not set, look in the cache
5405
+ getCachedMarker$2(message)) !== null && _a !== void 0 ? _a : { readCount: 0, deliveredCount: 0 };
5406
+ }; // and if not found in cache use default value `0`
5407
+
5388
5408
  /**
5389
5409
  *
5390
5410
  * Mark subChannel as read by readToSegment
@@ -5643,26 +5663,11 @@ var ReadReceiptSyncEngine = {
5643
5663
  },
5644
5664
  };
5645
5665
 
5646
- const getCachedMarker$2 = (message) => {
5647
- var _a, _b;
5648
- const key = {
5649
- creatorId: 'creatorPrivateId' in message ? message.creatorPrivateId : message.creatorId,
5650
- feedId: (_a = message.messageFeedId) !== null && _a !== void 0 ? _a : message.subChannelId,
5651
- contentId: message.messageId,
5652
- };
5653
- return (_b = pullFromCache([
5654
- 'messageMarker',
5655
- 'get',
5656
- getResolver('messageMarker')(key),
5657
- ])) === null || _b === void 0 ? void 0 : _b.data;
5658
- };
5659
- const getMessageReadCount = (message, marker) => {
5660
- var _a;
5661
- // Look in the marker param first
5662
- return (_a = marker !== null && marker !== void 0 ? marker :
5663
- // If the marker param is not set, look in the cache
5664
- getCachedMarker$2(message)) !== null && _a !== void 0 ? _a : { readCount: 0, deliveredCount: 0 };
5665
- }; // and if not found in cache use default value `0`
5666
+ const markReadMessage = (message) => {
5667
+ const { subChannelId, channelSegment } = message;
5668
+ const markReadReceiptEngine = ReadReceiptSyncEngine.getInstance();
5669
+ markReadReceiptEngine.markRead(subChannelId, channelSegment);
5670
+ };
5666
5671
 
5667
5672
  const messageLinkedObject = (message) => {
5668
5673
  const rest = __rest(message, ["creatorPrivateId"]);
@@ -5671,11 +5676,7 @@ const messageLinkedObject = (message) => {
5671
5676
  },
5672
5677
  get deliveredCount() {
5673
5678
  return getMessageReadCount(message).deliveredCount;
5674
- }, markRead: () => {
5675
- const { subChannelId, channelSegment } = message;
5676
- const markReadReceiptEngine = ReadReceiptSyncEngine.getInstance();
5677
- markReadReceiptEngine.markRead(subChannelId, channelSegment);
5678
- } });
5679
+ }, markRead: () => markReadMessage(message) });
5679
5680
  };
5680
5681
 
5681
5682
  const reactorLinkedObject = (reactor) => {
@@ -5688,6 +5689,45 @@ const reactorLinkedObject = (reactor) => {
5688
5689
  } });
5689
5690
  };
5690
5691
 
5692
+ /**
5693
+ * ```js
5694
+ * import { ChannelRepository } from '@amityco/ts-sdk-react-native'
5695
+ * const success = await ChannelRepository.markAsRead('channelId')
5696
+ * ```
5697
+ *
5698
+ * @deprecated Please use the {@link Amity.Channel.markAsRead} method instead
5699
+ *
5700
+ * Updating all {@link Amity.SubChannel} in specify {@link Amity.Channel} as read
5701
+ *
5702
+ * @param channelId the ID of to specify {@link Amity.Channel}
5703
+ * @returns A success boolean if the {@link Amity.Channel} was mark read
5704
+ *
5705
+ * @category Channel API
5706
+ * @async
5707
+ */
5708
+ const markAsRead = async (channelId) => {
5709
+ const client = getActiveClient();
5710
+ client.log('channel/markAsRead', channelId);
5711
+ const { data } = await client.http.put(`/api/v1/markers/channels/${channelId}/mark-read`);
5712
+ const { userMarkers, userEntityMarkers: userEntityMarkersPayload, userFeedMarkers: userFeedMarkersPayload } = data, rest = __rest(data, ["userMarkers", "userEntityMarkers", "userFeedMarkers"]);
5713
+ const cachedAt = client.cache && Date.now();
5714
+ const channelMarkers = convertChannelMarkerResponse(userEntityMarkersPayload);
5715
+ const subChannelMarkers = convertSubChannelMarkerResponse(userFeedMarkersPayload);
5716
+ if (client.cache)
5717
+ ingestInCache(Object.assign({ userMarkers, userEntityMarkers: channelMarkers, userFeedMarkers: subChannelMarkers }, rest), { cachedAt });
5718
+ fireEvent('local.channelMarker.updated', {
5719
+ userEntityMarkers: channelMarkers,
5720
+ });
5721
+ fireEvent('local.subChannelMarker.updated', {
5722
+ userFeedMarkers: subChannelMarkers,
5723
+ });
5724
+ return true;
5725
+ };
5726
+
5727
+ const channelLinkedObject = (channel) => {
5728
+ return Object.assign(Object.assign({}, channel), { markAsRead: () => markAsRead(channel.channelInternalId) });
5729
+ };
5730
+
5691
5731
  const LinkedObject = {
5692
5732
  comment: commentLinkedObject,
5693
5733
  post: postLinkedObject,
@@ -5697,6 +5737,7 @@ const LinkedObject = {
5697
5737
  storyTarget: storyTargetLinkedObject,
5698
5738
  message: messageLinkedObject,
5699
5739
  reactor: reactorLinkedObject,
5740
+ channel: channelLinkedObject,
5700
5741
  };
5701
5742
 
5702
5743
  const getChannelMessagePreviewWithUser = (channel) => {
@@ -6251,7 +6292,7 @@ const getChannelByIds = async (channelIds) => {
6251
6292
  ingestInCache(data, { cachedAt });
6252
6293
  fireEvent('local.channel.fetched', data.channels);
6253
6294
  return {
6254
- data: data.channels,
6295
+ data: data.channels.map(channel => LinkedObject.channel(channel)),
6255
6296
  cachedAt,
6256
6297
  };
6257
6298
  };
@@ -6282,7 +6323,7 @@ getChannelByIds.locally = (channelIds) => {
6282
6323
  const channels = cached.map(({ data }) => data);
6283
6324
  const oldest = (_b = cached.sort((a, b) => (a.cachedAt < b.cachedAt ? -1 : 1))) === null || _b === void 0 ? void 0 : _b[0];
6284
6325
  return {
6285
- data: channels,
6326
+ data: channels.map(channel => LinkedObject.channel(channel)),
6286
6327
  cachedAt: oldest.cachedAt,
6287
6328
  };
6288
6329
  };
@@ -7785,8 +7826,8 @@ var objectResolverEngineOnLoginHandler = () => {
7785
7826
  */
7786
7827
  /**
7787
7828
  * ```js
7788
- * import { disconnectClient } from '@amityco/ts-sdk-react-native'
7789
- * const success = await disconnectClient()
7829
+ * import { Client } from '@amityco/ts-sdk-react-native';
7830
+ * const success = await Client.logout()
7790
7831
  * ```
7791
7832
  *
7792
7833
  * Disconnects an {@link Amity.Client} instance from ASC servers
@@ -8345,6 +8386,7 @@ const updateSubChannelUnreadFromMessage = (message) => {
8345
8386
  */
8346
8387
  const onMessageCreatedMqtt = (callback) => {
8347
8388
  const client = getActiveClient();
8389
+ const user = getActiveUser();
8348
8390
  const filter = async (rawPayload) => {
8349
8391
  const payload = await prepareMessagePayload(rawPayload);
8350
8392
  // update unreadCountInfo in cache
@@ -8357,6 +8399,8 @@ const onMessageCreatedMqtt = (callback) => {
8357
8399
  // Update in cache
8358
8400
  ingestInCache(payload);
8359
8401
  payload.messages.forEach(message => {
8402
+ if (message.creatorPrivateId === user._id)
8403
+ markReadMessage(message);
8360
8404
  callback(message);
8361
8405
  });
8362
8406
  };
@@ -9053,6 +9097,33 @@ const createClient = (apiKey, apiRegion = API_REGIONS.SG, { debugSession = DEFAU
9053
9097
  return client;
9054
9098
  };
9055
9099
 
9100
+ /* begin_public_function
9101
+ id: client.secureLogout
9102
+ */
9103
+ /**
9104
+ * ```js
9105
+ * import { Client } from '@amityco/ts-sdk'
9106
+ * const success = await Client.secureLogout()
9107
+ * ```
9108
+ *
9109
+ * Revoke access token for current user and disconnects an {@link Amity.Client} instance from ASC servers
9110
+ *
9111
+ * @returns a success boolean if disconnected
9112
+ *
9113
+ * @category Client API
9114
+ * @async
9115
+ */
9116
+ const secureLogout = async () => {
9117
+ const client = getActiveClient();
9118
+ const { data: { success }, } = await client.http.delete('/api/v4/sessions');
9119
+ if (!success) {
9120
+ throw new Error('Failed to logout');
9121
+ }
9122
+ const result = await logout();
9123
+ return result;
9124
+ };
9125
+ /* end_public_function */
9126
+
9056
9127
  /**
9057
9128
  * ```js
9058
9129
  * import { isConnected } from '@amityco/ts-sdk-react-native'
@@ -9303,6 +9374,18 @@ const convertGetterPropsToStatic = (obj) => {
9303
9374
  return [key, value];
9304
9375
  });
9305
9376
  return Object.fromEntries(entries);
9377
+ };
9378
+ const removeFunctionProperties = (obj) => {
9379
+ if (!isObject(obj)) {
9380
+ return obj;
9381
+ }
9382
+ const entries = Object.entries(obj).map(([key, value]) => {
9383
+ if (typeof value === 'function') {
9384
+ return [key, undefined];
9385
+ }
9386
+ return [key, value];
9387
+ });
9388
+ return Object.fromEntries(entries);
9306
9389
  };
9307
9390
 
9308
9391
  /**
@@ -9583,6 +9666,7 @@ var index$k = /*#__PURE__*/Object.freeze({
9583
9666
  createClient: createClient,
9584
9667
  login: login,
9585
9668
  logout: logout,
9669
+ secureLogout: secureLogout,
9586
9670
  isConnected: isConnected,
9587
9671
  getFeedSettings: getFeedSettings,
9588
9672
  renewal: renewal,
@@ -13925,39 +14009,6 @@ const unmuteChannel = async (channelId) => {
13925
14009
  };
13926
14010
  /* end_public_function */
13927
14011
 
13928
- /**
13929
- * ```js
13930
- * import { ChannelRepository } from '@amityco/ts-sdk-react-native'
13931
- * const success = await ChannelRepository.markAsRead('channelId')
13932
- * ```
13933
- *
13934
- * Updating all {@link Amity.SubChannel} in specify {@link Amity.Channel} as read
13935
- *
13936
- * @param channelId the ID of to specify {@link Amity.Channel}
13937
- * @returns A success boolean if the {@link Amity.Channel} was mark read
13938
- *
13939
- * @category Channel API
13940
- * @async
13941
- */
13942
- const markAsRead = async (channelId) => {
13943
- const client = getActiveClient();
13944
- client.log('channel/markAsRead', channelId);
13945
- const { data } = await client.http.put(`/api/v1/markers/channels/${channelId}/mark-read`);
13946
- const { userMarkers, userEntityMarkers: userEntityMarkersPayload, userFeedMarkers: userFeedMarkersPayload } = data, rest = __rest(data, ["userMarkers", "userEntityMarkers", "userFeedMarkers"]);
13947
- const cachedAt = client.cache && Date.now();
13948
- const channelMarkers = convertChannelMarkerResponse(userEntityMarkersPayload);
13949
- const subChannelMarkers = convertSubChannelMarkerResponse(userFeedMarkersPayload);
13950
- if (client.cache)
13951
- ingestInCache(Object.assign({ userMarkers, userEntityMarkers: channelMarkers, userFeedMarkers: subChannelMarkers }, rest), { cachedAt });
13952
- fireEvent('local.channelMarker.updated', {
13953
- userEntityMarkers: channelMarkers,
13954
- });
13955
- fireEvent('local.subChannelMarker.updated', {
13956
- userFeedMarkers: subChannelMarkers,
13957
- });
13958
- return true;
13959
- };
13960
-
13961
14012
  const convertEventPayload = (eventHandler, sourceModelProp, destinationDomain) => (callback) => eventHandler(sourceModel => {
13962
14013
  var _a;
13963
14014
  if (!sourceModel) {
@@ -13997,10 +14048,10 @@ const observeChannel = (channelId, callback) => {
13997
14048
  if (((_a = result.data) === null || _a === void 0 ? void 0 : _a.channelId) !== channelId)
13998
14049
  return;
13999
14050
  if (callback instanceof Function)
14000
- return callback(result);
14051
+ return callback(Object.assign(Object.assign({}, result), { data: LinkedObject.channel(result.data) }));
14001
14052
  if (action !== 'onFetch')
14002
- (_b = callback.onEvent) === null || _b === void 0 ? void 0 : _b.call(callback, action, result);
14003
- (_c = callback[action]) === null || _c === void 0 ? void 0 : _c.call(callback, result);
14053
+ (_b = callback.onEvent) === null || _b === void 0 ? void 0 : _b.call(callback, action, Object.assign(Object.assign({}, result), { data: LinkedObject.channel(result.data) }));
14054
+ (_c = callback[action]) === null || _c === void 0 ? void 0 : _c.call(callback, Object.assign(Object.assign({}, result), { data: LinkedObject.channel(result.data) }));
14004
14055
  };
14005
14056
  const disposers = [];
14006
14057
  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 */)));
@@ -14034,9 +14085,9 @@ const observeChannels = (callback) => {
14034
14085
  const router = (channel, action) => {
14035
14086
  var _a, _b;
14036
14087
  if (callback instanceof Function)
14037
- return callback(channel);
14038
- (_a = callback.onEvent) === null || _a === void 0 ? void 0 : _a.call(callback, action, channel);
14039
- (_b = callback[action]) === null || _b === void 0 ? void 0 : _b.call(callback, channel);
14088
+ return callback(LinkedObject.channel(channel));
14089
+ (_a = callback.onEvent) === null || _a === void 0 ? void 0 : _a.call(callback, action, LinkedObject.channel(channel));
14090
+ (_b = callback[action]) === null || _b === void 0 ? void 0 : _b.call(callback, LinkedObject.channel(channel));
14040
14091
  };
14041
14092
  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 */)));
14042
14093
  return () => {
@@ -15442,9 +15493,10 @@ class LiveCollectionController {
15442
15493
  }
15443
15494
  }
15444
15495
  shouldNotify(data) {
15445
- if (isEqual(this.snapshot, data))
15496
+ const newData = data.map(convertGetterPropsToStatic).map(removeFunctionProperties);
15497
+ if (isEqual(this.snapshot, newData))
15446
15498
  return false;
15447
- this.snapshot = data.map(payload => convertGetterPropsToStatic(payload));
15499
+ this.snapshot = newData;
15448
15500
  return true;
15449
15501
  }
15450
15502
  getCacheKey() {
@@ -15883,9 +15935,11 @@ const getSubChannel = (subChannelId, callback) => {
15883
15935
  updateSubChannelCache(message.subChannelId, subChannel, {
15884
15936
  messagePreviewId: message.messageId,
15885
15937
  });
15886
- callback(message);
15887
15938
  };
15888
- return onMessageCreatedMqtt(updateMessagePreview);
15939
+ return onMessageCreatedMqtt(async (message) => {
15940
+ await updateMessagePreview(message);
15941
+ callback(message);
15942
+ });
15889
15943
  }, 'subChannelId', 'subChannel'),
15890
15944
  convertEventPayload((callback) => {
15891
15945
  const updateMessagePreview = async (message) => {
@@ -15906,9 +15960,11 @@ const getSubChannel = (subChannelId, callback) => {
15906
15960
  updateSubChannelCache(message.subChannelId, subChannel, {
15907
15961
  messagePreviewId: message.messageId,
15908
15962
  });
15909
- callback(message);
15910
15963
  };
15911
- return onMessageCreatedLocal(updateMessagePreview);
15964
+ return onMessageCreatedLocal(async (message) => {
15965
+ await updateMessagePreview(message);
15966
+ callback(message);
15967
+ });
15912
15968
  }, 'subChannelId', 'subChannel'),
15913
15969
  convertEventPayload((callback) => {
15914
15970
  const updateMessagePreview = async (message) => {
@@ -16074,6 +16130,13 @@ class SubChannelLiveCollectionController extends LiveCollectionController {
16074
16130
  },
16075
16131
  {
16076
16132
  fn: callback => {
16133
+ const updateMessagePreview = async (message) => {
16134
+ const client = getActiveClient();
16135
+ const messagePreviewSetting = await client.getMessagePreviewSetting(false);
16136
+ if (messagePreviewSetting === "no-message-preview" /* Amity.MessagePreviewSetting.NO_MESSAGE_PREVIEW */)
16137
+ return;
16138
+ handleMessageCreated(message);
16139
+ };
16077
16140
  return onMessageCreatedMqtt(async (message) => {
16078
16141
  var _a, _b;
16079
16142
  const cacheData = pullFromCache([
@@ -16086,11 +16149,7 @@ class SubChannelLiveCollectionController extends LiveCollectionController {
16086
16149
  const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
16087
16150
  if (!collection || !collection.data.includes(message.subChannelId))
16088
16151
  return;
16089
- const client = getActiveClient();
16090
- const messagePreviewSetting = await client.getMessagePreviewSetting(false);
16091
- if (messagePreviewSetting === "no-message-preview" /* Amity.MessagePreviewSetting.NO_MESSAGE_PREVIEW */)
16092
- return;
16093
- handleMessageCreated(message);
16152
+ await updateMessagePreview(message);
16094
16153
  const subChannelCache = (_b = pullFromCache([
16095
16154
  'subChannel',
16096
16155
  'get',
@@ -16390,7 +16449,7 @@ const getChannel = (channelId, callback) => {
16390
16449
  const reactor = async (response) => {
16391
16450
  if (!response.data)
16392
16451
  return callback(response);
16393
- const data = Object.assign(Object.assign({}, response), { data: getChannelMessagePreviewWithUser(response.data) });
16452
+ const data = Object.assign(Object.assign({}, response), { data: LinkedObject.channel(getChannelMessagePreviewWithUser(response.data)) });
16394
16453
  const newSnapshot = __rest(data, ["origin"]);
16395
16454
  /**
16396
16455
  * check equality of previous data and current data to avoid redundancy
@@ -16432,7 +16491,10 @@ const getChannel = (channelId, callback) => {
16432
16491
  });
16433
16492
  callback(message);
16434
16493
  };
16435
- return onMessageCreatedMqtt(updateMessagePreview);
16494
+ return onMessageCreatedMqtt(async (message) => {
16495
+ await updateMessagePreview(message);
16496
+ callback(message);
16497
+ });
16436
16498
  }, 'channelId', 'channel'),
16437
16499
  convertEventPayload((callback) => {
16438
16500
  const updateMessagePreview = async (message) => {
@@ -16724,7 +16786,8 @@ class ChannelLiveCollectionController extends LiveCollectionController {
16724
16786
  .map(channelId => pullFromCache(['channel', 'get', channelId]))
16725
16787
  .filter(Boolean)
16726
16788
  .map(({ data }) => data)
16727
- .map(getChannelMessagePreviewWithUser)) !== null && _b !== void 0 ? _b : [];
16789
+ .map(getChannelMessagePreviewWithUser)
16790
+ .map(LinkedObject.channel)) !== null && _b !== void 0 ? _b : [];
16728
16791
  if (this.paginationController instanceof ChannelPaginationController) {
16729
16792
  data = this.applyFilter(data);
16730
16793
  }
@@ -18149,7 +18212,7 @@ function hasPermission(member, payload, permission) {
18149
18212
  return true;
18150
18213
  }
18151
18214
  return payload
18152
- .users.find(user => user.userId === member.userId)
18215
+ .communityUsers.find(user => user.userId === member.userId)
18153
18216
  .permissions.some(x => x === permission);
18154
18217
  }
18155
18218
  function getEventRelatedMember(event, payload) {
@@ -19873,7 +19936,6 @@ getPostByIds.locally = (postIds) => {
19873
19936
  const createPost = async (bundle) => {
19874
19937
  const client = getActiveClient();
19875
19938
  client.log('post/createPost', bundle);
19876
- // API-FIX: backend rejects that we pass the dataType manually T_T
19877
19939
  if (!bundle.dataType || ['text', 'image', 'file', 'video'].includes(bundle.dataType)) {
19878
19940
  // eslint-disable-next-line no-param-reassign
19879
19941
  delete bundle.dataType;