@amityco/ts-sdk-react-native 6.29.3-669217e.0 → 6.30.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 (379) hide show
  1. package/.env +26 -26
  2. package/dist/@types/core/events.d.ts +41 -11
  3. package/dist/@types/core/events.d.ts.map +1 -1
  4. package/dist/@types/core/model.d.ts +4 -0
  5. package/dist/@types/core/model.d.ts.map +1 -1
  6. package/dist/@types/core/payload.d.ts +32 -7
  7. package/dist/@types/core/payload.d.ts.map +1 -1
  8. package/dist/@types/core/permissions.d.ts +4 -4
  9. package/dist/@types/core/permissions.d.ts.map +1 -1
  10. package/dist/@types/domains/channel.d.ts +8 -0
  11. package/dist/@types/domains/channel.d.ts.map +1 -1
  12. package/dist/@types/domains/comment.d.ts +5 -4
  13. package/dist/@types/domains/comment.d.ts.map +1 -1
  14. package/dist/@types/domains/community.d.ts +32 -8
  15. package/dist/@types/domains/community.d.ts.map +1 -1
  16. package/dist/@types/domains/follow.d.ts +21 -3
  17. package/dist/@types/domains/follow.d.ts.map +1 -1
  18. package/dist/@types/domains/group.d.ts +13 -7
  19. package/dist/@types/domains/group.d.ts.map +1 -1
  20. package/dist/@types/domains/pin.d.ts +22 -0
  21. package/dist/@types/domains/pin.d.ts.map +1 -0
  22. package/dist/@types/domains/pinnedPost.d.ts +28 -0
  23. package/dist/@types/domains/pinnedPost.d.ts.map +1 -0
  24. package/dist/@types/domains/poll.d.ts +3 -1
  25. package/dist/@types/domains/poll.d.ts.map +1 -1
  26. package/dist/@types/domains/post.d.ts +8 -5
  27. package/dist/@types/domains/post.d.ts.map +1 -1
  28. package/dist/@types/domains/stream.d.ts +2 -1
  29. package/dist/@types/domains/stream.d.ts.map +1 -1
  30. package/dist/@types/domains/user.d.ts +34 -6
  31. package/dist/@types/domains/user.d.ts.map +1 -1
  32. package/dist/channelRepository/channelMembership/observers/getMembers/ChannelMemberLiveCollectionController.d.ts.map +1 -1
  33. package/dist/channelRepository/channelMembership/observers/getMembers/ChannelMemberPaginationController.d.ts +3 -2
  34. package/dist/channelRepository/channelMembership/observers/getMembers/ChannelMemberPaginationController.d.ts.map +1 -1
  35. package/dist/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberLiveCollectionController.d.ts +14 -0
  36. package/dist/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberLiveCollectionController.d.ts.map +1 -0
  37. package/dist/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberPaginationController.d.ts +14 -0
  38. package/dist/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberPaginationController.d.ts.map +1 -0
  39. package/dist/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberQueryStreamController.d.ts +14 -0
  40. package/dist/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberQueryStreamController.d.ts.map +1 -0
  41. package/dist/channelRepository/channelMembership/observers/searchMembers/index.d.ts +2 -0
  42. package/dist/channelRepository/channelMembership/observers/searchMembers/index.d.ts.map +1 -0
  43. package/dist/channelRepository/channelMembership/observers/searchMembers/searchMembers.d.ts +21 -0
  44. package/dist/channelRepository/channelMembership/observers/searchMembers/searchMembers.d.ts.map +1 -0
  45. package/dist/channelRepository/events/onUserDeleted.d.ts +2 -0
  46. package/dist/channelRepository/events/onUserDeleted.d.ts.map +1 -0
  47. package/dist/channelRepository/observers/getChannels/ChannelPaginationController.d.ts +3 -3
  48. package/dist/channelRepository/utils/prepareChannelPayload.d.ts.map +1 -1
  49. package/dist/channelRepository/utils/tests/prepareChannelPayload.test.d.ts +1 -1
  50. package/dist/channelRepository/utils/tests/prepareChannelPayload.test.d.ts.map +1 -1
  51. package/dist/client/api/index.d.ts +0 -2
  52. package/dist/client/api/index.d.ts.map +1 -1
  53. package/dist/commentRepository/api/createComment.d.ts.map +1 -1
  54. package/dist/commentRepository/api/deleteComment.d.ts.map +1 -1
  55. package/dist/commentRepository/events/onCommentCreatedLocal.d.ts +17 -0
  56. package/dist/commentRepository/events/onCommentCreatedLocal.d.ts.map +1 -0
  57. package/dist/commentRepository/events/onCommentDeletedLocal.d.ts +17 -0
  58. package/dist/commentRepository/events/onCommentDeletedLocal.d.ts.map +1 -0
  59. package/dist/commentRepository/events/onLocalCommentReactionAdded.d.ts +17 -0
  60. package/dist/commentRepository/events/onLocalCommentReactionAdded.d.ts.map +1 -0
  61. package/dist/commentRepository/events/onLocalCommentReactionRemoved.d.ts +17 -0
  62. package/dist/commentRepository/events/onLocalCommentReactionRemoved.d.ts.map +1 -0
  63. package/dist/commentRepository/events/utils.d.ts +1 -0
  64. package/dist/commentRepository/events/utils.d.ts.map +1 -1
  65. package/dist/commentRepository/observers/getComment.d.ts.map +1 -1
  66. package/dist/commentRepository/observers/getComments/CommentLiveCollectionController.d.ts.map +1 -1
  67. package/dist/communityRepository/communityMembership/events/index.d.ts +2 -0
  68. package/dist/communityRepository/communityMembership/events/index.d.ts.map +1 -1
  69. package/dist/communityRepository/communityMembership/events/onLocalCommunityUserAdded.d.ts +17 -0
  70. package/dist/communityRepository/communityMembership/events/onLocalCommunityUserAdded.d.ts.map +1 -0
  71. package/dist/communityRepository/communityMembership/events/onLocalCommunityUserRemoved.d.ts +17 -0
  72. package/dist/communityRepository/communityMembership/events/onLocalCommunityUserRemoved.d.ts.map +1 -0
  73. package/dist/communityRepository/communityMembership/events/onUserDeleted.d.ts +17 -0
  74. package/dist/communityRepository/communityMembership/events/onUserDeleted.d.ts.map +1 -0
  75. package/dist/communityRepository/communityMembership/events/utils.d.ts +1 -0
  76. package/dist/communityRepository/communityMembership/events/utils.d.ts.map +1 -1
  77. package/dist/communityRepository/communityMembership/observers/getMembers/CommunityMembersLiveCollectionController.d.ts.map +1 -1
  78. package/dist/communityRepository/communityMembership/observers/getMembers/CommunityMembersPaginationController.d.ts.map +1 -1
  79. package/dist/communityRepository/communityMembership/observers/getMembers/enums.d.ts +4 -1
  80. package/dist/communityRepository/communityMembership/observers/getMembers/enums.d.ts.map +1 -1
  81. package/dist/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersLiveCollectionController.d.ts.map +1 -1
  82. package/dist/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersPaginationController.d.ts.map +1 -1
  83. package/dist/communityRepository/communityModeration/api/addRoles.d.ts.map +1 -1
  84. package/dist/communityRepository/communityModeration/api/removeRoles.d.ts.map +1 -1
  85. package/dist/communityRepository/communityModeration/events/onLocalCommunityRoleAdded.d.ts +17 -0
  86. package/dist/communityRepository/communityModeration/events/onLocalCommunityRoleAdded.d.ts.map +1 -0
  87. package/dist/communityRepository/communityModeration/events/onLocalCommunityRoleRemoved.d.ts +17 -0
  88. package/dist/communityRepository/communityModeration/events/onLocalCommunityRoleRemoved.d.ts.map +1 -0
  89. package/dist/communityRepository/utils/payload.d.ts +3 -6
  90. package/dist/communityRepository/utils/payload.d.ts.map +1 -1
  91. package/dist/core/events.d.ts +3 -3
  92. package/dist/core/events.d.ts.map +1 -1
  93. package/dist/core/model/idResolvers.d.ts.map +1 -1
  94. package/dist/core/model/index.d.ts.map +1 -1
  95. package/dist/fileRepository/api/uploadFile.d.ts.map +1 -1
  96. package/dist/fileRepository/api/uploadImage.d.ts.map +1 -1
  97. package/dist/fileRepository/api/uploadVideo.d.ts.map +1 -1
  98. package/dist/group/utils/withUser.d.ts +13 -0
  99. package/dist/group/utils/withUser.d.ts.map +1 -1
  100. package/dist/index.cjs.js +2247 -1250
  101. package/dist/index.esm.js +2435 -1437
  102. package/dist/index.umd.js +3 -3
  103. package/dist/pollRepository/observers/observePoll.d.ts +1 -1
  104. package/dist/pollRepository/observers/observePoll.d.ts.map +1 -1
  105. package/dist/postRepository/events/onLocalPostDeleted.d.ts +17 -0
  106. package/dist/postRepository/events/onLocalPostDeleted.d.ts.map +1 -0
  107. package/dist/postRepository/events/onLocalPostReactionAdded.d.ts +17 -0
  108. package/dist/postRepository/events/onLocalPostReactionAdded.d.ts.map +1 -0
  109. package/dist/postRepository/events/onLocalPostReactionRemoved.d.ts +17 -0
  110. package/dist/postRepository/events/onLocalPostReactionRemoved.d.ts.map +1 -0
  111. package/dist/postRepository/events/onPostUpdatedLocal.d.ts +17 -0
  112. package/dist/postRepository/events/onPostUpdatedLocal.d.ts.map +1 -0
  113. package/dist/postRepository/events/utils.d.ts +1 -0
  114. package/dist/postRepository/events/utils.d.ts.map +1 -1
  115. package/dist/postRepository/internalApi/index.d.ts +1 -12
  116. package/dist/postRepository/internalApi/index.d.ts.map +1 -1
  117. package/dist/postRepository/observers/getPinnedPosts/PinnedPostLiveCollectionController.d.ts +14 -0
  118. package/dist/postRepository/observers/getPinnedPosts/PinnedPostLiveCollectionController.d.ts.map +1 -0
  119. package/dist/postRepository/observers/getPinnedPosts/PinnedPostPaginationController.d.ts +13 -0
  120. package/dist/postRepository/observers/getPinnedPosts/PinnedPostPaginationController.d.ts.map +1 -0
  121. package/dist/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.d.ts +9 -0
  122. package/dist/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.d.ts.map +1 -0
  123. package/dist/postRepository/observers/getPinnedPosts.d.ts +12 -0
  124. package/dist/postRepository/observers/getPinnedPosts.d.ts.map +1 -0
  125. package/dist/postRepository/observers/getPost.d.ts.map +1 -1
  126. package/dist/postRepository/observers/getPosts/PostLiveCollectionController.d.ts.map +1 -1
  127. package/dist/postRepository/observers/index.d.ts +1 -0
  128. package/dist/postRepository/observers/index.d.ts.map +1 -1
  129. package/dist/postRepository/utils/payload.d.ts.map +1 -1
  130. package/dist/reactionRepository/api/addReaction.d.ts.map +1 -1
  131. package/dist/reactionRepository/api/removeReaction.d.ts.map +1 -1
  132. package/dist/report/api/createReport.d.ts +1 -2
  133. package/dist/report/api/createReport.d.ts.map +1 -1
  134. package/dist/report/api/deleteReport.d.ts +1 -2
  135. package/dist/report/api/deleteReport.d.ts.map +1 -1
  136. package/dist/report/api/isReportedByMe.d.ts +1 -2
  137. package/dist/report/api/isReportedByMe.d.ts.map +1 -1
  138. package/dist/streamRepository/observers/getStreams/GetStreamsPageController.d.ts +1 -1
  139. package/dist/userRepository/api/flagUser.d.ts.map +1 -1
  140. package/dist/userRepository/api/getUser.d.ts.map +1 -1
  141. package/dist/userRepository/api/getUserByIds.d.ts.map +1 -1
  142. package/dist/userRepository/api/queryBlockedUsers.d.ts.map +1 -1
  143. package/dist/userRepository/api/queryUsers.d.ts.map +1 -1
  144. package/dist/userRepository/api/unflagUser.d.ts.map +1 -1
  145. package/dist/userRepository/api/updateUser.d.ts.map +1 -1
  146. package/dist/userRepository/events/utils.d.ts.map +1 -1
  147. package/dist/userRepository/internalApi/getUser.d.ts.map +1 -1
  148. package/dist/userRepository/internalApi/queryUsers.d.ts.map +1 -1
  149. package/dist/userRepository/observers/enums.d.ts +8 -0
  150. package/dist/userRepository/observers/enums.d.ts.map +1 -0
  151. package/dist/userRepository/observers/getBlockedUsers/BlockedUserLiveCollectionController.d.ts +14 -0
  152. package/dist/userRepository/observers/getBlockedUsers/BlockedUserLiveCollectionController.d.ts.map +1 -0
  153. package/dist/userRepository/observers/getBlockedUsers/BlockedUserPaginationController.d.ts +5 -0
  154. package/dist/userRepository/observers/getBlockedUsers/BlockedUserPaginationController.d.ts.map +1 -0
  155. package/dist/userRepository/observers/getBlockedUsers/BlockedUserQueryStreamController.d.ts +15 -0
  156. package/dist/userRepository/observers/getBlockedUsers/BlockedUserQueryStreamController.d.ts.map +1 -0
  157. package/dist/userRepository/observers/getBlockedUsers.d.ts.map +1 -1
  158. package/dist/userRepository/observers/getUsers/UserLiveCollectionController.d.ts +14 -0
  159. package/dist/userRepository/observers/getUsers/UserLiveCollectionController.d.ts.map +1 -0
  160. package/dist/userRepository/observers/getUsers/UserPaginationController.d.ts +5 -0
  161. package/dist/userRepository/observers/getUsers/UserPaginationController.d.ts.map +1 -0
  162. package/dist/userRepository/observers/getUsers/UserQueryStreamController.d.ts +15 -0
  163. package/dist/userRepository/observers/getUsers/UserQueryStreamController.d.ts.map +1 -0
  164. package/dist/userRepository/observers/getUsers.d.ts +0 -1
  165. package/dist/userRepository/observers/getUsers.d.ts.map +1 -1
  166. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserLiveCollectionController.d.ts +14 -0
  167. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserLiveCollectionController.d.ts.map +1 -0
  168. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserPaginationController.d.ts +5 -0
  169. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserPaginationController.d.ts.map +1 -0
  170. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserQueryStreamController.d.ts +15 -0
  171. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserQueryStreamController.d.ts.map +1 -0
  172. package/dist/userRepository/observers/searchUserByDisplayName.d.ts.map +1 -1
  173. package/dist/userRepository/relationship/block/api/blockUser.d.ts.map +1 -1
  174. package/dist/userRepository/relationship/block/api/unBlockUser.d.ts.map +1 -1
  175. package/dist/userRepository/relationship/follow/api/acceptFollower.d.ts.map +1 -1
  176. package/dist/userRepository/relationship/follow/api/acceptMyFollower.d.ts.map +1 -1
  177. package/dist/userRepository/relationship/follow/api/declineFollower.d.ts.map +1 -1
  178. package/dist/userRepository/relationship/follow/api/declineMyFollower.d.ts.map +1 -1
  179. package/dist/userRepository/relationship/follow/api/follow.d.ts.map +1 -1
  180. package/dist/userRepository/relationship/follow/api/unfollow.d.ts.map +1 -1
  181. package/dist/userRepository/relationship/follow/api/utils.d.ts.map +1 -1
  182. package/dist/userRepository/relationship/follow/enums.d.ts +11 -0
  183. package/dist/userRepository/relationship/follow/enums.d.ts.map +1 -0
  184. package/dist/userRepository/relationship/follow/events/index.d.ts +5 -0
  185. package/dist/userRepository/relationship/follow/events/index.d.ts.map +1 -1
  186. package/dist/userRepository/relationship/follow/events/onFollowInfoUpdated.d.ts.map +1 -1
  187. package/dist/userRepository/relationship/follow/events/onFollowerUserDeleted.d.ts +4 -0
  188. package/dist/userRepository/relationship/follow/events/onFollowerUserDeleted.d.ts.map +1 -0
  189. package/dist/userRepository/relationship/follow/events/onFollowingUserDeleted.d.ts +4 -0
  190. package/dist/userRepository/relationship/follow/events/onFollowingUserDeleted.d.ts.map +1 -0
  191. package/dist/userRepository/relationship/follow/events/onLocalFollowRequestAccepted.d.ts +2 -0
  192. package/dist/userRepository/relationship/follow/events/onLocalFollowRequestAccepted.d.ts.map +1 -0
  193. package/dist/userRepository/relationship/follow/events/onLocalFollowRequestDeclined.d.ts +2 -0
  194. package/dist/userRepository/relationship/follow/events/onLocalFollowRequestDeclined.d.ts.map +1 -0
  195. package/dist/userRepository/relationship/follow/events/onLocalFollowerRequested.d.ts +2 -0
  196. package/dist/userRepository/relationship/follow/events/onLocalFollowerRequested.d.ts.map +1 -0
  197. package/dist/userRepository/relationship/follow/events/onLocalUserFollowed.d.ts +2 -0
  198. package/dist/userRepository/relationship/follow/events/onLocalUserFollowed.d.ts.map +1 -0
  199. package/dist/userRepository/relationship/follow/events/onLocalUserUnfollowed.d.ts +2 -0
  200. package/dist/userRepository/relationship/follow/events/onLocalUserUnfollowed.d.ts.map +1 -0
  201. package/dist/userRepository/relationship/follow/events/utils.d.ts +2 -1
  202. package/dist/userRepository/relationship/follow/events/utils.d.ts.map +1 -1
  203. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerLiveCollectionController.d.ts +14 -0
  204. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerLiveCollectionController.d.ts.map +1 -0
  205. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerPaginationController.d.ts +5 -0
  206. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerPaginationController.d.ts.map +1 -0
  207. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerQueryStreamController.d.ts +15 -0
  208. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerQueryStreamController.d.ts.map +1 -0
  209. package/dist/userRepository/relationship/follow/observers/getFollowers.d.ts.map +1 -1
  210. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingLiveCollectionController.d.ts +14 -0
  211. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingLiveCollectionController.d.ts.map +1 -0
  212. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingPaginationController.d.ts +5 -0
  213. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingPaginationController.d.ts.map +1 -0
  214. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingQueryStreamController.d.ts +15 -0
  215. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingQueryStreamController.d.ts.map +1 -0
  216. package/dist/userRepository/relationship/follow/observers/getFollowings.d.ts.map +1 -1
  217. package/dist/userRepository/relationship/follow/observers/observeFollowers.d.ts +1 -1
  218. package/dist/userRepository/relationship/follow/observers/observeFollowers.d.ts.map +1 -1
  219. package/dist/userRepository/relationship/follow/observers/observeFollowings.d.ts +1 -1
  220. package/dist/userRepository/relationship/follow/observers/observeFollowings.d.ts.map +1 -1
  221. package/dist/userRepository/relationship/follow/utils.d.ts +4 -0
  222. package/dist/userRepository/relationship/follow/utils.d.ts.map +1 -0
  223. package/dist/userRepository/utils/convertRawUserToInternalUser.d.ts +2 -0
  224. package/dist/userRepository/utils/convertRawUserToInternalUser.d.ts.map +1 -0
  225. package/dist/userRepository/utils/prepareBlockedUserPayload.d.ts +2 -0
  226. package/dist/userRepository/utils/prepareBlockedUserPayload.d.ts.map +1 -0
  227. package/dist/userRepository/utils/prepareUserPayload.d.ts +2 -0
  228. package/dist/userRepository/utils/prepareUserPayload.d.ts.map +1 -0
  229. package/dist/utils/linkedObject/commentLinkedObject.d.ts.map +1 -1
  230. package/dist/utils/linkedObject/index.d.ts +2 -1
  231. package/dist/utils/linkedObject/index.d.ts.map +1 -1
  232. package/dist/utils/linkedObject/pinnedPostLinkedObject.d.ts +2 -0
  233. package/dist/utils/linkedObject/pinnedPostLinkedObject.d.ts.map +1 -0
  234. package/dist/utils/tests/dummy/block.d.ts +2 -2
  235. package/dist/utils/tests/dummy/channel.d.ts +12 -12
  236. package/dist/utils/tests/dummy/channel.d.ts.map +1 -1
  237. package/dist/utils/tests/dummy/community.d.ts +2 -2
  238. package/dist/utils/tests/dummy/follow.d.ts +2 -2
  239. package/dist/utils/tests/dummy/user.d.ts +10 -2
  240. package/dist/utils/tests/dummy/user.d.ts.map +1 -1
  241. package/package.json +1 -1
  242. package/src/@types/core/events.ts +40 -13
  243. package/src/@types/core/model.ts +6 -0
  244. package/src/@types/core/payload.ts +39 -9
  245. package/src/@types/core/permissions.ts +4 -4
  246. package/src/@types/domains/channel.ts +13 -0
  247. package/src/@types/domains/comment.ts +6 -4
  248. package/src/@types/domains/community.ts +40 -12
  249. package/src/@types/domains/follow.ts +26 -12
  250. package/src/@types/domains/group.ts +14 -6
  251. package/src/@types/domains/pin.ts +27 -0
  252. package/src/@types/domains/pinnedPost.ts +35 -0
  253. package/src/@types/domains/poll.ts +5 -1
  254. package/src/@types/domains/post.ts +9 -5
  255. package/src/@types/domains/stream.ts +3 -1
  256. package/src/@types/domains/user.ts +49 -6
  257. package/src/channelRepository/channelMembership/observers/getMembers/ChannelMemberLiveCollectionController.ts +6 -0
  258. package/src/channelRepository/channelMembership/observers/getMembers/ChannelMemberPaginationController.ts +4 -1
  259. package/src/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberLiveCollectionController.ts +148 -0
  260. package/src/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberPaginationController.ts +31 -0
  261. package/src/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberQueryStreamController.ts +112 -0
  262. package/src/channelRepository/channelMembership/observers/searchMembers/index.ts +1 -0
  263. package/src/channelRepository/channelMembership/observers/searchMembers/searchMembers.ts +111 -0
  264. package/src/channelRepository/events/onUserDeleted.ts +46 -0
  265. package/src/channelRepository/utils/prepareChannelPayload.ts +8 -4
  266. package/src/client/api/index.ts +0 -3
  267. package/src/commentRepository/api/createComment.ts +16 -12
  268. package/src/commentRepository/api/deleteComment.ts +23 -13
  269. package/src/commentRepository/events/onCommentCreatedLocal.ts +22 -0
  270. package/src/commentRepository/events/onCommentDeletedLocal.ts +20 -0
  271. package/src/commentRepository/events/onLocalCommentReactionAdded.ts +42 -0
  272. package/src/commentRepository/events/onLocalCommentReactionRemoved.ts +42 -0
  273. package/src/commentRepository/events/utils.ts +77 -0
  274. package/src/commentRepository/observers/getComment.ts +6 -19
  275. package/src/commentRepository/observers/getComments/CommentLiveCollectionController.ts +8 -0
  276. package/src/communityRepository/communityMembership/api/addMembers.ts +1 -1
  277. package/src/communityRepository/communityMembership/api/removeMembers.ts +1 -1
  278. package/src/communityRepository/communityMembership/events/index.ts +2 -0
  279. package/src/communityRepository/communityMembership/events/onLocalCommunityUserAdded.ts +20 -0
  280. package/src/communityRepository/communityMembership/events/onLocalCommunityUserRemoved.ts +20 -0
  281. package/src/communityRepository/communityMembership/events/onUserDeleted.ts +64 -0
  282. package/src/communityRepository/communityMembership/events/utils.ts +50 -2
  283. package/src/communityRepository/communityMembership/observers/getMembers/CommunityMembersLiveCollectionController.ts +26 -1
  284. package/src/communityRepository/communityMembership/observers/getMembers/CommunityMembersPaginationController.ts +4 -1
  285. package/src/communityRepository/communityMembership/observers/getMembers/enums.ts +3 -0
  286. package/src/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersLiveCollectionController.ts +14 -0
  287. package/src/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersPaginationController.ts +4 -1
  288. package/src/communityRepository/communityModeration/api/addRoles.ts +5 -2
  289. package/src/communityRepository/communityModeration/api/removeRoles.ts +5 -2
  290. package/src/communityRepository/communityModeration/events/onLocalCommunityRoleAdded.ts +38 -0
  291. package/src/communityRepository/communityModeration/events/onLocalCommunityRoleRemoved.ts +38 -0
  292. package/src/communityRepository/utils/payload.ts +47 -53
  293. package/src/core/model/idResolvers.ts +3 -0
  294. package/src/core/model/index.ts +3 -0
  295. package/src/fileRepository/api/uploadFile.ts +5 -10
  296. package/src/fileRepository/api/uploadImage.ts +5 -8
  297. package/src/fileRepository/api/uploadVideo.ts +7 -9
  298. package/src/group/utils/withUser.ts +33 -0
  299. package/src/postRepository/api/deletePost.ts +9 -9
  300. package/src/postRepository/api/updatePost.ts +1 -1
  301. package/src/postRepository/events/onLocalPostDeleted.ts +20 -0
  302. package/src/postRepository/events/onLocalPostReactionAdded.ts +38 -0
  303. package/src/postRepository/events/onLocalPostReactionRemoved.ts +41 -0
  304. package/src/postRepository/events/onPostUpdatedLocal.ts +20 -0
  305. package/src/postRepository/events/utils.ts +41 -6
  306. package/src/postRepository/internalApi/index.ts +1 -16
  307. package/src/postRepository/observers/getPinnedPosts/PinnedPostLiveCollectionController.ts +104 -0
  308. package/src/postRepository/observers/getPinnedPosts/PinnedPostPaginationController.ts +23 -0
  309. package/src/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.ts +61 -0
  310. package/src/postRepository/observers/getPinnedPosts.ts +41 -0
  311. package/src/postRepository/observers/getPost.ts +8 -0
  312. package/src/postRepository/observers/getPosts/PostLiveCollectionController.ts +8 -0
  313. package/src/postRepository/observers/index.ts +1 -0
  314. package/src/postRepository/utils/payload.ts +31 -7
  315. package/src/reactionRepository/api/addReaction.ts +27 -2
  316. package/src/reactionRepository/api/removeReaction.ts +27 -2
  317. package/src/report/api/createReport.ts +100 -31
  318. package/src/report/api/deleteReport.ts +100 -31
  319. package/src/report/api/isReportedByMe.ts +72 -11
  320. package/src/userRepository/api/flagUser.ts +5 -2
  321. package/src/userRepository/api/getUser.ts +4 -43
  322. package/src/userRepository/api/getUserByIds.ts +5 -2
  323. package/src/userRepository/api/queryBlockedUsers.ts +6 -6
  324. package/src/userRepository/api/queryUsers.ts +11 -87
  325. package/src/userRepository/api/unflagUser.ts +5 -2
  326. package/src/userRepository/api/updateUser.ts +5 -11
  327. package/src/userRepository/events/utils.ts +4 -1
  328. package/src/userRepository/internalApi/getUser.ts +12 -16
  329. package/src/userRepository/internalApi/queryUsers.ts +7 -4
  330. package/src/userRepository/observers/enums.ts +7 -0
  331. package/src/userRepository/observers/getBlockedUsers/BlockedUserLiveCollectionController.ts +106 -0
  332. package/src/userRepository/observers/getBlockedUsers/BlockedUserPaginationController.ts +24 -0
  333. package/src/userRepository/observers/getBlockedUsers/BlockedUserQueryStreamController.ts +76 -0
  334. package/src/userRepository/observers/getBlockedUsers.ts +8 -81
  335. package/src/userRepository/observers/getUsers/UserLiveCollectionController.ts +131 -0
  336. package/src/userRepository/observers/getUsers/UserPaginationController.ts +25 -0
  337. package/src/userRepository/observers/getUsers/UserQueryStreamController.ts +82 -0
  338. package/src/userRepository/observers/getUsers.ts +7 -137
  339. package/src/userRepository/observers/searchUserByDisplayName/SearchUserLiveCollectionController.ts +116 -0
  340. package/src/userRepository/observers/searchUserByDisplayName/SearchUserPaginationController.ts +25 -0
  341. package/src/userRepository/observers/searchUserByDisplayName/SearchUserQueryStreamController.ts +82 -0
  342. package/src/userRepository/observers/searchUserByDisplayName.ts +25 -1
  343. package/src/userRepository/relationship/block/api/blockUser.ts +4 -1
  344. package/src/userRepository/relationship/block/api/unBlockUser.ts +4 -1
  345. package/src/userRepository/relationship/follow/api/acceptFollower.ts +4 -1
  346. package/src/userRepository/relationship/follow/api/acceptMyFollower.ts +4 -1
  347. package/src/userRepository/relationship/follow/api/declineFollower.ts +5 -2
  348. package/src/userRepository/relationship/follow/api/declineMyFollower.ts +5 -2
  349. package/src/userRepository/relationship/follow/api/follow.ts +8 -1
  350. package/src/userRepository/relationship/follow/api/unfollow.ts +4 -1
  351. package/src/userRepository/relationship/follow/api/utils.ts +6 -2
  352. package/src/userRepository/relationship/follow/enums.ts +10 -0
  353. package/src/userRepository/relationship/follow/events/index.ts +6 -0
  354. package/src/userRepository/relationship/follow/events/onFollowInfoUpdated.ts +6 -1
  355. package/src/userRepository/relationship/follow/events/onFollowerUserDeleted.ts +33 -0
  356. package/src/userRepository/relationship/follow/events/onFollowingUserDeleted.ts +33 -0
  357. package/src/userRepository/relationship/follow/events/onLocalFollowRequestAccepted.ts +5 -0
  358. package/src/userRepository/relationship/follow/events/onLocalFollowRequestDeclined.ts +5 -0
  359. package/src/userRepository/relationship/follow/events/onLocalFollowerRequested.ts +5 -0
  360. package/src/userRepository/relationship/follow/events/onLocalUserFollowed.ts +5 -0
  361. package/src/userRepository/relationship/follow/events/onLocalUserUnfollowed.ts +5 -0
  362. package/src/userRepository/relationship/follow/events/utils.ts +25 -14
  363. package/src/userRepository/relationship/follow/observers/getFollowers/FollowerLiveCollectionController.ts +132 -0
  364. package/src/userRepository/relationship/follow/observers/getFollowers/FollowerPaginationController.ts +29 -0
  365. package/src/userRepository/relationship/follow/observers/getFollowers/FollowerQueryStreamController.ts +95 -0
  366. package/src/userRepository/relationship/follow/observers/getFollowers.ts +8 -106
  367. package/src/userRepository/relationship/follow/observers/getFollowings/FollowingLiveCollectionController.ts +136 -0
  368. package/src/userRepository/relationship/follow/observers/getFollowings/FollowingPaginationController.ts +29 -0
  369. package/src/userRepository/relationship/follow/observers/getFollowings/FollowingQueryStreamController.ts +95 -0
  370. package/src/userRepository/relationship/follow/observers/getFollowings.ts +6 -106
  371. package/src/userRepository/relationship/follow/observers/observeFollowers.ts +11 -0
  372. package/src/userRepository/relationship/follow/observers/observeFollowings.ts +11 -0
  373. package/src/userRepository/relationship/follow/utils.ts +36 -0
  374. package/src/userRepository/utils/convertRawUserToInternalUser.ts +6 -0
  375. package/src/userRepository/utils/prepareBlockedUserPayload.ts +19 -0
  376. package/src/userRepository/utils/prepareUserPayload.ts +8 -0
  377. package/src/utils/linkedObject/commentLinkedObject.ts +13 -16
  378. package/src/utils/linkedObject/index.ts +2 -0
  379. package/src/utils/linkedObject/pinnedPostLinkedObject.ts +28 -0
