@amityco/ts-sdk 6.29.3-e60fd01.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 (252) 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 +1 -1
  5. package/dist/@types/core/model.d.ts.map +1 -1
  6. package/dist/@types/core/payload.d.ts +18 -4
  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/follow.d.ts +21 -3
  11. package/dist/@types/domains/follow.d.ts.map +1 -1
  12. package/dist/@types/domains/post.d.ts +3 -1
  13. package/dist/@types/domains/post.d.ts.map +1 -1
  14. package/dist/@types/domains/user.d.ts +2 -2
  15. package/dist/@types/domains/user.d.ts.map +1 -1
  16. package/dist/channelRepository/channelMembership/observers/getMembers/ChannelMemberLiveCollectionController.d.ts.map +1 -1
  17. package/dist/channelRepository/channelMembership/observers/getMembers/ChannelMemberPaginationController.d.ts.map +1 -1
  18. package/dist/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberLiveCollectionController.d.ts.map +1 -1
  19. package/dist/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberPaginationController.d.ts.map +1 -1
  20. package/dist/channelRepository/events/onUserDeleted.d.ts +2 -0
  21. package/dist/channelRepository/events/onUserDeleted.d.ts.map +1 -0
  22. package/dist/commentRepository/api/createComment.d.ts.map +1 -1
  23. package/dist/commentRepository/api/deleteComment.d.ts.map +1 -1
  24. package/dist/commentRepository/events/onCommentCreatedLocal.d.ts +17 -0
  25. package/dist/commentRepository/events/onCommentCreatedLocal.d.ts.map +1 -0
  26. package/dist/commentRepository/events/onCommentDeletedLocal.d.ts +17 -0
  27. package/dist/commentRepository/events/onCommentDeletedLocal.d.ts.map +1 -0
  28. package/dist/commentRepository/events/onLocalCommentReactionAdded.d.ts +17 -0
  29. package/dist/commentRepository/events/onLocalCommentReactionAdded.d.ts.map +1 -0
  30. package/dist/commentRepository/events/onLocalCommentReactionRemoved.d.ts +17 -0
  31. package/dist/commentRepository/events/onLocalCommentReactionRemoved.d.ts.map +1 -0
  32. package/dist/commentRepository/events/utils.d.ts +1 -0
  33. package/dist/commentRepository/events/utils.d.ts.map +1 -1
  34. package/dist/commentRepository/observers/getComment.d.ts.map +1 -1
  35. package/dist/commentRepository/observers/getComments/CommentLiveCollectionController.d.ts.map +1 -1
  36. package/dist/communityRepository/communityMembership/events/index.d.ts +2 -0
  37. package/dist/communityRepository/communityMembership/events/index.d.ts.map +1 -1
  38. package/dist/communityRepository/communityMembership/events/onLocalCommunityUserAdded.d.ts +17 -0
  39. package/dist/communityRepository/communityMembership/events/onLocalCommunityUserAdded.d.ts.map +1 -0
  40. package/dist/communityRepository/communityMembership/events/onLocalCommunityUserRemoved.d.ts +17 -0
  41. package/dist/communityRepository/communityMembership/events/onLocalCommunityUserRemoved.d.ts.map +1 -0
  42. package/dist/communityRepository/communityMembership/events/onUserDeleted.d.ts +17 -0
  43. package/dist/communityRepository/communityMembership/events/onUserDeleted.d.ts.map +1 -0
  44. package/dist/communityRepository/communityMembership/events/utils.d.ts +1 -0
  45. package/dist/communityRepository/communityMembership/events/utils.d.ts.map +1 -1
  46. package/dist/communityRepository/communityMembership/observers/getMembers/CommunityMembersLiveCollectionController.d.ts.map +1 -1
  47. package/dist/communityRepository/communityMembership/observers/getMembers/CommunityMembersPaginationController.d.ts.map +1 -1
  48. package/dist/communityRepository/communityMembership/observers/getMembers/enums.d.ts +4 -1
  49. package/dist/communityRepository/communityMembership/observers/getMembers/enums.d.ts.map +1 -1
  50. package/dist/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersLiveCollectionController.d.ts.map +1 -1
  51. package/dist/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersPaginationController.d.ts.map +1 -1
  52. package/dist/communityRepository/communityModeration/api/addRoles.d.ts.map +1 -1
  53. package/dist/communityRepository/communityModeration/api/removeRoles.d.ts.map +1 -1
  54. package/dist/communityRepository/communityModeration/events/onLocalCommunityRoleAdded.d.ts +17 -0
  55. package/dist/communityRepository/communityModeration/events/onLocalCommunityRoleAdded.d.ts.map +1 -0
  56. package/dist/communityRepository/communityModeration/events/onLocalCommunityRoleRemoved.d.ts +17 -0
  57. package/dist/communityRepository/communityModeration/events/onLocalCommunityRoleRemoved.d.ts.map +1 -0
  58. package/dist/communityRepository/utils/payload.d.ts +1 -0
  59. package/dist/communityRepository/utils/payload.d.ts.map +1 -1
  60. package/dist/core/events.d.ts +3 -3
  61. package/dist/core/events.d.ts.map +1 -1
  62. package/dist/index.cjs.js +1624 -901
  63. package/dist/index.esm.js +1538 -815
  64. package/dist/index.umd.js +4 -4
  65. package/dist/postRepository/events/onLocalPostDeleted.d.ts +17 -0
  66. package/dist/postRepository/events/onLocalPostDeleted.d.ts.map +1 -0
  67. package/dist/postRepository/events/onLocalPostReactionAdded.d.ts +17 -0
  68. package/dist/postRepository/events/onLocalPostReactionAdded.d.ts.map +1 -0
  69. package/dist/postRepository/events/onLocalPostReactionRemoved.d.ts +17 -0
  70. package/dist/postRepository/events/onLocalPostReactionRemoved.d.ts.map +1 -0
  71. package/dist/postRepository/events/onPostUpdatedLocal.d.ts +17 -0
  72. package/dist/postRepository/events/onPostUpdatedLocal.d.ts.map +1 -0
  73. package/dist/postRepository/events/utils.d.ts +1 -0
  74. package/dist/postRepository/events/utils.d.ts.map +1 -1
  75. package/dist/postRepository/observers/getPost.d.ts.map +1 -1
  76. package/dist/postRepository/observers/getPosts/PostLiveCollectionController.d.ts.map +1 -1
  77. package/dist/postRepository/utils/payload.d.ts.map +1 -1
  78. package/dist/reactionRepository/api/addReaction.d.ts.map +1 -1
  79. package/dist/reactionRepository/api/removeReaction.d.ts.map +1 -1
  80. package/dist/userRepository/observers/getBlockedUsers/BlockedUserLiveCollectionController.d.ts +14 -0
  81. package/dist/userRepository/observers/getBlockedUsers/BlockedUserLiveCollectionController.d.ts.map +1 -0
  82. package/dist/userRepository/observers/getBlockedUsers/BlockedUserPaginationController.d.ts +5 -0
  83. package/dist/userRepository/observers/getBlockedUsers/BlockedUserPaginationController.d.ts.map +1 -0
  84. package/dist/userRepository/observers/getBlockedUsers/BlockedUserQueryStreamController.d.ts +15 -0
  85. package/dist/userRepository/observers/getBlockedUsers/BlockedUserQueryStreamController.d.ts.map +1 -0
  86. package/dist/userRepository/observers/getBlockedUsers.d.ts.map +1 -1
  87. package/dist/userRepository/relationship/block/api/blockUser.d.ts.map +1 -1
  88. package/dist/userRepository/relationship/block/api/unBlockUser.d.ts.map +1 -1
  89. package/dist/userRepository/relationship/follow/api/acceptFollower.d.ts.map +1 -1
  90. package/dist/userRepository/relationship/follow/api/acceptMyFollower.d.ts.map +1 -1
  91. package/dist/userRepository/relationship/follow/api/declineFollower.d.ts.map +1 -1
  92. package/dist/userRepository/relationship/follow/api/declineMyFollower.d.ts.map +1 -1
  93. package/dist/userRepository/relationship/follow/api/follow.d.ts.map +1 -1
  94. package/dist/userRepository/relationship/follow/api/unfollow.d.ts.map +1 -1
  95. package/dist/userRepository/relationship/follow/api/utils.d.ts.map +1 -1
  96. package/dist/userRepository/relationship/follow/enums.d.ts +11 -0
  97. package/dist/userRepository/relationship/follow/enums.d.ts.map +1 -0
  98. package/dist/userRepository/relationship/follow/events/index.d.ts +5 -0
  99. package/dist/userRepository/relationship/follow/events/index.d.ts.map +1 -1
  100. package/dist/userRepository/relationship/follow/events/onFollowInfoUpdated.d.ts.map +1 -1
  101. package/dist/userRepository/relationship/follow/events/onFollowerUserDeleted.d.ts +4 -0
  102. package/dist/userRepository/relationship/follow/events/onFollowerUserDeleted.d.ts.map +1 -0
  103. package/dist/userRepository/relationship/follow/events/onFollowingUserDeleted.d.ts +4 -0
  104. package/dist/userRepository/relationship/follow/events/onFollowingUserDeleted.d.ts.map +1 -0
  105. package/dist/userRepository/relationship/follow/events/onLocalFollowRequestAccepted.d.ts +2 -0
  106. package/dist/userRepository/relationship/follow/events/onLocalFollowRequestAccepted.d.ts.map +1 -0
  107. package/dist/userRepository/relationship/follow/events/onLocalFollowRequestDeclined.d.ts +2 -0
  108. package/dist/userRepository/relationship/follow/events/onLocalFollowRequestDeclined.d.ts.map +1 -0
  109. package/dist/userRepository/relationship/follow/events/onLocalFollowerRequested.d.ts +2 -0
  110. package/dist/userRepository/relationship/follow/events/onLocalFollowerRequested.d.ts.map +1 -0
  111. package/dist/userRepository/relationship/follow/events/onLocalUserFollowed.d.ts +2 -0
  112. package/dist/userRepository/relationship/follow/events/onLocalUserFollowed.d.ts.map +1 -0
  113. package/dist/userRepository/relationship/follow/events/onLocalUserUnfollowed.d.ts +2 -0
  114. package/dist/userRepository/relationship/follow/events/onLocalUserUnfollowed.d.ts.map +1 -0
  115. package/dist/userRepository/relationship/follow/events/utils.d.ts +2 -1
  116. package/dist/userRepository/relationship/follow/events/utils.d.ts.map +1 -1
  117. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerLiveCollectionController.d.ts +14 -0
  118. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerLiveCollectionController.d.ts.map +1 -0
  119. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerPaginationController.d.ts +5 -0
  120. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerPaginationController.d.ts.map +1 -0
  121. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerQueryStreamController.d.ts +15 -0
  122. package/dist/userRepository/relationship/follow/observers/getFollowers/FollowerQueryStreamController.d.ts.map +1 -0
  123. package/dist/userRepository/relationship/follow/observers/getFollowers.d.ts.map +1 -1
  124. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingLiveCollectionController.d.ts +14 -0
  125. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingLiveCollectionController.d.ts.map +1 -0
  126. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingPaginationController.d.ts +5 -0
  127. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingPaginationController.d.ts.map +1 -0
  128. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingQueryStreamController.d.ts +15 -0
  129. package/dist/userRepository/relationship/follow/observers/getFollowings/FollowingQueryStreamController.d.ts.map +1 -0
  130. package/dist/userRepository/relationship/follow/observers/getFollowings.d.ts.map +1 -1
  131. package/dist/userRepository/relationship/follow/observers/observeFollowers.d.ts +1 -1
  132. package/dist/userRepository/relationship/follow/observers/observeFollowers.d.ts.map +1 -1
  133. package/dist/userRepository/relationship/follow/observers/observeFollowings.d.ts +1 -1
  134. package/dist/userRepository/relationship/follow/observers/observeFollowings.d.ts.map +1 -1
  135. package/dist/userRepository/relationship/follow/utils.d.ts +4 -0
  136. package/dist/userRepository/relationship/follow/utils.d.ts.map +1 -0
  137. package/dist/userRepository/utils/convertRawUserToInternalUser.d.ts +2 -0
  138. package/dist/userRepository/utils/convertRawUserToInternalUser.d.ts.map +1 -0
  139. package/dist/userRepository/utils/prepareBlockedUserPayload.d.ts +2 -0
  140. package/dist/userRepository/utils/prepareBlockedUserPayload.d.ts.map +1 -0
  141. package/dist/userRepository/utils/prepareUserPayload.d.ts +2 -0
  142. package/dist/userRepository/utils/prepareUserPayload.d.ts.map +1 -0
  143. package/dist/utils/linkedObject/commentLinkedObject.d.ts.map +1 -1
  144. package/dist/utils/tests/dummy/block.d.ts +2 -2
  145. package/dist/utils/tests/dummy/follow.d.ts +2 -2
  146. package/package.json +1 -1
  147. package/src/@types/core/events.ts +40 -13
  148. package/src/@types/core/model.ts +1 -1
  149. package/src/@types/core/payload.ts +27 -7
  150. package/src/@types/core/permissions.ts +4 -4
  151. package/src/@types/domains/follow.ts +26 -12
  152. package/src/@types/domains/post.ts +3 -1
  153. package/src/@types/domains/user.ts +2 -2
  154. package/src/channelRepository/channelMembership/observers/getMembers/ChannelMemberLiveCollectionController.ts +4 -4
  155. package/src/channelRepository/channelMembership/observers/getMembers/ChannelMemberPaginationController.ts +4 -1
  156. package/src/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberLiveCollectionController.ts +6 -0
  157. package/src/channelRepository/channelMembership/observers/searchMembers/SearchChannelMemberPaginationController.ts +4 -1
  158. package/src/channelRepository/events/onUserDeleted.ts +46 -0
  159. package/src/channelRepository/utils/prepareChannelPayload.ts +1 -1
  160. package/src/commentRepository/api/createComment.ts +16 -12
  161. package/src/commentRepository/api/deleteComment.ts +23 -13
  162. package/src/commentRepository/events/onCommentCreatedLocal.ts +22 -0
  163. package/src/commentRepository/events/onCommentDeletedLocal.ts +20 -0
  164. package/src/commentRepository/events/onLocalCommentReactionAdded.ts +42 -0
  165. package/src/commentRepository/events/onLocalCommentReactionRemoved.ts +42 -0
  166. package/src/commentRepository/events/utils.ts +78 -1
  167. package/src/commentRepository/observers/getComment.ts +6 -19
  168. package/src/commentRepository/observers/getComments/CommentLiveCollectionController.ts +8 -0
  169. package/src/communityRepository/communityMembership/api/addMembers.ts +1 -1
  170. package/src/communityRepository/communityMembership/api/removeMembers.ts +1 -1
  171. package/src/communityRepository/communityMembership/events/index.ts +2 -0
  172. package/src/communityRepository/communityMembership/events/onLocalCommunityUserAdded.ts +20 -0
  173. package/src/communityRepository/communityMembership/events/onLocalCommunityUserRemoved.ts +20 -0
  174. package/src/communityRepository/communityMembership/events/onUserDeleted.ts +64 -0
  175. package/src/communityRepository/communityMembership/events/utils.ts +50 -2
  176. package/src/communityRepository/communityMembership/observers/getMembers/CommunityMembersLiveCollectionController.ts +24 -5
  177. package/src/communityRepository/communityMembership/observers/getMembers/CommunityMembersPaginationController.ts +4 -1
  178. package/src/communityRepository/communityMembership/observers/getMembers/enums.ts +3 -0
  179. package/src/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersLiveCollectionController.ts +12 -4
  180. package/src/communityRepository/communityMembership/observers/searchMembers/SearchCommunityMembersPaginationController.ts +4 -1
  181. package/src/communityRepository/communityModeration/api/addRoles.ts +5 -2
  182. package/src/communityRepository/communityModeration/api/removeRoles.ts +5 -2
  183. package/src/communityRepository/communityModeration/events/onLocalCommunityRoleAdded.ts +38 -0
  184. package/src/communityRepository/communityModeration/events/onLocalCommunityRoleRemoved.ts +38 -0
  185. package/src/communityRepository/observers/getCommunities/CommunitiesLiveCollectionController.ts +3 -3
  186. package/src/communityRepository/utils/payload.ts +29 -0
  187. package/src/core/model/idResolvers.ts +1 -1
  188. package/src/postRepository/api/deletePost.ts +9 -9
  189. package/src/postRepository/api/updatePost.ts +1 -1
  190. package/src/postRepository/events/onLocalPostDeleted.ts +20 -0
  191. package/src/postRepository/events/onLocalPostReactionAdded.ts +38 -0
  192. package/src/postRepository/events/onLocalPostReactionRemoved.ts +41 -0
  193. package/src/postRepository/events/onPostUpdatedLocal.ts +20 -0
  194. package/src/postRepository/events/utils.ts +41 -6
  195. package/src/postRepository/observers/getPost.ts +8 -0
  196. package/src/postRepository/observers/getPosts/PostLiveCollectionController.ts +8 -0
  197. package/src/postRepository/utils/payload.ts +10 -2
  198. package/src/reactionRepository/api/addReaction.ts +27 -2
  199. package/src/reactionRepository/api/removeReaction.ts +27 -2
  200. package/src/report/api/createReport.ts +1 -1
  201. package/src/report/api/deleteReport.ts +1 -1
  202. package/src/userRepository/api/flagUser.ts +1 -1
  203. package/src/userRepository/api/getUserByIds.ts +1 -1
  204. package/src/userRepository/api/queryBlockedUsers.ts +1 -1
  205. package/src/userRepository/api/unflagUser.ts +1 -1
  206. package/src/userRepository/api/updateUser.ts +1 -1
  207. package/src/userRepository/events/utils.ts +1 -1
  208. package/src/userRepository/internalApi/getUser.ts +1 -1
  209. package/src/userRepository/internalApi/queryUsers.ts +1 -1
  210. package/src/userRepository/observers/getBlockedUsers/BlockedUserLiveCollectionController.ts +106 -0
  211. package/src/userRepository/observers/getBlockedUsers/BlockedUserPaginationController.ts +24 -0
  212. package/src/userRepository/observers/getBlockedUsers/BlockedUserQueryStreamController.ts +76 -0
  213. package/src/userRepository/observers/getBlockedUsers.ts +8 -81
  214. package/src/userRepository/observers/getUsers/UserLiveCollectionController.ts +4 -4
  215. package/src/userRepository/observers/searchUserByDisplayName/SearchUserLiveCollectionController.ts +1 -1
  216. package/src/userRepository/relationship/block/api/blockUser.ts +4 -1
  217. package/src/userRepository/relationship/block/api/unBlockUser.ts +4 -1
  218. package/src/userRepository/relationship/follow/api/acceptFollower.ts +4 -1
  219. package/src/userRepository/relationship/follow/api/acceptMyFollower.ts +4 -1
  220. package/src/userRepository/relationship/follow/api/declineFollower.ts +5 -2
  221. package/src/userRepository/relationship/follow/api/declineMyFollower.ts +5 -2
  222. package/src/userRepository/relationship/follow/api/follow.ts +8 -1
  223. package/src/userRepository/relationship/follow/api/unfollow.ts +4 -1
  224. package/src/userRepository/relationship/follow/api/utils.ts +6 -2
  225. package/src/userRepository/relationship/follow/enums.ts +10 -0
  226. package/src/userRepository/relationship/follow/events/index.ts +6 -0
  227. package/src/userRepository/relationship/follow/events/onFollowInfoUpdated.ts +6 -1
  228. package/src/userRepository/relationship/follow/events/onFollowerUserDeleted.ts +33 -0
  229. package/src/userRepository/relationship/follow/events/onFollowingUserDeleted.ts +33 -0
  230. package/src/userRepository/relationship/follow/events/onLocalFollowRequestAccepted.ts +5 -0
  231. package/src/userRepository/relationship/follow/events/onLocalFollowRequestDeclined.ts +5 -0
  232. package/src/userRepository/relationship/follow/events/onLocalFollowerRequested.ts +5 -0
  233. package/src/userRepository/relationship/follow/events/onLocalUserFollowed.ts +5 -0
  234. package/src/userRepository/relationship/follow/events/onLocalUserUnfollowed.ts +5 -0
  235. package/src/userRepository/relationship/follow/events/utils.ts +25 -14
  236. package/src/userRepository/relationship/follow/observers/getFollowers/FollowerLiveCollectionController.ts +132 -0
  237. package/src/userRepository/relationship/follow/observers/getFollowers/FollowerPaginationController.ts +29 -0
  238. package/src/userRepository/relationship/follow/observers/getFollowers/FollowerQueryStreamController.ts +95 -0
  239. package/src/userRepository/relationship/follow/observers/getFollowers.ts +8 -106
  240. package/src/userRepository/relationship/follow/observers/getFollowings/FollowingLiveCollectionController.ts +136 -0
  241. package/src/userRepository/relationship/follow/observers/getFollowings/FollowingPaginationController.ts +29 -0
  242. package/src/userRepository/relationship/follow/observers/getFollowings/FollowingQueryStreamController.ts +95 -0
  243. package/src/userRepository/relationship/follow/observers/getFollowings.ts +6 -106
  244. package/src/userRepository/relationship/follow/observers/observeFollowers.ts +11 -0
  245. package/src/userRepository/relationship/follow/observers/observeFollowings.ts +11 -0
  246. package/src/userRepository/relationship/follow/utils.ts +36 -0
  247. package/src/userRepository/utils/convertRawUserToInternalUser.ts +6 -0
  248. package/src/userRepository/utils/prepareBlockedUserPayload.ts +19 -0
  249. package/src/userRepository/utils/{index.ts → prepareUserPayload.ts} +1 -6
  250. package/src/utils/linkedObject/commentLinkedObject.ts +13 -16
  251. package/dist/userRepository/utils/index.d.ts +0 -3
  252. package/dist/userRepository/utils/index.d.ts.map +0 -1
