@amityco/react-native-social-uikit 4.0.0-36607be.0 → 4.0.0-3e7b2eb7.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 (394) hide show
  1. package/README.md +1 -1
  2. package/lib/commonjs/components/AddMembersModal/index.js +2 -1
  3. package/lib/commonjs/components/AddMembersModal/index.js.map +1 -1
  4. package/lib/commonjs/components/Social/PostList/index.js +7 -2
  5. package/lib/commonjs/components/Social/PostList/index.js.map +1 -1
  6. package/lib/commonjs/hooks/useSearch.js +2 -1
  7. package/lib/commonjs/hooks/useSearch.js.map +1 -1
  8. package/lib/commonjs/redux/slices/globalfeedSlice.js +20 -7
  9. package/lib/commonjs/redux/slices/globalfeedSlice.js.map +1 -1
  10. package/lib/commonjs/screens/CommunitySearch/index.js +2 -1
  11. package/lib/commonjs/screens/CommunitySearch/index.js.map +1 -1
  12. package/lib/commonjs/snippet/AmityGlobalFeedComponent.js +6 -1
  13. package/lib/commonjs/snippet/AmityGlobalFeedComponent.js.map +1 -1
  14. package/lib/commonjs/v4/PublicApi/Components/AmityCommunityHeaderComponent/AmityCommunityHeaderComponent.js +3 -3
  15. package/lib/commonjs/v4/PublicApi/Components/AmityCommunityHeaderComponent/AmityCommunityHeaderComponent.js.map +1 -1
  16. package/lib/commonjs/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.js +19 -14
  17. package/lib/commonjs/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.js.map +1 -1
  18. package/lib/commonjs/v4/PublicApi/Components/AmityNewsFeedComponent/AmityNewsFeedComponent.js +23 -3
  19. package/lib/commonjs/v4/PublicApi/Components/AmityNewsFeedComponent/AmityNewsFeedComponent.js.map +1 -1
  20. package/lib/commonjs/v4/PublicApi/Components/AmityPostCommentComponent/AmityPostCommentComponent.js +11 -16
  21. package/lib/commonjs/v4/PublicApi/Components/AmityPostCommentComponent/AmityPostCommentComponent.js.map +1 -1
  22. package/lib/commonjs/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/CommentListItem.js +22 -9
  23. package/lib/commonjs/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/CommentListItem.js.map +1 -1
  24. package/lib/commonjs/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/styles.js +4 -3
  25. package/lib/commonjs/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/styles.js.map +1 -1
  26. package/lib/commonjs/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/index.js +14 -13
  27. package/lib/commonjs/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/index.js.map +1 -1
  28. package/lib/commonjs/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/styles.js +8 -10
  29. package/lib/commonjs/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/styles.js.map +1 -1
  30. package/lib/commonjs/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.js +2 -1
  31. package/lib/commonjs/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.js.map +1 -1
  32. package/lib/commonjs/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/DetailStyle.js +1 -1
  33. package/lib/commonjs/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/DetailStyle.js.map +1 -1
  34. package/lib/commonjs/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/FeedStyle.js +1 -1
  35. package/lib/commonjs/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/FeedStyle.js.map +1 -1
  36. package/lib/commonjs/v4/PublicApi/Components/AmityRecommenedCommunityComponent/RecommenedCommunityItems/RecommenedCommunityItems.js +8 -23
  37. package/lib/commonjs/v4/PublicApi/Components/AmityRecommenedCommunityComponent/RecommenedCommunityItems/RecommenedCommunityItems.js.map +1 -1
  38. package/lib/commonjs/v4/PublicApi/Elements/CommonElements/AvatarElement.js +14 -8
  39. package/lib/commonjs/v4/PublicApi/Elements/CommonElements/AvatarElement.js.map +1 -1
  40. package/lib/commonjs/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.js +13 -3
  41. package/lib/commonjs/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.js.map +1 -1
  42. package/lib/commonjs/v4/PublicApi/Pages/AmitySocialGlobalSearchPage/AmitySocialGlobalSearchPage.js.map +1 -1
  43. package/lib/commonjs/v4/PublicApi/Pages/AmitySocialHomePage/AmitySocialHomePage.js +21 -29
  44. package/lib/commonjs/v4/PublicApi/Pages/AmitySocialHomePage/AmitySocialHomePage.js.map +1 -1
  45. package/lib/commonjs/v4/PublicApi/Pages/AmityUserProfilePage/AmityUserProfilePage.js +17 -6
  46. package/lib/commonjs/v4/PublicApi/Pages/AmityUserProfilePage/AmityUserProfilePage.js.map +1 -1
  47. package/lib/commonjs/v4/PublicApi/Pages/AmityViewStoryPage/Components/AmityViewStoryItem.js +1 -0
  48. package/lib/commonjs/v4/PublicApi/Pages/AmityViewStoryPage/Components/AmityViewStoryItem.js.map +1 -1
  49. package/lib/commonjs/v4/assets/icons/lock.js +6 -4
  50. package/lib/commonjs/v4/assets/icons/lock.js.map +1 -1
  51. package/lib/commonjs/v4/component/Avatar/Avatar.js +5 -3
  52. package/lib/commonjs/v4/component/Avatar/Avatar.js.map +1 -1
  53. package/lib/commonjs/v4/component/CommunityRowItem/CommunityRowItem.js +5 -4
  54. package/lib/commonjs/v4/component/CommunityRowItem/CommunityRowItem.js.map +1 -1
  55. package/lib/commonjs/v4/component/CommunitySearchResult/CommunitySearchResult.js +1 -1
  56. package/lib/commonjs/v4/component/CommunitySearchResult/CommunitySearchResult.js.map +1 -1
  57. package/lib/commonjs/v4/component/MyAvatar/MyAvatar.js +9 -6
  58. package/lib/commonjs/v4/component/MyAvatar/MyAvatar.js.map +1 -1
  59. package/lib/commonjs/v4/component/PollContent/PollResults.js +1 -0
  60. package/lib/commonjs/v4/component/PollContent/PollResults.js.map +1 -1
  61. package/lib/commonjs/v4/component/SearchResultItem/SearchResultItem.js +1 -0
  62. package/lib/commonjs/v4/component/SearchResultItem/SearchResultItem.js.map +1 -1
  63. package/lib/commonjs/v4/component/Social/CommentList/CommentList.js +24 -15
  64. package/lib/commonjs/v4/component/Social/CommentList/CommentList.js.map +1 -1
  65. package/lib/commonjs/v4/component/Social/CommentList/styles.js +12 -0
  66. package/lib/commonjs/v4/component/Social/CommentList/styles.js.map +1 -1
  67. package/lib/commonjs/v4/component/Social/CommentListItem/CommentListItem.js +3 -2
  68. package/lib/commonjs/v4/component/Social/CommentListItem/CommentListItem.js.map +1 -1
  69. package/lib/commonjs/v4/component/TargetSelectionPage/TargetItem/TargetItem.js +4 -2
  70. package/lib/commonjs/v4/component/TargetSelectionPage/TargetItem/TargetItem.js.map +1 -1
  71. package/lib/commonjs/v4/component/TargetSelectionPage/TargetSelectionPage.js +22 -2
  72. package/lib/commonjs/v4/component/TargetSelectionPage/TargetSelectionPage.js.map +1 -1
  73. package/lib/commonjs/v4/elements/CommunityJoinButtonElement/CommunityJoinButtonElement.js +8 -3
  74. package/lib/commonjs/v4/elements/CommunityJoinButtonElement/CommunityJoinButtonElement.js.map +1 -1
  75. package/lib/commonjs/v4/elements/CommunityRowImage/CommunityRowImage.js +4 -32
  76. package/lib/commonjs/v4/elements/CommunityRowImage/CommunityRowImage.js.map +1 -1
  77. package/lib/commonjs/v4/enum/roomStatus.js +2 -1
  78. package/lib/commonjs/v4/enum/roomStatus.js.map +1 -1
  79. package/lib/commonjs/v4/features/community/AddMember/hooks/useAddMember.js +3 -1
  80. package/lib/commonjs/v4/features/community/AddMember/hooks/useAddMember.js.map +1 -1
  81. package/lib/commonjs/v4/features/community/Membership/components/MemberItem/MemberItem.js +2 -1
  82. package/lib/commonjs/v4/features/community/Membership/components/MemberItem/MemberItem.js.map +1 -1
  83. package/lib/commonjs/v4/features/community/Setting/hooks/useCommunitySetting.js +6 -3
  84. package/lib/commonjs/v4/features/community/Setting/hooks/useCommunitySetting.js.map +1 -1
  85. package/lib/commonjs/v4/{component/CommunityCategoryChips/CommunityCategoryChips.js → features/feed/components/CommunityCategories/CommunityCategories.js} +19 -21
  86. package/lib/commonjs/v4/features/feed/components/CommunityCategories/CommunityCategories.js.map +1 -0
  87. package/lib/commonjs/v4/features/feed/components/CommunityCategories/index.js +13 -0
  88. package/lib/commonjs/v4/features/feed/components/CommunityCategories/index.js.map +1 -0
  89. package/lib/commonjs/v4/{component/CommunityCategoryChips → features/feed/components/CommunityCategories}/styles.js +7 -2
  90. package/lib/commonjs/v4/features/feed/components/CommunityCategories/styles.js.map +1 -0
  91. package/lib/commonjs/v4/features/feed/components/index.js +17 -0
  92. package/lib/commonjs/v4/features/feed/components/index.js.map +1 -0
  93. package/lib/commonjs/v4/features/feed/elements/CommunityCategory/CommunityCategory.js +42 -0
  94. package/lib/commonjs/v4/features/feed/elements/CommunityCategory/CommunityCategory.js.map +1 -0
  95. package/lib/commonjs/v4/features/feed/elements/CommunityCategory/index.js +13 -0
  96. package/lib/commonjs/v4/features/feed/elements/CommunityCategory/index.js.map +1 -0
  97. package/lib/commonjs/v4/features/feed/elements/CommunityCategory/styles.js +29 -0
  98. package/lib/commonjs/v4/features/feed/elements/CommunityCategory/styles.js.map +1 -0
  99. package/lib/commonjs/v4/features/feed/elements/index.js +17 -0
  100. package/lib/commonjs/v4/features/feed/elements/index.js.map +1 -0
  101. package/lib/commonjs/v4/hook/useAmityGlobalSearchViewModel.js +2 -1
  102. package/lib/commonjs/v4/hook/useAmityGlobalSearchViewModel.js.map +1 -1
  103. package/lib/commonjs/v4/hook/useCustomRankingGlobalFeed.js +40 -38
  104. package/lib/commonjs/v4/hook/useCustomRankingGlobalFeed.js.map +1 -1
  105. package/lib/commonjs/v4/hook/usePaginator.js +36 -24
  106. package/lib/commonjs/v4/hook/usePaginator.js.map +1 -1
  107. package/lib/commonjs/v4/hook/usePostPermission.js +38 -0
  108. package/lib/commonjs/v4/hook/usePostPermission.js.map +1 -0
  109. package/lib/commonjs/v4/hook/useSearch.js +2 -1
  110. package/lib/commonjs/v4/hook/useSearch.js.map +1 -1
  111. package/lib/commonjs/v4/routes/AmityPageRenderer.js +5 -0
  112. package/lib/commonjs/v4/routes/AmityPageRenderer.js.map +1 -1
  113. package/lib/commonjs/v4/routes/AmitySocialUIKitV4Navigator.js +1 -0
  114. package/lib/commonjs/v4/routes/AmitySocialUIKitV4Navigator.js.map +1 -1
  115. package/lib/commonjs/v4/screen/FollowerList/Components/FollowerListItem.js +1 -1
  116. package/lib/commonjs/v4/screen/FollowerList/Components/FollowerListItem.js.map +1 -1
  117. package/lib/module/components/AddMembersModal/index.js +3 -2
  118. package/lib/module/components/AddMembersModal/index.js.map +1 -1
  119. package/lib/module/components/Social/PostList/index.js +7 -2
  120. package/lib/module/components/Social/PostList/index.js.map +1 -1
  121. package/lib/module/hooks/useSearch.js +3 -2
  122. package/lib/module/hooks/useSearch.js.map +1 -1
  123. package/lib/module/redux/slices/globalfeedSlice.js +20 -7
  124. package/lib/module/redux/slices/globalfeedSlice.js.map +1 -1
  125. package/lib/module/screens/CommunitySearch/index.js +3 -2
  126. package/lib/module/screens/CommunitySearch/index.js.map +1 -1
  127. package/lib/module/snippet/AmityGlobalFeedComponent.js +6 -1
  128. package/lib/module/snippet/AmityGlobalFeedComponent.js.map +1 -1
  129. package/lib/module/v4/PublicApi/Components/AmityCommunityHeaderComponent/AmityCommunityHeaderComponent.js +3 -3
  130. package/lib/module/v4/PublicApi/Components/AmityCommunityHeaderComponent/AmityCommunityHeaderComponent.js.map +1 -1
  131. package/lib/module/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.js +21 -16
  132. package/lib/module/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.js.map +1 -1
  133. package/lib/module/v4/PublicApi/Components/AmityNewsFeedComponent/AmityNewsFeedComponent.js +23 -3
  134. package/lib/module/v4/PublicApi/Components/AmityNewsFeedComponent/AmityNewsFeedComponent.js.map +1 -1
  135. package/lib/module/v4/PublicApi/Components/AmityPostCommentComponent/AmityPostCommentComponent.js +11 -16
  136. package/lib/module/v4/PublicApi/Components/AmityPostCommentComponent/AmityPostCommentComponent.js.map +1 -1
  137. package/lib/module/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/CommentListItem.js +22 -9
  138. package/lib/module/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/CommentListItem.js.map +1 -1
  139. package/lib/module/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/styles.js +4 -3
  140. package/lib/module/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/styles.js.map +1 -1
  141. package/lib/module/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/index.js +14 -13
  142. package/lib/module/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/index.js.map +1 -1
  143. package/lib/module/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/styles.js +8 -10
  144. package/lib/module/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/styles.js.map +1 -1
  145. package/lib/module/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.js +2 -1
  146. package/lib/module/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.js.map +1 -1
  147. package/lib/module/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/DetailStyle.js +1 -1
  148. package/lib/module/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/DetailStyle.js.map +1 -1
  149. package/lib/module/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/FeedStyle.js +1 -1
  150. package/lib/module/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/FeedStyle.js.map +1 -1
  151. package/lib/module/v4/PublicApi/Components/AmityRecommenedCommunityComponent/RecommenedCommunityItems/RecommenedCommunityItems.js +9 -23
  152. package/lib/module/v4/PublicApi/Components/AmityRecommenedCommunityComponent/RecommenedCommunityItems/RecommenedCommunityItems.js.map +1 -1
  153. package/lib/module/v4/PublicApi/Elements/CommonElements/AvatarElement.js +14 -8
  154. package/lib/module/v4/PublicApi/Elements/CommonElements/AvatarElement.js.map +1 -1
  155. package/lib/module/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.js +13 -3
  156. package/lib/module/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.js.map +1 -1
  157. package/lib/module/v4/PublicApi/Pages/AmitySocialGlobalSearchPage/AmitySocialGlobalSearchPage.js.map +1 -1
  158. package/lib/module/v4/PublicApi/Pages/AmitySocialHomePage/AmitySocialHomePage.js +23 -31
  159. package/lib/module/v4/PublicApi/Pages/AmitySocialHomePage/AmitySocialHomePage.js.map +1 -1
  160. package/lib/module/v4/PublicApi/Pages/AmityUserProfilePage/AmityUserProfilePage.js +17 -6
  161. package/lib/module/v4/PublicApi/Pages/AmityUserProfilePage/AmityUserProfilePage.js.map +1 -1
  162. package/lib/module/v4/PublicApi/Pages/AmityViewStoryPage/Components/AmityViewStoryItem.js +1 -0
  163. package/lib/module/v4/PublicApi/Pages/AmityViewStoryPage/Components/AmityViewStoryItem.js.map +1 -1
  164. package/lib/module/v4/assets/icons/lock.js +6 -4
  165. package/lib/module/v4/assets/icons/lock.js.map +1 -1
  166. package/lib/module/v4/component/Avatar/Avatar.js +5 -3
  167. package/lib/module/v4/component/Avatar/Avatar.js.map +1 -1
  168. package/lib/module/v4/component/CommunityRowItem/CommunityRowItem.js +5 -4
  169. package/lib/module/v4/component/CommunityRowItem/CommunityRowItem.js.map +1 -1
  170. package/lib/module/v4/component/CommunitySearchResult/CommunitySearchResult.js +1 -1
  171. package/lib/module/v4/component/CommunitySearchResult/CommunitySearchResult.js.map +1 -1
  172. package/lib/module/v4/component/MyAvatar/MyAvatar.js +9 -6
  173. package/lib/module/v4/component/MyAvatar/MyAvatar.js.map +1 -1
  174. package/lib/module/v4/component/PollContent/PollResults.js +1 -0
  175. package/lib/module/v4/component/PollContent/PollResults.js.map +1 -1
  176. package/lib/module/v4/component/SearchResultItem/SearchResultItem.js +1 -0
  177. package/lib/module/v4/component/SearchResultItem/SearchResultItem.js.map +1 -1
  178. package/lib/module/v4/component/Social/CommentList/CommentList.js +24 -15
  179. package/lib/module/v4/component/Social/CommentList/CommentList.js.map +1 -1
  180. package/lib/module/v4/component/Social/CommentList/styles.js +12 -0
  181. package/lib/module/v4/component/Social/CommentList/styles.js.map +1 -1
  182. package/lib/module/v4/component/Social/CommentListItem/CommentListItem.js +3 -2
  183. package/lib/module/v4/component/Social/CommentListItem/CommentListItem.js.map +1 -1
  184. package/lib/module/v4/component/TargetSelectionPage/TargetItem/TargetItem.js +4 -2
  185. package/lib/module/v4/component/TargetSelectionPage/TargetItem/TargetItem.js.map +1 -1
  186. package/lib/module/v4/component/TargetSelectionPage/TargetSelectionPage.js +22 -2
  187. package/lib/module/v4/component/TargetSelectionPage/TargetSelectionPage.js.map +1 -1
  188. package/lib/module/v4/elements/CommunityJoinButtonElement/CommunityJoinButtonElement.js +8 -3
  189. package/lib/module/v4/elements/CommunityJoinButtonElement/CommunityJoinButtonElement.js.map +1 -1
  190. package/lib/module/v4/elements/CommunityRowImage/CommunityRowImage.js +6 -34
  191. package/lib/module/v4/elements/CommunityRowImage/CommunityRowImage.js.map +1 -1
  192. package/lib/module/v4/enum/roomStatus.js +2 -1
  193. package/lib/module/v4/enum/roomStatus.js.map +1 -1
  194. package/lib/module/v4/features/community/AddMember/hooks/useAddMember.js +3 -1
  195. package/lib/module/v4/features/community/AddMember/hooks/useAddMember.js.map +1 -1
  196. package/lib/module/v4/features/community/Membership/components/MemberItem/MemberItem.js +2 -1
  197. package/lib/module/v4/features/community/Membership/components/MemberItem/MemberItem.js.map +1 -1
  198. package/lib/module/v4/features/community/Setting/hooks/useCommunitySetting.js +6 -3
  199. package/lib/module/v4/features/community/Setting/hooks/useCommunitySetting.js.map +1 -1
  200. package/lib/module/v4/{component/CommunityCategoryChips/CommunityCategoryChips.js → features/feed/components/CommunityCategories/CommunityCategories.js} +18 -19
  201. package/lib/module/v4/features/feed/components/CommunityCategories/CommunityCategories.js.map +1 -0
  202. package/lib/module/v4/features/feed/components/CommunityCategories/index.js +2 -0
  203. package/lib/module/v4/features/feed/components/CommunityCategories/index.js.map +1 -0
  204. package/lib/module/v4/{component/CommunityCategoryChips → features/feed/components/CommunityCategories}/styles.js +7 -2
  205. package/lib/module/v4/features/feed/components/CommunityCategories/styles.js.map +1 -0
  206. package/lib/module/v4/features/feed/components/index.js +2 -0
  207. package/lib/module/v4/features/feed/components/index.js.map +1 -0
  208. package/lib/module/v4/features/feed/elements/CommunityCategory/CommunityCategory.js +35 -0
  209. package/lib/module/v4/features/feed/elements/CommunityCategory/CommunityCategory.js.map +1 -0
  210. package/lib/module/v4/features/feed/elements/CommunityCategory/index.js +2 -0
  211. package/lib/module/v4/features/feed/elements/CommunityCategory/index.js.map +1 -0
  212. package/lib/module/v4/features/feed/elements/CommunityCategory/styles.js +22 -0
  213. package/lib/module/v4/features/feed/elements/CommunityCategory/styles.js.map +1 -0
  214. package/lib/module/v4/features/feed/elements/index.js +2 -0
  215. package/lib/module/v4/features/feed/elements/index.js.map +1 -0
  216. package/lib/module/v4/hook/useAmityGlobalSearchViewModel.js +3 -2
  217. package/lib/module/v4/hook/useAmityGlobalSearchViewModel.js.map +1 -1
  218. package/lib/module/v4/hook/useCustomRankingGlobalFeed.js +41 -39
  219. package/lib/module/v4/hook/useCustomRankingGlobalFeed.js.map +1 -1
  220. package/lib/module/v4/hook/usePaginator.js +37 -25
  221. package/lib/module/v4/hook/usePaginator.js.map +1 -1
  222. package/lib/module/v4/hook/usePostPermission.js +31 -0
  223. package/lib/module/v4/hook/usePostPermission.js.map +1 -0
  224. package/lib/module/v4/hook/useSearch.js +3 -2
  225. package/lib/module/v4/hook/useSearch.js.map +1 -1
  226. package/lib/module/v4/routes/AmityPageRenderer.js +5 -0
  227. package/lib/module/v4/routes/AmityPageRenderer.js.map +1 -1
  228. package/lib/module/v4/routes/AmitySocialUIKitV4Navigator.js +1 -0
  229. package/lib/module/v4/routes/AmitySocialUIKitV4Navigator.js.map +1 -1
  230. package/lib/module/v4/screen/FollowerList/Components/FollowerListItem.js +1 -1
  231. package/lib/module/v4/screen/FollowerList/Components/FollowerListItem.js.map +1 -1
  232. package/lib/typescript/src/components/AddMembersModal/index.d.ts.map +1 -1
  233. package/lib/typescript/src/components/PollSection/usePoll.d.ts +1 -1
  234. package/lib/typescript/src/components/Social/PostList/index.d.ts.map +1 -1
  235. package/lib/typescript/src/hooks/useSearch.d.ts.map +1 -1
  236. package/lib/typescript/src/redux/slices/globalfeedSlice.d.ts.map +1 -1
  237. package/lib/typescript/src/screens/CommunitySearch/index.d.ts.map +1 -1
  238. package/lib/typescript/src/types/user.interface.d.ts +1 -0
  239. package/lib/typescript/src/types/user.interface.d.ts.map +1 -1
  240. package/lib/typescript/src/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.d.ts +4 -0
  241. package/lib/typescript/src/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.d.ts.map +1 -1
  242. package/lib/typescript/src/v4/PublicApi/Components/AmityNewsFeedComponent/AmityNewsFeedComponent.d.ts +1 -0
  243. package/lib/typescript/src/v4/PublicApi/Components/AmityNewsFeedComponent/AmityNewsFeedComponent.d.ts.map +1 -1
  244. package/lib/typescript/src/v4/PublicApi/Components/AmityPostCommentComponent/AmityPostCommentComponent.d.ts.map +1 -1
  245. package/lib/typescript/src/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/CommentListItem.d.ts.map +1 -1
  246. package/lib/typescript/src/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/styles.d.ts +1 -0
  247. package/lib/typescript/src/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/styles.d.ts.map +1 -1
  248. package/lib/typescript/src/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/index.d.ts +1 -2
  249. package/lib/typescript/src/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/index.d.ts.map +1 -1
  250. package/lib/typescript/src/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/styles.d.ts +3 -5
  251. package/lib/typescript/src/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/styles.d.ts.map +1 -1
  252. package/lib/typescript/src/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.d.ts.map +1 -1
  253. package/lib/typescript/src/v4/PublicApi/Components/AmityRecommenedCommunityComponent/RecommenedCommunityItems/RecommenedCommunityItems.d.ts.map +1 -1
  254. package/lib/typescript/src/v4/PublicApi/Elements/CommonElements/AvatarElement.d.ts +1 -0
  255. package/lib/typescript/src/v4/PublicApi/Elements/CommonElements/AvatarElement.d.ts.map +1 -1
  256. package/lib/typescript/src/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.d.ts.map +1 -1
  257. package/lib/typescript/src/v4/PublicApi/Pages/AmitySocialGlobalSearchPage/AmitySocialGlobalSearchPage.d.ts.map +1 -1
  258. package/lib/typescript/src/v4/PublicApi/Pages/AmitySocialHomePage/AmitySocialHomePage.d.ts.map +1 -1
  259. package/lib/typescript/src/v4/PublicApi/Pages/AmityUserProfilePage/AmityUserProfilePage.d.ts.map +1 -1
  260. package/lib/typescript/src/v4/PublicApi/Pages/AmityViewStoryPage/Components/AmityViewStoryItem.d.ts.map +1 -1
  261. package/lib/typescript/src/v4/assets/icons/lock.d.ts +1 -1
  262. package/lib/typescript/src/v4/assets/icons/lock.d.ts.map +1 -1
  263. package/lib/typescript/src/v4/component/Avatar/Avatar.d.ts.map +1 -1
  264. package/lib/typescript/src/v4/component/CommunitySearchResult/CommunitySearchResult.d.ts.map +1 -1
  265. package/lib/typescript/src/v4/component/MyAvatar/MyAvatar.d.ts.map +1 -1
  266. package/lib/typescript/src/v4/component/PollContent/PollResults.d.ts.map +1 -1
  267. package/lib/typescript/src/v4/component/SearchResultItem/SearchResultItem.d.ts.map +1 -1
  268. package/lib/typescript/src/v4/component/Social/CommentList/CommentList.d.ts +1 -0
  269. package/lib/typescript/src/v4/component/Social/CommentList/CommentList.d.ts.map +1 -1
  270. package/lib/typescript/src/v4/component/Social/CommentList/styles.d.ts +12 -0
  271. package/lib/typescript/src/v4/component/Social/CommentList/styles.d.ts.map +1 -1
  272. package/lib/typescript/src/v4/component/Social/CommentListItem/CommentListItem.d.ts +2 -1
  273. package/lib/typescript/src/v4/component/Social/CommentListItem/CommentListItem.d.ts.map +1 -1
  274. package/lib/typescript/src/v4/component/TargetSelectionPage/TargetItem/TargetItem.d.ts +2 -1
  275. package/lib/typescript/src/v4/component/TargetSelectionPage/TargetItem/TargetItem.d.ts.map +1 -1
  276. package/lib/typescript/src/v4/component/TargetSelectionPage/TargetSelectionPage.d.ts.map +1 -1
  277. package/lib/typescript/src/v4/elements/CommunityJoinButtonElement/CommunityJoinButtonElement.d.ts.map +1 -1
  278. package/lib/typescript/src/v4/elements/CommunityRowImage/CommunityRowImage.d.ts +1 -1
  279. package/lib/typescript/src/v4/elements/CommunityRowImage/CommunityRowImage.d.ts.map +1 -1
  280. package/lib/typescript/src/v4/enum/roomStatus.d.ts +1 -0
  281. package/lib/typescript/src/v4/enum/roomStatus.d.ts.map +1 -1
  282. package/lib/typescript/src/v4/features/community/AddMember/hooks/useAddMember.d.ts.map +1 -1
  283. package/lib/typescript/src/v4/features/community/Membership/components/MemberItem/MemberItem.d.ts.map +1 -1
  284. package/lib/typescript/src/v4/features/community/Setting/hooks/useCommunitySetting.d.ts.map +1 -1
  285. package/lib/typescript/src/v4/features/feed/components/CommunityCategories/CommunityCategories.d.ts +12 -0
  286. package/lib/typescript/src/v4/features/feed/components/CommunityCategories/CommunityCategories.d.ts.map +1 -0
  287. package/lib/typescript/src/v4/features/feed/components/CommunityCategories/index.d.ts +2 -0
  288. package/lib/typescript/src/v4/features/feed/components/CommunityCategories/index.d.ts.map +1 -0
  289. package/lib/typescript/src/v4/features/feed/components/CommunityCategories/styles.d.ts +30 -0
  290. package/lib/typescript/src/v4/features/feed/components/CommunityCategories/styles.d.ts.map +1 -0
  291. package/lib/typescript/src/v4/features/feed/components/index.d.ts +2 -0
  292. package/lib/typescript/src/v4/features/feed/components/index.d.ts.map +1 -0
  293. package/lib/typescript/src/v4/features/feed/elements/CommunityCategory/CommunityCategory.d.ts +12 -0
  294. package/lib/typescript/src/v4/features/feed/elements/CommunityCategory/CommunityCategory.d.ts.map +1 -0
  295. package/lib/typescript/src/v4/features/feed/elements/CommunityCategory/index.d.ts +2 -0
  296. package/lib/typescript/src/v4/features/feed/elements/CommunityCategory/index.d.ts.map +1 -0
  297. package/lib/typescript/src/v4/features/feed/elements/CommunityCategory/styles.d.ts +17 -0
  298. package/lib/typescript/src/v4/features/feed/elements/CommunityCategory/styles.d.ts.map +1 -0
  299. package/lib/typescript/src/v4/features/feed/elements/index.d.ts +2 -0
  300. package/lib/typescript/src/v4/features/feed/elements/index.d.ts.map +1 -0
  301. package/lib/typescript/src/v4/hook/useAmityGlobalSearchViewModel.d.ts.map +1 -1
  302. package/lib/typescript/src/v4/hook/useCustomRankingGlobalFeed.d.ts +6 -1
  303. package/lib/typescript/src/v4/hook/useCustomRankingGlobalFeed.d.ts.map +1 -1
  304. package/lib/typescript/src/v4/hook/usePaginator.d.ts.map +1 -1
  305. package/lib/typescript/src/v4/hook/usePendingPostQuery.d.ts +1 -38
  306. package/lib/typescript/src/v4/hook/usePendingPostQuery.d.ts.map +1 -1
  307. package/lib/typescript/src/v4/hook/usePoll.d.ts +1 -1
  308. package/lib/typescript/src/v4/hook/usePostPermission.d.ts +6 -0
  309. package/lib/typescript/src/v4/hook/usePostPermission.d.ts.map +1 -0
  310. package/lib/typescript/src/v4/hook/useSearch.d.ts.map +1 -1
  311. package/lib/typescript/src/v4/routes/AmityPageRenderer.d.ts.map +1 -1
  312. package/lib/typescript/src/v4/routes/AmitySocialUIKitV4Navigator.d.ts.map +1 -1
  313. package/package.json +3 -3
  314. package/src/components/AddMembersModal/index.tsx +9 -2
  315. package/src/components/Social/PostList/index.tsx +7 -2
  316. package/src/hooks/useSearch.ts +6 -1
  317. package/src/redux/slices/globalfeedSlice.ts +26 -16
  318. package/src/screens/CommunitySearch/index.tsx +6 -1
  319. package/src/snippet/AmityGlobalFeedComponent.tsx +6 -1
  320. package/src/types/user.interface.ts +1 -0
  321. package/src/v4/PublicApi/Components/AmityCommunityHeaderComponent/AmityCommunityHeaderComponent.tsx +3 -3
  322. package/src/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.tsx +33 -22
  323. package/src/v4/PublicApi/Components/AmityNewsFeedComponent/AmityNewsFeedComponent.tsx +27 -2
  324. package/src/v4/PublicApi/Components/AmityPostCommentComponent/AmityPostCommentComponent.tsx +29 -35
  325. package/src/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/CommentListItem.tsx +39 -15
  326. package/src/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/styles.ts +3 -2
  327. package/src/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/index.tsx +38 -23
  328. package/src/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/styles.ts +5 -7
  329. package/src/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.tsx +1 -0
  330. package/src/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/DetailStyle.tsx +2 -2
  331. package/src/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/FeedStyle.tsx +1 -1
  332. package/src/v4/PublicApi/Components/AmityRecommenedCommunityComponent/RecommenedCommunityItems/RecommenedCommunityItems.tsx +8 -24
  333. package/src/v4/PublicApi/Elements/CommonElements/AvatarElement.tsx +20 -9
  334. package/src/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.tsx +13 -3
  335. package/src/v4/PublicApi/Pages/AmitySocialGlobalSearchPage/AmitySocialGlobalSearchPage.tsx +0 -1
  336. package/src/v4/PublicApi/Pages/AmitySocialHomePage/AmitySocialHomePage.tsx +27 -33
  337. package/src/v4/PublicApi/Pages/AmityUserProfilePage/AmityUserProfilePage.tsx +24 -7
  338. package/src/v4/PublicApi/Pages/AmityViewStoryPage/Components/AmityViewStoryItem.tsx +1 -0
  339. package/src/v4/assets/icons/lock.tsx +7 -6
  340. package/src/v4/component/Avatar/Avatar.tsx +5 -2
  341. package/src/v4/component/CommunityRowItem/CommunityRowItem.tsx +4 -4
  342. package/src/v4/component/CommunitySearchResult/CommunitySearchResult.tsx +3 -1
  343. package/src/v4/component/MyAvatar/MyAvatar.tsx +12 -6
  344. package/src/v4/component/PollContent/PollResults.tsx +1 -0
  345. package/src/v4/component/SearchResultItem/SearchResultItem.tsx +3 -0
  346. package/src/v4/component/Social/CommentList/CommentList.tsx +69 -56
  347. package/src/v4/component/Social/CommentList/styles.ts +12 -0
  348. package/src/v4/component/Social/CommentListItem/CommentListItem.tsx +3 -1
  349. package/src/v4/component/TargetSelectionPage/TargetItem/TargetItem.tsx +3 -0
  350. package/src/v4/component/TargetSelectionPage/TargetSelectionPage.tsx +23 -1
  351. package/src/v4/elements/CommunityJoinButtonElement/CommunityJoinButtonElement.tsx +6 -2
  352. package/src/v4/elements/CommunityRowImage/CommunityRowImage.tsx +7 -34
  353. package/src/v4/enum/roomStatus.ts +1 -0
  354. package/src/v4/features/community/AddMember/hooks/useAddMember.ts +2 -0
  355. package/src/v4/features/community/Membership/components/MemberItem/MemberItem.tsx +1 -0
  356. package/src/v4/features/community/Setting/hooks/useCommunitySetting.ts +4 -2
  357. package/src/v4/{component/CommunityCategoryChips/CommunityCategoryChips.tsx → features/feed/components/CommunityCategories/CommunityCategories.tsx} +20 -22
  358. package/src/v4/features/feed/components/CommunityCategories/index.ts +1 -0
  359. package/src/v4/{component/CommunityCategoryChips → features/feed/components/CommunityCategories}/styles.ts +4 -2
  360. package/src/v4/features/feed/components/index.ts +1 -0
  361. package/src/v4/features/feed/elements/CommunityCategory/CommunityCategory.tsx +45 -0
  362. package/src/v4/features/feed/elements/CommunityCategory/index.ts +1 -0
  363. package/src/v4/features/feed/elements/CommunityCategory/styles.ts +20 -0
  364. package/src/v4/features/feed/elements/index.ts +1 -0
  365. package/src/v4/hook/useAmityGlobalSearchViewModel.ts +6 -1
  366. package/src/v4/hook/useCustomRankingGlobalFeed.ts +55 -46
  367. package/src/v4/hook/usePaginator.ts +60 -31
  368. package/src/v4/hook/usePostPermission.ts +46 -0
  369. package/src/v4/hook/useSearch.ts +6 -1
  370. package/src/v4/routes/AmityPageRenderer.tsx +6 -0
  371. package/src/v4/routes/AmitySocialUIKitV4Navigator.tsx +1 -0
  372. package/src/v4/screen/FollowerList/Components/FollowerListItem.tsx +1 -1
  373. package/lib/commonjs/v4/component/CommunityCategoryChips/CommunityCategoryChip/CommunityCategoryChip.js +0 -38
  374. package/lib/commonjs/v4/component/CommunityCategoryChips/CommunityCategoryChip/CommunityCategoryChip.js.map +0 -1
  375. package/lib/commonjs/v4/component/CommunityCategoryChips/CommunityCategoryChips.js.map +0 -1
  376. package/lib/commonjs/v4/component/CommunityCategoryChips/styles.js.map +0 -1
  377. package/lib/commonjs/v4/elements/CommunityCatetory/CommunityCategory.js +0 -38
  378. package/lib/commonjs/v4/elements/CommunityCatetory/CommunityCategory.js.map +0 -1
  379. package/lib/module/v4/component/CommunityCategoryChips/CommunityCategoryChip/CommunityCategoryChip.js +0 -30
  380. package/lib/module/v4/component/CommunityCategoryChips/CommunityCategoryChip/CommunityCategoryChip.js.map +0 -1
  381. package/lib/module/v4/component/CommunityCategoryChips/CommunityCategoryChips.js.map +0 -1
  382. package/lib/module/v4/component/CommunityCategoryChips/styles.js.map +0 -1
  383. package/lib/module/v4/elements/CommunityCatetory/CommunityCategory.js +0 -31
  384. package/lib/module/v4/elements/CommunityCatetory/CommunityCategory.js.map +0 -1
  385. package/lib/typescript/src/v4/component/CommunityCategoryChips/CommunityCategoryChip/CommunityCategoryChip.d.ts +0 -11
  386. package/lib/typescript/src/v4/component/CommunityCategoryChips/CommunityCategoryChip/CommunityCategoryChip.d.ts.map +0 -1
  387. package/lib/typescript/src/v4/component/CommunityCategoryChips/CommunityCategoryChips.d.ts +0 -11
  388. package/lib/typescript/src/v4/component/CommunityCategoryChips/CommunityCategoryChips.d.ts.map +0 -1
  389. package/lib/typescript/src/v4/component/CommunityCategoryChips/styles.d.ts +0 -27
  390. package/lib/typescript/src/v4/component/CommunityCategoryChips/styles.d.ts.map +0 -1
  391. package/lib/typescript/src/v4/elements/CommunityCatetory/CommunityCategory.d.ts +0 -12
  392. package/lib/typescript/src/v4/elements/CommunityCatetory/CommunityCategory.d.ts.map +0 -1
  393. package/src/v4/component/CommunityCategoryChips/CommunityCategoryChip/CommunityCategoryChip.tsx +0 -47
  394. package/src/v4/elements/CommunityCatetory/CommunityCategory.tsx +0 -41
