@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
@@ -48,6 +48,9 @@ import { LinkPreview } from '../../../../component/PreviewLink/LinkPreview';
48
48
  import AmityReactionListComponent from '../../AmityReactionListComponent/AmityReactionListComponent';
49
49
  import uiSlice from '../../../../../redux/slices/uiSlice';
50
50
  import { useUIKitDispatch } from '../../../../../redux/store';
51
+ import { useNavigation } from '@react-navigation/native';
52
+ import { NativeStackNavigationProp } from '@react-navigation/native-stack';
53
+ import { RootStackParamList } from '../../../../routes/RouteParamList';
51
54
 
52
55
  export interface IComment {
53
56
  commentId: string;
@@ -129,6 +132,8 @@ const CommentListItem = ({
129
132
  const [isEditComment, setIsEditComment] = useState<boolean>(false);
130
133
  const slideAnimation = useRef(new Animated.Value(0)).current;
131
134
  const [isReactionListVisible, setIsReactionListVisible] = useState(false);
135
+ const navigation =
136
+ useNavigation<NativeStackNavigationProp<RootStackParamList>>();
132
137
 
133
138
  useEffect(() => {
134
139
  getReplyComments();
@@ -175,6 +180,7 @@ const CommentListItem = ({
175
180
  userId: userObject.data.userId,
176
181
  displayName: userObject.data.displayName,
177
182
  avatarFileId: userObject.data.avatarFileId,
183
+ avatarCustomUrl: userObject.data?.avatarCustomUrl,
178
184
  };
179
185
 
180
186
  return {
@@ -317,21 +323,41 @@ const CommentListItem = ({
317
323
  return (
318
324
  <View key={commentId} style={styles.commentWrap}>
319
325
  <View style={styles.headerSection}>
320
- {user?.avatarFileId ? (
321
- <Image
322
- style={styles.avatar}
323
- source={{
324
- uri: `https://api.${apiRegion}.amity.co/api/v3/files/${user?.avatarFileId}/download`,
325
- }}
326
- />
327
- ) : (
328
- <View style={styles.avatar}>
329
- <SvgXml xml={personXml} width="20" height="16" />
330
- </View>
331
- )}
326
+ <TouchableOpacity
327
+ onPress={() => {
328
+ user?.userId &&
329
+ navigation.navigate('UserProfile', {
330
+ userId: user?.userId || '',
331
+ });
332
+ }}
333
+ >
334
+ {user?.avatarFileId ? (
335
+ <Image
336
+ style={styles.avatar}
337
+ source={{
338
+ uri: user?.avatarCustomUrl
339
+ ? user?.avatarCustomUrl
340
+ : `https://api.${apiRegion}.amity.co/api/v3/files/${user?.avatarFileId}/download`,
341
+ }}
342
+ />
343
+ ) : (
344
+ <View style={styles.avatar}>
345
+ <SvgXml xml={personXml} width="20" height="16" />
346
+ </View>
347
+ )}
348
+ </TouchableOpacity>
332
349
  <View style={styles.rightSection}>
333
350
  <View style={styles.commentBubble}>
334
- <Text style={styles.headerText}>{user?.displayName}</Text>
351
+ <TouchableOpacity
352
+ onPress={() => {
353
+ user?.userId &&
354
+ navigation.navigate('UserProfile', {
355
+ userId: user?.userId || '',
356
+ });
357
+ }}
358
+ >
359
+ <Text style={styles.headerText}>{user?.displayName}</Text>
360
+ </TouchableOpacity>
335
361
  {targetType === 'community' && targetId && (
336
362
  <View style={{ marginVertical: 6 }}>
337
363
  <ModeratorBadgeElement
@@ -410,7 +436,6 @@ const CommentListItem = ({
410
436
  previewReplyCommentList[previewReplyCommentList.length - 1]
411
437
  }
412
438
  onDelete={onDelete}
413
- onHandleReply={onHandleReply}
414
439
  />
415
440
  )}
416
441
  {isOpenReply && replyCommentList?.length > 0 && (
@@ -421,7 +446,6 @@ const CommentListItem = ({
421
446
  commentId={item.commentId}
422
447
  commentDetail={item}
423
448
  onDelete={onDelete}
424
- onHandleReply={onHandleReply}
425
449
  />
426
450
  )}
427
451
  keyExtractor={(item) => item.commentId}
@@ -91,16 +91,17 @@ export const useStyles = () => {
91
91
  rowContainer: {
92
92
  flexDirection: 'row',
93
93
  alignItems: 'center',
94
+ gap: 8,
94
95
  },
95
96
  likedText: {
96
97
  color: theme.colors.primary,
97
- fontSize: 14,
98
+ fontSize: 13,
98
99
  fontWeight: '600',
99
100
  marginLeft: 1,
100
101
  },
101
102
  btnText: {
102
103
  color: theme.colors.baseShade2,
103
- fontSize: 14,
104
+ fontSize: 13,
104
105
  fontWeight: '600',
105
106
  },
106
107
  threeDots: {
@@ -42,6 +42,9 @@ import AmityReactionListComponent from '../../AmityReactionListComponent/AmityRe
42
42
  import RenderTextWithMention from '../../../../component/RenderTextWithMention/RenderTextWithMention';
43
43
  import uiSlice from '../../../../../redux/slices/uiSlice';
44
44
  import { useUIKitDispatch } from '../../../../../redux/store';
45
+ import { useNavigation } from '@react-navigation/native';
46
+ import { NativeStackNavigationProp } from '@react-navigation/native-stack';
47
+ import { RootStackParamList } from '../../../../routes/RouteParamList';
45
48
 
46
49
  export interface IComment {
47
50
  commentId: string;
@@ -65,14 +68,12 @@ export interface IReplyCommentList {
65
68
  commentId: string;
66
69
  commentDetail: IComment;
67
70
  onDelete?: (commentId: string) => void;
68
- onHandleReply?: (user: UserInterface, commentId: string) => void;
69
71
  }
70
72
 
71
73
  const ReplyCommentList = ({
72
74
  commentDetail,
73
75
  onDelete,
74
76
  commentId,
75
- onHandleReply,
76
77
  }: IReplyCommentList) => {
77
78
  const {
78
79
  data,
@@ -99,7 +100,6 @@ const ReplyCommentList = ({
99
100
  const [likeReaction, setLikeReaction] = useState<number>(
100
101
  reactions.like ? reactions.like : 0
101
102
  );
102
-
103
103
  const { client, apiRegion } = useAuth();
104
104
  const [textComment, setTextComment] = useState<string>(data.text);
105
105
  const [isVisible, setIsVisible] = useState(false);
@@ -108,6 +108,8 @@ const ReplyCommentList = ({
108
108
  const [editCommentModal, setEditCommentModal] = useState<boolean>(false);
109
109
  const [isEditComment, setIsEditComment] = useState<boolean>(false);
110
110
  const slideAnimation = useRef(new Animated.Value(0)).current;
111
+ const navigation =
112
+ useNavigation<NativeStackNavigationProp<RootStackParamList>>();
111
113
 
112
114
  const openModal = () => {
113
115
  setIsVisible(true);
@@ -215,28 +217,44 @@ const ReplyCommentList = ({
215
217
  setIsReactionListVisible(true);
216
218
  };
217
219
 
218
- const onPressReply = () => {
219
- onHandleReply && onHandleReply(user, commentId);
220
- };
221
-
222
220
  return (
223
221
  <View key={commentId} style={styles.replyCommentWrap}>
224
222
  <View style={styles.replyHeaderSection}>
225
- {user?.avatarFileId ? (
226
- <Image
227
- style={styles.avatar}
228
- source={{
229
- uri: `https://api.${apiRegion}.amity.co/api/v3/files/${user?.avatarFileId}/download`,
230
- }}
231
- />
232
- ) : (
233
- <View style={styles.avatar}>
234
- <SvgXml xml={personXml} width="20" height="16" />
235
- </View>
236
- )}
223
+ <TouchableOpacity
224
+ onPress={() =>
225
+ user?.userId &&
226
+ navigation.navigate('UserProfile', {
227
+ userId: user?.userId || '',
228
+ })
229
+ }
230
+ >
231
+ {user?.avatarFileId ? (
232
+ <Image
233
+ style={styles.avatar}
234
+ source={{
235
+ uri: user?.avatarCustomUrl
236
+ ? user?.avatarCustomUrl
237
+ : `https://api.${apiRegion}.amity.co/api/v3/files/${user?.avatarFileId}/download`,
238
+ }}
239
+ />
240
+ ) : (
241
+ <View style={styles.avatar}>
242
+ <SvgXml xml={personXml} width="20" height="16" />
243
+ </View>
244
+ )}
245
+ </TouchableOpacity>
237
246
  <View style={styles.rightSection}>
238
247
  <View style={styles.commentBubble}>
239
- <Text style={styles.headerText}>{user?.displayName}</Text>
248
+ <TouchableOpacity
249
+ onPress={() =>
250
+ user?.userId &&
251
+ navigation.navigate('UserProfile', {
252
+ userId: user?.userId || '',
253
+ })
254
+ }
255
+ >
256
+ <Text style={styles.headerText}>{user?.displayName}</Text>
257
+ </TouchableOpacity>
240
258
  {targetType === 'community' && targetId && (
241
259
  <View style={{ marginVertical: 6 }}>
242
260
  <ModeratorBadgeElement
@@ -276,9 +294,6 @@ const ReplyCommentList = ({
276
294
  {!isLike ? 'Like' : 'Liked'}
277
295
  </Text>
278
296
  </TouchableOpacity>
279
- <TouchableOpacity onPress={onPressReply} style={styles.likeBtn}>
280
- <Text style={styles.btnText}>Reply</Text>
281
- </TouchableOpacity>
282
297
  <TouchableOpacity onPress={openModal} style={styles.threeDots}>
283
298
  <SvgXml
284
299
  xml={threeDots(theme.colors.base)}
@@ -85,8 +85,8 @@ export const useStyles = () => {
85
85
  },
86
86
  likeBtn: {
87
87
  flexDirection: 'row',
88
- paddingRight: 6,
89
- paddingTop: 4,
88
+ marginRight: 8,
89
+ alignItems: 'center',
90
90
  },
91
91
  actionSection: {
92
92
  flex: 1,
@@ -97,18 +97,15 @@ export const useStyles = () => {
97
97
  },
98
98
  likedText: {
99
99
  color: theme.colors.primary,
100
- fontSize: 15,
100
+ fontSize: 13,
101
101
  fontWeight: '600',
102
- marginHorizontal: 4,
103
102
  },
104
103
  btnText: {
105
104
  color: theme.colors.baseShade2,
106
- fontSize: 15,
105
+ fontSize: 13,
107
106
  fontWeight: '600',
108
- marginHorizontal: 4,
109
107
  },
110
108
  threeDots: {
111
- padding: 5,
112
109
  opacity: 0.5,
113
110
  },
114
111
  modalContainer: {
@@ -158,6 +155,7 @@ export const useStyles = () => {
158
155
  rowContainer: {
159
156
  flexDirection: 'row',
160
157
  alignItems: 'center',
158
+ gap: 8,
161
159
  },
162
160
  });
163
161
 
@@ -180,6 +180,7 @@ const AmityPostContentComponent: FC<AmityPostContentComponentProps> = ({
180
180
  pageID={pageId}
181
181
  elementID={ElementID.WildCardElement}
182
182
  componentID={componentId}
183
+ avatarCustomUrl={creator?.avatarCustomUrl}
183
184
  />
184
185
 
185
186
  <View style={styles.fillSpace}>
@@ -121,8 +121,8 @@ const DetailStyle: FC<AmityPostEngagementActionsSubComponentType> = ({
121
121
  </Text>
122
122
  )}
123
123
  <Text style={styles.commentCountText}>
124
- {formatNumber(postData?.commentsCount)}{' '}
125
- {renderCommentText(postData?.commentsCount)}
124
+ {formatNumber(postData?.localCommentCount)}{' '}
125
+ {renderCommentText(postData?.localCommentCount)}
126
126
  </Text>
127
127
  </View>
128
128
  <View style={[styles.actionSection, styles.detailActionSection]}>
@@ -129,7 +129,7 @@ const FeedStyle: FC<AmityPostEngagementActionsSubComponentType> = ({
129
129
  height={20}
130
130
  resizeMode="contain"
131
131
  />
132
- <Text style={styles.btnText}>{postData?.commentsCount}</Text>
132
+ <Text style={styles.btnText}>{postData?.localCommentCount}</Text>
133
133
  </TouchableOpacity>
134
134
  </View>
135
135
  <View style={styles.commentBtn} />
@@ -1,7 +1,6 @@
1
- import React, { useEffect } from 'react';
1
+ import React from 'react';
2
2
  import { Image, View } from 'react-native';
3
- import { ComponentID, ImageSizeState, PageID } from '../../../../enum';
4
- import { useFile } from '../../../../hook';
3
+ import { ComponentID, PageID } from '../../../../enum';
5
4
  import { useStyles } from './styles';
6
5
 
7
6
  import CommunityJoinedButton from '../../../../elements/CommunityJoinedButtonElement/CommunityJoinedButtonElement';
@@ -10,9 +9,10 @@ import { SvgXml } from 'react-native-svg';
10
9
  import { community as communityIcon } from '../../../../assets/icons';
11
10
  import CommunityPrivateBadge from '../../../../elements/CommunityPrivateBadge/CommunityPrivateBadge';
12
11
  import CommunityOfficialBadge from '../../../../elements/CommunityOfficialBadge/CommunityOfficialBadge';
13
- import CommunityCategory from '../../../../elements/CommunityCatetory/CommunityCategory';
14
12
  import CommunityMemeberCount from '../../../../elements/CommunityMemeberCount/CommunityMemeberCount';
15
13
  import CommunityDisplayname from '../../../../elements/CommunityDisplayname/CommunityDisplayname';
14
+ import { getFileUrlWithSize } from '../../../../utils';
15
+ import { CommunityCategories } from '../../../../../v4/features/feed/components';
16
16
 
17
17
  type RecommendedCommunityItemProps = {
18
18
  pageId?: PageID;
@@ -22,31 +22,15 @@ type RecommendedCommunityItemProps = {
22
22
  export const RecommendedCommunityItem: React.FC<
23
23
  RecommendedCommunityItemProps
24
24
  > = ({ community, pageId = PageID.WildCardPage }) => {
25
- const { getImage } = useFile();
26
25
  const componentId = ComponentID.recommended_communities;
27
26
  const styles = useStyles();
28
- const [imageUrl, setImageUrl] = React.useState<string | undefined>(undefined);
29
-
30
- useEffect(() => {
31
- const fetchImage = async () => {
32
- if (!community.avatarFileId) return;
33
-
34
- const url = await getImage({
35
- fileId: community.avatarFileId,
36
- imageSize: ImageSizeState.large,
37
- });
38
-
39
- setImageUrl(url);
40
- };
41
- fetchImage();
42
- }, [community.avatarFileId, getImage]);
43
27
 
44
28
  return (
45
29
  <View style={styles.container}>
46
- {community.avatarFileId && imageUrl ? (
30
+ {community.avatar?.fileUrl ? (
47
31
  <Image
48
32
  style={styles.image}
49
- source={{ uri: imageUrl }}
33
+ source={{ uri: getFileUrlWithSize(community.avatar?.fileUrl) }}
50
34
  resizeMode="cover"
51
35
  />
52
36
  ) : (
@@ -72,8 +56,8 @@ export const RecommendedCommunityItem: React.FC<
72
56
  </View>
73
57
  <View style={styles.detailBottomWrap}>
74
58
  <View style={styles.detailBottomWrapLeft}>
75
- <CommunityCategory
76
- categoryIds={community.categoryIds}
59
+ <CommunityCategories
60
+ categories={community.categories}
77
61
  pageId={pageId}
78
62
  componentId={componentId}
79
63
  />
@@ -15,6 +15,7 @@ type AvatarElementType = Partial<ImageProps> & {
15
15
  targetType?: 'community' | 'user';
16
16
  // to bypass the default avatar
17
17
  defaultAvatar?: string;
18
+ avatarCustomUrl?: string;
18
19
  };
19
20
 
20
21
  const AvatarElement: FC<AvatarElementType> = ({
@@ -24,6 +25,8 @@ const AvatarElement: FC<AvatarElementType> = ({
24
25
  elementID,
25
26
  targetType,
26
27
  defaultAvatar,
28
+ avatarCustomUrl,
29
+
27
30
  ...props
28
31
  }) => {
29
32
  const { client } = useAuth();
@@ -33,25 +36,33 @@ const AvatarElement: FC<AvatarElementType> = ({
33
36
  ? defaultCommunityAvatarUri
34
37
  : defaultAvatarUri;
35
38
  }, [defaultAvatar, targetType]);
36
-
37
39
  const [avatarUrl, setAvatarUrl] = useState<string>(fallbackAvatar);
38
40
  const { excludes } = useConfig();
39
41
  const configId = `${pageID}/${componentID}/${elementID}`;
40
42
  const { getImage } = useFile();
41
43
 
42
44
  useLayoutEffect(() => {
43
- if (!avatarId) {
44
- setAvatarUrl(fallbackAvatar);
45
- return;
46
- }
47
- (async () => {
45
+ const loadAvatar = async () => {
46
+ if (avatarCustomUrl) {
47
+ setAvatarUrl(avatarCustomUrl);
48
+ return;
49
+ }
50
+
51
+ if (!avatarId) {
52
+ setAvatarUrl(fallbackAvatar);
53
+ return;
54
+ }
55
+
48
56
  const avatar = await getImage({
49
57
  fileId: avatarId,
50
58
  imageSize: ImageSizeState.small,
51
59
  });
52
- setAvatarUrl(avatar);
53
- })();
54
- }, [avatarId, fallbackAvatar, getImage]);
60
+
61
+ setAvatarUrl(avatar ?? fallbackAvatar);
62
+ };
63
+
64
+ loadAvatar();
65
+ }, [avatarId, fallbackAvatar, getImage, avatarCustomUrl]);
55
66
 
56
67
  if (excludes.includes(configId)) return null;
57
68
 
@@ -41,6 +41,7 @@ import { RouteProp, useNavigation, useRoute } from '@react-navigation/native';
41
41
  import { useTheme } from 'react-native-paper';
42
42
  import { MyMD3Theme } from '../../../../providers/amity-ui-kit-provider';
43
43
  import AmityCommunityPinnedPostComponent from '../../../../v4/PublicApi/Components/AmityCommunityPinnedPostComponent/AmityCommunityPinnedPostComponent';
44
+ import { usePostPermission } from '../../../../v4/hook/usePostPermission';
44
45
 
45
46
  type ICommunityProfilePage = {
46
47
  defaultCommunityId?: string;
@@ -68,6 +69,9 @@ const AmityCommunityProfilePage: React.FC<ICommunityProfilePage> = ({
68
69
 
69
70
  const animatedOpacity = useRef(new Animated.Value(0)).current;
70
71
  const animatedTranslateY = useRef(new Animated.Value(15)).current;
72
+ const stickyHeaderAnimation = useRef<Animated.CompositeAnimation | null>(
73
+ null
74
+ );
71
75
 
72
76
  const scrollY = useRef(new Animated.Value(0)).current;
73
77
  const feedRef = useRef<AmityCommunityFeedRef>(null);
@@ -93,7 +97,7 @@ const AmityCommunityProfilePage: React.FC<ICommunityProfilePage> = ({
93
97
  animatedTranslateY.setValue(15);
94
98
 
95
99
  // Run entrance animation
96
- Animated.parallel([
100
+ stickyHeaderAnimation.current = Animated.parallel([
97
101
  Animated.timing(animatedOpacity, {
98
102
  toValue: 1,
99
103
  duration: 200,
@@ -105,8 +109,12 @@ const AmityCommunityProfilePage: React.FC<ICommunityProfilePage> = ({
105
109
  easing: Easing.out(Easing.ease),
106
110
  useNativeDriver: true,
107
111
  }),
108
- ]).start();
112
+ ]);
113
+ stickyHeaderAnimation.current.start();
109
114
  }
115
+ return () => {
116
+ stickyHeaderAnimation.current?.stop();
117
+ };
110
118
  }, [isScrolledPastHeader, animatedOpacity, animatedTranslateY]);
111
119
 
112
120
  const handleLoadMore = useCallback(() => {
@@ -273,6 +281,8 @@ function CommunityProfileActions({ pageId, communityId, styles }) {
273
281
 
274
282
  const hasStoryPermission = useStoryPermission(communityId);
275
283
 
284
+ const hasPostPermission = usePostPermission({ community });
285
+
276
286
  const openBottomSheet = () => setIsBottomSheetVisible(true);
277
287
 
278
288
  const closeBottomSheet = () => setIsBottomSheetVisible(false);
@@ -350,7 +360,7 @@ function CommunityProfileActions({ pageId, communityId, styles }) {
350
360
  });
351
361
  };
352
362
 
353
- if (!community?.isJoined) return null;
363
+ if (!hasPostPermission) return null;
354
364
 
355
365
  return (
356
366
  <Fragment>
@@ -31,7 +31,6 @@ const AmitySocialGlobalSearchPage = () => {
31
31
  />
32
32
  </View>
33
33
  );
34
-
35
34
  const isCommunity = searchType === TabName.Communities;
36
35
  if (isExcluded) return null;
37
36
  return (
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import { useCallback, useState } from 'react';
3
- import { LogBox, SafeAreaView, StyleSheet } from 'react-native';
2
+ import { useCallback, useRef, useState } from 'react';
3
+ import { SafeAreaView, StyleSheet, View } from 'react-native';
4
4
  import CustomSocialTab from '../../../../v4/component/CustomSocialTab/CustomSocialTab';
5
5
  import { useUiKitConfig } from '../../../../v4/hook';
6
6
  import {
@@ -12,15 +12,11 @@ import {
12
12
  import { useTheme } from 'react-native-paper';
13
13
  import { useBehaviour } from '../../../../v4/providers/BehaviourProvider';
14
14
  import AmitySocialHomeTopNavigationComponent from '../../../../v4/PublicApi/Components/AmitySocialHomeTopNavigationComponent/AmitySocialHomeTopNavigationComponent';
15
- import AmityEmptyNewsFeedComponent from '../../../../v4/PublicApi/Components/AmityEmptyNewsFeedComponent/AmityEmptyNewsFeedComponent';
16
15
  import AmityMyCommunitiesComponent from '../../../../v4/PublicApi/Components/AmityMyCommunitiesComponent/AmityMyCommunitiesComponent';
17
16
  import AmityNewsFeedComponent from '../../../../v4/PublicApi/Components/AmityNewsFeedComponent/AmityNewsFeedComponent';
18
17
  import AmityExploreComponent from '../../../../v4/PublicApi/Components/AmityExploreComponent/AmityExploreComponent';
19
- import NewsFeedLoadingComponent from '../../../../v4/component/NewsFeedLoadingComponent/NewsFeedLoadingComponent';
20
- import { useCustomRankingGlobalFeed } from '../../../../v4/hook/useCustomRankingGlobalFeed';
21
18
  import { MyMD3Theme } from '../../../../providers/amity-ui-kit-provider';
22
19
 
23
- LogBox.ignoreAllLogs(true);
24
20
  const AmitySocialHomePage = () => {
25
21
  const theme = useTheme() as MyMD3Theme;
26
22
  const styles = StyleSheet.create({
@@ -31,8 +27,6 @@ const AmitySocialHomePage = () => {
31
27
  });
32
28
 
33
29
  const { AmitySocialHomePageBehaviour } = useBehaviour();
34
- const { itemWithAds: globalFeedPosts, loading } =
35
- useCustomRankingGlobalFeed();
36
30
 
37
31
  const [newsFeedTab] = useUiKitConfig({
38
32
  page: PageID.social_home_page,
@@ -56,11 +50,13 @@ const AmitySocialHomePage = () => {
56
50
  }) as string[];
57
51
 
58
52
  const [activeTab, setActiveTab] = useState<string>(newsFeedTab);
53
+ const visitedTabs = useRef<Set<string>>(new Set([newsFeedTab]));
59
54
 
60
55
  const onTabChange = useCallback(
61
56
  (tabName: string) => {
62
57
  if (AmitySocialHomePageBehaviour.onChooseTab)
63
58
  return AmitySocialHomePageBehaviour.onChooseTab(tabName);
59
+ visitedTabs.current.add(tabName);
64
60
  setActiveTab(tabName);
65
61
  },
66
62
  [AmitySocialHomePageBehaviour]
@@ -70,30 +66,10 @@ const AmitySocialHomePage = () => {
70
66
  onTabChange(exploreTab);
71
67
  }, [exploreTab, onTabChange]);
72
68
 
73
- const renderNewsFeed = () => {
74
- if (loading) return <NewsFeedLoadingComponent />;
75
- if (activeTab === exploreTab)
76
- return <AmityExploreComponent pageId={PageID.social_home_page} />;
77
-
78
- if (activeTab === newsFeedTab) {
79
- if (!loading && globalFeedPosts?.length === 0)
80
- return (
81
- <AmityEmptyNewsFeedComponent
82
- pageId={PageID.social_home_page}
83
- onPressExploreCommunity={onPressExploreCommunity}
84
- />
85
- );
86
- return <AmityNewsFeedComponent pageId={PageID.social_home_page} />;
87
- }
88
- if (activeTab === myCommunitiesTab)
89
- return (
90
- <AmityMyCommunitiesComponent
91
- pageId={PageID.social_home_page}
92
- componentId={ComponentID.my_communities}
93
- />
94
- );
95
- return null;
96
- };
69
+ const tabStyle = (tab: string) => ({
70
+ flex: 1,
71
+ display: activeTab === tab ? ('flex' as const) : ('none' as const),
72
+ });
97
73
 
98
74
  return (
99
75
  <SafeAreaView
@@ -108,7 +84,25 @@ const AmitySocialHomePage = () => {
108
84
  onTabChange={onTabChange}
109
85
  activeTab={activeTab}
110
86
  />
111
- {renderNewsFeed()}
87
+ <View style={tabStyle(newsFeedTab)}>
88
+ <AmityNewsFeedComponent
89
+ pageId={PageID.social_home_page}
90
+ onPressExploreCommunity={onPressExploreCommunity}
91
+ />
92
+ </View>
93
+ {visitedTabs.current.has(exploreTab) && (
94
+ <View style={tabStyle(exploreTab)}>
95
+ <AmityExploreComponent pageId={PageID.social_home_page} />
96
+ </View>
97
+ )}
98
+ {visitedTabs.current.has(myCommunitiesTab) && (
99
+ <View style={tabStyle(myCommunitiesTab)}>
100
+ <AmityMyCommunitiesComponent
101
+ pageId={PageID.social_home_page}
102
+ componentId={ComponentID.my_communities}
103
+ />
104
+ </View>
105
+ )}
112
106
  </SafeAreaView>
113
107
  );
114
108
  };
@@ -152,7 +152,9 @@ function UserProfile({
152
152
  </TouchableOpacity>
153
153
  ),
154
154
  headerLeft: () => {
155
- return isShowBackButton ? <BackButton onPress={handleGoBack} /> : null;
155
+ return isShowBackButton ? (
156
+ <BackButton goBack={false} onPress={handleGoBack} />
157
+ ) : null;
156
158
  },
157
159
  });
158
160
  }, [
@@ -174,17 +176,32 @@ function UserProfile({
174
176
  }, [client]);
175
177
 
176
178
  useEffect(() => {
177
- if (!user?.avatarFileId) {
178
- return setAvatar(defaultAvatarUri);
179
- }
180
- (async () => {
179
+ const loadAvatar = async () => {
180
+ if (!user) {
181
+ setAvatar(defaultAvatarUri);
182
+ return;
183
+ }
184
+
185
+ if (user.avatarCustomUrl) {
186
+ setAvatar(user.avatarCustomUrl);
187
+ return;
188
+ }
189
+
190
+ if (!user.avatarFileId) {
191
+ setAvatar(defaultAvatarUri);
192
+ return;
193
+ }
194
+
181
195
  const avatarUrl = await getImage({
182
196
  fileId: user.avatarFileId,
183
197
  imageSize: ImageSizeState.small,
184
198
  });
199
+
185
200
  setAvatar(avatarUrl ?? defaultAvatarUri);
186
- })();
187
- }, [getImage, user?.avatarFileId]);
201
+ };
202
+
203
+ loadAvatar();
204
+ }, [getImage, user]);
188
205
 
189
206
  useFocusEffect(
190
207
  useCallback(() => {
@@ -595,6 +595,7 @@ const AmityViewStoryItem: FC<IAmityViewStoryItem> = ({
595
595
  <CommentList
596
596
  postId={currentStory?.storyId}
597
597
  postType="story"
598
+ disabledComment={!communityData?.allowCommentInStory}
598
599
  disabledInteraction={!communityData?.isJoined}
599
600
  onNavigate={onClose}
600
601
  />