@@ -3,12 +3,12 @@ import { getActiveClient } from '~/client/api';
3
3
  import { upsertInCache } from '~/cache/api';
4
4
  import { fireEvent } from '~/core/events';
5
5
 
6
- import { getPost } from '~/postRepository/api/getPost';
7
6
  import { pushToTombstone } from '~/cache/api/pushToTombstone';
8
7
  import { scheduleTask } from '~/core/microtasks';
9
8
 
10
9
  import { getStoryByStoryId } from '~/storyRepository/internalApi/getStoryByStoryId';
11
10
  import { getComment } from './getComment';
11
+ import { pullFromCache } from '~/cache/api/pullFromCache';
12
12
 
13
13
  /* begin_public_function
14
14
  id: comment.soft_delete, comment.hard_delete
@@ -62,19 +62,29 @@ export const deleteComment = async (
62
62
  users: [],
63
63
  });
64
64
  } else {
65
- const post = await getPost(comment.data.referenceId);
65
+ const post = pullFromCache<Amity.Post>(['post', 'get', comment.data.referenceId])?.data;
66
66
 
67
- fireEvent('local.post.updated', {
68
- posts: [post.data],
69
- categories: [],
70
- comments: [],
71
- communities: [],
72
- communityUsers: [],
73
- feeds: [],
74
- files: [],
75
- postChildren: [],
76
- users: [],
77
- });
67
+ if (post) {
68
+ let removeCount: number;
69
+ if (!deleted.parentId) {
70
+ // NOTE: delete the parent comment will remove all children comments
71
+ removeCount = deleted.childrenNumber + 1;
72
+ } else removeCount = 1;
73
+
74
+ post.commentsCount -= removeCount;
75
+
76
+ fireEvent('local.post.updated', {
77
+ posts: [post],
78
+ categories: [],
79
+ comments: [],
80
+ communities: [],
81
+ communityUsers: [],
82
+ feeds: [],
83
+ files: [],
84
+ postChildren: [],
85
+ users: [],
86
+ });
87
+ }
78
88
  }
79
89
 
80
90
  fireEvent('local.comment.deleted', {
@@ -0,0 +1,22 @@
1
+ import { createCommentEventSubscriber, createLocalCommentEventSubscriber } from './utils';
2
+
3
+ /**
4
+ * ```js
5
+ * import { onCommentCreated } from '@amityco/ts-sdk-react-native'
6
+ * const dispose = onCommentCreated(comment => {
7
+ * // ...
8
+ * })
9
+ * ```
10
+ *
11
+ * Fired when a {@link Amity.InternalComment} has been created
12
+ *
13
+ * @param callback The function to call when the event was fired
14
+ * @returns an {@link Amity.Unsubscriber} function to stop listening
15
+ *
16
+ * @category Comment Events
17
+ */
18
+ export const onCommentCreatedLocal = (
19
+ callback: Amity.Listener<Amity.InternalComment>,
20
+ ): Amity.Unsubscriber => {
21
+ return createLocalCommentEventSubscriber('local.comment.created', callback);
22
+ };
@@ -0,0 +1,20 @@
1
+ import { createLocalCommentEventSubscriber } from './utils';
2
+
3
+ /**
4
+ * ```js
5
+ * import { onCommentDeleteLocal } from '@amityco/ts-sdk-react-native'
6
+ * const dispose = onCommentDeleteLocal(comment => {
7
+ * // ...
8
+ * })
9
+ * ```
10
+ *
11
+ * Fired when a {@link Amity.InternalComment} has been deleted
12
+ *
13
+ * @param callback The function to call when the event was fired
14
+ * @returns an {@link Amity.Unsubscriber} function to stop listening
15
+ *
16
+ * @category Comment Events
17
+ */
18
+ export const onCommentDeleteLocal = (
19
+ callback: Amity.Listener<Amity.InternalComment>,
20
+ ): Amity.Unsubscriber => createLocalCommentEventSubscriber('local.comment.deleted', callback);
@@ -0,0 +1,42 @@
1
+ import { getActiveClient } from '~/client/api';
2
+ import { pullFromCache, upsertInCache } from '~/cache/api';
3
+ import { createEventSubscriber } from '~/core/events';
4
+ import { commentLinkedObject } from '~/utils/linkedObject/commentLinkedObject';
5
+
6
+ /**
7
+ * ```js
8
+ * import { onLocalCommentReactionAdded } from '@amityco/ts-sdk-react-native'
9
+ * const dispose = onLocalCommentReactionAdded(comment => {
10
+ * // ...
11
+ * })
12
+ * ```
13
+ *
14
+ * Fired when a {@link Amity.InternalComment} has been reacted
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 Comment Events
20
+ */
21
+ export const onLocalCommentReactionAdded = (
22
+ callback: Amity.Listener<Amity.InternalComment>,
23
+ ): Amity.Unsubscriber => {
24
+ const client = getActiveClient();
25
+
26
+ const filter = ({ comment }: Amity.Events['local.comment.addReaction']) => {
27
+ if (!client.cache) {
28
+ callback(comment);
29
+ } else {
30
+ upsertInCache(['comment', 'get', comment.commentId], comment);
31
+
32
+ callback(commentLinkedObject(comment));
33
+ }
34
+ };
35
+
36
+ return createEventSubscriber(
37
+ client,
38
+ 'local.comment.addReaction',
39
+ 'local.comment.addReaction',
40
+ filter,
41
+ );
42
+ };
@@ -0,0 +1,42 @@
1
+ import { getActiveClient } from '~/client/api';
2
+ import { pullFromCache, upsertInCache } from '~/cache/api';
3
+ import { createEventSubscriber } from '~/core/events';
4
+ import { commentLinkedObject } from '~/utils/linkedObject/commentLinkedObject';
5
+
6
+ /**
7
+ * ```js
8
+ * import { onLocalCommentReactionRemoved } from '@amityco/ts-sdk-react-native'
9
+ * const dispose = onLocalCommentReactionRemoved(comment => {
10
+ * // ...
11
+ * })
12
+ * ```
13
+ *
14
+ * Fired when a {@link Amity.InternalComment} has been reacted
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 Comment Events
20
+ */
21
+ export const onLocalCommentReactionRemoved = (
22
+ callback: Amity.Listener<Amity.InternalComment>,
23
+ ): Amity.Unsubscriber => {
24
+ const client = getActiveClient();
25
+
26
+ const filter = ({ comment }: Amity.Events['local.comment.removeReaction']) => {
27
+ if (!client.cache) {
28
+ callback(comment);
29
+ } else {
30
+ upsertInCache(['comment', 'get', comment.commentId], comment);
31
+
32
+ callback(commentLinkedObject(comment));
33
+ }
34
+ };
35
+
36
+ return createEventSubscriber(
37
+ client,
38
+ 'local.comment.removeReaction',
39
+ 'local.comment.removeReaction',
40
+ filter,
41
+ );
42
+ };
@@ -31,6 +31,9 @@ export const createCommentEventSubscriber = (
31
31
  ])!;