@@ -1,26 +1,26 @@
1
1
  import React from 'react';
2
2
  import { Text, View, ViewProps, ScrollView } from 'react-native';
3
- import { CommunityCategoryChip } from './CommunityCategoryChip/CommunityCategoryChip';
4
- import type { MyMD3Theme } from 'src/providers/amity-ui-kit-provider';
3
+ import { CommunityCategory } from '../../elements/CommunityCategory/CommunityCategory';
5
4
  import { useStyles } from './styles';
5
+ import { ComponentID, PageID } from '../../../../enum';
6
6
 
7
- type CommunityCategoryChipsProps = ViewProps & {
8
- themeStyles: MyMD3Theme;
9
- categoryIds: string[];
7
+ type CommunityCategoriesProps = ViewProps & {
8
+ categories: Amity.Category[];
9
+ pageId?: PageID;
10
+ componentId?: ComponentID;
10
11
  allVisible?: boolean;
11
12
  };
12
13
 
13
14
  const MAX_VISIBLE_CATEGORIES = 2;
14
15
 
15
- export const CommunityCategoryChips: React.FC<CommunityCategoryChipsProps> = ({
16
- categoryIds,
17
- themeStyles,
16
+ export function CommunityCategories({
17
+ categories = [],
18
18
  allVisible,
19
19
  ...props
20
- }) => {
21
- const styles = useStyles(themeStyles);
22
- const visibleCategories = categoryIds.slice(0, MAX_VISIBLE_CATEGORIES);
23
- const hiddenCategoriesCount = categoryIds.length - MAX_VISIBLE_CATEGORIES;
20
+ }: CommunityCategoriesProps) {
21
+ const { styles } = useStyles();
22
+ const visibleCategories = categories.slice(0, MAX_VISIBLE_CATEGORIES);
23
+ const hiddenCategoriesCount = categories.length - MAX_VISIBLE_CATEGORIES;
24
24
  const showMoreText =
25
25
  hiddenCategoriesCount > 0 ? `+${hiddenCategoriesCount}` : '';
26
26
  const showMore = hiddenCategoriesCount > 0;
@@ -51,7 +51,7 @@ export const CommunityCategoryChips: React.FC<CommunityCategoryChipsProps> = ({
51
51
  };
52
52
 
53
53
  // Choose all categories or just the visible ones based on allVisible
54
- const displayCategories = allVisible ? categoryIds : visibleCategories;
54
+ const displayCategories = allVisible ? categories : visibleCategories;
55
55
  // Only show more indicator if not showing all categories
56
56
  const displayShowMore = !allVisible && showMore;
57
57
 
@@ -63,23 +63,21 @@ export const CommunityCategoryChips: React.FC<CommunityCategoryChipsProps> = ({
63
63
  showsHorizontalScrollIndicator={false}
64
64
  contentContainerStyle={styles.scrollableContainer}
65
65
  >
66
- {displayCategories.map((id, index) => (
67
- <CommunityCategoryChip
66
+ {displayCategories.map((category, index) => (
67
+ <CommunityCategory
68
68
  key={index}
69
- categoryId={id}
69
+ categoryName={category.name}
70
70
  maxWidth={getMaxWidthForItem(displayCategories.length)}
71
- themeStyles={themeStyles}
72
71
  />
73
72
  ))}
74
73
  </ScrollView>
75
74
  ) : (
76
75
  <>
77
- {displayCategories.map((id, index) => (
78
- <CommunityCategoryChip
76
+ {displayCategories.map((category, index) => (
77
+ <CommunityCategory
79
78
  key={index}
80
- categoryId={id}
79
+ categoryName={category.name}
81
80
  maxWidth={getMaxWidthForItem(displayCategories.length)}
82
- themeStyles={themeStyles}
83
81
  />
84
82
  ))}
85
83
  {displayShowMore && (
@@ -91,4 +89,4 @@ export const CommunityCategoryChips: React.FC<CommunityCategoryChipsProps> = ({
91
89
  )}
92
90
  </View>
93
91
  );
94
- };
92
+ }
@@ -0,0 +1 @@
1
+ export { CommunityCategories } from './CommunityCategories';
@@ -1,7 +1,9 @@
1
1
  import { StyleSheet } from 'react-native';
2
+ import { useTheme } from 'react-native-paper';
2
3
  import { MyMD3Theme } from 'src/providers/amity-ui-kit-provider';
3
4
 
4
- export const useStyles = (theme: MyMD3Theme) => {
5
+ export const useStyles = () => {
6
+ const theme = useTheme<MyMD3Theme>();
5
7
  const styles = StyleSheet.create({
6
8
  container: {
7
9
  flexDirection: 'row',
@@ -27,5 +29,5 @@ export const useStyles = (theme: MyMD3Theme) => {
27
29
  color: theme.colors.base,
28
30
  },
29
31
  });
30
- return styles;
32
+ return { styles, theme };
31
33
  };
@@ -0,0 +1 @@
1
+ export * from './CommunityCategories';
@@ -0,0 +1,45 @@
1
+ import React from 'react';
2
+ import { DimensionValue, Text, View } from 'react-native';
3
+ import { useStyles } from './styles';
4
+ import { useAmityElement } from '../../../../hook';
5
+ import { ComponentID, ElementID, PageID } from '../../../../enum';
6
+
7
+ type CommunityCategoryProps = {
8
+ categoryName: string;
9
+ style?: object;
10
+ maxWidth?: number | string;
11
+ pageId?: PageID;
12
+ componentId?: ComponentID;
13
+ };
14
+
15
+ export function CommunityCategory({
16
+ categoryName,
17
+ style,
18
+ maxWidth,
19
+ pageId,
20
+ componentId,
21
+ }: CommunityCategoryProps) {
22
+ const { styles } = useStyles();
23
+ const { accessibilityId, isExcluded } = useAmityElement({
24
+ pageId,
25
+ componentId,
26
+ elementId: ElementID.community_category,
27
+ });
28
+
29
+ if (isExcluded) return null;
30
+
31
+ return (
32
+ <View
33
+ testID={accessibilityId}
34
+ style={[
35
+ styles.chipContainer,
36
+ maxWidth ? { maxWidth: maxWidth as DimensionValue } : null,
37
+ style,
38
+ ]}
39
+ >
40
+ <Text style={styles.chipText} numberOfLines={1}>
41
+ {categoryName}
42
+ </Text>
43
+ </View>
44
+ );
45
+ }
@@ -0,0 +1 @@
1
+ export { CommunityCategory } from './CommunityCategory';
@@ -0,0 +1,20 @@
1
+ import { StyleSheet } from 'react-native';
2
+ import { useTheme } from 'react-native-paper';
3
+ import { MyMD3Theme } from 'src/providers/amity-ui-kit-provider';
4
+
5
+ export const useStyles = () => {
6
+ const theme = useTheme<MyMD3Theme>();
7
+ const styles = StyleSheet.create({
8
+ chipContainer: {
9
+ backgroundColor: theme.colors.baseShade4,
10
+ paddingHorizontal: 6,
11
+ borderRadius: 20,
12
+ },
13
+ chipText: {
14
+ fontSize: 13,
15
+ lineHeight: 18,
16
+ color: theme.colors.base,
17
+ },
18
+ });
19
+ return { styles, theme };
20
+ };
@@ -0,0 +1 @@
1
+ export * from './CommunityCategory';
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  CommunityRepository,
3
+ SearchUsersByEnum,
3
4
  UserRepository,
4
5
  } from '@amityco/ts-sdk-react-native';
5
6
  import { useState, useEffect } from 'react';
@@ -65,7 +66,11 @@ export const useAmityGlobalSearchViewModel = (
65
66
  } else if (searchType === TabName.Users && searchValue?.length >= 3) {
66
67
  setSearchResult(null);
67
68
  const unsubscribeUser = UserRepository.searchUserByDisplayName(
68
- { displayName: searchValue, limit: 20 },
69
+ {
70
+ displayName: searchValue,
71
+ limit: 20,
72
+ searchBy: [SearchUsersByEnum.DISPLAY_NAME],
73
+ },
69
74
  ({ error, loading, data, hasNextPage, onNextPage }) => {
70
75
  if (error) return setSearchResult(null);
71
76
  if (!loading) {
@@ -1,5 +1,9 @@
1
- import { FeedRepository, PostRepository } from '@amityco/ts-sdk-react-native';
1
+ import {
2
+ FeedRepository,
3
+ PostStructureType,
4
+ } from '@amityco/ts-sdk-react-native';
2
5
  import { useCallback, useEffect, useRef, useState } from 'react';
6
+ import { InteractionManager } from 'react-native';
3
7
  import globalFeedSlice from '../../redux/slices/globalfeedSlice';
4
8
  import { globalFeedPageLimit } from '../../v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent';
5
9
  import {
@@ -17,11 +21,18 @@ export const isAmityAd = (
17
21
  return (item as Amity.Ad)?.adId !== undefined;
18
22
  };
19
23
 
20
- export const useCustomRankingGlobalFeed = () => {
24
+ type UseCustomRankingGlobalFeed = {
25
+ enabled?: boolean;
26
+ };
27
+
28
+ export const useCustomRankingGlobalFeed = ({
29
+ enabled = true,
30
+ }: UseCustomRankingGlobalFeed = {}) => {
21
31
  const { isConnected } = useAuth();
22
32
  const dispatch = useUIKitDispatch();
23
33
  const unsubscribeRef = useRef<() => void | null>(null);
24
34
  const onNextPageRef = useRef<() => void | null>(null);
35
+ const interactionHandleRef = useRef<{ cancel: () => void } | null>(null);
25
36
 
26
37
  const { setNewGlobalFeed } = globalFeedSlice.actions;
27
38
 
@@ -39,70 +50,67 @@ export const useCustomRankingGlobalFeed = () => {
39
50
  getItemId: (item) => (item as Amity.Post).postId.toString(),
40
51
  });
41
52
 
42
- const processPosts = async (posts: Amity.Post[]) => {
43
- const results = await Promise.all(
44
- posts.map((post) => {
45
- if (post?.children.length > 0) {
46
- return new Promise((resolve) => {
47
- const unsubscribe = PostRepository.getPost(
48
- post?.children[0],
49
- ({ error: $error, loading, data }) => {
50
- if (!$error && !loading) {
51
- if (
52
- data?.dataType === 'image' ||
53
- data?.dataType === 'video' ||
54
- data?.dataType === 'room' ||
55
- data?.dataType === 'poll'
56
- ) {
57
- resolve(post);
58
- } else {
59
- resolve(null);
60
- }
61
- } else {
62
- resolve(null);
63
- }
64
- }
65
- );
66
-
67
- unsubscribe();
68
- });
69
- } else {
70
- return post;
71
- }
72
- })
73
- );
74
-
75
- return results.filter((result) => result !== null) as Amity.Post<any>[];
76
- };
53
+ const hasInitialDataRef = useRef(false);
77
54
 
78
55
  const fetchCustomRanking = useCallback(() => {
79
56
  if (!isConnected) return null;
80
57
 
81
- return FeedRepository.getCustomRankingGlobalFeed(
82
- { limit: globalFeedPageLimit },
83
- ({ data, loading, error: $error, onNextPage }) => {
84
- setFetching(loading);
58
+ hasInitialDataRef.current = false;
85
59
 
86
- if (!loading && data) {
87
- processPosts(data).then((posts) => dispatch(setNewGlobalFeed(posts)));
60
+ return FeedRepository.getGlobalFeed(
61
+ { limit: globalFeedPageLimit },
62
+ ({ data, loading: isLoading, error: $error, onNextPage }) => {
63
+ if (isLoading) {
64
+ // Only show loading state on initial fetch, not on pagination
65
+ if (!hasInitialDataRef.current) {
66
+ setFetching(true);
67
+ }
68
+ return;
88
69
  }
89
70
 
90
71
  if (onNextPage) onNextPageRef.current = onNextPage;
91
-
92
72
  if ($error) setError($error);
73
+
74
+ if (data) {
75
+ const filtered = data.filter(
76
+ (post) =>
77
+ post.structureType !== PostStructureType.AUDIO &&
78
+ post.structureType !== PostStructureType.FILE &&
79
+ post.structureType !== PostStructureType.MIXED
80
+ );
81
+ interactionHandleRef.current?.cancel();
82
+ interactionHandleRef.current =
83
+ InteractionManager.runAfterInteractions(() => {
84
+ dispatch(setNewGlobalFeed(filtered));
85
+ setFetching(false);
86
+ hasInitialDataRef.current = true;
87
+ interactionHandleRef.current = null;
88
+ });
89
+ } else {
90
+ setFetching(false);
91
+ }
93
92
  }
94
93
  );
95
94
  }, [dispatch, setNewGlobalFeed, isConnected]);
96
95
 
97
96
  useEffect(() => {
97
+ if (!enabled) return undefined;
98
+
98
99
  unsubscribeRef.current = fetchCustomRanking();
99
100
 
100
- return () => unsubscribeRef.current?.();
101
- }, [fetchCustomRanking]);
101
+ return () => {
102
+ unsubscribeRef.current?.();
103
+ interactionHandleRef.current?.cancel();
104
+ interactionHandleRef.current = null;
105
+ };
106
+ }, [fetchCustomRanking, enabled]);
102
107
 
103
108
  const refresh = useCallback(() => {
104
109
  if (unsubscribeRef.current) unsubscribeRef.current?.();
110
+ interactionHandleRef.current?.cancel();
111
+ interactionHandleRef.current = null;
105
112
  onNextPageRef.current = null;
113
+ hasInitialDataRef.current = false;
106
114
 
107
115
  unsubscribeRef.current = fetchCustomRanking();
108
116
  }, [fetchCustomRanking]);
@@ -113,5 +121,6 @@ export const useCustomRankingGlobalFeed = () => {
113
121
  itemWithAds,
114
122
  onNextPage: onNextPageRef.current,
115
123
  error,
124
+ globalFeedPosts: postList,
116
125
  };
117
126
  };
@@ -1,10 +1,9 @@
1
- import { useCallback, useEffect, useRef, useState } from 'react';
1
+ import { useCallback, useEffect, useRef, useState, useTransition } from 'react';
2
2
  import { AdEngine } from '../engine/AdEngine';
3
3
  import {
4
4
  useAdSettings,
5
5
  useRecommendAds,
6
6
  } from '../../v4/providers/AdEngineProvider';
7
- import { useFocusEffect } from '@react-navigation/native';
8
7
 
9
8
  type ItemWithAd<T> = [T] | [T, Amity.Ad];
10
9
 
@@ -41,21 +40,19 @@ export const usePaginatorCore = <T>({
41
40
  newItems: T[],
42
41
  newItemIds: Set<string>
43
42
  ): Array<ItemWithAd<T>> => {
43
+ const newItemsMap = new Map<string, T>(
44
+ newItems.map((item) => [getItemId(item), item])
45
+ );
44
46
  return (itemWithAdsRef.current || [])
45
47
  .map((itemWithAd) => {
46
48
  const itemId = getItemId(itemWithAd[0]);
47
49
 
48
- // Skip items not in new items list
49
50
  if (!newItemIds.has(itemId)) {
50
51
  return null;
51
52
  }
52
53
 
53
- // Find the updated version of this item
54
- const updatedItem = newItems.find(
55
- (newItem) => getItemId(newItem) === itemId
56
- );
54
+ const updatedItem = newItemsMap.get(itemId);
57
55
 
58
- // Update the item while preserving its ad (if any)
59
56
  if (updatedItem) {
60
57
  if (itemWithAd.length === 1) {
61
58
  return [updatedItem] as [T];
@@ -86,13 +83,14 @@ export const usePaginatorCore = <T>({
86
83
  topIndex: number,
87
84
  prevItems: Array<ItemWithAd<T>>
88
85
  ): T[] => {
89
- return newItems.slice(topIndex).filter((newItem) => {
90
- const itemId = getItemId(newItem);
91
- return !prevItems.some(
92
- (prevItem) =>
93
- prevItem && prevItem[0] && getItemId(prevItem[0]) === itemId
94
- );
95
- });
86
+ const prevItemIds = new Set<string>(
87
+ prevItems
88
+ .filter((item) => item && item[0])
89
+ .map((item) => getItemId(item[0]))
90
+ );
91
+ return newItems
92
+ .slice(topIndex)
93
+ .filter((newItem) => !prevItemIds.has(getItemId(newItem)));
96
94
  };
97
95
 
98
96
  const frequency = AdEngine.instance.getAdFrequencyByPlacement(placement);
@@ -142,7 +140,13 @@ export const usePaginatorCore = <T>({
142
140
  .slice(0, topIndex)
143
141
  .map((item) => [item]);
144
142
 
145
- const prevItems = [...newestItems, ...prevItemWithAds];
143
+ const prevItemWithAdsIds = new Set(
144
+ prevItemWithAds.map((item) => getItemId(item[0]))
145
+ );
146
+ const dedupedNewestItems = newestItems.filter(
147
+ (item) => !prevItemWithAdsIds.has(getItemId(item[0]))
148
+ );
149
+ const prevItems = [...dedupedNewestItems, ...prevItemWithAds];
146
150
 
147
151
  // filteredNewItems is the newest items in the next page that are not in prevItems
148
152
  const filteredNewItems = filterNewItems(newItems, topIndex, prevItems);
@@ -174,14 +178,24 @@ export const usePaginatorCore = <T>({
174
178
 
175
179
  const newItemsWithAds = [...prevItems, ...suffixItems];
176
180
 
177
- updateItemWithAds(newItemsWithAds);
181
+ const seenPostIds = new Set<string>();
182
+ const dedupedItemsWithAds = newItemsWithAds.filter((tuple) => {
183
+ const id = getItemId(tuple[0]);
184
+ if (seenPostIds.has(id)) return false;
185
+ seenPostIds.add(id);
186
+ return true;
187
+ });
178
188
 
179
- if (newItemsWithAds.length === 0) {
189
+ updateItemWithAds(dedupedItemsWithAds);
190
+
191
+ if (dedupedItemsWithAds.length === 0) {
180
192
  setCurrentAdIndex(0);
181
193
  setCurrentIndex(0);
182
194
  }
183
195
 
184
- const result = newItemsWithAds.flatMap((item) => item).filter(Boolean);
196
+ const result = dedupedItemsWithAds
197
+ .flatMap((item) => item)
198
+ .filter(Boolean);
185
199
  return result;
186
200
  } else if (frequency?.type === 'time-window') {
187
201
  const newItemIds = new Set(newItems.map((item) => getItemId(item)));
@@ -192,7 +206,13 @@ export const usePaginatorCore = <T>({
192
206
  .slice(0, topIndex)
193
207
  .map((item) => [item]);
194
208
 
195
- const prevItems = [...newestItems, ...prevItemWithAds];
209
+ const twPrevItemWithAdsIds = new Set(
210
+ prevItemWithAds.map((item) => getItemId(item[0]))
211
+ );
212
+ const twDedupedNewestItems = newestItems.filter(
213
+ (item) => !twPrevItemWithAdsIds.has(getItemId(item[0]))
214
+ );
215
+ const prevItems = [...twDedupedNewestItems, ...prevItemWithAds];
196
216
  const filteredNewItems = filterNewItems(newItems, topIndex, prevItems);
197
217
  const suffixItems: Array<ItemWithAd<T>> = filteredNewItems.map(
198
218
  (newItem, index) => {
@@ -213,11 +233,21 @@ export const usePaginatorCore = <T>({
213
233
 
214
234
  setHasAppenedFirstRoundAds(true);
215
235
 
216
- const newItemsWithAds = [...prevItems, ...suffixItems];
236
+ const seenTwPostIds = new Set<string>();
237
+ const dedupedTwItemsWithAds = [...prevItems, ...suffixItems].filter(
238
+ (tuple) => {
239
+ const id = getItemId(tuple[0]);
240
+ if (seenTwPostIds.has(id)) return false;
241
+ seenTwPostIds.add(id);
242
+ return true;
243
+ }
244
+ );
217
245
 
218
- updateItemWithAds(newItemsWithAds);
246
+ updateItemWithAds(dedupedTwItemsWithAds);
219
247
 
220
- const result = newItemsWithAds.flatMap((item) => item).filter(Boolean);
248
+ const result = dedupedTwItemsWithAds
249
+ .flatMap((item) => item)
250
+ .filter(Boolean);
221
251
  return result;
222
252
  }
223
253
  return newItems;
@@ -256,6 +286,7 @@ export const usePaginatorApi = <T>(params: {
256
286
  const [itemWithAds, setItemWithAds] = useState<
257
287
  (Amity.Ad | T)[] | undefined
258
288
  >();
289
+ const [_, startTransition] = useTransition();
259
290
 
260
291
  const { items, isLoading, ...rest } = params;
261
292
  const {
@@ -275,16 +306,14 @@ export const usePaginatorApi = <T>(params: {
275
306
  setHasAppenedFirstRoundAds(false);
276
307
  }, [coreReset]);
277
308
 
278
- useFocusEffect(
279
- useCallback(() => {
280
- if (!adsLoaded || isLoading) return;
281
-
309
+ useEffect(() => {
310
+ if (!adsLoaded || isLoading) return;
311
+ startTransition(() => {
282
312
  const newItems = combineItemsWithAds(items);
283
-
284
313
  setItemWithAds(newItems);
285
- // eslint-disable-next-line react-hooks/exhaustive-deps
286
- }, [adsLoaded, items, isLoading])
287
- );
314
+ });
315
+ // eslint-disable-next-line react-hooks/exhaustive-deps
316
+ }, [adsLoaded, items, isLoading]);
288
317
 
289
318
  return { itemWithAds, reset };
290
319
  };
@@ -0,0 +1,46 @@
1
+ import {
2
+ CommunityPostSettings,
3
+ CommunityRepository,
4
+ } from '@amityco/ts-sdk-react-native';
5
+ import { useEffect, useState } from 'react';
6
+ import useAuth from '../../hooks/useAuth';
7
+ import { isModerator } from '../utils/permissions';
8
+
9
+ type UsePostPermissionParams = {
10
+ community?: Amity.Community;
11
+ };
12
+
13
+ export function usePostPermission({ community }: UsePostPermissionParams) {
14
+ const { client } = useAuth();
15
+ const [hasPostPermission, setHasPostPermission] = useState(false);
16
+
17
+ const isOnlyAdminCanPost =
18
+ community?.postSetting === CommunityPostSettings.ONLY_ADMIN_CAN_POST;
19
+
20
+ useEffect(() => {
21
+ if (!community?.communityId || !client?.userId) return;
22
+
23
+ CommunityRepository.Membership.searchMembers(
24
+ {
25
+ communityId: community.communityId,
26
+ search: client.userId,
27
+ limit: 1,
28
+ memberships: ['member'],
29
+ includeDeleted: false,
30
+ },
31
+ ({ data }) => {
32
+ const userRoles = data[0]?.roles ?? [];
33
+ setHasPostPermission(
34
+ isOnlyAdminCanPost ? isModerator(userRoles) : !!community?.isJoined
35
+ );
36
+ }
37
+ );
38
+ }, [
39
+ community?.communityId,
40
+ client?.userId,
41
+ isOnlyAdminCanPost,
42
+ community?.isJoined,
43
+ ]);
44
+
45
+ return hasPostPermission;
46
+ }
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  CommunityRepository,
3
+ SearchUsersByEnum,
3
4
  UserRepository,
4
5
  } from '@amityco/ts-sdk-react-native';
5
6
  import { useCallback, useEffect, useState, useRef } from 'react';
@@ -45,7 +46,11 @@ const useSearch = (
45
46
 
46
47
  const searchAllUsers = useCallback((text: string) => {
47
48
  return UserRepository.searchUserByDisplayName(
48
- { displayName: text, limit: 5 },
49
+ {
50
+ displayName: text,
51
+ limit: 5,
52
+ searchBy: [SearchUsersByEnum.DISPLAY_NAME],
53
+ },
49
54
  ({ data, error, hasNextPage, onNextPage }) => {
50
55
  if (error) return null;
51
56
  hasNextPage
@@ -65,6 +65,7 @@ import AmityCommunityProfilePage from '../PublicApi/Pages/AmityCommunityProfileP
65
65
  import LivestreamTerminated from '../screen/LivestreamTerminated';
66
66
  import PollTargetSelection from '../screen/PollTargetSelection';
67
67
  import LivestreamPostTargetSelection from '../screen/LivestreamPostTargetSelection';
68
+ import CommunityMembership from '../screen/CommunityMembership';
68
69
 
69
70
  interface PageRendererProps {
70
71
  children: React.JSX.Element;
@@ -82,6 +83,7 @@ export default function PageRenderer({ children }: PageRendererProps) {
82
83
  <Stack.Navigator
83
84
  id={undefined}
84
85
  screenOptions={{
86
+ headerShown: false,
85
87
  headerShadowVisible: false,
86
88
  contentStyle: {
87
89
  backgroundColor: theme.colors.background,
@@ -192,6 +194,10 @@ export default function PageRenderer({ children }: PageRendererProps) {
192
194
  name="CommunityAddMember"
193
195
  component={CommunityAddMember}
194
196
  />
197
+ <Stack.Screen
198
+ name="CommunityMembership"
199
+ component={CommunityMembership}
200
+ />
195
201
  <Stack.Screen
196
202
  name="CommunityPostPermission"
197
203
  component={CommunityPostPermission}
@@ -289,6 +289,7 @@ export default function AmitySocialUIKitV4Navigator() {
289
289
  params: { displayName },
290
290
  },
291
291
  }: any) => ({
292
+ headerShown: true,
292
293
  title: displayName,
293
294
  headerLeft: () => <BackButton />,
294
295
  })}
@@ -70,7 +70,7 @@ const FollowerListItem: FC<FollowerListItemType> = ({
70
70
  fileId: data.avatarFileId,
71
71
  imageSize: ImageSizeState.small,
72
72
  });
73
- setAvatar(userAvatar ?? defaultAvatarUri);
73
+ setAvatar(data?.avatarCustomUrl ?? userAvatar ?? defaultAvatarUri);
74
74
  }
75
75
  });
76
76
  }, [getImage, userId]);
@@ -1,38 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.CommunityCategoryChip = void 0;
7
- var _tsSdkReactNative = require("@amityco/ts-sdk-react-native");
8
- var _react = _interopRequireWildcard(require("react"));
9
- var _reactNative = require("react-native");
10
- var _styles = require("../styles");
11
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
- const CommunityCategoryChip = ({
13
- categoryId,
14
- style,
15
- maxWidth,
16
- themeStyles
17
- }) => {
18
- const [category, setCategory] = (0, _react.useState)(null);
19
- const styles = (0, _styles.useStyles)(themeStyles);
20
- (0, _react.useEffect)(() => {
21
- const fetch = async () => {
22
- const result = await _tsSdkReactNative.CategoryRepository.getCategory(categoryId);
23
- setCategory(result.data);
24
- };
25
- fetch();
26
- }, [categoryId]);
27
- if (category == null) return null;
28
- return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
29
- style: [styles.chipContainer, maxWidth ? {
30
- maxWidth: maxWidth
31
- } : null, style]
32
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
33
- style: styles.chipText,
34
- numberOfLines: 1
35
- }, category.name));
36
- };
37
- exports.CommunityCategoryChip = CommunityCategoryChip;
38
- //# sourceMappingURL=CommunityCategoryChip.js.map