@amityco/ts-sdk-react-native 6.29.2 → 6.29.3-fe4e045.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 (373) 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/group/utils/withUser.d.ts +13 -0
  96. package/dist/group/utils/withUser.d.ts.map +1 -1
  97. package/dist/index.cjs.js +2242 -1228
  98. package/dist/index.esm.js +2422 -1408
  99. package/dist/index.umd.js +3 -3
  100. package/dist/pollRepository/observers/observePoll.d.ts +1 -1
  101. package/dist/pollRepository/observers/observePoll.d.ts.map +1 -1
  102. package/dist/postRepository/events/onLocalPostDeleted.d.ts +17 -0
  103. package/dist/postRepository/events/onLocalPostDeleted.d.ts.map +1 -0
  104. package/dist/postRepository/events/onLocalPostReactionAdded.d.ts +17 -0
  105. package/dist/postRepository/events/onLocalPostReactionAdded.d.ts.map +1 -0
  106. package/dist/postRepository/events/onLocalPostReactionRemoved.d.ts +17 -0
  107. package/dist/postRepository/events/onLocalPostReactionRemoved.d.ts.map +1 -0
  108. package/dist/postRepository/events/onPostUpdatedLocal.d.ts +17 -0
  109. package/dist/postRepository/events/onPostUpdatedLocal.d.ts.map +1 -0
  110. package/dist/postRepository/events/utils.d.ts +1 -0
  111. package/dist/postRepository/events/utils.d.ts.map +1 -1
  112. package/dist/postRepository/internalApi/index.d.ts +1 -12
  113. package/dist/postRepository/internalApi/index.d.ts.map +1 -1
  114. package/dist/postRepository/observers/getPinnedPosts/PinnedPostLiveCollectionController.d.ts +14 -0
  115. package/dist/postRepository/observers/getPinnedPosts/PinnedPostLiveCollectionController.d.ts.map +1 -0
  116. package/dist/postRepository/observers/getPinnedPosts/PinnedPostPaginationController.d.ts +13 -0
  117. package/dist/postRepository/observers/getPinnedPosts/PinnedPostPaginationController.d.ts.map +1 -0
  118. package/dist/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.d.ts +9 -0
  119. package/dist/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.d.ts.map +1 -0
  120. package/dist/postRepository/observers/getPinnedPosts.d.ts +12 -0
  121. package/dist/postRepository/observers/getPinnedPosts.d.ts.map +1 -0
  122. package/dist/postRepository/observers/getPost.d.ts.map +1 -1
  123. package/dist/postRepository/observers/getPosts/PostLiveCollectionController.d.ts.map +1 -1
  124. package/dist/postRepository/observers/index.d.ts +1 -0
  125. package/dist/postRepository/observers/index.d.ts.map +1 -1
  126. package/dist/postRepository/utils/payload.d.ts.map +1 -1
  127. package/dist/reactionRepository/api/addReaction.d.ts.map +1 -1
  128. package/dist/reactionRepository/api/removeReaction.d.ts.map +1 -1
  129. package/dist/report/api/createReport.d.ts +1 -2
  130. package/dist/report/api/createReport.d.ts.map +1 -1
  131. package/dist/report/api/deleteReport.d.ts +1 -2
  132. package/dist/report/api/deleteReport.d.ts.map +1 -1
  133. package/dist/report/api/isReportedByMe.d.ts +1 -2
  134. package/dist/report/api/isReportedByMe.d.ts.map +1 -1
  135. package/dist/streamRepository/observers/getStreams/GetStreamsPageController.d.ts +1 -1
  136. package/dist/userRepository/api/flagUser.d.ts.map +1 -1
  137. package/dist/userRepository/api/getUser.d.ts.map +1 -1
  138. package/dist/userRepository/api/getUserByIds.d.ts.map +1 -1
  139. package/dist/userRepository/api/queryBlockedUsers.d.ts.map +1 -1
  140. package/dist/userRepository/api/queryUsers.d.ts.map +1 -1
  141. package/dist/userRepository/api/unflagUser.d.ts.map +1 -1
  142. package/dist/userRepository/api/updateUser.d.ts.map +1 -1
  143. package/dist/userRepository/events/utils.d.ts.map +1 -1
  144. package/dist/userRepository/internalApi/getUser.d.ts.map +1 -1
  145. package/dist/userRepository/internalApi/queryUsers.d.ts.map +1 -1
  146. package/dist/userRepository/observers/enums.d.ts +8 -0
  147. package/dist/userRepository/observers/enums.d.ts.map +1 -0
  148. package/dist/userRepository/observers/getBlockedUsers/BlockedUserLiveCollectionController.d.ts +14 -0
  149. package/dist/userRepository/observers/getBlockedUsers/BlockedUserLiveCollectionController.d.ts.map +1 -0
  150. package/dist/userRepository/observers/getBlockedUsers/BlockedUserPaginationController.d.ts +5 -0
  151. package/dist/userRepository/observers/getBlockedUsers/BlockedUserPaginationController.d.ts.map +1 -0
  152. package/dist/userRepository/observers/getBlockedUsers/BlockedUserQueryStreamController.d.ts +15 -0
  153. package/dist/userRepository/observers/getBlockedUsers/BlockedUserQueryStreamController.d.ts.map +1 -0
  154. package/dist/userRepository/observers/getBlockedUsers.d.ts.map +1 -1
  155. package/dist/userRepository/observers/getUsers/UserLiveCollectionController.d.ts +14 -0
  156. package/dist/userRepository/observers/getUsers/UserLiveCollectionController.d.ts.map +1 -0
  157. package/dist/userRepository/observers/getUsers/UserPaginationController.d.ts +5 -0
  158. package/dist/userRepository/observers/getUsers/UserPaginationController.d.ts.map +1 -0
  159. package/dist/userRepository/observers/getUsers/UserQueryStreamController.d.ts +15 -0
  160. package/dist/userRepository/observers/getUsers/UserQueryStreamController.d.ts.map +1 -0
  161. package/dist/userRepository/observers/getUsers.d.ts +0 -1
  162. package/dist/userRepository/observers/getUsers.d.ts.map +1 -1
  163. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserLiveCollectionController.d.ts +14 -0
  164. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserLiveCollectionController.d.ts.map +1 -0
  165. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserPaginationController.d.ts +5 -0
  166. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserPaginationController.d.ts.map +1 -0
  167. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserQueryStreamController.d.ts +15 -0
  168. package/dist/userRepository/observers/searchUserByDisplayName/SearchUserQueryStreamController.d.ts.map +1 -0
  169. package/dist/userRepository/observers/searchUserByDisplayName.d.ts.map +1 -1
  170. package/dist/userRepository/relationship/block/api/blockUser.d.ts.map +1 -1
  171. package/dist/userRepository/relationship/block/api/unBlockUser.d.ts.map +1 -1
  172. package/dist/userRepository/relationship/follow/api/acceptFollower.d.ts.map +1 -1
  173. package/dist/userRepository/relationship/follow/api/acceptMyFollower.d.ts.map +1 -1
  174. package/dist/userRepository/relationship/follow/api/declineFollower.d.ts.map +1 -1
  175. package/dist/userRepository/relationship/follow/api/declineMyFollower.d.ts.map +1 -1
  176. package/dist/userRepository/relationship/follow/api/follow.d.ts.map +1 -1
  177. package/dist/userRepository/relationship/follow/api/unfollow.d.ts.map +1 -1
  178. package/dist/userRepository/relationship/follow/api/utils.d.ts.map +1 -1
  179. package/dist/userRepository/relationship/follow/enums.d.ts +11 -0
  180. package/dist/userRepository/relationship/follow/enums.d.ts.map +1 -0
  181. package/dist/userRepository/relationship/follow/events/index.d.ts +5 -0
  182. package/dist/userRepository/relationship/follow/events/index.d.ts.map +1 -1
  183. package/dist/userRepository/relationship/follow/events/onFollowInfoUpdated.d.ts.map +1 -1
  184. package/dist/userRepository/relationship/follow/events/onFollowerUserDeleted.d.ts +4 -0
  185. package/dist/userRepository/relationship/follow/events/onFollowerUserDeleted.d.ts.map +1 -0
  186. package/dist/userRepository/relationship/follow/events/onFollowingUserDeleted.d.ts +4 -0
  187. package/dist/userRepository/relationship/follow/events/onFollowingUserDeleted.d.ts.map +1 -0
  188. package/dist/userRepository/relationship/follow/events/onLocalFollowRequestAccepted.d.ts +2 -0
  189. package/dist/userRepository/relationship/follow/events/onLocalFollowRequestAccepted.d.ts.map +1 -0
  190. package/dist/userRepository/relationship/follow/events/onLocalFollowRequestDeclined.d.ts +2 -0
  191. package/dist/userRepository/relationship/follow/events/onLocalFollowRequestDeclined.d.ts.map +1 -0
  192. package/dist/userRepository/relationship/follow/events/onLocalFollowerRequested.d.ts +2 -0
  193. package/dist/userRepository/relationship/follow/events/onLocalFollowerRequested.d.ts.map +1 -0
  194. package/dist/userRepository/relationship/follow/events/onLocalUserFollowed.d.ts +2 -0
  195. package/dist/userRepository/relationship/follow/events/onLocalUserFollowed.d.ts.map +1 -0
  196. package/dist/userRepository/relationship/follow/events/onLocalUserUnfollowed.d.ts +2 -0
  197. package/dist/userRepository/relationship/follow/events/onLocalUserUnfollowed.d.ts.map +1 -0
  198. package/dist/userRepository/relationship/follow/events/utils.d.ts +2 -1
  199. package/dist/userRepository/relationship/follow/events/utils.d.ts.map +1 -1
  200. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerLiveCollectionController.d.ts +14 -0
  201. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerLiveCollectionController.d.ts.map +1 -0
  202. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerPaginationController.d.ts +5 -0
  203. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerPaginationController.d.ts.map +1 -0
  204. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerQueryStreamController.d.ts +15 -0
  205. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerQueryStreamController.d.ts.map +1 -0
  206. package/dist/userRepository/relationship/follow/observers/getFollowers.d.ts.map +1 -1
  207. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingLiveCollectionController.d.ts +14 -0
  208. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingLiveCollectionController.d.ts.map +1 -0
  209. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingPaginationController.d.ts +5 -0
  210. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingPaginationController.d.ts.map +1 -0
  211. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingQueryStreamController.d.ts +15 -0
  212. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingQueryStreamController.d.ts.map +1 -0
  213. package/dist/userRepository/relationship/follow/observers/getFollowings.d.ts.map +1 -1
  214. package/dist/userRepository/relationship/follow/observers/observeFollowers.d.ts +1 -1
  215. package/dist/userRepository/relationship/follow/observers/observeFollowers.d.ts.map +1 -1
  216. package/dist/userRepository/relationship/follow/observers/observeFollowings.d.ts +1 -1
  217. package/dist/userRepository/relationship/follow/observers/observeFollowings.d.ts.map +1 -1
  218. package/dist/userRepository/relationship/follow/utils.d.ts +4 -0
  219. package/dist/userRepository/relationship/follow/utils.d.ts.map +1 -0
  220. package/dist/userRepository/utils/convertRawUserToInternalUser.d.ts +2 -0
  221. package/dist/userRepository/utils/convertRawUserToInternalUser.d.ts.map +1 -0
  222. package/dist/userRepository/utils/prepareBlockedUserPayload.d.ts +2 -0
  223. package/dist/userRepository/utils/prepareBlockedUserPayload.d.ts.map +1 -0
  224. package/dist/userRepository/utils/prepareUserPayload.d.ts +2 -0
  225. package/dist/userRepository/utils/prepareUserPayload.d.ts.map +1 -0
  226. package/dist/utils/linkedObject/commentLinkedObject.d.ts.map +1 -1
  227. package/dist/utils/linkedObject/index.d.ts +2 -1
  228. package/dist/utils/linkedObject/index.d.ts.map +1 -1
  229. package/dist/utils/linkedObject/pinnedPostLinkedObject.d.ts +2 -0
  230. package/dist/utils/linkedObject/pinnedPostLinkedObject.d.ts.map +1 -0
  231. package/dist/utils/tests/dummy/block.d.ts +2 -2
  232. package/dist/utils/tests/dummy/channel.d.ts +12 -12
  233. package/dist/utils/tests/dummy/channel.d.ts.map +1 -1
  234. package/dist/utils/tests/dummy/community.d.ts +2 -2
  235. package/dist/utils/tests/dummy/follow.d.ts +2 -2
  236. package/dist/utils/tests/dummy/user.d.ts +10 -2
  237. package/dist/utils/tests/dummy/user.d.ts.map +1 -1
  238. package/package.json +1 -1
  239. package/src/@types/core/events.ts +40 -13
  240. package/src/@types/core/model.ts +6 -0
  241. package/src/@types/core/payload.ts +39 -9
  242. package/src/@types/core/permissions.ts +4 -4
  243. package/src/@types/domains/channel.ts +13 -0
  244. package/src/@types/domains/comment.ts +6 -4
  245. package/src/@types/domains/community.ts +40 -12
  246. package/src/@types/domains/follow.ts +26 -12
  247. package/src/@types/domains/group.ts +14 -6
  248. package/src/@types/domains/pin.ts +27 -0
  249. package/src/@types/domains/pinnedPost.ts +35 -0
  250. package/src/@types/domains/poll.ts +5 -1
  251. package/src/@types/domains/post.ts +9 -5
  252. package/src/@types/domains/stream.ts +3 -1
  253. package/src/@types/domains/user.ts +49 -6
  254. package/src/channelRepository/channelMembership/observers/getMembers/ChannelMemberLiveCollectionController.ts +6 -0
  255. package/src/channelRepository/channelMembership/observers/getMembers/ChannelMemberPaginationController.ts +4 -1
  256. package/src/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberLiveCollectionController.ts +148 -0
  257. package/src/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberPaginationController.ts +31 -0
  258. package/src/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberQueryStreamController.ts +112 -0
  259. package/src/channelRepository/channelMembership/observers/searchMembers/index.ts +1 -0
  260. package/src/channelRepository/channelMembership/observers/searchMembers/searchMembers.ts +111 -0
  261. package/src/channelRepository/events/onUserDeleted.ts +46 -0
  262. package/src/channelRepository/utils/prepareChannelPayload.ts +8 -4
  263. package/src/client/api/index.ts +0 -3
  264. package/src/commentRepository/api/createComment.ts +16 -12
  265. package/src/commentRepository/api/deleteComment.ts +23 -13
  266. package/src/commentRepository/events/onCommentCreatedLocal.ts +22 -0
  267. package/src/commentRepository/events/onCommentDeletedLocal.ts +20 -0
  268. package/src/commentRepository/events/onLocalCommentReactionAdded.ts +42 -0
  269. package/src/commentRepository/events/onLocalCommentReactionRemoved.ts +42 -0
  270. package/src/commentRepository/events/utils.ts +77 -0
  271. package/src/commentRepository/observers/getComment.ts +6 -19
  272. package/src/commentRepository/observers/getComments/CommentLiveCollectionController.ts +8 -0
  273. package/src/communityRepository/communityMembership/api/addMembers.ts +1 -1
  274. package/src/communityRepository/communityMembership/api/removeMembers.ts +1 -1
  275. package/src/communityRepository/communityMembership/events/index.ts +2 -0
  276. package/src/communityRepository/communityMembership/events/onLocalCommunityUserAdded.ts +20 -0
  277. package/src/communityRepository/communityMembership/events/onLocalCommunityUserRemoved.ts +20 -0
  278. package/src/communityRepository/communityMembership/events/onUserDeleted.ts +64 -0
  279. package/src/communityRepository/communityMembership/events/utils.ts +50 -2
  280. package/src/communityRepository/communityMembership/observers/getMembers/CommunityMembersLiveCollectionController.ts +26 -1
  281. package/src/communityRepository/communityMembership/observers/getMembers/CommunityMembersPaginationController.ts +4 -1
  282. package/src/communityRepository/communityMembership/observers/getMembers/enums.ts +3 -0
  283. package/src/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersLiveCollectionController.ts +14 -0
  284. package/src/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersPaginationController.ts +4 -1
  285. package/src/communityRepository/communityModeration/api/addRoles.ts +5 -2
  286. package/src/communityRepository/communityModeration/api/removeRoles.ts +5 -2
  287. package/src/communityRepository/communityModeration/events/onLocalCommunityRoleAdded.ts +38 -0
  288. package/src/communityRepository/communityModeration/events/onLocalCommunityRoleRemoved.ts +38 -0
  289. package/src/communityRepository/utils/payload.ts +47 -53
  290. package/src/core/model/idResolvers.ts +3 -0
  291. package/src/core/model/index.ts +3 -0
  292. package/src/group/utils/withUser.ts +33 -0
  293. package/src/postRepository/api/deletePost.ts +9 -9
  294. package/src/postRepository/api/updatePost.ts +1 -1
  295. package/src/postRepository/events/onLocalPostDeleted.ts +20 -0
  296. package/src/postRepository/events/onLocalPostReactionAdded.ts +38 -0
  297. package/src/postRepository/events/onLocalPostReactionRemoved.ts +41 -0
  298. package/src/postRepository/events/onPostUpdatedLocal.ts +20 -0
  299. package/src/postRepository/events/utils.ts +41 -6
  300. package/src/postRepository/internalApi/index.ts +1 -16
  301. package/src/postRepository/observers/getPinnedPosts/PinnedPostLiveCollectionController.ts +104 -0
  302. package/src/postRepository/observers/getPinnedPosts/PinnedPostPaginationController.ts +23 -0
  303. package/src/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.ts +61 -0
  304. package/src/postRepository/observers/getPinnedPosts.ts +41 -0
  305. package/src/postRepository/observers/getPost.ts +8 -0
  306. package/src/postRepository/observers/getPosts/PostLiveCollectionController.ts +8 -0
  307. package/src/postRepository/observers/index.ts +1 -0
  308. package/src/postRepository/utils/payload.ts +31 -7
  309. package/src/reactionRepository/api/addReaction.ts +27 -2
  310. package/src/reactionRepository/api/removeReaction.ts +27 -2
  311. package/src/report/api/createReport.ts +100 -31
  312. package/src/report/api/deleteReport.ts +100 -31
  313. package/src/report/api/isReportedByMe.ts +72 -11
  314. package/src/userRepository/api/flagUser.ts +5 -2
  315. package/src/userRepository/api/getUser.ts +4 -43
  316. package/src/userRepository/api/getUserByIds.ts +5 -2
  317. package/src/userRepository/api/queryBlockedUsers.ts +6 -6
  318. package/src/userRepository/api/queryUsers.ts +11 -87
  319. package/src/userRepository/api/unflagUser.ts +5 -2
  320. package/src/userRepository/api/updateUser.ts +5 -11
  321. package/src/userRepository/events/utils.ts +4 -1
  322. package/src/userRepository/internalApi/getUser.ts +12 -16
  323. package/src/userRepository/internalApi/queryUsers.ts +7 -4
  324. package/src/userRepository/observers/enums.ts +7 -0
  325. package/src/userRepository/observers/getBlockedUsers/BlockedUserLiveCollectionController.ts +106 -0
  326. package/src/userRepository/observers/getBlockedUsers/BlockedUserPaginationController.ts +24 -0
  327. package/src/userRepository/observers/getBlockedUsers/BlockedUserQueryStreamController.ts +76 -0
  328. package/src/userRepository/observers/getBlockedUsers.ts +8 -81
  329. package/src/userRepository/observers/getUsers/UserLiveCollectionController.ts +131 -0
  330. package/src/userRepository/observers/getUsers/UserPaginationController.ts +25 -0
  331. package/src/userRepository/observers/getUsers/UserQueryStreamController.ts +82 -0
  332. package/src/userRepository/observers/getUsers.ts +7 -137
  333. package/src/userRepository/observers/searchUserByDisplayName/SearchUserLiveCollectionController.ts +116 -0
  334. package/src/userRepository/observers/searchUserByDisplayName/SearchUserPaginationController.ts +25 -0
  335. package/src/userRepository/observers/searchUserByDisplayName/SearchUserQueryStreamController.ts +82 -0
  336. package/src/userRepository/observers/searchUserByDisplayName.ts +25 -1
  337. package/src/userRepository/relationship/block/api/blockUser.ts +4 -1
  338. package/src/userRepository/relationship/block/api/unBlockUser.ts +4 -1
  339. package/src/userRepository/relationship/follow/api/acceptFollower.ts +4 -1
  340. package/src/userRepository/relationship/follow/api/acceptMyFollower.ts +4 -1
  341. package/src/userRepository/relationship/follow/api/declineFollower.ts +5 -2
  342. package/src/userRepository/relationship/follow/api/declineMyFollower.ts +5 -2
  343. package/src/userRepository/relationship/follow/api/follow.ts +8 -1
  344. package/src/userRepository/relationship/follow/api/unfollow.ts +4 -1
  345. package/src/userRepository/relationship/follow/api/utils.ts +6 -2
  346. package/src/userRepository/relationship/follow/enums.ts +10 -0
  347. package/src/userRepository/relationship/follow/events/index.ts +6 -0
  348. package/src/userRepository/relationship/follow/events/onFollowInfoUpdated.ts +6 -1
  349. package/src/userRepository/relationship/follow/events/onFollowerUserDeleted.ts +33 -0
  350. package/src/userRepository/relationship/follow/events/onFollowingUserDeleted.ts +33 -0
  351. package/src/userRepository/relationship/follow/events/onLocalFollowRequestAccepted.ts +5 -0
  352. package/src/userRepository/relationship/follow/events/onLocalFollowRequestDeclined.ts +5 -0
  353. package/src/userRepository/relationship/follow/events/onLocalFollowerRequested.ts +5 -0
  354. package/src/userRepository/relationship/follow/events/onLocalUserFollowed.ts +5 -0
  355. package/src/userRepository/relationship/follow/events/onLocalUserUnfollowed.ts +5 -0
  356. package/src/userRepository/relationship/follow/events/utils.ts +25 -14
  357. package/src/userRepository/relationship/follow/observers/getFollowers/FollowerLiveCollectionController.ts +132 -0
  358. package/src/userRepository/relationship/follow/observers/getFollowers/FollowerPaginationController.ts +29 -0
  359. package/src/userRepository/relationship/follow/observers/getFollowers/FollowerQueryStreamController.ts +95 -0
  360. package/src/userRepository/relationship/follow/observers/getFollowers.ts +8 -106
  361. package/src/userRepository/relationship/follow/observers/getFollowings/FollowingLiveCollectionController.ts +136 -0
  362. package/src/userRepository/relationship/follow/observers/getFollowings/FollowingPaginationController.ts +29 -0
  363. package/src/userRepository/relationship/follow/observers/getFollowings/FollowingQueryStreamController.ts +95 -0
  364. package/src/userRepository/relationship/follow/observers/getFollowings.ts +6 -106
  365. package/src/userRepository/relationship/follow/observers/observeFollowers.ts +11 -0
  366. package/src/userRepository/relationship/follow/observers/observeFollowings.ts +11 -0
  367. package/src/userRepository/relationship/follow/utils.ts +36 -0
  368. package/src/userRepository/utils/convertRawUserToInternalUser.ts +6 -0
  369. package/src/userRepository/utils/prepareBlockedUserPayload.ts +19 -0
  370. package/src/userRepository/utils/prepareUserPayload.ts +8 -0
  371. package/src/utils/linkedObject/commentLinkedObject.ts +13 -16
  372. package/src/utils/linkedObject/index.ts +2 -0
  373. package/src/utils/linkedObject/pinnedPostLinkedObject.ts +28 -0