32
32
 
33
33
  if (['comment.created'].includes(event)) {
34
+ // NOTE: skip adding comment to parent comment children if it's the same user since we use the local event to update instead.
35
+ if (event === 'comment.created' && comment.data.userId === client.userId) return;
36
+
34
37
  if (comments[0].parentId) {
35
38
  const parentComment = pullFromCache<Amity.InternalComment>([
36
39
  'comment',
@@ -64,3 +67,77 @@ export const createCommentEventSubscriber = (
64
67
 
65
68
  return createEventSubscriber(client, event, event, filter);
66
69
  };
70
+
71
+ export const createLocalCommentEventSubscriber = (
72
+ event: keyof Omit<
73
+ Amity.LocalCommentEvents,
74
+ 'local.comment.addReaction' | 'local.comment.removeReaction'
75
+ >,
76
+ callback: Amity.Listener<Amity.InternalComment>,
77
+ ) => {
78
+ const client = getActiveClient();
79
+
80
+ const filter = (payload: Amity.CommentPayload) => {
81
+ if (!client.cache) {
82
+ // TODO: here we are missing specific properties here!
83
+ callback(LinkedObject.comment(payload.comments[0]));
84
+ } else {
85
+ const processed = payload;
86
+
87
+ ingestInCache(processed);
88
+
89
+ const { comments } = processed;
90
+
91
+ if (comments.length > 0) {
92
+ const comment = pullFromCache<Amity.InternalComment>([
93
+ 'comment',
94
+ 'get',
95
+ comments[0].commentId,
96
+ ])!;
97
+
98
+ if (['local.comment.created'].includes(event)) {
99
+ if (comments[0].parentId) {
100
+ const parentComment = pullFromCache<Amity.InternalComment>([
101
+ 'comment',
102
+ 'get',
103
+ comments[0].parentId,
104
+ ]);
105
+
106
+ if (parentComment?.data) {
107
+ // Skip to update parent childComment if current comment already exists
108
+ if (!parentComment.data.children.includes(comments[0].commentId)) {
109
+ const newParentComment = {
110
+ ...parentComment.data,
111
+ childrenNumber: parentComment.data.childrenNumber + 1,
112
+ children: [...new Set([...parentComment.data.children, comments[0].commentId])],
113
+ };
114
+ pushToCache(['comment', 'get', comments[0].parentId], newParentComment);
115
+
116
+ setTimeout(() => {
117
+ // NOTE: This is workaround solution for emitting event not work properly.
118
+ fireEvent('comment.updated', {
119
+ comments: [newParentComment],
120
+ commentChildren: [],
121
+ files: [],
122
+ users: [],
123
+ communityUsers: [],
124
+ });
125
+ }, 200);
126
+ }
127
+ }
128
+ }
129
+
130
+ const queries = queryCache<Amity.InternalComment[]>(['comment', 'query'])?.filter(
131
+ ({ key }) => (key[2] as Amity.QueryComments)?.referenceId === comment.data.referenceId,
132
+ );
133
+
134
+ queries?.map(({ key, data }) => upsertInCache(key, data as any, { cachedAt: -1 }));
135
+ }
136
+
137
+ callback(LinkedObject.comment(comment.data));
138
+ }
139
+ }
140
+ };
141
+
142
+ return createEventSubscriber(client, event, event, filter);
143
+ };
@@ -10,6 +10,9 @@ import {
10
10
  onCommentUnflagged,
11
11
  onCommentUpdated,
12
12
  } from '../events';
13
+ import { onCommentDeleteLocal } from '../events/onCommentDeletedLocal';
14
+ import { onLocalCommentReactionAdded } from '../events/onLocalCommentReactionAdded';
15
+ import { onLocalCommentReactionRemoved } from '../events/onLocalCommentReactionRemoved';
13
16
 
14
17
  /* begin_public_function
15
18
  id: comment.get
@@ -38,31 +41,15 @@ export const getComment = (
38
41
  callback: Amity.LiveObjectCallback<Amity.Comment>,
39
42
  ): Amity.Unsubscriber => {
40
43
  return liveObject(commentId, callback, 'commentId', _getComment, [
44
+ onCommentDeleteLocal,
41
45
  onCommentDeleted,
42
46
  onCommentFlagged,
43
47
  onCommentReactionAdded,
44
48
  onCommentReactionRemoved,
45
49
  onCommentUnflagged,
46
50
  onCommentUpdated,
47
- (callback: Amity.Listener<Amity.InternalComment>) => {
48
- return onCommentCreated((comment: Amity.InternalComment) => {
49
- if (comment.parentId !== commentId) return;
50
-
51
- const cacheParent = pullFromCache<Amity.InternalComment>([
52
- 'comment',
53
- 'get',
54
- comment.parentId,
55
- ]);
56
-
57
- if (!cacheParent?.data) return;
58
-
59
- callback({
60
- ...cacheParent.data,
61
- childrenNumber: cacheParent.data.childrenNumber + 1,
62
- children: [...new Set([...cacheParent.data.children, comment.commentId])],
63
- });
64
- });
65
- },
51
+ onLocalCommentReactionAdded,
52
+ onLocalCommentReactionRemoved,
66
53
  ]);
67
54
  };
68
55
  /* end_public_function */
@@ -17,6 +17,10 @@ import { isNonNullable } from '~/utils';
17
17
  import { EnumCommentActions } from './enums';
18
18
  import { LinkedObject } from '~/utils/linkedObject';
19
19
  import { prepareCommentPayload } from '~/commentRepository/utils/payload';
20
+ import { onCommentCreatedLocal } from '~/commentRepository/events/onCommentCreatedLocal';
21
+ import { onCommentDeleteLocal } from '~/commentRepository/events/onCommentDeletedLocal';
22
+ import { onLocalCommentReactionAdded } from '~/commentRepository/events/onLocalCommentReactionAdded';
23
+ import { onLocalCommentReactionRemoved } from '~/commentRepository/events/onLocalCommentReactionRemoved';
20
24
 
21
25
  export class CommentLiveCollectionController extends LiveCollectionController<
22
26
  'comment',
@@ -74,6 +78,8 @@ export class CommentLiveCollectionController extends LiveCollectionController<
74
78
 
75
79
  startSubscription() {
76
80
  return this.queryStreamController.subscribeRTE([
81
+ { fn: onCommentCreatedLocal, action: EnumCommentActions.OnCommentCreated },
82
+ { fn: onCommentDeleteLocal, action: EnumCommentActions.OnCommentDeleted },
77
83
  { fn: onCommentCreated, action: EnumCommentActions.OnCommentCreated },
78
84
  { fn: onCommentUpdated, action: EnumCommentActions.OnCommentUpdated },
79
85
  { fn: onCommentDeleted, action: EnumCommentActions.OnCommentDeleted },
@@ -81,6 +87,8 @@ export class CommentLiveCollectionController extends LiveCollectionController<
81
87
  { fn: onCommentUnflagged, action: EnumCommentActions.OnCommentUnflagged },
82
88
  { fn: onCommentReactionAdded, action: EnumCommentActions.OnCommentReactionAdded },
83
89
  { fn: onCommentReactionRemoved, action: EnumCommentActions.OnCommentReactionRemoved },
90
+ { fn: onLocalCommentReactionAdded, action: EnumCommentActions.OnCommentReactionAdded },
91
+ { fn: onLocalCommentReactionRemoved, action: EnumCommentActions.OnCommentReactionRemoved },
84
92
  ]);
85
93
  }
86
94
 
@@ -34,7 +34,7 @@ export const addMembers = async (
34
34
  { communityId, userIds },
35
35
  );
36
36
 
37
- fireEvent('community.userAdded', payload);
37
+ fireEvent('local.community.userAdded', payload);
38
38
 
39
39
  const data = prepareMembershipPayload(payload, 'communityUsers');
40
40
 
@@ -34,7 +34,7 @@ export const removeMembers = async (
34
34
  { data: { communityId, userIds } },
35
35
  );
36
36
 
37
- fireEvent('community.userRemoved', payload);
37
+ fireEvent('local.community.userRemoved', payload);
38
38
 
39
39
  const data = prepareMembershipPayload(payload, 'communityUsers');
40
40
 
@@ -5,6 +5,8 @@ export * from './onCommunityUserChanged';
5
5
  export * from './onCommunityUserUnbanned';
6
6
  export * from './onCommunityUserRoleAdded';
7
7
  export * from './onCommunityUserRoleRemoved';
8
+ export * from './onLocalCommunityUserAdded';
9
+ export * from './onLocalCommunityUserRemoved';
8
10
 
9
11
  export * from './onCommunityJoined';
10
12
  export * from './onCommunityLeft';
@@ -0,0 +1,20 @@
1
+ import { createLocalCommunityMemberEventSubscriber } from './utils';
2
+
3
+ /**
4
+ * ```js
5
+ * import { onLocalCommunityUserAdded } from '@amityco/ts-sdk-react-native'
6
+ * const dispose = onLocalCommunityUserAdded((community, member) => {
7
+ * // ...
8
+ * })
9
+ * ```
10
+ *
11
+ * Fired when a user has been added to a {@link Amity.Community}
12
+ *
13
+ * @param callback The function to call when the event was fired
14
+ * @returns an {@link Amity.Unsubscriber} function to stop listening
15
+ *
16
+ * @category Community Events
17
+ */
18
+ export const onLocalCommunityUserAdded = (
19
+ callback: (community: Amity.Community, member: Amity.Membership<'community'>[]) => void,
20
+ ) => createLocalCommunityMemberEventSubscriber('local.community.userAdded', callback);
@@ -0,0 +1,20 @@
1
+ import { createLocalCommunityMemberEventSubscriber } from './utils';
2
+
3
+ /**
4
+ * ```js
5
+ * import { onLocalCommunityUserRemoved } from '@amityco/ts-sdk-react-native'
6
+ * const dispose = onLocalCommunityUserRemoved((community, member) => {
7
+ * // ...
8
+ * })
9
+ * ```
10
+ *
11
+ * Fired when a user has been removed from a {@link Amity.Community}
12
+ *
13
+ * @param callback The function to call when the event was fired
14
+ * @returns an {@link Amity.Unsubscriber} function to stop listening
15
+ *
16
+ * @category Community Events
17
+ */
18
+ export const onLocalCommunityUserRemoved = (
19
+ callback: (community: Amity.Community, member: Amity.Membership<'community'>[]) => void,
20
+ ) => createLocalCommunityMemberEventSubscriber('local.community.userRemoved', callback);
@@ -0,0 +1,64 @@
1
+ import { prepareUserPayload } from '~/userRepository/utils/prepareUserPayload';
2
+ import { pullFromCache, pushToCache, upsertInCache } from '~/cache/api';
3
+ import { createEventSubscriber } from '~/core/events';
4
+ import { getActiveClient } from '~/client';
5
+ import { ingestInCache } from '~/cache/api/ingestInCache';
6
+ import { getResolver } from '~/core/model';
7
+
8
+ /**
9
+ * ```js
10
+ * import { onUserDeleted } from '@amityco/ts-sdk-react-native'
11
+ * const dispose = onUserDeleted((community, member) => {
12
+ * // ...
13
+ * })
14
+ * ```
15
+ *
16
+ * Fired when a {@link Amity.Community} has been joined
17
+ *
18
+ * @param callback The function to call when the event was fired
19
+ * @returns an {@link Amity.Unsubscriber} function to stop listening
20
+ *
21
+ * @category Community Events
22
+ */
23
+ export const onUserDeleted =
24
+ (communityId: string) =>
25
+ (callback: (community: Amity.Community, member: Amity.Membership<'community'>[]) => void) => {
26
+ const client = getActiveClient();
27
+
28
+ const filter = (payload: Amity.UserPayload) => {
29
+ const userPayload = prepareUserPayload(payload);
30
+
31
+ if (userPayload.users.length === 0) return;
32
+
33
+ const user = userPayload.users[0];
34
+
35
+ ingestInCache(userPayload);
36
+
37
+ const communityUserCacheKey = getResolver('communityUsers')({
38
+ communityId,
39
+ userId: user.userId,
40
+ });
41
+
42
+ const cacheData = pullFromCache<Amity.Membership<'community'>>([
43
+ 'communityUsers',
44
+ 'get',
45
+ communityUserCacheKey,
46
+ ])?.data!;
47
+
48
+ pushToCache(['communityUsers', 'get', communityUserCacheKey], {
49
+ ...cacheData,
50
+ user,
51
+ });
52
+
53
+ const community = pullFromCache<Amity.Community>(['community', 'get', communityId])?.data!;
54
+
55
+ callback(community, [
56
+ {
57
+ ...cacheData,
58
+ user,
59
+ },
60
+ ]);
61
+ };
62
+
63
+ return createEventSubscriber(client, 'user.deleted', 'user.deleted', filter);
64
+ };
@@ -25,7 +25,7 @@ function hasPermission(
25
25
  }
26
26
 
27
27
  function getEventRelatedMember(
28
- event: keyof Amity.MqttCommunityUserEvents,
28
+ event: keyof Amity.MqttCommunityUserEvents | keyof Amity.LocalCommunityEvents,
29
29
  payload: {
30
30
  communityUsers: Amity.Membership<'community'>[];
31
31
  users: Amity.InternalUser[];
@@ -37,7 +37,7 @@ function getEventRelatedMember(
37
37
 
38
38
  // NOTE: backend returns the one who took the action and the one on whom
39
39
  // the action was taken. We need the 2nd one
40
- if (event === 'community.userRemoved') {
40
+ if (event === 'community.userRemoved' || event === 'local.community.userRemoved') {
41
41
  return payload.communityUsers!.filter(x => x.communityMembership === 'none');
42
42
  }
43
43
 
@@ -100,3 +100,51 @@ export const createCommunityMemberEventSubscriber = (
100
100
 
101
101
  return createEventSubscriber(client, event, event, filter);
102
102
  };
103
+
104
+ export const createLocalCommunityMemberEventSubscriber = (
105
+ event: keyof Amity.LocalCommunityEvents,
106
+ callback: (community: Amity.Community, members: Amity.Membership<'community'>[]) => void,
107
+ ) => {
108
+ const client = getActiveClient();
109
+
110
+ const filter = (payload: Amity.CommunityMembershipPayload) => {
111
+ const preparedPayload = prepareCommunityPayload(payload);
112
+ const { communities, communityUsers } = preparedPayload;
113
+
114
+ /*
115
+ * community.isJoined is not part of the communityMembership payload, and needs
116
+ * to be calculated based on the communityMembership value
117
+ */
118
+ const communitiesWithMembership = updateMembershipStatus(communities, communityUsers);
119
+
120
+ preparedPayload.communities = communitiesWithMembership;
121
+
122
+ if (!client.cache) {
123
+ // TODO: here we are missing specific properties here!
124
+ callback(preparedPayload.communities[0], getEventRelatedMember(event, preparedPayload));
125
+ } else {
126
+ ingestInCache(preparedPayload);
127
+
128
+ const community = pullFromCache<Amity.Community>([
129
+ 'community',
130
+ 'get',
131
+ preparedPayload.communities[0].communityId,
132
+ ])!;
133
+
134
+ const members = getEventRelatedMember(event, preparedPayload)
135
+ .map(member => {
136
+ const memberCache = pullFromCache<Amity.Membership<'community'>>([
137
+ 'communityUsers',
138
+ 'get',
139
+ getResolver('communityUsers')(member),
140
+ ]);
141
+ return memberCache?.data;
142
+ })
143
+ .filter(isNonNullable);
144
+
145
+ callback(community.data, members);
146
+ }
147
+ };
148
+
149
+ return createEventSubscriber(client, event, event, filter);
150
+ };
@@ -11,17 +11,21 @@ import {
11
11
  onCommunityUserRoleAdded,
12
12
  onCommunityUserRoleRemoved,
13
13
  onCommunityUserUnbanned,
14
+ onLocalCommunityUserAdded,
15
+ onLocalCommunityUserRemoved,
14
16
  } from '~/communityRepository/communityMembership/events';
15
17
  import {
16
18
  filterByPropIntersection,
17
19
  filterBySearchTerm,
18
- sortByDisplayName,
19
20
  sortByFirstCreated,
20
21
  sortByLastCreated,
21
22
  } from '~/core/query';
22
23
  import { prepareCommunityPayload } from '~/communityRepository/utils';
23
24
  import { isNonNullable } from '~/utils';
24
25
  import { EnumCommunityMemberActions } from './enums';
26
+ import { onLocalCommunityRoleRemoved } from '~/communityRepository/communityModeration/events/onLocalCommunityRoleRemoved';
27
+ import { onLocalCommunityRoleAdded } from '~/communityRepository/communityModeration/events/onLocalCommunityRoleAdded';
28
+ import { onUserDeleted } from '~/communityRepository/communityMembership/events/onUserDeleted';
25
29
 
26
30
  export class CommunityMembersLiveCollectionController extends LiveCollectionController<
27
31
  'communityUser',
@@ -88,7 +92,24 @@ export class CommunityMembersLiveCollectionController extends LiveCollectionCont
88
92
  fn: onCommunityUserRoleRemoved,
89
93
  action: EnumCommunityMemberActions.OnCommunityUserRoleRemoved,
90
94
  },
95
+ {
96
+ fn: onLocalCommunityRoleAdded,
97
+ action: EnumCommunityMemberActions.OnCommunityUserRoleAdded,
98
+ },
99
+ {
100
+ fn: onLocalCommunityRoleRemoved,
101
+ action: EnumCommunityMemberActions.OnCommunityUserRoleRemoved,
102
+ },
91
103
  { fn: onCommunityUserUnbanned, action: EnumCommunityMemberActions.OnCommunityUserUnbanned },
104
+ { fn: onLocalCommunityUserAdded, action: EnumCommunityMemberActions.OnCommunityUserAdded },
105
+ {
106
+ fn: onLocalCommunityUserRemoved,
107
+ action: EnumCommunityMemberActions.onCommunityUserRemoved,
108
+ },
109
+ {
110
+ fn: onUserDeleted(this.query.communityId),
111
+ action: EnumCommunityMemberActions.OnCommunityUserChanged,
112
+ },
92
113
  ]);
93
114
  }
94
115
 
@@ -128,6 +149,10 @@ export class CommunityMembersLiveCollectionController extends LiveCollectionCont
128
149
  communityMembers = filterBySearchTerm(communityMembers, this.query.search);
129
150
  }
130
151
 
152
+ if (this.query.includeDeleted === false) {
153
+ communityMembers = communityMembers.filter(({ user }) => user?.isDeleted !== true);
154
+ }
155
+
131
156
  switch (this.query.sortBy) {
132
157
  case 'firstCreated':
133
158
  communityMembers = communityMembers.sort(sortByFirstCreated);
@@ -10,15 +10,18 @@ export class CommunityMembersPaginationController extends PaginationController<
10
10
  Amity.CommunityMemberLiveCollection
11
11
  > {
12
12
  async getRequest(queryParams: Amity.CommunityMemberLiveCollection, token: string | undefined) {
13
- const { limit = COLLECTION_DEFAULT_PAGINATION_LIMIT, ...params } = queryParams;
13
+ const { limit = COLLECTION_DEFAULT_PAGINATION_LIMIT, includeDeleted, ...params } = queryParams;
14
14
  const options = token ? { token } : { limit };
15
15
 
16
+ const isDeleted = includeDeleted === false ? false : undefined;
17
+
16
18
  const { data: queryResponse } = await this.http.get<
17
19
  Amity.CommunityMembershipPayload & Amity.Pagination
18
20
  >(`/api/v3/communities/${params.communityId}/users`, {
19
21
  params: {
20
22
  ...params,
21
23
  options,
24
+ isDeleted,
22
25
  },
23
26
  });
24
27
  return queryResponse;
@@ -7,4 +7,7 @@ export enum EnumCommunityMemberActions {
7
7
  OnCommunityUserRoleRemoved = 'onCommunityUserRoleRemoved',
8
8
  OnCommunityUserUnbanned = 'onCommunityUserUnbanned',
9
9
  OnMemberCountChanged = 'OnMemberCountChanged',
10
+ OnCommunityUserAdded = 'OnCommunityUserAdded',
11
+ onCommunityUserRemoved = 'onCommunityUserRemoved',
12
+ OnUserDeleted = 'OnUserDeleted',
10
13
  }