@amityco/ts-sdk-react-native 6.23.0 → 6.23.1-d8b4c4c.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 (214) hide show
  1. package/.env +26 -26
  2. package/dist/@types/core/events.d.ts +7 -0
  3. package/dist/@types/core/events.d.ts.map +1 -1
  4. package/dist/@types/core/model.d.ts +4 -2
  5. package/dist/@types/core/model.d.ts.map +1 -1
  6. package/dist/@types/core/payload.d.ts +2 -1
  7. package/dist/@types/core/payload.d.ts.map +1 -1
  8. package/dist/@types/domains/community.d.ts +30 -1
  9. package/dist/@types/domains/community.d.ts.map +1 -1
  10. package/dist/@types/domains/stream.d.ts +19 -3
  11. package/dist/@types/domains/stream.d.ts.map +1 -1
  12. package/dist/client/api/secureLogout.d.ts +1 -1
  13. package/dist/client/utils/ReadReceiptSync/readReceiptSyncEngine.d.ts.map +1 -1
  14. package/dist/commentRepository/api/deleteComment.d.ts.map +1 -1
  15. package/dist/commentRepository/internalApi/createComment.d.ts.map +1 -1
  16. package/dist/communityRepository/api/createCommunity.d.ts.map +1 -1
  17. package/dist/communityRepository/api/getCommunities.d.ts.map +1 -1
  18. package/dist/communityRepository/api/getCommunity.d.ts.map +1 -1
  19. package/dist/communityRepository/api/queryCommunities.d.ts.map +1 -1
  20. package/dist/communityRepository/api/updateCommunity.d.ts.map +1 -1
  21. package/dist/communityRepository/communityMembership/observers/getMembers/CommunityMembersLiveCollectionController.d.ts +14 -0
  22. package/dist/communityRepository/communityMembership/observers/getMembers/CommunityMembersLiveCollectionController.d.ts.map +1 -0
  23. package/dist/communityRepository/communityMembership/observers/getMembers/CommunityMembersPaginationController.d.ts +9 -0
  24. package/dist/communityRepository/communityMembership/observers/getMembers/CommunityMembersPaginationController.d.ts.map +1 -0
  25. package/dist/communityRepository/communityMembership/observers/getMembers/CommunityMembersQueryStreamController.d.ts +15 -0
  26. package/dist/communityRepository/communityMembership/observers/getMembers/CommunityMembersQueryStreamController.d.ts.map +1 -0
  27. package/dist/communityRepository/communityMembership/observers/getMembers/enums.d.ts +10 -0
  28. package/dist/communityRepository/communityMembership/observers/getMembers/enums.d.ts.map +1 -0
  29. package/dist/communityRepository/communityMembership/observers/getMembers.d.ts.map +1 -1
  30. package/dist/communityRepository/communityMembership/observers/index.d.ts +1 -0
  31. package/dist/communityRepository/communityMembership/observers/index.d.ts.map +1 -1
  32. package/dist/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersLiveCollectionController.d.ts +14 -0
  33. package/dist/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersLiveCollectionController.d.ts.map +1 -0
  34. package/dist/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersPaginationController.d.ts +9 -0
  35. package/dist/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersPaginationController.d.ts.map +1 -0
  36. package/dist/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersQueryStreamController.d.ts +15 -0
  37. package/dist/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersQueryStreamController.d.ts.map +1 -0
  38. package/dist/communityRepository/communityMembership/observers/searchMembers/enums.d.ts +10 -0
  39. package/dist/communityRepository/communityMembership/observers/searchMembers/enums.d.ts.map +1 -0
  40. package/dist/communityRepository/communityMembership/observers/searchMembers.d.ts +20 -0
  41. package/dist/communityRepository/communityMembership/observers/searchMembers.d.ts.map +1 -0
  42. package/dist/communityRepository/observers/getCommunities/CommunitiesLiveCollectionController.d.ts +14 -0
  43. package/dist/communityRepository/observers/getCommunities/CommunitiesLiveCollectionController.d.ts.map +1 -0
  44. package/dist/communityRepository/observers/getCommunities/CommunitiesPaginationController.d.ts +9 -0
  45. package/dist/communityRepository/observers/getCommunities/CommunitiesPaginationController.d.ts.map +1 -0
  46. package/dist/communityRepository/observers/getCommunities/CommunitiesQueryStreamController.d.ts +15 -0
  47. package/dist/communityRepository/observers/getCommunities/CommunitiesQueryStreamController.d.ts.map +1 -0
  48. package/dist/communityRepository/observers/getCommunities/enums.d.ts +6 -0
  49. package/dist/communityRepository/observers/getCommunities/enums.d.ts.map +1 -0
  50. package/dist/communityRepository/observers/getCommunities.d.ts.map +1 -1
  51. package/dist/communityRepository/observers/index.d.ts +1 -0
  52. package/dist/communityRepository/observers/index.d.ts.map +1 -1
  53. package/dist/communityRepository/observers/searchCommunities/SearchCommunitiesLiveCollectionController.d.ts +14 -0
  54. package/dist/communityRepository/observers/searchCommunities/SearchCommunitiesLiveCollectionController.d.ts.map +1 -0
  55. package/dist/communityRepository/observers/searchCommunities/SearchCommunitiesPaginationController.d.ts +9 -0
  56. package/dist/communityRepository/observers/searchCommunities/SearchCommunitiesPaginationController.d.ts.map +1 -0
  57. package/dist/communityRepository/observers/searchCommunities/SearchCommunitiesQueryStreamController.d.ts +15 -0
  58. package/dist/communityRepository/observers/searchCommunities/SearchCommunitiesQueryStreamController.d.ts.map +1 -0
  59. package/dist/communityRepository/observers/searchCommunities/enums.d.ts +6 -0
  60. package/dist/communityRepository/observers/searchCommunities/enums.d.ts.map +1 -0
  61. package/dist/communityRepository/observers/searchCommunities.d.ts +20 -0
  62. package/dist/communityRepository/observers/searchCommunities.d.ts.map +1 -0
  63. package/dist/communityRepository/utils/payload.d.ts.map +1 -1
  64. package/dist/communityRepository/utils/saveCommunityUsers.d.ts +2 -0
  65. package/dist/communityRepository/utils/saveCommunityUsers.d.ts.map +1 -0
  66. package/dist/core/events.d.ts +3 -3
  67. package/dist/core/events.d.ts.map +1 -1
  68. package/dist/core/liveCollection/LiveCollectionController.d.ts +4 -1
  69. package/dist/core/liveCollection/LiveCollectionController.d.ts.map +1 -1
  70. package/dist/core/model/idResolvers.d.ts.map +1 -1
  71. package/dist/core/model/index.d.ts.map +1 -1
  72. package/dist/index.cjs.js +1604 -977
  73. package/dist/index.esm.js +1372 -745
  74. package/dist/index.umd.js +4 -4
  75. package/dist/marker/events/onChannelUnreadUpdatedLocal.d.ts +12 -0
  76. package/dist/marker/events/onChannelUnreadUpdatedLocal.d.ts.map +1 -0
  77. package/dist/marker/events/onSubChannelUnreadUpdatedLocal.d.ts +12 -0
  78. package/dist/marker/events/onSubChannelUnreadUpdatedLocal.d.ts.map +1 -0
  79. package/dist/marker/events/onUserFeedMarkerUpdated.d.ts.map +1 -1
  80. package/dist/marker/utils/reCalculateChannelUnreadInfo.d.ts +1 -1
  81. package/dist/marker/utils/reCalculateChannelUnreadInfo.d.ts.map +1 -1
  82. package/dist/postRepository/observers/getPost.d.ts.map +1 -1
  83. package/dist/postRepository/observers/getPosts.d.ts.map +1 -1
  84. package/dist/streamRepository/api/createStream.d.ts +4 -4
  85. package/dist/streamRepository/api/createStream.d.ts.map +1 -1
  86. package/dist/streamRepository/api/deleteStream.d.ts +4 -4
  87. package/dist/streamRepository/api/deleteStream.d.ts.map +1 -1
  88. package/dist/streamRepository/api/disposeStream.d.ts +4 -4
  89. package/dist/streamRepository/api/disposeStream.d.ts.map +1 -1
  90. package/dist/streamRepository/api/queryStreams.d.ts +4 -4
  91. package/dist/streamRepository/api/queryStreams.d.ts.map +1 -1
  92. package/dist/streamRepository/api/updateStream.d.ts.map +1 -1
  93. package/dist/streamRepository/events/index.d.ts +2 -0
  94. package/dist/streamRepository/events/index.d.ts.map +1 -1
  95. package/dist/streamRepository/events/onStreamFlagged.d.ts +17 -0
  96. package/dist/streamRepository/events/onStreamFlagged.d.ts.map +1 -0
  97. package/dist/streamRepository/events/onStreamRecorded.d.ts +2 -2
  98. package/dist/streamRepository/events/onStreamRecorded.d.ts.map +1 -1
  99. package/dist/streamRepository/events/onStreamStarted.d.ts +2 -2
  100. package/dist/streamRepository/events/onStreamStarted.d.ts.map +1 -1
  101. package/dist/streamRepository/events/onStreamStopped.d.ts +2 -2
  102. package/dist/streamRepository/events/onStreamStopped.d.ts.map +1 -1
  103. package/dist/streamRepository/events/onStreamTerminated.d.ts +17 -0
  104. package/dist/streamRepository/events/onStreamTerminated.d.ts.map +1 -0
  105. package/dist/streamRepository/internalApi/queryStreams.d.ts +3 -3
  106. package/dist/streamRepository/internalApi/queryStreams.d.ts.map +1 -1
  107. package/dist/streamRepository/observers/getStreamById.d.ts +1 -0
  108. package/dist/streamRepository/observers/getStreamById.d.ts.map +1 -1
  109. package/dist/streamRepository/observers/getStreams/GetStreamsLiveCollectionController.d.ts +14 -0
  110. package/dist/streamRepository/observers/getStreams/GetStreamsLiveCollectionController.d.ts.map +1 -0
  111. package/dist/streamRepository/observers/getStreams/GetStreamsPageController.d.ts +14 -0
  112. package/dist/streamRepository/observers/getStreams/GetStreamsPageController.d.ts.map +1 -0
  113. package/dist/streamRepository/observers/getStreams/GetStreamsQueryStreamController.d.ts +15 -0
  114. package/dist/streamRepository/observers/getStreams/GetStreamsQueryStreamController.d.ts.map +1 -0
  115. package/dist/streamRepository/observers/getStreams/getStreams.d.ts +2 -0
  116. package/dist/streamRepository/observers/getStreams/getStreams.d.ts.map +1 -0
  117. package/dist/streamRepository/observers/getStreams/index.d.ts +2 -0
  118. package/dist/streamRepository/observers/getStreams/index.d.ts.map +1 -0
  119. package/dist/utils/linkedObject/index.d.ts +1 -0
  120. package/dist/utils/linkedObject/index.d.ts.map +1 -1
  121. package/dist/utils/linkedObject/streamLinkedObject.d.ts +2 -0
  122. package/dist/utils/linkedObject/streamLinkedObject.d.ts.map +1 -0
  123. package/dist/utils/liveObject.d.ts +3 -0
  124. package/dist/utils/liveObject.d.ts.map +1 -1
  125. package/package.json +1 -1
  126. package/src/@types/core/events.ts +12 -0
  127. package/src/@types/core/model.ts +4 -2
  128. package/src/@types/core/payload.ts +2 -1
  129. package/src/@types/domains/community.ts +50 -1
  130. package/src/@types/domains/stream.ts +23 -3
  131. package/src/channelRepository/channelMembership/observers/getMembers/ChannelMemberLiveCollectionController.ts +2 -2
  132. package/src/channelRepository/observers/getChannel.ts +2 -2
  133. package/src/channelRepository/observers/getChannels/ChannelLiveCollectionController.ts +7 -7
  134. package/src/client/api/secureLogout.ts +1 -1
  135. package/src/client/utils/ReadReceiptSync/readReceiptSyncEngine.ts +6 -3
  136. package/src/commentRepository/api/createComment.ts +2 -2
  137. package/src/commentRepository/api/deleteComment.ts +2 -4
  138. package/src/commentRepository/events/utils.ts +1 -1
  139. package/src/commentRepository/internalApi/createComment.ts +3 -2
  140. package/src/commentRepository/internalApi/deleteComment.ts +2 -2
  141. package/src/communityRepository/api/createCommunity.ts +5 -2
  142. package/src/communityRepository/api/getCommunities.ts +5 -1
  143. package/src/communityRepository/api/getCommunity.ts +5 -1
  144. package/src/communityRepository/api/queryCommunities.ts +2 -2
  145. package/src/communityRepository/api/updateCommunity.ts +5 -1
  146. package/src/communityRepository/communityMembership/observers/getMembers/CommunityMembersLiveCollectionController.ts +152 -0
  147. package/src/communityRepository/communityMembership/observers/getMembers/CommunityMembersPaginationController.ts +26 -0
  148. package/src/communityRepository/communityMembership/observers/getMembers/CommunityMembersQueryStreamController.ts +114 -0
  149. package/src/communityRepository/communityMembership/observers/getMembers/enums.ts +9 -0
  150. package/src/communityRepository/communityMembership/observers/getMembers.ts +15 -128
  151. package/src/communityRepository/communityMembership/observers/index.ts +1 -0
  152. package/src/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersLiveCollectionController.ts +130 -0
  153. package/src/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersPaginationController.ts +29 -0
  154. package/src/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersQueryStreamController.ts +105 -0
  155. package/src/communityRepository/communityMembership/observers/searchMembers/enums.ts +9 -0
  156. package/src/communityRepository/communityMembership/observers/searchMembers.ts +60 -0
  157. package/src/communityRepository/observers/getCommunities/CommunitiesLiveCollectionController.ts +147 -0
  158. package/src/communityRepository/observers/getCommunities/CommunitiesPaginationController.ts +31 -0
  159. package/src/communityRepository/observers/getCommunities/CommunitiesQueryStreamController.ts +86 -0
  160. package/src/communityRepository/observers/getCommunities/enums.ts +5 -0
  161. package/src/communityRepository/observers/getCommunities.ts +7 -150
  162. package/src/communityRepository/observers/index.ts +1 -0
  163. package/src/communityRepository/observers/searchCommunities/SearchCommunitiesLiveCollectionController.ts +129 -0
  164. package/src/communityRepository/observers/searchCommunities/SearchCommunitiesPaginationController.ts +31 -0
  165. package/src/communityRepository/observers/searchCommunities/SearchCommunitiesQueryStreamController.ts +81 -0
  166. package/src/communityRepository/observers/searchCommunities/enums.ts +5 -0
  167. package/src/communityRepository/observers/searchCommunities.ts +56 -0
  168. package/src/communityRepository/utils/payload.ts +35 -1
  169. package/src/communityRepository/utils/saveCommunityUsers.ts +16 -0
  170. package/src/core/liveCollection/LiveCollectionController.ts +6 -3
  171. package/src/core/model/idResolvers.ts +1 -0
  172. package/src/core/model/index.ts +1 -0
  173. package/src/marker/events/onChannelUnreadUpdatedLocal.ts +29 -0
  174. package/src/marker/events/onSubChannelMarkerFetched.ts +1 -1
  175. package/src/marker/events/onSubChannelUnreadUpdatedLocal.ts +29 -0
  176. package/src/marker/events/onUserFeedMarkerUpdated.ts +3 -4
  177. package/src/marker/utils/reCalculateChannelUnreadInfo.ts +7 -3
  178. package/src/messageRepository/observers/getMessages/MessageLiveCollectionController.ts +3 -3
  179. package/src/postRepository/api/editPost.ts +1 -1
  180. package/src/postRepository/api/updatePost.ts +1 -1
  181. package/src/postRepository/observers/getPost.ts +26 -0
  182. package/src/postRepository/observers/getPosts.ts +31 -0
  183. package/src/storyRepository/observers/getGlobalStoryTargets/GlobalStoryLiveCollectionController.ts +2 -2
  184. package/src/storyRepository/observers/getStoriesByTargetIds/StoryLiveCollectionController.ts +1 -1
  185. package/src/streamRepository/api/createStream.ts +8 -5
  186. package/src/streamRepository/api/deleteStream.ts +6 -4
  187. package/src/streamRepository/api/disposeStream.ts +5 -5
  188. package/src/streamRepository/api/queryStreams.ts +4 -4
  189. package/src/streamRepository/api/updateStream.ts +2 -1
  190. package/src/streamRepository/events/index.ts +2 -0
  191. package/src/streamRepository/events/onStreamFlagged.ts +37 -0
  192. package/src/streamRepository/events/onStreamRecorded.ts +4 -2
  193. package/src/streamRepository/events/onStreamStarted.ts +4 -2
  194. package/src/streamRepository/events/onStreamStopped.ts +4 -2
  195. package/src/streamRepository/events/onStreamTerminated.ts +37 -0
  196. package/src/streamRepository/internalApi/queryStreams.ts +3 -3
  197. package/src/streamRepository/observers/getStreamById.ts +18 -5
  198. package/src/streamRepository/observers/getStreams/GetStreamsLiveCollectionController.ts +114 -0
  199. package/src/streamRepository/observers/getStreams/GetStreamsPageController.ts +23 -0
  200. package/src/streamRepository/observers/getStreams/GetStreamsQueryStreamController.ts +83 -0
  201. package/src/streamRepository/observers/getStreams/getStreams.ts +32 -0
  202. package/src/streamRepository/observers/getStreams/index.ts +1 -0
  203. package/src/streamRepository/observers/tests/getStreamById.test.ts +1 -1
  204. package/src/subChannelRepository/observers/getSubChannel.ts +2 -2
  205. package/src/subChannelRepository/observers/getSubChannels/SubChannelLiveCollectionController.ts +4 -4
  206. package/src/utils/linkedObject/index.ts +2 -0
  207. package/src/utils/linkedObject/streamLinkedObject.ts +11 -0
  208. package/src/utils/liveObject.ts +3 -0
  209. package/dist/streamRepository/api/getStreams.d.ts +0 -39
  210. package/dist/streamRepository/api/getStreams.d.ts.map +0 -1
  211. package/dist/streamRepository/observers/getStreams.d.ts +0 -17
  212. package/dist/streamRepository/observers/getStreams.d.ts.map +0 -1
  213. package/src/streamRepository/api/getStreams.ts +0 -81
  214. package/src/streamRepository/observers/getStreams.ts +0 -152