@@ -7,8 +7,8 @@ export declare const follow22: Amity.FollowStatus;
7
7
  export declare const follow23: Amity.FollowStatus;
8
8
  export declare const follows: {
9
9
  userId: string;
10
- page1: Amity.FollowStatus[];
11
- page2: Amity.FollowStatus[];
10
+ page1: Amity.RawFollowStatus[];
11
+ page2: Amity.RawFollowStatus[];
12
12
  };
13
13
  export declare const followPayload: Amity.FollowersPayload;
14
14
  //# sourceMappingURL=follow.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amityco/ts-sdk",
3
- "version": "6.29.3-e60fd01.0",
3
+ "version": "6.30.0",
4
4
  "license": "CC-BY-ND-4.0",
5
5
  "author": "amity.co <developers@amity.co> (https://amity.co)",
6
6
  "description": "Amity Social Cloud Typescript SDK",
@@ -139,13 +139,13 @@ declare global {
139
139
  };
140
140
 
141
141
  type MqttFollowEvents = {
142
- 'follow.created': Amity.FollowersPayload | Amity.FollowStatusPayload;
143
- 'follow.requested': Amity.FollowersPayload | Amity.FollowStatusPayload;
144
- 'follow.accepted': Amity.FollowersPayload | Amity.FollowStatusPayload;
145
- 'follow.unfollowed': Amity.FollowersPayload | Amity.FollowStatusPayload;
146
- 'follow.requestCanceled': Amity.FollowersPayload | Amity.FollowStatusPayload;
147
- 'follow.requestDeclined': Amity.FollowersPayload | Amity.FollowStatusPayload;
148
- 'follow.followerDeleted': Amity.FollowersPayload | Amity.FollowStatusPayload;
142
+ 'follow.created': Amity.FollowersPayload;
143
+ 'follow.requested': Amity.FollowersPayload;
144
+ 'follow.accepted': Amity.FollowersPayload;
145
+ 'follow.unfollowed': Amity.FollowersPayload;
146
+ 'follow.requestCanceled': Amity.FollowersPayload;
147
+ 'follow.requestDeclined': Amity.FollowersPayload;
148
+ 'follow.followerDeleted': Amity.FollowersPayload;
149
149
  };
