@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.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.21.1-esm'' should be replaced by actual value by @rollup/plugin-replace
88
- return 'v6.21.1-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,8 +23897,8 @@ var objectResolverEngineOnLoginHandler = () => {
23856
23897
  */
23857
23898
  /**
23858
23899
  * ```js
23859
- * import { disconnectClient } from '@amityco/ts-sdk-react-native'
23860
- * const success = await disconnectClient()
23900
+ * import { Client } from '@amityco/ts-sdk-react-native';
23901
+ * const success = await Client.logout()
23861
23902
  * ```
23862
23903
  *
23863
23904
  * Disconnects an {@link Amity.Client} instance from ASC servers
@@ -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
  };
@@ -25124,6 +25168,33 @@ const createClient = (apiKey, apiRegion = API_REGIONS.SG, { debugSession = DEFAU
25124
25168
  return client;
25125
25169
  };
25126
25170
 
25171
+ /* begin_public_function
25172
+ id: client.secureLogout
25173
+ */
25174
+ /**
25175
+ * ```js
25176
+ * import { Client } from '@amityco/ts-sdk'
25177
+ * const success = await Client.secureLogout()
25178
+ * ```
25179
+ *
25180
+ * Revoke access token for current user and disconnects an {@link Amity.Client} instance from ASC servers
25181
+ *
25182
+ * @returns a success boolean if disconnected
25183
+ *
25184
+ * @category Client API
25185
+ * @async
25186
+ */
25187
+ const secureLogout = async () => {
25188
+ const client = getActiveClient();
25189
+ const { data: { success }, } = await client.http.delete('/api/v4/sessions');
25190
+ if (!success) {
25191
+ throw new Error('Failed to logout');
25192
+ }
25193
+ const result = await logout();
25194
+ return result;
25195
+ };
25196
+ /* end_public_function */
25197
+
25127
25198
  /**
25128
25199
  * ```js
25129
25200
  * import { isConnected } from '@amityco/ts-sdk-react-native'
@@ -25374,6 +25445,18 @@ const convertGetterPropsToStatic = (obj) => {
25374
25445
  return [key, value];
25375
25446
  });
25376
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);
25377
25460
  };
25378
25461
 
25379
25462
  /**
@@ -25654,6 +25737,7 @@ var index$k = /*#__PURE__*/Object.freeze({
25654
25737
  createClient: createClient,
25655
25738
  login: login,
25656
25739
  logout: logout,
25740
+ secureLogout: secureLogout,
25657
25741
  isConnected: isConnected,
25658
25742
  getFeedSettings: getFeedSettings,
25659
25743
  renewal: renewal,
@@ -29996,39 +30080,6 @@ const unmuteChannel = async (channelId) => {
29996
30080
  };
29997
30081
  /* end_public_function */
29998
30082
 
29999
- /**
30000
- * ```js
30001
- * import { ChannelRepository } from '@amityco/ts-sdk-react-native'
30002
- * const success = await ChannelRepository.markAsRead('channelId')
30003
- * ```
30004
- *
30005
- * Updating all {@link Amity.SubChannel} in specify {@link Amity.Channel} as read
30006
- *
30007
- * @param channelId the ID of to specify {@link Amity.Channel}
30008
- * @returns A success boolean if the {@link Amity.Channel} was mark read
30009
- *
30010
- * @category Channel API
30011
- * @async
30012
- */
30013
- const markAsRead = async (channelId) => {
30014
- const client = getActiveClient();
30015
- client.log('channel/markAsRead', channelId);
30016
- const { data } = await client.http.put(`/api/v1/markers/channels/${channelId}/mark-read`);
30017
- const { userMarkers, userEntityMarkers: userEntityMarkersPayload, userFeedMarkers: userFeedMarkersPayload } = data, rest = __rest(data, ["userMarkers", "userEntityMarkers", "userFeedMarkers"]);
30018
- const cachedAt = client.cache && Date.now();
30019
- const channelMarkers = convertChannelMarkerResponse(userEntityMarkersPayload);
30020
- const subChannelMarkers = convertSubChannelMarkerResponse(userFeedMarkersPayload);
30021
- if (client.cache)
30022
- ingestInCache(Object.assign({ userMarkers, userEntityMarkers: channelMarkers, userFeedMarkers: subChannelMarkers }, rest), { cachedAt });
30023
- fireEvent('local.channelMarker.updated', {
30024
- userEntityMarkers: channelMarkers,
30025
- });
30026
- fireEvent('local.subChannelMarker.updated', {
30027
- userFeedMarkers: subChannelMarkers,
30028
- });
30029
- return true;
30030
- };
30031
-
30032
30083
  const convertEventPayload = (eventHandler, sourceModelProp, destinationDomain) => (callback) => eventHandler(sourceModel => {
30033
30084
  var _a;
30034
30085
  if (!sourceModel) {
@@ -30068,10 +30119,10 @@ const observeChannel = (channelId, callback) => {
30068
30119
  if (((_a = result.data) === null || _a === void 0 ? void 0 : _a.channelId) !== channelId)
30069
30120
  return;
30070
30121
  if (callback instanceof Function)
30071
- return callback(result);
30122
+ return callback(Object.assign(Object.assign({}, result), { data: LinkedObject.channel(result.data) }));
30072
30123
  if (action !== 'onFetch')
30073
- (_b = callback.onEvent) === null || _b === void 0 ? void 0 : _b.call(callback, action, result);
30074
- (_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) }));
30075
30126
  };
30076
30127
  const disposers = [];
30077
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 */)));
@@ -30105,9 +30156,9 @@ const observeChannels = (callback) => {
30105
30156
  const router = (channel, action) => {
30106
30157
  var _a, _b;
30107
30158
  if (callback instanceof Function)
30108
- return callback(channel);
30109
- (_a = callback.onEvent) === null || _a === void 0 ? void 0 : _a.call(callback, action, channel);
30110
- (_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));
30111
30162
  };