@@ -16,6 +16,8 @@ import { filterByPropIntersection, filterBySearchTerm } from '~/core/query';
16
16
  import { prepareCommunityPayload } from '~/communityRepository/utils';
17
17
  import { isNonNullable } from '~/utils';
18
18
  import { EnumCommunityMemberActions } from './enums';
19
+ import { onLocalCommunityRoleRemoved } from '~/communityRepository/communityModeration/events/onLocalCommunityRoleRemoved';
20
+ import { onUserDeleted } from '~/communityRepository/communityMembership/events/onUserDeleted';
19
21
 
20
22
  export class SearchCommunityMembersLiveCollectionController extends LiveCollectionController<
21
23
  'communityUser',
@@ -79,11 +81,19 @@ export class SearchCommunityMembersLiveCollectionController extends LiveCollecti
79
81
  { fn: onCommunityLeft, action: EnumCommunityMemberActions.OnCommunityLeft },
80
82
  { fn: onCommunityUserBanned, action: EnumCommunityMemberActions.OnCommunityUserBanned },
81
83
  { fn: onCommunityUserChanged, action: EnumCommunityMemberActions.OnCommunityUserChanged },
84
+ {
85
+ fn: onLocalCommunityRoleRemoved,
86
+ action: EnumCommunityMemberActions.OnCommunityUserRoleRemoved,
87
+ },
82
88
  {
83
89
  fn: onCommunityUserRoleRemoved,
84
90
  action: EnumCommunityMemberActions.OnCommunityUserRoleRemoved,
85
91
  },