150
150
 
151
151
  type MqttMarkerEvents = {
@@ -166,6 +166,35 @@ declare global {
166
166
  MqttMarkerEvents &
167
167
  MqttStoryEvents;
168
168
 
169
+ type LocalPostEvents = {
170
+ 'local.post.updated': Amity.PostPayload;
171
+ 'local.post.deleted': Amity.PostPayload;
172
+ 'local.post.addReaction': { post: Amity.InternalPost };
173
+ 'local.post.removeReaction': { post: Amity.InternalPost };
174
+ };
175
+
176
+ type LocalCommentEvents = {
177
+ 'local.comment.created': Amity.CommentPayload;
178
+ 'local.comment.deleted': Amity.CommentPayload;
179
+ 'local.comment.addReaction': { comment: Amity.InternalComment };
180
+ 'local.comment.removeReaction': { comment: Amity.InternalComment };
181
+ };
182
+
183
+ type LocalCommunityEvents = {
184
+ 'local.community.roleAdded': Amity.ProcessedCommunityPayload;
185
+ 'local.community.roleRemoved': Amity.ProcessedCommunityPayload;
186
+ 'local.community.userAdded': Amity.CommunityMembershipPayload;
187
+ 'local.community.userRemoved': Amity.CommunityMembershipPayload;
188
+ };
189
+
190
+ type LocalFollowEvents = {
191
+ 'local.follow.created': Amity.FollowStatusPayload;
192
+ 'local.follow.requested': Amity.FollowStatusPayload;
193
+ 'local.follow.accepted': Amity.FollowStatusPayload;
194
+ 'local.follow.unfollowed': Amity.FollowStatusPayload;
195
+ 'local.follow.requestDeclined': Amity.FollowStatusPayload;
196
+ };
197
+
169
198
  type LocalEvents = {
170
199
  'local.channel.updated': MakeRequired<Amity.ProcessedChannelPayload, 'channels'>;
171
200
  'local.channel.fetched': Amity.InternalChannel[];
@@ -213,17 +242,15 @@ declare global {
213
242
  'local.story.error': Amity.StoryPayload;
214
243
  'local.story.reload': { referenceIds: Amity.Story['referenceId'][] };
215
244
 
216
- 'local.post.updated': Amity.PostPayload;
217
-
218
- 'local.comment.created': Amity.CommentPayload;
219
- 'local.comment.deleted': Amity.CommentPayload;
220
-
221
245
  sessionStateChange: Amity.SessionStates;
222
246
  // used by accessTokenExpiryWatcher
223
247
  tokenExpired: Amity.SessionStates.TOKEN_EXPIRED;
224
248
  tokenTerminated: Amity.SessionStates.TERMINATED;
225
249
  unreadCountEnabled: boolean;
226
- };
250
+ } & LocalPostEvents &
251
+ LocalCommentEvents &
252
+ LocalCommunityEvents &
253
+ LocalFollowEvents;
227
254
 
228
255
  type Events = WsEvents & MqttEvents & MqttRTE & LocalEvents;
229
256
  }
@@ -113,7 +113,7 @@ declare global {
113
113
  advertiser: Pick<Amity.Advertiser, 'advertiserId'>;
114
114
 
115
115
  pinTarget: Pick<Amity.InternalPinTarget, 'targetId'>;
116
- pin: Pick<Amity.InternalPin, 'referenceId'>;
116
+ pin: Pick<Amity.InternalPin, 'placement' | 'referenceId'>;
117
117
  };
118
118
  }