30112
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 */)));
30113
30164
  return () => {
@@ -31513,9 +31564,10 @@ class LiveCollectionController {
31513
31564
  }
31514
31565
  }
31515
31566
  shouldNotify(data) {
31516
- if (isEqual(this.snapshot, data))
31567
+ const newData = data.map(convertGetterPropsToStatic).map(removeFunctionProperties);
31568
+ if (isEqual(this.snapshot, newData))
31517
31569
  return false;
31518
- this.snapshot = data.map(payload => convertGetterPropsToStatic(payload));
31570
+ this.snapshot = newData;
31519
31571
  return true;
31520
31572
  }
31521
31573
  getCacheKey() {
@@ -31954,9 +32006,11 @@ const getSubChannel = (subChannelId, callback) => {
31954
32006
  updateSubChannelCache(message.subChannelId, subChannel, {
31955
32007
  messagePreviewId: message.messageId,
31956
32008
  });
31957
- callback(message);
31958
32009
  };
31959
- return onMessageCreatedMqtt(updateMessagePreview);
32010
+ return onMessageCreatedMqtt(async (message) => {
32011
+ await updateMessagePreview(message);
32012
+ callback(message);
32013
+ });
31960
32014
  }, 'subChannelId', 'subChannel'),
31961
32015
  convertEventPayload((callback) => {
31962
32016
  const updateMessagePreview = async (message) => {
@@ -31977,9 +32031,11 @@ const getSubChannel = (subChannelId, callback) => {
31977
32031
  updateSubChannelCache(message.subChannelId, subChannel, {
31978
32032
  messagePreviewId: message.messageId,
31979
32033
  });
31980
- callback(message);
31981
32034
  };
31982
- return onMessageCreatedLocal(updateMessagePreview);
32035
+ return onMessageCreatedLocal(async (message) => {
32036
+ await updateMessagePreview(message);
32037
+ callback(message);
32038
+ });
31983
32039
  }, 'subChannelId', 'subChannel'),
31984
32040
  convertEventPayload((callback) => {
31985
32041
  const updateMessagePreview = async (message) => {
@@ -32145,6 +32201,13 @@ class SubChannelLiveCollectionController extends LiveCollectionController {
32145
32201
  },
32146
32202
  {
32147
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
+ };
32148
32211
  return onMessageCreatedMqtt(async (message) => {
32149
32212
  var _a, _b;
32150
32213
  const cacheData = pullFromCache([
@@ -32157,11 +32220,7 @@ class SubChannelLiveCollectionController extends LiveCollectionController {
32157
32220
  const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
32158
32221
  if (!collection || !collection.data.includes(message.subChannelId))
32159
32222
  return;
32160
- const client = getActiveClient();
32161
- const messagePreviewSetting = await client.getMessagePreviewSetting(false);
32162
- if (messagePreviewSetting === "no-message-preview" /* Amity.MessagePreviewSetting.NO_MESSAGE_PREVIEW */)
32163
- return;
32164
- handleMessageCreated(message);
32223
+ await updateMessagePreview(message);
32165
32224
  const subChannelCache = (_b = pullFromCache([
32166
32225
  'subChannel',
32167
32226
  'get',
@@ -32461,7 +32520,7 @@ const getChannel = (channelId, callback) => {
32461
32520
  const reactor = async (response) => {
32462
32521
  if (!response.data)
32463
32522
  return callback(response);
32464
- 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)) });
32465
32524
  const newSnapshot = __rest(data, ["origin"]);
32466
32525
  /**
32467
32526
  * check equality of previous data and current data to avoid redundancy
@@ -32503,7 +32562,10 @@ const getChannel = (channelId, callback) => {
32503
32562
  });
32504
32563
  callback(message);
32505
32564
  };
32506
- return onMessageCreatedMqtt(updateMessagePreview);
32565
+ return onMessageCreatedMqtt(async (message) => {
32566
+ await updateMessagePreview(message);
32567
+ callback(message);
32568
+ });
32507
32569
  }, 'channelId', 'channel'),
32508
32570
  convertEventPayload((callback) => {
32509
32571
  const updateMessagePreview = async (message) => {
@@ -32795,7 +32857,8 @@ class ChannelLiveCollectionController extends LiveCollectionController {
32795
32857
  .map(channelId => pullFromCache(['channel', 'get', channelId]))
32796
32858
  .filter(Boolean)
32797
32859
  .map(({ data }) => data)
32798
- .map(getChannelMessagePreviewWithUser)) !== null && _b !== void 0 ? _b : [];
32860
+ .map(getChannelMessagePreviewWithUser)
32861
+ .map(LinkedObject.channel)) !== null && _b !== void 0 ? _b : [];
32799
32862
  if (this.paginationController instanceof ChannelPaginationController) {
32800
32863
  data = this.applyFilter(data);
32801
32864
  }
@@ -34220,7 +34283,7 @@ function hasPermission(member, payload, permission) {
34220
34283
  return true;
34221
34284
  }
34222
34285
  return payload
34223
- .users.find(user => user.userId === member.userId)
34286
+ .communityUsers.find(user => user.userId === member.userId)
34224
34287
  .permissions.some(x => x === permission);
34225
34288
  }
34226
34289
  function getEventRelatedMember(event, payload) {
@@ -35944,7 +36007,6 @@ getPostByIds.locally = (postIds) => {
35944
36007
  const createPost = async (bundle) => {
35945
36008
  const client = getActiveClient();
35946
36009
  client.log('post/createPost', bundle);
35947
- // API-FIX: backend rejects that we pass the dataType manually T_T
35948
36010
  if (!bundle.dataType || ['text', 'image', 'file', 'video'].includes(bundle.dataType)) {
35949
36011
  // eslint-disable-next-line no-param-reassign
35950
36012
  delete bundle.dataType;