@@ -0,0 +1,29 @@
1
+ import { getActiveClient } from '~/client/api/activeClient';
2
+ import { createEventSubscriber } from '~/core/events';
3
+
4
+ /**
5
+ * Internal used only
6
+ *
7
+ * Fired when an {@link Amity.userMessageFeedMarkers} has been resolved by Object Rsesolver
8
+ *
9
+ * @param callback The function to call when the event was fired
10
+ * @returns an {@link Amity.Unsubscriber} function to stop listening
11
+ *
12
+ * @category MessageMarker Events
13
+ */
14
+ export const onChannelUnreadUpdatedLocal = (
15
+ callback: Amity.Listener<Amity.Events['local.channelUnread.updated']>,
16
+ ): Amity.Unsubscriber => {
17
+ const client = getActiveClient();
18
+
19
+ const filter = (payload: Amity.Events['local.channelUnread.updated']) => {
20
+ callback(payload);
21
+ };
22
+
23
+ return createEventSubscriber(
24
+ client,
25
+ 'channelMarker/onChannelUnreadUpdatedLocal',
26
+ 'local.channelUnread.updated',
27
+ filter,
28
+ );
29
+ };
@@ -22,7 +22,7 @@ export const onSubChannelMarkerFetched = (
22
22
  const client = getActiveClient();
23
23
 
24
24
  const filter = (payload: Amity.Events['local.subChannelMarker.fetched']) => {
25
- callback(payload.userFeedMarkers[0]);
25
+ payload.userFeedMarkers.forEach(callback);
26
26
  };
27
27
 
28
28
  return createEventSubscriber(
@@ -0,0 +1,29 @@
1
+ import { getActiveClient } from '~/client/api/activeClient';
2
+ import { createEventSubscriber } from '~/core/events';
3
+
4
+ /**
5
+ * Internal used only
6
+ *
7
+ * Fired when an {@link Amity.userMessageFeedMarkers} has been resolved by Object Rsesolver
8
+ *
9
+ * @param callback The function to call when the event was fired
10
+ * @returns an {@link Amity.Unsubscriber} function to stop listening
11
+ *
12
+ * @category MessageMarker Events
13
+ */
14
+ export const onSubChannelUnreadUpdatedLocal = (
15
+ callback: Amity.Listener<Amity.Events['local.subChannelUnread.updated']>,
16
+ ): Amity.Unsubscriber => {
17
+ const client = getActiveClient();
18
+
19
+ const filter = (payload: Amity.Events['local.subChannelUnread.updated']) => {
20
+ callback(payload);
21
+ };
22
+
23
+ return createEventSubscriber(
24
+ client,
25
+ 'subChannelMarker/onSubChannelUnreadUpdatedLocal',
26
+ 'local.subChannelUnread.updated',
27
+ filter,
28
+ );
29
+ };
@@ -23,10 +23,9 @@ export const onUserFeedMarkerUpdated = (
23
23
  const client = getActiveClient();
24
24
 
25
25
  const filter = (payload: Amity.Events['marker.userFeed-updated']) => {
26
- // update sub channel unread info and channel unread info in cache
27
- persistUnreadCountInfo(payload);
28
-
29
- callback(payload.feedMarkers[0]);
26
+ payload.feedMarkers.forEach(feedMarker => {
27
+ callback(feedMarker);
28
+ });
30
29
  };
31
30
 
32
31
  return createEventSubscriber(
@@ -1,7 +1,7 @@
1
1
  import { pushToCache, queryCache } from '~/cache/api';
2
2
  import { pullFromCache } from '~/cache/api/pullFromCache';
3
3
 
4
- export const reCalculateChannelUnreadInfo = async (channelId: string) => {
4
+ export const reCalculateChannelUnreadInfo = (channelId: string): Amity.ChannelUnreadInfo => {
5
5
  const cacheKeyChannelUnread = ['channelUnreadInfo', 'get', channelId];
6
6
  const cacheChannelUnreadInfo =
7
7
  pullFromCache<Amity.ChannelUnreadInfo>(cacheKeyChannelUnread)?.data;
@@ -25,7 +25,7 @@ export const reCalculateChannelUnreadInfo = async (channelId: string) => {
25
25
  isMentioned = subChannelUnreadsInfo.some(({ data }) => data.isMentioned);
26
26
  }
27
27
 
28
- pushToCache(cacheKeyChannelUnread, {
28
+ const channelUnreadInfo = {
29
29
  ...(cacheChannelUnreadInfo ?? {
30
30
  channelId,
31
31
  createdAt: new Date().toISOString(),
@@ -33,5 +33,9 @@ export const reCalculateChannelUnreadInfo = async (channelId: string) => {
33
33
  updatedAt: new Date().toISOString(),
34
34
  unreadCount: channelUnreads,
35
35
  isMentioned,
36
- });
36
+ };
37
+
38
+ pushToCache(cacheKeyChannelUnread, channelUnreadInfo);
39
+
40
+ return channelUnreadInfo;
37
41
  };
@@ -49,7 +49,7 @@ export class MessageLiveCollectionController extends LiveCollectionController<
49
49
  );
50
50
 
51
51
  this.callback = callback.bind(this);
52
- this.loadPage(true);
52
+ this.loadPage({ initial: true });
53
53
  }
54
54
 
55
55
  protected setup() {
@@ -107,8 +107,8 @@ export class MessageLiveCollectionController extends LiveCollectionController<
107
107
  if (!this.shouldNotify(data) && origin === 'event') return;
108
108
 
109
109
  this.callback({
110
- onNextPage: () => this.loadPage(false, Amity.LiveCollectionPageDirection.NEXT),
111
- onPrevPage: () => this.loadPage(false, Amity.LiveCollectionPageDirection.PREV),
110
+ onNextPage: () => this.loadPage({ direction: Amity.LiveCollectionPageDirection.NEXT }),
111
+ onPrevPage: () => this.loadPage({ direction: Amity.LiveCollectionPageDirection.PREV }),
112
112
  data,
113
113
  hasNextPage: !!this.paginationController.getNextToken(),
114
114
  hasPrevPage: !!this.paginationController.getPrevToken(),
@@ -47,7 +47,7 @@ export const editPost = async <T extends Amity.PostContentType>(
47
47
  const cachedAt = client.cache && Date.now();
48
48
  if (client.cache) ingestInCache(data, { cachedAt });
49
49
 
50
- fireEvent('post.updated', data);
50
+ fireEvent('local.post.updated', data);
51
51
 
52
52
  const { posts } = data;
53
53
 
@@ -51,7 +51,7 @@ export const updatePost = async <T extends Amity.PostContentType>(
51
51
  const cachedAt = client.cache && Date.now();
52
52
  if (client.cache) ingestInCache(data, { cachedAt });
53
53
 
54
- fireEvent('post.updated', data);
54
+ fireEvent('local.post.updated', data);
55
55
 
56
56
  const { posts } = data;
57
57
 
@@ -13,6 +13,8 @@ import {
13
13
  } from '../events';
14
14
  import { pullFromCache, pushToCache } from '~/cache/api';
15
15
  import { LinkedObject } from '~/utils/linkedObject';
16
+ import { onCommentCreated, onCommentDeleted } from '~/commentRepository';
17
+ import { convertEventPayload } from '~/utils/event';
16
18
 
17
19
  /* begin_public_function
18
20
  id: post.get
@@ -80,6 +82,30 @@ export const getPost = (
80
82
  },
81
83
  onPostUnflagged,
82
84
  onPostUpdated,
85
+ convertEventPayload(
86
+ (callback: Amity.Listener<Amity.InternalComment>) => {
87
+ return onCommentCreated(async (comment: Amity.InternalComment) => {
88
+ if (comment.referenceId === postId) {
89
+ await _getPost(postId);
90
+ callback(comment);
91
+ }
92
+ });
93
+ },
94
+ 'referenceId',
95
+ 'post',
96
+ ),
97
+ convertEventPayload(
98
+ (callback: Amity.Listener<Amity.InternalComment>) => {
99
+ return onCommentDeleted(async (comment: Amity.InternalComment) => {
100
+ if (comment.referenceId === postId) {
101
+ await _getPost(postId);
102
+ callback(comment);
103
+ }
104
+ });
105
+ },
106
+ 'referenceId',
107
+ 'post',
108
+ ),
83
109
  ]);
84
110
  };
85
111
  /* end_public_function */
@@ -2,6 +2,7 @@
2
2
  import { getResolver } from '~/core/model';
3
3
  import { getActiveClient } from '~/client/api';
4
4
  import { dropFromCache, pullFromCache, pushToCache } from '~/cache/api';
5
+ import { getPost as _getPost } from '../api/getPost';
5
6
 
6
7
  import {
7
8
  createQuery,
@@ -34,6 +35,8 @@ import {
34
35
  onPostUpdated,
35
36
  } from '../events';
36
37
  import { queryPosts } from '../api/queryPosts';
38
+ import { convertEventPayload } from '~/utils/event';
39
+ import { onCommentCreated, onCommentDeleted } from '~/commentRepository';
37
40
 
38
41
  /* begin_public_function
39
42
  id: post.query
@@ -204,6 +207,34 @@ export const getPosts = (
204
207
  onPostUnflagged(realtimeRouter('onUnflagged')),
205
208
  onPostReactionAdded(realtimeRouter('onReactionAdded')),
206
209
  onPostReactionRemoved(realtimeRouter('onReactionRemoved')),
210
+ convertEventPayload(
211
+ (callback: Amity.Listener<Amity.InternalComment>) => {
212
+ return onCommentCreated(async (comment: Amity.InternalComment) => {
213
+ const currentCollection = pullFromCache<Amity.PostLiveCollectionCache>(cacheKey)?.data;
214
+
215
+ if (!currentCollection || currentCollection.data.includes(comment.referenceId)) return;
216
+
217
+ await _getPost(comment.referenceId);
218
+ callback(comment);
219
+ });
220
+ },
221
+ 'referenceId',
222
+ 'post',
223
+ )(realtimeRouter('onUpdate')),
224
+ convertEventPayload(
225
+ (callback: Amity.Listener<Amity.InternalComment>) => {
226
+ return onCommentDeleted(async (comment: Amity.InternalComment) => {
227
+ const currentCollection = pullFromCache<Amity.PostLiveCollectionCache>(cacheKey)?.data;
228
+
229
+ if (!currentCollection || currentCollection.data.includes(comment.referenceId)) return;
230
+
231
+ await _getPost(comment.referenceId);
232
+ callback(comment);
233
+ });
234
+ },
235
+ 'referenceId',
236
+ 'post',
237
+ )(realtimeRouter('onUpdate')),
207
238
  );
208
239
 
209
240
  onFetch(true);
@@ -48,7 +48,7 @@ export class GlobalStoryLiveCollectionController extends LiveCollectionControlle
48
48
 
49
49
  this.paginationController = paginationController;
50
50
  this.callback = callback.bind(this);
51
- this.loadPage(true);
51
+ this.loadPage({ initial: true });
52
52
  }
53
53
 
54
54
  protected setup() {
@@ -94,7 +94,7 @@ export class GlobalStoryLiveCollectionController extends LiveCollectionControlle
94
94
  ) as Amity.StoryTarget[];
95
95
 
96
96
  this.callback({
97
- onNextPage: () => this.loadPage(false, Amity.LiveCollectionPageDirection.NEXT),
97
+ onNextPage: () => this.loadPage({ direction: Amity.LiveCollectionPageDirection.NEXT }),
98
98
  data,
99
99
  hasNextPage: !!this.paginationController.getNextToken(),
100
100
  loading,
@@ -42,7 +42,7 @@ export class StoryLiveCollectionController extends LiveCollectionController<
42
42
 
43
43
  this.paginationController = paginationController;
44
44
  this.callback = callback.bind(this);
45
- this.loadPage(true);
45
+ this.loadPage({ initial: true });
46
46
  }
47
47
 
48
48
  protected setup() {
@@ -1,6 +1,7 @@
1
1
  import { getActiveClient } from '~/client/api';
2
2
 
3
3
  import { ingestInCache } from '~/cache/api/ingestInCache';
4
+ import { LinkedObject } from '~/utils/linkedObject';
4
5
 
5
6
  /* begin_public_function
6
7
  id: stream.create
@@ -11,16 +12,18 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
11
12
  * const created = await createStream({ title: 'my stream', 'thumbnailFileId': fileId })
12
13
  * ```
13
14
  *
14
- * Creates an {@link Amity.Stream}
15
+ * Creates an {@link Amity.InternalStream}
15
16
  *
16
- * @param bundle The data necessary to create a new {@link Amity.Stream}
17
- * @returns The newly created {@link Amity.Stream}
17
+ * @param bundle The data necessary to create a new {@link Amity.InternalStream}
18
+ * @returns The newly created {@link Amity.InternalStream}
18
19
  *
19
20
  * @category Stream API
20
21
  * @async
21
22
  */
22
23
  export const createStream = async (
23
- bundle: Pick<Amity.Stream, 'title' | 'thumbnailFileId' | 'description'> & { isSecure?: boolean },
24
+ bundle: Pick<Amity.InternalStream, 'title' | 'thumbnailFileId' | 'description'> & {
25
+ isSecure?: boolean;
26
+ },
24
27
  ): Promise<Amity.Cached<Amity.Stream>> => {
25
28
  const client = getActiveClient();
26
29
  client.log('stream/createStream', bundle);
@@ -33,7 +36,7 @@ export const createStream = async (
33
36
  const { videoStreamings } = data;
34
37
 
35
38
  return {
36
- data: videoStreamings[0],
39
+ data: LinkedObject.stream(videoStreamings[0]),
37
40
  cachedAt,
38
41
  };
39
42
  };
@@ -15,15 +15,17 @@ import { getStream } from './getStream';
15
15
  * const success = await deleteStream(streamId)
16
16
  * ```
17
17
  *
18
- * Deletes a {@link Amity.Stream}
18
+ * Deletes a {@link Amity.InternalStream}
19
19
  *
20
- * @param streamId The {@link Amity.Stream} ID to delete
21
- * @return A success boolean if the {@link Amity.Stream} was deleted
20
+ * @param streamId The {@link Amity.InternalStream} ID to delete
21
+ * @return A success boolean if the {@link Amity.InternalStream} was deleted
22
22
  *
23
23
  * @category Stream API
24
24
  * @async
25
25
  */
26
- export const deleteStream = async (streamId: Amity.Stream['streamId']): Promise<boolean> => {
26
+ export const deleteStream = async (
27
+ streamId: Amity.InternalStream['streamId'],
28
+ ): Promise<boolean> => {
27
29
  const client = getActiveClient();
28
30
  client.log('stream/deleteStream', streamId);
29
31
 
@@ -8,18 +8,18 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
8
8
  * const stream = await disposeStream(streamId)
9
9
  * ```
10
10
  *
11
- * Dispose a {@link Amity.Stream}.
11
+ * Dispose a {@link Amity.InternalStream}.
12
12
  * Streaming status will be updated to "ended" and streaming url will be invalidated
13
13
  *
14
- * @param streamId The {@link Amity.Stream} ID to dispose
15
- * @returns the associated {@link Amity.Stream} object
14
+ * @param streamId The {@link Amity.InternalStream} ID to dispose
15
+ * @returns the associated {@link Amity.InternalStream} object
16
16
  *
17
17
  * @category Stream API
18
18
  * @async
19
19
  */
20
20
  export const disposeStream = async (
21
- streamId: Amity.Stream['streamId'],
22
- ): Promise<Amity.Cached<Amity.Stream>> => {
21
+ streamId: Amity.InternalStream['streamId'],
22
+ ): Promise<Amity.Cached<Amity.InternalStream>> => {
23
23
  const client = getActiveClient();
24
24
  client.log('stream/disposeStream', streamId);
25
25
 
@@ -14,10 +14,10 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
14
14
  * const streams = await getStreams()
15
15
  * ```
16
16
  *
17
- * Queries a paginable list of {@link Amity.Stream} objects
17
+ * Queries a paginable list of {@link Amity.InternalStream} objects
18
18
  *
19
19
  * @param query The query parameters
20
- * @returns A page of {@link Amity.Stream} objects
20
+ * @returns A page of {@link Amity.InternalStream} objects
21
21
  *
22
22
  * @category Stream API
23
23
  * @async
@@ -27,9 +27,9 @@ export const queryStreams = async (query?: {
27
27
  statuses?: Amity.StreamStatus[];
28
28
  userPublicIds?: Amity.InternalUser['userId'][];
29
29
  sortBy?: 'lastCreated' | 'firstCreated';
30
- isDeleted?: Amity.Stream['isDeleted'];
30
+ isDeleted?: Amity.InternalStream['isDeleted'];
31
31
  page?: Amity.Page;
32
- }): Promise<Amity.Cached<Amity.Paged<Amity.Stream>>> => {
32
+ }): Promise<Amity.Cached<Amity.Paged<Amity.InternalStream>>> => {
33
33
  const client = getActiveClient();
34
34
  client.log('stream/queryStreams', query);
35
35
 
@@ -1,6 +1,7 @@
1
1
  import { getActiveClient } from '~/client/api';
2
2
 
3
3
  import { ingestInCache } from '~/cache/api/ingestInCache';
4
+ import { LinkedObject } from '~/utils/linkedObject';
4
5
 
5
6
  /* begin_public_function
6
7
  id: stream.update
@@ -38,7 +39,7 @@ export const updateStream = async (
38
39
  const { videoStreamings } = data;
39
40
 
40
41
  return {
41
- data: videoStreamings.find(stream => stream.streamId === streamId)!,
42
+ data: LinkedObject.stream(videoStreamings.find(stream => stream.streamId === streamId)!),
42
43
  cachedAt,
43
44
  };
44
45
  };
@@ -1,3 +1,5 @@
1
1
  export { onStreamStarted } from './onStreamStarted';
2
2
  export { onStreamStopped } from './onStreamStopped';
3
3
  export { onStreamRecorded } from './onStreamRecorded';
4
+ export { onStreamFlagged } from './onStreamFlagged';
5
+ export { onStreamTerminated } from './onStreamTerminated';
@@ -0,0 +1,37 @@
1
+ import { getActiveClient } from '~/client/api';
2
+ import { createEventSubscriber } from '~/core/events';
3
+
4
+ import { ingestInCache } from '~/cache/api/ingestInCache';
5
+
6
+ /**
7
+ * ```js
8
+ * import { onStreamFlagged } from '@amityco/ts-sdk-react-native'
9
+ * const dispose = onStreamFlagged(stream => {
10
+ * // ...
11
+ * })
12
+ * ```
13
+ *
14
+ * Fired when a {@link Amity.InternalStream} has started airing
15
+ *
16
+ * @param callback The function to call when the event was fired
17
+ * @returns an {@link Amity.Unsubscriber} function to stop listening
18
+ *
19
+ * @category Stream Events
20
+ */
21
+ export const onStreamFlagged = (
22
+ callback: Amity.Listener<Amity.InternalStream>,
23
+ ): Amity.Unsubscriber => {
24
+ const client = getActiveClient();
25
+
26
+ const filter = (payload: Amity.StreamPayload) => {
27
+ ingestInCache(payload);
28
+ callback(payload.videoStreamings[0]);
29
+ };
30
+
31
+ return createEventSubscriber(
32
+ client,
33
+ 'stream/onStreamFlagged',
34
+ 'v3.video-streaming.didFlag',
35
+ filter,
36
+ );
37
+ };
@@ -11,14 +11,16 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
11
11
  * })
12
12
  * ```
13
13
  *
14
- * Fired when the recordings of a {@link Amity.Stream} are available
14
+ * Fired when the recordings of a {@link Amity.InternalStream} are available
15
15
  *
16
16
  * @param callback The function to call when the event was fired
17
17
  * @returns an {@link Amity.Unsubscriber} function to stop listening
18
18
  *
19
19
  * @category Stream Events
20
20
  */
21
- export const onStreamRecorded = (callback: Amity.Listener<Amity.Stream>): Amity.Unsubscriber => {
21
+ export const onStreamRecorded = (
22
+ callback: Amity.Listener<Amity.InternalStream>,
23
+ ): Amity.Unsubscriber => {
22
24
  const client = getActiveClient();
23
25
 
24
26
  const filter = (payload: Amity.StreamPayload) => {
@@ -11,14 +11,16 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
11
11
  * })
12
12
  * ```
13
13
  *
14
- * Fired when a {@link Amity.Stream} has started airing
14
+ * Fired when a {@link Amity.InternalStream} has started airing
15
15
  *
16
16
  * @param callback The function to call when the event was fired
17
17
  * @returns an {@link Amity.Unsubscriber} function to stop listening
18
18
  *
19
19
  * @category Stream Events
20
20
  */
21
- export const onStreamStarted = (callback: Amity.Listener<Amity.Stream>): Amity.Unsubscriber => {
21
+ export const onStreamStarted = (
22
+ callback: Amity.Listener<Amity.InternalStream>,
23
+ ): Amity.Unsubscriber => {
22
24
  const client = getActiveClient();
23
25
 
24
26
  const filter = (payload: Amity.StreamPayload) => {
@@ -11,14 +11,16 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
11
11
  * })
12
12
  * ```
13
13
  *
14
- * Fired when a {@link Amity.Stream} has stopped airing
14
+ * Fired when a {@link Amity.InternalStream} has stopped airing
15
15
  *
16
16
  * @param callback The function to call when the event was fired
17
17
  * @returns an {@link Amity.Unsubscriber} function to stop listening
18
18
  *
19
19
  * @category Stream Events
20
20
  */
21
- export const onStreamStopped = (callback: Amity.Listener<Amity.Stream>): Amity.Unsubscriber => {
21
+ export const onStreamStopped = (
22
+ callback: Amity.Listener<Amity.InternalStream>,
23
+ ): Amity.Unsubscriber => {
22
24
  const client = getActiveClient();
23
25
 
24
26
  const filter = (payload: Amity.StreamPayload) => {
@@ -0,0 +1,37 @@
1
+ import { getActiveClient } from '~/client/api';
2
+ import { createEventSubscriber } from '~/core/events';
3
+
4
+ import { ingestInCache } from '~/cache/api/ingestInCache';
5
+
6
+ /**
7
+ * ```js
8
+ * import { onStreamTerminated } from '@amityco/ts-sdk-react-native'
9
+ * const dispose = onStreamTerminated(stream => {
10
+ * // ...
11
+ * })
12
+ * ```
13
+ *
14
+ * Fired when a {@link Amity.InternalStream} has started airing
15
+ *
16
+ * @param callback The function to call when the event was fired
17
+ * @returns an {@link Amity.Unsubscriber} function to stop listening
18
+ *
19
+ * @category Stream Events
20
+ */
21
+ export const onStreamTerminated = (
22
+ callback: Amity.Listener<Amity.InternalStream>,
23
+ ): Amity.Unsubscriber => {
24
+ const client = getActiveClient();
25
+
26
+ const filter = (payload: Amity.StreamPayload) => {
27
+ ingestInCache(payload);
28
+ callback(payload.videoStreamings[0]);
29
+ };
30
+
31
+ return createEventSubscriber(
32
+ client,
33
+ 'stream/onStreamTerminated',
34
+ 'v3.video-streaming.didTerminate',
35
+ filter,
36
+ );
37
+ };
@@ -11,17 +11,17 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
11
11
  * const streams = await getStreams()
12
12
  * ```
13
13
  *
14
- * Queries a paginable list of {@link Amity.Stream} objects
14
+ * Queries a paginable list of {@link Amity.InternalStream} objects
15
15
  *
16
16
  * @param query The query parameters
17
- * @returns A page of {@link Amity.Stream} objects
17
+ * @returns A page of {@link Amity.InternalStream} objects
18
18
  *
19
19
  * @category Stream API
20
20
  * @async
21
21
  */
22
22
  export const queryStreams = async (
23
23
  query?: Amity.QueryStreams,
24
- ): Promise<Amity.Cached<Amity.PageToken<Amity.Stream>>> => {
24
+ ): Promise<Amity.Cached<Amity.PageToken<Amity.InternalStream>>> => {
25
25
  const client = getActiveClient();
26
26
  client.log('stream/queryStreams', query);
27
27
 
@@ -1,10 +1,13 @@
1
1
  /* eslint-disable no-use-before-define */
2
2
 
3
- import { onStreamRecorded, onStreamStarted, onStreamStopped } from '../events';
4
- import { getStream as _getStream } from '../api/getStream';
5
3
  import { liveObject } from '~/utils/liveObject';
6
4
  import { getActiveClient } from '~/client';
7
5
  import { pullFromCache } from '~/cache/api';
6
+ import { onStreamFlagged } from '~/streamRepository/events/onStreamFlagged';
7
+ import { onStreamTerminated } from '~/streamRepository/events/onStreamTerminated';
8
+ import { LinkedObject } from '~/utils/linkedObject';
9
+ import { getStream as _getStream } from '../api/getStream';
10
+ import { onStreamRecorded, onStreamStarted, onStreamStopped } from '../events';
8
11
 
9
12
  /* begin_public_function
10
13
  id: stream.get
@@ -19,6 +22,7 @@ import { pullFromCache } from '~/cache/api';
19
22
  * Fetches a {@link Amity.Stream} object
20
23
  *
21
24
  * @param streamId the ID of the {@link Amity.Stream} to get
25
+ * @param callback
22
26
  * @returns the associated {@link Amity.Stream} object
23
27
  *
24
28
  * @category Stream Live Object
@@ -28,10 +32,19 @@ export const getStreamById = (
28
32
  streamId: Amity.Stream['streamId'],
29
33
  callback: Amity.LiveObjectCallback<Amity.Stream>,
30
34
  ): Amity.Unsubscriber => {
31
- return liveObject(streamId, callback, 'streamId', _getStream, [
35
+ const reactor: Amity.LiveObjectCallback<Amity.InternalStream> = (
36
+ snapshot: Amity.LiveObject<Amity.InternalStream>,
37
+ ) => {
38
+ const { data } = snapshot;
39
+ callback({ ...snapshot, data: data ? LinkedObject.stream(snapshot.data) : data });
40
+ };
41
+
42
+ return liveObject(streamId, reactor, 'streamId', _getStream, [
32
43
  onStreamRecorded,
33
44
  onStreamStarted,
34
45
  onStreamStopped,
46
+ onStreamFlagged,
47
+ onStreamTerminated,
35
48
  ]);
36
49
  };
37
50
  /* end_public_function */
@@ -57,12 +70,12 @@ getStreamById.locally = (
57
70
 
58
71
  if (!client.cache) return;
59
72
 
60
- const cached = pullFromCache<Amity.Stream>(['stream', 'get', streamId]);
73
+ const cached = pullFromCache<Amity.InternalStream>(['stream', 'get', streamId]);
61
74
 
62
75
  if (!cached) return;
63
76
 
64
77
  return {
65
- data: cached.data,
78
+ data: LinkedObject.stream(cached.data),
66
79
  cachedAt: cached.cachedAt,
67
80
  };
68
81
  };