119
119
  }
@@ -21,6 +21,9 @@ declare global {
21
21
  globalStoryFeed: Amity.GlobalStoryFeedPayload;
22
22
  reaction: Amity.ReactionPayload;
23
23
  pinnedPost: Amity.PinnedPostPayload;
24
+ follower: Amity.FollowersPayload;
25
+ following: Amity.FollowingsPayload;
26
+ blockUser: Amity.BlockedUserPayload;
24
27
  };
25
28
 
26
29
  type UserPayload = {
@@ -387,16 +390,26 @@ declare global {
387
390
  type GlobalFeedPayload = Amity.PostPayload;
388
391
 
389
392
  type FollowStatusPayload = {
390
- follows: Amity.FollowStatus[];
393
+ follows: Amity.RawFollowStatus[];
394
+ };
395
+
396
+ type ProcessedFollowStatusPayload = {
397
+ follows: Amity.InternalFollowStatus[];
391
398
  };
392
399
 
393
400
  type FollowInfoMePayload = {
394
401
  followCounts: Amity.FollowCount[];
395
402
  };
396
403
 
397
- // TODO: apply Amity.RawUser type
398
- type FollowersPayload = Amity.FollowStatusPayload &
399
- Omit<Amity.UserPayload, 'users'> & { users: Amity.InternalUser[] };
404
+ type FollowersPayload = Amity.FollowStatusPayload & Amity.UserPayload;
405
+
406
+ type ProcessedFollowersPayload = Amity.ProcessedFollowStatusPayload & {
407
+ users: Amity.InternalUser[];
408
+ };
409
+
410
+ type FollowingsPayload = Amity.FollowersPayload;
411
+
412
+ type ProcessedFollowingsPayload = Amity.ProcessedFollowersPayload;
400
413
 
401
414
  type FollowInfoPayload = FollowInfoMePayload & Amity.FollowStatusPayload;
402
415
 
@@ -405,9 +418,16 @@ declare global {
405
418
  followCounts: Amity.FollowCount[];
406
419
  };
407
420
 
408
- // TODO: apply Amity.RawUser type
409
- type BlockedUserPayload = Amity.FollowStatusPayload[] &
410
- Omit<Amity.UserPayload, 'users'> & { users: Amity.InternalUser[] } & Amity.BlockedUserPaged;
421
+ type ProcessedBlockedPayload = {
422
+ follows: Amity.ProcessedFollowStatusPayload['follows'];
423
+ followCounts: Amity.FollowCount[];
424
+ };
425
+
426
+ type BlockedUserPayload = Amity.FollowersPayload;
427
+
428
+ type ProcessedBlockedUserPayload = Amity.BlockedUserPayload & {
429
+ users: Amity.InternalUser[];
430
+ };
411
431
 
412
432
  type MessagePreviewPayload<T extends Amity.MessageContentType = any> = {
413
433
  messageId: string;
@@ -31,10 +31,10 @@ declare global {
31
31
  DeleteUserFeedPostPermission = 'DELETE_USER_FEED_POST',
32
32
  EditUserFeedCommentPermission = 'EDIT_USER_FEED_COMMENT',
33
33
  DeleteUserFeedCommentPermission = 'DELETE_USER_FEED_COMMENT',
34
- EditCommunityFeedPostPermission = 'EDIT_COMMUNITY_FEED_POST',
35
- DeleteCommunityFeedPostPermission = 'DELETE_COMMUNITY_FEED_POST',
36
- EditCommunityFeedCommentPermission = 'EDIT_COMMUNITY_FEED_COMMENT',
37
- DeleteCommunityFeedCommentPermission = 'DELETE_COMMUNITY_FEED_COMMENT',
34
+ EditCommunityFeedPostPermission = 'EDIT_COMMUNITY_POST',
35
+ DeleteCommunityFeedPostPermission = 'DELETE_COMMUNITY_POST',
36
+ EditCommunityFeedCommentPermission = 'EDIT_COMMUNITY_COMMENT',
37
+ DeleteCommunityFeedCommentPermission = 'DELETE_COMMUNITY_COMMENT',
38
38
  CreateCommunityCategoryPermission = 'CREATE_COMMUNITY_CATEGORY',
39
39
  EditCommunityCategoryPermission = 'EDIT_COMMUNITY_CATEGORY',
40
40
  DeleteCommunityCategoryPermission = 'DELETE_COMMUNITY_CATEGORY',
@@ -2,24 +2,38 @@ export {};
2
2
 
3
3
  declare global {
4
4
  namespace Amity {
5
- type FollowActionType =
6
- | 'onRequested'
7
- | 'onAccepted'
8
- | 'onDeclined'
9
- | 'onCanceled'
10
- | 'onFollowed'
11
- | 'onUnfollowed'
12
- | 'onDeleted';
13
-
14
- type FollowStatusType = 'all' | 'pending' | 'accepted' | 'blocked' | 'none';
15
-
16
- type FollowStatus = {
5
+ const enum FollowActionTypeEnum {
6
+ OnRequested = 'onRequested',
7
+ OnAccepted = 'onAccepted',
8
+ OnDeclined = 'onDeclined',
9
+ OnCanceled = 'onCanceled',
10
+ OnFollowed = 'onFollowed',
11
+ OnUnfollowed = 'onUnfollowed',
12
+ OnDeleted = 'onDeleted',
13
+ }
14
+
15
+ type FollowActionType = `${FollowActionTypeEnum}`;
16
+
17
+ const enum FollowStatusTypeEnum {
18
+ All = 'all',
19
+ Pending = 'pending',
20
+ Accepted = 'accepted',
21
+ Blocked = 'blocked',
22
+ None = 'none',
23
+ }
24
+
25
+ type FollowStatusType = `${FollowStatusTypeEnum}`;
26
+
27
+ type RawFollowStatus = {
17
28
  from: Amity.InternalUser['userId'];
18
29
  to: Amity.InternalUser['userId'];
19
30
  status: Exclude<FollowStatusType, 'all'>;
20
31
  } & Amity.CreatedAt &
21
32
  Amity.UpdatedAt;
22
33
 
34
+ type InternalFollowStatus = Amity.RawFollowStatus;
35
+ type FollowStatus = InternalFollowStatus;
36
+
23
37
  type FollowCount = {
24
38
  userId: Amity.InternalUser['userId'];
25
39
  followerCount: number;
@@ -51,7 +51,9 @@ declare global {
51
51
  Amity.AnalyticPostData &
52
52
  Amity.Mentionable<'user'>;
53
53
 
54
- type InternalPost<T extends PostContentType = any> = RawPost<T>;
54
+ type InternalPost<T extends PostContentType = any> = RawPost<T> & {
55
+ feedType?: 'reviewing' | 'published';
56
+ };
55
57
 
56
58
  type PostLinkObject = {
57
59
  latestComments: (Amity.Comment | null)[];
@@ -2,7 +2,7 @@ export {};
2
2
 
3
3
  declare global {
4
4
  namespace Amity {
5
- enum UserSortByEnum {
5
+ const enum UserSortByEnum {
6
6
  FirstCreated = 'firstCreated',
7
7
  LastCreated = 'lastCreated',
8
8
  /** @deprecated sortBy displayName is not available */
@@ -11,7 +11,7 @@ declare global {
11
11
 
12
12
  type UserSortBy = `${Amity.UserSortByEnum}`;
13
13
 
14
- enum SearchUserSortByEnum {
14
+ const enum SearchUserSortByEnum {
15
15
  FirstCreated = 'firstCreated',
16
16
  LastCreated = 'lastCreated',
17
17
  DisplayName = 'displayName',
@@ -22,6 +22,7 @@ import {
22
22
  sortByLastCreated,
23
23
  } from '~/core/query';
24
24
  import { prepareChannelPayload } from '~/channelRepository/utils';
25
+ import { onUserDeleted } from '~/channelRepository/events/onUserDeleted';
25
26
 
26
27
  export class ChannelMemberLiveCollectionController extends LiveCollectionController<
27
28
  'channelUser',
@@ -87,6 +88,7 @@ export class ChannelMemberLiveCollectionController extends LiveCollectionControl
87
88
  { fn: onChannelMemberUnbanned, action: 'onChannelMemberUnbanned' },
88
89
  { fn: onChannelMemberRoleAdded, action: 'onChannelMemberRoleAdded' },
89
90
  { fn: onChannelMemberRoleRemoved, action: 'onChannelMemberRoleRemoved' },
91
+ { fn: onUserDeleted(this.query.channelId), action: 'onChannelMemberChanged' },
90
92
  ]);
91
93
  }
92
94
 
@@ -143,10 +145,8 @@ export class ChannelMemberLiveCollectionController extends LiveCollectionControl
143
145
  channelMembers = filterBySearchTerm(channelMembers, this.query.search);
144
146
  }
145
147
 
146
- if (typeof this.query.includeDeleted === 'boolean') {
147
- channelMembers = channelMembers.filter(
148
- member => member.user?.isDeleted === this.query.includeDeleted,
149
- );
148
+ if (this.query.includeDeleted === false) {
149
+ channelMembers = channelMembers.filter(member => member.user?.isDeleted !== true);
150
150
  }
151
151
 
152
152
  // sort, 'lastCreated' is the default sort order
@@ -12,15 +12,18 @@ export class ChannelMemberPaginationController extends PaginationController<
12
12
  Amity.ChannelMembersLiveCollection
13
13
  > {
14
14
  async getRequest(queryParams: Amity.ChannelMembersLiveCollection, token: string | undefined) {
15
- const { limit = COLLECTION_DEFAULT_PAGINATION_LIMIT, ...params } = queryParams;
15
+ const { limit = COLLECTION_DEFAULT_PAGINATION_LIMIT, includeDeleted, ...params } = queryParams;
16
16
  const options = token ? { token } : { limit };
17
17
 
18
+ const isDeleted = includeDeleted === false ? false : undefined;
19
+
18
20
  const { data: queryResponse } = await this.http.get<
19
21
  Amity.ChannelMembershipPayload & Amity.Pagination
20
22
  >(`/api/v4/channels/${encodeURIComponent(params.channelId)}/users`, {
21
23
  params: {
22
24
  ...params,
23
25
  options,
26
+ isDeleted,
24
27
  },
25
28
  });
26
29
  return queryResponse;
@@ -16,6 +16,7 @@ import {
16
16
  } from '~/channelRepository/events';
17
17
  import { filterByPropIntersection, filterBySearchTerm } from '~/core/query';
18
18
  import { prepareChannelPayload } from '~/channelRepository/utils';
19
+ import { onUserDeleted } from '~/channelRepository/events/onUserDeleted';
19
20
 
20
21
  export class SearchChannelMemberLiveCollectionController extends LiveCollectionController<
21
22
  'channelUser',
@@ -81,6 +82,7 @@ export class SearchChannelMemberLiveCollectionController extends LiveCollectionC
81
82
  { fn: onChannelMemberUnbanned, action: 'onChannelMemberUnbanned' },
82
83
  { fn: onChannelMemberRoleAdded, action: 'onChannelMemberRoleAdded' },
83
84
  { fn: onChannelMemberRoleRemoved, action: 'onChannelMemberRoleRemoved' },
85
+ { fn: onUserDeleted(this.query.channelId), action: 'onChannelMemberChanged' },
84
86
  ]);
85
87
  }
86
88
 
@@ -129,6 +131,10 @@ export class SearchChannelMemberLiveCollectionController extends LiveCollectionC
129
131
  });
130
132
  }
131
133
 
134
+ if (this.query.includeDeleted === false) {
135
+ channelMembers = channelMembers.filter(member => member.user?.isDeleted !== true);
136
+ }
137
+
132
138
  if (this.query.search) {
133
139
  // eslint-disable-next-line no-console
134
140
  console.warn(
@@ -12,15 +12,18 @@ export class SearchChannelMemberPaginationController extends PaginationControlle
12
12
  Amity.ChannelMembersLiveCollection
13
13
  > {
14
14
  async getRequest(queryParams: Amity.ChannelMembersLiveCollection, token: string | undefined) {
15
- const { limit = COLLECTION_DEFAULT_PAGINATION_LIMIT, ...params } = queryParams;
15
+ const { limit = COLLECTION_DEFAULT_PAGINATION_LIMIT, includeDeleted, ...params } = queryParams;
16
16
  const options = token ? { token } : { limit };
17
17
 
18
+ const isDeleted = includeDeleted === false ? false : undefined;
19
+
18
20
  const { data: queryResponse } = await this.http.get<
19
21
  Amity.ChannelMembershipPayload & Amity.Pagination
20
22
  >(`/api/v4/channels/${encodeURIComponent(params.channelId)}/users`, {
21
23
  params: {
22
24
  ...params,
23
25
  options,
26
+ isDeleted,
24
27
  },
25
28
  });
26
29
  return queryResponse;
@@ -0,0 +1,46 @@
1
+ import { prepareUserPayload } from '~/userRepository/utils/prepareUserPayload';
2
+ import { pullFromCache, 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
+ export const onUserDeleted =
9
+ (channelId: string) =>
10
+ (callback: (channel: Amity.InternalChannel, member: Amity.Membership<'channel'>) => void) => {
11
+ const client = getActiveClient();
12
+
13
+ const filter = (payload: Amity.UserPayload) => {
14
+ const userPayload = prepareUserPayload(payload);
15
+
16
+ if (userPayload.users.length === 0) return;
17
+
18
+ const user = userPayload.users[0];
19
+
20
+ ingestInCache(userPayload);
21
+
22
+ const channelUserCacheKey = getResolver('channelUsers')({
23
+ channelId,
24
+ userId: user.userId,
25
+ });
26
+
27
+ const cacheData = pullFromCache<Amity.Membership<'channel'>>([
28
+ 'channelUsers',
29
+ 'get',
30
+ channelUserCacheKey,
31
+ ])?.data!;
32
+
33
+ upsertInCache(['channelUsers', 'get', channelUserCacheKey], {
34
+ ...cacheData,
35
+ user,
36
+ });
37
+
38
+ const channel = pullFromCache<Amity.InternalChannel>(['channel', 'get', channelId])?.data;
39
+
40
+ if (!channel) return;
41
+
42
+ callback(channel, cacheData);
43
+ };
44
+
45
+ return createEventSubscriber(client, 'user.deleted', 'user.deleted', filter);
46
+ };
@@ -7,7 +7,7 @@ import { getActiveClient } from '~/client/api/activeClient';
7
7
  import { pullFromCache } from '~/cache/api/pullFromCache';
8
8
  import { getSubChannelsUnreadCount } from './getSubChannelsUnreadCount';
9
9
  import { getChannelIsMentioned } from './getChannelIsMentioned';
10
- import { convertRawUserToInternalUser } from '~/userRepository/utils';
10
+ import { convertRawUserToInternalUser } from '~/userRepository/utils/convertRawUserToInternalUser';
11
11
 
12
12
  export const MARKER_INCLUDED_CHANNEL_TYPE = ['broadcast', 'conversation', 'community'];
13
13
  export const isUnreadCountSupport = ({ type }: Pick<Amity.RawChannel, 'type'>) =>
@@ -51,19 +51,23 @@ export const createComment = async (
51
51
  if (client.cache) ingestInCache(data, { cachedAt });
52
52
 
53
53
  if (['post', 'content'].includes(bundle.referenceType)) {
54
- const post = await getPost(bundle.referenceId);
54
+ const post = pullFromCache<Amity.Post>(['post', 'get', bundle.referenceId])?.data;
55
55
 
56
- fireEvent('local.post.updated', {
57
- posts: [post.data],
58
- categories: [],
59
- comments: [],
60
- communities: [],
61
- communityUsers: [],
62
- feeds: [],
63
- files: [],
64
- postChildren: [],
65
- users: [],
66
- });
56
+ if (post) {
57
+ post.commentsCount += 1;
58
+
59
+ fireEvent('local.post.updated', {
60
+ posts: [post],
61
+ categories: [],
62
+ comments: [],
63
+ communities: [],
64
+ communityUsers: data.communityUsers,
65
+ feeds: [],
66
+ files: data.files,
67
+ postChildren: [],
68
+ users: data.users,
69
+ });
70
+ }
67
71
  } else if (bundle.referenceType === 'story') {
68
72
  const storyIndex = pullFromCache<Amity.Story['referenceId']>([
69
73
  STORY_KEY_CACHE.STORY_ID_TO_REFERENCE_ID,
@@ -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'
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'
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'
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'
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
+ };