86
92
  { fn: onCommunityUserUnbanned, action: EnumCommunityMemberActions.OnCommunityUserUnbanned },
93
+ {
94
+ fn: onUserDeleted(this.query.communityId),
95
+ action: EnumCommunityMemberActions.OnCommunityUserChanged,
96
+ },
87
97
  ]);
88
98
  }
89
99
 
@@ -125,6 +135,10 @@ export class SearchCommunityMembersLiveCollectionController extends LiveCollecti
125
135
  communityMembers = filterBySearchTerm(communityMembers, this.query.search);
126
136
  }
127
137
 
138
+ if (this.query.includeDeleted === false) {
139
+ communityMembers = communityMembers.filter(({ user }) => user?.isDeleted !== true);
140
+ }
141
+
128
142
  return communityMembers;
129
143
  }
130
144
  }
@@ -13,15 +13,18 @@ export class SearchCommunityMembersPaginationController extends PaginationContro
13
13
  queryParams: Amity.SearchCommunityMemberLiveCollection,
14
14
  token: string | undefined,
15
15
  ) {
16
- const { limit = COLLECTION_DEFAULT_PAGINATION_LIMIT, ...params } = queryParams;
16
+ const { limit = COLLECTION_DEFAULT_PAGINATION_LIMIT, includeDeleted, ...params } = queryParams;
17
17
  const options = token ? { token } : { limit };
18
18
 
19
+ const isDeleted = includeDeleted === false ? false : undefined;
20
+
19
21
  const { data: queryResponse } = await this.http.get<
20
22
  Amity.CommunityMembershipPayload & Amity.Pagination
21
23
  >(`/api/v3/communities/${params.communityId}/users`, {
22
24
  params: {
23
25
  ...params,
24
26
  options,
27
+ isDeleted,
25
28
  },
26
29
  });
27
30
  return queryResponse;
@@ -1,7 +1,8 @@
1
1
  import { getActiveClient } from '~/client/api';
2
2
 
3
3
  import { ingestInCache } from '~/cache/api/ingestInCache';
4
- import { prepareMembershipPayload } from '~/group/utils';
4
+ import { fireEvent } from '~/core/events';
5
+ import { prepareCommunityMembershipPayload } from '~/communityRepository/utils';
5
6
 
6
7
  /* begin_public_function
7
8
  id: community.moderation.add_roles
@@ -35,10 +36,12 @@ export const addRoles = async (
35
36
  { communityId, roles: roleIds, userIds },
36
37
  );
37
38
 
38
- const data = prepareMembershipPayload(payload, 'communityUsers');
39
+ const data = prepareCommunityMembershipPayload(payload);
39
40
 
40
41
  if (client.cache) ingestInCache(data);
41
42
 
43
+ fireEvent('local.community.roleAdded', data);
44
+
42
45
  const { communityUsers } = data;
43
46
  return !!communityUsers.find(
44
47
  communityUser =>
@@ -1,7 +1,8 @@
1
1
  import { getActiveClient } from '~/client/api';
2
2
 
3
3
  import { ingestInCache } from '~/cache/api/ingestInCache';
4
- import { prepareMembershipPayload } from '~/group/utils';
4
+ import { prepareCommunityMembershipPayload } from '~/communityRepository/utils';
5
+ import { fireEvent } from '~/core/events';
5
6
 
6
7
  /* begin_public_function
7
8
  id: community.moderation.remove_roles
@@ -35,10 +36,12 @@ export const removeRoles = async (
35
36
  { data: { communityId, roles: roleIds, userIds } },
36
37
  );
37
38
 
38
- const data = prepareMembershipPayload(payload, 'communityUsers');
39
+ const data = prepareCommunityMembershipPayload(payload);
39
40
 
40
41
  if (client.cache) ingestInCache(data);
41
42
 
43
+ fireEvent('local.community.roleRemoved', data);
44
+
42
45
  const { communityUsers } = data;
43
46
  return !!communityUsers.find(
44
47
  communityUser =>
@@ -0,0 +1,38 @@
1
+ import { getActiveClient } from '~/client/api/activeClient';
2
+ import { createEventSubscriber } from '~/core/events';
3
+
4
+ /**
5
+ * ```js
6
+ * import { onLocalCommunityRoleAdded } from '@amityco/ts-sdk-react-native'
7
+ * const dispose = onLocalCommunityRoleAdded((community, member) => {
8
+ * // ...
9
+ * })
10
+ * ```
11
+ *
12
+ * Fired when any {@link Amity.communityUsers} 's role has been added to any {@link Amity.Community}
13
+ *
14
+ * @param callback The function to call when the event was fired
15
+ * @returns an {@link Amity.Unsubscriber} function to stop listening
16
+ *
17
+ * @category Community Events
18
+ */
19
+ export const onLocalCommunityRoleAdded = (
20
+ callback: (community: Amity.Community, member: Amity.Membership<'community'>[]) => void,
21
+ ): Amity.Unsubscriber => {
22
+ const client = getActiveClient();
23
+
24
+ const filter = async (payload: Amity.ProcessedCommunityMembershipPayload) => {
25
+ const { communities, communityUsers } = payload;
26
+ callback(
27
+ communities[0],
28
+ communityUsers.filter(communityUser => communityUser.communityMembership === 'member')!,
29
+ );
30
+ };
31
+
32
+ return createEventSubscriber(
33
+ client,
34
+ 'onLocalCommunityRoleAdded',
35
+ 'local.community.roleAdded',
36
+ filter,
37
+ );
38
+ };
@@ -0,0 +1,38 @@
1
+ import { getActiveClient } from '~/client/api/activeClient';
2
+ import { createEventSubscriber } from '~/core/events';
3
+
4
+ /**
5
+ * ```js
6
+ * import { onLocalCommunityRoleRemoved } from '@amityco/ts-sdk-react-native'
7
+ * const dispose = onLocalCommunityRoleRemoved((community, member) => {
8
+ * // ...
9
+ * })
10
+ * ```
11
+ *
12
+ * Fired when any {@link Amity.communityUsers} 's role has been added to any {@link Amity.Community}
13
+ *
14
+ * @param callback The function to call when the event was fired
15
+ * @returns an {@link Amity.Unsubscriber} function to stop listening
16
+ *
17
+ * @category Community Events
18
+ */
19
+ export const onLocalCommunityRoleRemoved = (
20
+ callback: (community: Amity.Community, member: Amity.Membership<'community'>[]) => void,
21
+ ): Amity.Unsubscriber => {
22
+ const client = getActiveClient();
23
+
24
+ const filter = async (payload: Amity.ProcessedCommunityMembershipPayload) => {
25
+ const { communities, communityUsers } = payload;
26
+ callback(
27
+ communities[0],
28
+ communityUsers.filter(communityUser => communityUser.communityMembership === 'member')!,
29
+ );
30
+ };
31
+
32
+ return createEventSubscriber(
33
+ client,
34
+ 'onLocalCommunityRoleRemoved',
35
+ 'local.community.roleRemoved',
36
+ filter,
37
+ );
38
+ };
@@ -1,6 +1,4 @@
1
1
  import { CommunityPostSettingMaps, DefaultCommunityPostSetting } from '~/@types';
2
- import { pullFromCache } from '~/cache/api';
3
- import { withUsers } from '~/group/utils';
4
2
  import { updateMembershipStatus } from './communityWithMembership';
5
3
 
6
4
  const getMatchPostSetting = (value: {
@@ -14,31 +12,8 @@ const getMatchPostSetting = (value: {
14
12
  value.onlyAdminCanPost === CommunityPostSettingMaps[key].onlyAdminCanPost,
15
13
  ) ?? DefaultCommunityPostSetting;
16
14
 
17
- const convertCommunityUsersToUniqueObject = (
18
- communityUsers: Amity.RawMembership<'community'>[],
19
- ) => {
20
- if (!communityUsers) return communityUsers;
21
-
22
- const result: {
23
- [key: string]: Amity.RawMembership<'community'>;
24
- } = {};
25
-
26
- communityUsers.forEach(user => {
27
- result[`${user.userId}#${user.communityId}`] = user;
28
- });
29
-
30
- return result;
31
- };
32
-
33
- export const convertCommunityPayload = (rawPayload: {
34
- communities: Amity.RawCommunity[];
35
- communityUsers: Amity.RawMembership<'community'>[];
36
- }): {
37
- communities: Amity.Community[];
38
- communityUsers: Amity.Membership<'community'>[];
39
- } => {
40
- // Unpack community payload by mapping payload field to postSetting value.
41
- const communities = rawPayload.communities.map<Amity.Community>(
15
+ export function addPostSetting({ communities }: { communities: Amity.RawCommunity[] }) {
16
+ return communities.map<Amity.Community>(
42
17
  ({ needApprovalOnPostCreation, onlyAdminCanPost, ...restCommunityPayload }) => ({
43
18
  postSetting: getMatchPostSetting({
44
19
  needApprovalOnPostCreation,
@@ -47,44 +22,63 @@ export const convertCommunityPayload = (rawPayload: {
47
22
  ...restCommunityPayload,
48
23
  }),
49
24
  );
25
+ }
50
26
 
51
- const mergeCommunityUsers = communities.reduce<{
52
- [key: string]: Amity.RawMembership<'community'>;
53
- }>((acc, { communityId }) => {
54
- const users = pullFromCache<Amity.RawMembership<'community'>[]>([
55
- 'communityUsers',
56
- 'collection',
57
- communityId,
58
- ])?.data;
59
-
60
- if (!users) return acc;
61
-
62
- return {
63
- ...convertCommunityUsersToUniqueObject(users),
64
- ...acc,
65
- };
66
- }, convertCommunityUsersToUniqueObject(rawPayload.communityUsers));
67
-
68
- const communityUsers = withUsers(Object.values(mergeCommunityUsers));
27
+ export const prepareCommunityPayload = (
28
+ rawPayload: Amity.CommunityPayload,
29
+ ): Amity.ProcessedCommunityPayload => {
30
+ const communitiesWithPostSetting = addPostSetting({ communities: rawPayload.communities });
31
+
32
+ // map users with community
33
+ const mappedCommunityUsers: Array<Amity.Membership<'community'>> = rawPayload.communityUsers.map(
34
+ communityUser => {
35
+ const user = rawPayload.users.find(user => user.userId === communityUser.userId)!;
36
+
37
+ return {
38
+ ...communityUser,
39
+ user,
40
+ };
41
+ },
42
+ );
69
43
 
70
- const communityWithMembershipStatus = updateMembershipStatus(communities, communityUsers);
44
+ const communityWithMembershipStatus = updateMembershipStatus(
45
+ communitiesWithPostSetting,
46
+ mappedCommunityUsers,
47
+ );
71
48
 
72
49
  return {
73
50
  ...rawPayload,
74
51
  communities: communityWithMembershipStatus,
75
- communityUsers,
52
+ communityUsers: mappedCommunityUsers,
76
53
  };
77
54
  };
78
55
 
79
- export const prepareCommunityPayload = (
80
- rawPayload: Amity.CommunityPayload,
81
- ): Amity.ProcessedCommunityPayload => {
82
- const { communities, communityUsers } = convertCommunityPayload(rawPayload);
56
+ export const prepareCommunityMembershipPayload = (
57
+ rawPayload: Amity.CommunityMembershipPayload,
58
+ ): Amity.ProcessedCommunityMembershipPayload => {
59
+ const communitiesWithPostSetting = addPostSetting({ communities: rawPayload.communities });
60
+
61
+ // map users with community
62
+ const mappedCommunityUsers: Array<Amity.Membership<'community'>> = rawPayload.communityUsers.map(
63
+ communityUser => {
64
+ const user = rawPayload.users.find(user => user.userId === communityUser.userId)!;
65
+
66
+ return {
67
+ ...communityUser,
68
+ user,
69
+ };
70
+ },
71
+ );
72
+
73
+ const communityWithMembershipStatus = updateMembershipStatus(
74
+ communitiesWithPostSetting,
75
+ mappedCommunityUsers,
76
+ );
83
77
 
84
78
  return {
85
79
  ...rawPayload,
86
- communities,
87
- communityUsers,
80
+ communities: communityWithMembershipStatus,
81
+ communityUsers: mappedCommunityUsers,
88
82
  };
89
83
  };
90
84
 
@@ -56,6 +56,9 @@ const idResolvers: Resolvers = {
56
56
 
57
57
  ad: ({ adId }) => adId,
58
58
  advertiser: ({ advertiserId }) => advertiserId,
59
+
60
+ pin: ({ referenceId }) => referenceId,
61
+ pinTarget: ({ targetId }) => targetId,
59
62
  };
60
63
 
61
64
  /**
@@ -49,6 +49,9 @@ export const PAYLOAD2MODEL: Record<string, Amity.Domain> = {
49
49
  feeds: 'feed',
50
50
  ads: 'ad',
51
51
  advertisers: 'advertiser',
52
+
53
+ pinTargets: 'pinTarget',
54
+ pins: 'pin',
52
55
  };
53
56
 
54
57
  /** hidden */
@@ -1,6 +1,39 @@
1
1
  import { pullFromCache } from '~/cache/api/pullFromCache';
2
2
  import { getActiveClient } from '~/client/api/activeClient';
3
3
 
4
+ /**
5
+ * Attach user object to membership model
6
+ * - If cache is not enabled, set user to undefined ({..., user: undefined})
7
+ * - If user object is not found in cache, set user to undefined
8
+ * ({..., user: undefined})
9
+ * - If a user is found in the cache, it attaches the user from the cache
10
+ * ({..., user: { userId, displayName,... }})
11
+ *
12
+ * @param member The membership model object
13
+ * @returns The membership model object that is already mapped to user
14
+ * @hidden
15
+ */
16
+ export const convertRawMembershipToMembership = <T extends Amity.GroupType>(
17
+ member: Amity.RawMembership<T>,
18
+ ): Amity.Membership<T> => {
19
+ return {
20
+ ...member,
21
+ get user() {
22
+ const client = getActiveClient();
23
+
24
+ if (!client.cache) return undefined;
25
+
26
+ const userCache = pullFromCache<Amity.InternalUser>(['user', 'get', member.userId])?.data;
27
+
28
+ if (!userCache) {
29
+ return undefined;
30
+ }
31
+
32
+ return userCache;
33
+ },
34
+ };
35
+ };
36
+
4
37
  /**
5
38
  * Attach user object to membership model
6
39
  * - If cache is not enabled, set user to undefined ({..., user: undefined})
@@ -71,7 +71,15 @@ export const deletePost = async (
71
71
  // to support hard deletion
72
72
  const deleted = { ...post.data, isDeleted: true };
73
73
 
74
- fireEvent('post.deleted', {
74
+ if (permanent) {
75
+ setTimeout(() => {
76
+ pushToTombstone('post', postId);
77
+ }, 0);
78
+ } else {
79
+ upsertInCache(['post', 'get', postId], { isDeleted: true });
80
+ }
81
+
82
+ fireEvent('local.post.deleted', {
75
83
  posts: [deleted],
76
84
  categories: [],
77
85
  comments: [],
@@ -83,13 +91,5 @@ export const deletePost = async (
83
91
  users: [],
84
92
  });
85
93
 
86
- if (permanent) {
87
- setTimeout(() => {
88
- pushToTombstone('post', postId);
89
- }, 0);
90
- } else {
91
- upsertInCache(['post', 'get', postId], { isDeleted: true });
92
- }
93
-
94
94
  return LinkedObject.post(deleted);
95
95
  };
@@ -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('local.post.updated', data);
54
+ fireEvent('local.post.updated', payload);
55
55
 
56
56
  const { posts } = data;
57
57
 
@@ -0,0 +1,20 @@
1
+ import { createLocalPostEventSubscriber, createPostEventSubscriber } from './utils';
2
+
3
+ /**
4
+ * ```js
5
+ * import { onLocalPostDeleted } from '@amityco/ts-sdk-react-native'
6
+ * const dispose = onLocalPostDeleted(post => {
7
+ * // ...
8
+ * })
9
+ * ```
10
+ *
11
+ * Fired when a {@link Amity.InternalPost} 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 Post Events
17
+ */
18
+ export const onLocalPostDeleted = (
19
+ callback: Amity.Listener<Amity.InternalPost>,
20
+ ): Amity.Unsubscriber => createLocalPostEventSubscriber('local.post.deleted', callback);
@@ -0,0 +1,38 @@
1
+ import { getActiveClient } from '~/client/api';
2
+ import { pullFromCache, upsertInCache } from '~/cache/api';
3
+ import { ingestInCache } from '~/cache/api/ingestInCache';
4
+ import { createEventSubscriber } from '~/core/events';
5
+ import { preparePostPayload } from '../utils/payload';
6
+
7
+ /**
8
+ * ```js
9
+ * import { onLocalPostReactionAdded } from '@amityco/ts-sdk-react-native'
10
+ * const dispose = onPostReactionAdded(post => {
11
+ * // ...
12
+ * })
13
+ * ```
14
+ *
15
+ * Fired when a {@link Amity.InternalPost} has been reacted
16
+ *
17
+ * @param callback The function to call when the event was fired
18
+ * @returns an {@link Amity.Unsubscriber} function to stop listening
19
+ *
20
+ * @category Post Events
21
+ */
22
+ export const onLocalPostReactionAdded = (
23
+ callback: Amity.Listener<Amity.InternalPost>,
24
+ ): Amity.Unsubscriber => {
25
+ const client = getActiveClient();
26
+
27
+ const filter = ({ post }: Amity.Events['local.post.addReaction']) => {
28
+ if (!client.cache) {
29
+ callback(post);
30
+ } else {
31
+ upsertInCache(['post', 'get', post.postId], post);
32
+
33
+ callback(post);
34
+ }
35
+ };
36
+
37
+ return createEventSubscriber(client, 'local.post.addReaction', 'local.post.addReaction', filter);
38
+ };
@@ -0,0 +1,41 @@
1
+ import { getActiveClient } from '~/client/api';
2
+ import { pullFromCache, upsertInCache } from '~/cache/api';
3
+ import { createEventSubscriber } from '~/core/events';
4
+
5
+ /**
6
+ * ```js
7
+ * import { onLocalPostReactionRemoved } from '@amityco/ts-sdk-react-native'
8
+ * const dispose = onPostReactionRemoved(post => {
9
+ * // ...
10
+ * })
11
+ * ```
12
+ *
13
+ * Fired when a {@link Amity.InternalPost} has been reacted
14
+ *
15
+ * @param callback The function to call when the event was fired
16
+ * @returns an {@link Amity.Unsubscriber} function to stop listening
17
+ *
18
+ * @category Post Events
19
+ */
20
+ export const onLocalPostReactionRemoved = (
21
+ callback: Amity.Listener<Amity.InternalPost>,
22
+ ): Amity.Unsubscriber => {
23
+ const client = getActiveClient();
24
+
25
+ const filter = ({ post }: Amity.Events['local.post.removeReaction']) => {
26
+ if (!client.cache) {
27
+ callback(post);
28
+ } else {
29
+ upsertInCache(['post', 'get', post.postId], post);
30
+
31
+ callback(post);
32
+ }
33
+ };
34
+
35
+ return createEventSubscriber(
36
+ client,
37
+ 'local.post.removeReaction',
38
+ 'local.post.removeReaction',
39
+ filter,
40
+ );
41
+ };
@@ -0,0 +1,20 @@
1
+ import { createLocalPostEventSubscriber } from './utils';
2
+
3
+ /**
4
+ * ```js
5
+ * import { onPostUpdatedLocal } from '@amityco/ts-sdk-react-native'
6
+ * const dispose = onPostUpdatedLocal(post => {
7
+ * // ...
8
+ * })
9
+ * ```
10
+ *
11
+ * Fired when a {@link Amity.InternalPost} has been updated
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 Post Events
17
+ */
18
+ export const onPostUpdatedLocal = (
19
+ callback: Amity.Listener<Amity.InternalPost>,
20
+ ): Amity.Unsubscriber => createLocalPostEventSubscriber('local.post.updated', callback);
@@ -1,10 +1,9 @@
1
1
  import { getActiveClient } from '~/client/api';
2
2
  import { ingestInCache } from '~/cache/api/ingestInCache';
3
3
  import { createEventSubscriber, fireEvent } from '~/core/events';
4
- import { pullFromCache, queryCache, upsertInCache } from '~/cache/api';
5
- import { pushToTombstone } from '~/cache/api/pushToTombstone';
6
- import { prepareMembershipPayload } from '~/group/utils';
4
+ import { dropFromCache, pullFromCache, queryCache, upsertInCache } from '~/cache/api';
7
5
  import { isInTombstone } from '~/cache/api/isInTombstone';
6
+ import { preparePostPayload } from '~/postRepository/utils/payload';
8
7
 
9
8
  export const createPostEventSubscriber = (
10
9
  event: keyof Amity.MqttPostEvents,
@@ -16,9 +15,9 @@ export const createPostEventSubscriber = (
16
15
  if (!client.cache) {
17
16
  callback(payload.posts[0]);
18
17
  } else {
19
- const { communities, ...others } = payload;
18
+ const data = preparePostPayload(payload);
20
19
 
21
- const data = prepareMembershipPayload(others, 'communityUsers');
20
+ const { communities } = data;
22
21
 
23
22
  ingestInCache(data);
24
23
 
@@ -49,7 +48,7 @@ export const createPostEventSubscriber = (
49
48
  // But if it is hard delete, it will pushed into tombstone before fire an event to BE. it means it will stay in tombstone already
50
49
  // and will got skip to notify in a previous code block
51
50
  if (postedUserId !== client.userId) {
52
- pushToTombstone('post', postId);
51
+ dropFromCache(['post', 'get', postId]);
53
52
  }
54
53
 
55
54
  return callback(payload.posts[0]);
@@ -76,3 +75,39 @@ export const createPostEventSubscriber = (
76
75
 
77
76
  return createEventSubscriber(client, event, event, filter);
78
77
  };
78
+
79
+ export const createLocalPostEventSubscriber = (
80
+ event: keyof Omit<Amity.LocalPostEvents, 'local.post.addReaction' | 'local.post.removeReaction'>,
81
+ callback: Amity.Listener<Amity.InternalPost>,
82
+ ) => {
83
+ const client = getActiveClient();
84
+
85
+ const filter = (payload: Amity.PostPayload) => {
86
+ if (!client.cache) {
87
+ callback(payload.posts[0]);
88
+ } else {
89
+ const data = preparePostPayload(payload);
90
+
91
+ const { communities } = data;
92
+
93
+ ingestInCache(data);
94
+
95
+ if (communities?.[0] && !['local.post.updated'].includes(event)) {
96
+ fireEvent('community.updated', {
97
+ communities,
98
+ categories: [],
99
+ communityUsers: data.communityUsers,
100
+ feeds: [],
101
+ files: [],
102
+ users: [],
103
+ });
104
+ }
105
+
106
+ const post = pullFromCache<Amity.InternalPost>(['post', 'get', payload.posts[0].postId])!;
107
+
108
+ callback(post.data);
109
+ }
110
+ };
111
+
112
+ return createEventSubscriber(client, event, event, filter);
113
+ };
@@ -1,16 +1 @@
1
- export * from './getPostByIds';
2
-
3
- export * from './createPost';
4
- export * from './updatePost';
5
- export * from './editPost';
6
-
7
- export * from './deletePost';
8
- export * from './softDeletePost';
9
- export * from './hardDeletePost';
10
-
11
- export * from './approvePost';
12
- export * from './declinePost';
13
-
14
- export * from './flagPost';
15
- export * from './unflagPost';
16
- export * from './isPostFlaggedByMe';
1
+ export * from './getPost';