@amityco/react-native-social-uikit 4.0.0-ca3519f.0 → 4.0.0-cfcb02e.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 (417) hide show
  1. package/README.md +1 -1
  2. package/lib/commonjs/components/CreatePostChooseTargetModal/CreatePostChooseTargetModal.js +1 -1
  3. package/lib/commonjs/components/CreatePostChooseTargetModal/CreatePostChooseTargetModal.js.map +1 -1
  4. package/lib/commonjs/components/ErrorBoundary/ErrorBoundary.js +77 -0
  5. package/lib/commonjs/components/ErrorBoundary/ErrorBoundary.js.map +1 -0
  6. package/lib/commonjs/components/ErrorBoundary/index.js +20 -0
  7. package/lib/commonjs/components/ErrorBoundary/index.js.map +1 -0
  8. package/lib/commonjs/components/MediaSection/index.js +3 -3
  9. package/lib/commonjs/components/MediaSection/index.js.map +1 -1
  10. package/lib/commonjs/components/PostTypeChoiceModal/PostTypeChoiceModal.js +14 -5
  11. package/lib/commonjs/components/PostTypeChoiceModal/PostTypeChoiceModal.js.map +1 -1
  12. package/lib/commonjs/components/PostTypeChoiceModal/style.js +1 -2
  13. package/lib/commonjs/components/PostTypeChoiceModal/style.js.map +1 -1
  14. package/lib/commonjs/components/Social/PostList/index.js +8 -5
  15. package/lib/commonjs/components/Social/PostList/index.js.map +1 -1
  16. package/lib/commonjs/hooks/useAuth.js +4 -2
  17. package/lib/commonjs/hooks/useAuth.js.map +1 -1
  18. package/lib/commonjs/index.js +13 -0
  19. package/lib/commonjs/index.js.map +1 -1
  20. package/lib/commonjs/providers/Social/communities-sdk.js +2 -1
  21. package/lib/commonjs/providers/Social/communities-sdk.js.map +1 -1
  22. package/lib/commonjs/providers/amity-ui-kit-provider.js +4 -2
  23. package/lib/commonjs/providers/amity-ui-kit-provider.js.map +1 -1
  24. package/lib/commonjs/providers/auth-provider.js +20 -11
  25. package/lib/commonjs/providers/auth-provider.js.map +1 -1
  26. package/lib/commonjs/screens/CreateLivestream/CreateLivestream.js +16 -16
  27. package/lib/commonjs/screens/CreateLivestream/CreateLivestream.js.map +1 -1
  28. package/lib/commonjs/screens/LivestreamPlayer/index.js +3 -6
  29. package/lib/commonjs/screens/LivestreamPlayer/index.js.map +1 -1
  30. package/lib/commonjs/svg/svg-xml-list.js +1 -1
  31. package/lib/commonjs/util/postTypeChecker.js.map +1 -1
  32. package/lib/commonjs/v4/PublicApi/Components/AmityCreatePostMenuComponent/AmityCreatePostMenuComponent.js +43 -25
  33. package/lib/commonjs/v4/PublicApi/Components/AmityCreatePostMenuComponent/AmityCreatePostMenuComponent.js.map +1 -1
  34. package/lib/commonjs/v4/PublicApi/Components/AmityPostCommentComponent/AmityPostCommentComponent.js +4 -16
  35. package/lib/commonjs/v4/PublicApi/Components/AmityPostCommentComponent/AmityPostCommentComponent.js.map +1 -1
  36. package/lib/commonjs/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/CommentListItem.js +22 -9
  37. package/lib/commonjs/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/CommentListItem.js.map +1 -1
  38. package/lib/commonjs/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/styles.js +4 -3
  39. package/lib/commonjs/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/styles.js.map +1 -1
  40. package/lib/commonjs/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/index.js +14 -13
  41. package/lib/commonjs/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/index.js.map +1 -1
  42. package/lib/commonjs/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/styles.js +8 -10
  43. package/lib/commonjs/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/styles.js.map +1 -1
  44. package/lib/commonjs/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.js +2 -1
  45. package/lib/commonjs/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.js.map +1 -1
  46. package/lib/commonjs/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/DetailStyle.js +1 -1
  47. package/lib/commonjs/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/DetailStyle.js.map +1 -1
  48. package/lib/commonjs/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/FeedStyle.js +2 -1
  49. package/lib/commonjs/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/FeedStyle.js.map +1 -1
  50. package/lib/commonjs/v4/PublicApi/Elements/ButtonWithIconElement/styles.js +3 -2
  51. package/lib/commonjs/v4/PublicApi/Elements/ButtonWithIconElement/styles.js.map +1 -1
  52. package/lib/commonjs/v4/PublicApi/Elements/CommonElements/AvatarElement.js +16 -9
  53. package/lib/commonjs/v4/PublicApi/Elements/CommonElements/AvatarElement.js.map +1 -1
  54. package/lib/commonjs/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.js +28 -25
  55. package/lib/commonjs/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.js.map +1 -1
  56. package/lib/commonjs/v4/PublicApi/Pages/AmityCommunityProfilePage/styles.js +2 -2
  57. package/lib/commonjs/v4/PublicApi/Pages/AmityCommunityProfilePage/styles.js.map +1 -1
  58. package/lib/commonjs/v4/PublicApi/Pages/AmityCreateLivestreamPage/AmityCreateLivestreamPage.js +231 -76
  59. package/lib/commonjs/v4/PublicApi/Pages/AmityCreateLivestreamPage/AmityCreateLivestreamPage.js.map +1 -1
  60. package/lib/commonjs/v4/PublicApi/Pages/AmityCreateLivestreamPage/RoomView.js +50 -0
  61. package/lib/commonjs/v4/PublicApi/Pages/AmityCreateLivestreamPage/RoomView.js.map +1 -0
  62. package/lib/commonjs/v4/PublicApi/Pages/AmityCreateLivestreamPage/styles.js +71 -3
  63. package/lib/commonjs/v4/PublicApi/Pages/AmityCreateLivestreamPage/styles.js.map +1 -1
  64. package/lib/commonjs/v4/PublicApi/Pages/AmityLivestreamPlayerPage/AmityLivestreamPlayerPage.js +113 -124
  65. package/lib/commonjs/v4/PublicApi/Pages/AmityLivestreamPlayerPage/AmityLivestreamPlayerPage.js.map +1 -1
  66. package/lib/commonjs/v4/PublicApi/Pages/AmityLivestreamPlayerPage/styles.js +3 -2
  67. package/lib/commonjs/v4/PublicApi/Pages/AmityLivestreamPlayerPage/styles.js.map +1 -1
  68. package/lib/commonjs/v4/PublicApi/Pages/AmityPostDetailPage/AmityPostDetailPage.js +21 -2
  69. package/lib/commonjs/v4/PublicApi/Pages/AmityPostDetailPage/AmityPostDetailPage.js.map +1 -1
  70. package/lib/commonjs/v4/PublicApi/Pages/AmitySocialGlobalSearchPage/AmitySocialGlobalSearchPage.js.map +1 -1
  71. package/lib/commonjs/v4/PublicApi/Pages/AmityUserProfilePage/AmityUserProfilePage.js +17 -6
  72. package/lib/commonjs/v4/PublicApi/Pages/AmityUserProfilePage/AmityUserProfilePage.js.map +1 -1
  73. package/lib/commonjs/v4/PublicApi/Pages/AmityViewStoryPage/Components/AmityViewStoryItem.js +1 -1
  74. package/lib/commonjs/v4/assets/icons/poll.js +2 -2
  75. package/lib/commonjs/v4/component/LivestreamContent/index.js +12 -12
  76. package/lib/commonjs/v4/component/LivestreamContent/index.js.map +1 -1
  77. package/lib/commonjs/v4/component/MyAvatar/MyAvatar.js +9 -6
  78. package/lib/commonjs/v4/component/MyAvatar/MyAvatar.js.map +1 -1
  79. package/lib/commonjs/v4/component/PollContent/PollResults.js +1 -0
  80. package/lib/commonjs/v4/component/PollContent/PollResults.js.map +1 -1
  81. package/lib/commonjs/v4/component/PostContent/index.js +4 -4
  82. package/lib/commonjs/v4/component/PostContent/index.js.map +1 -1
  83. package/lib/commonjs/v4/component/PostMenu/index.js +2 -2
  84. package/lib/commonjs/v4/component/PostMenu/index.js.map +1 -1
  85. package/lib/commonjs/v4/component/RenderTextWithMention/RenderTextWithMention.js +16 -9
  86. package/lib/commonjs/v4/component/RenderTextWithMention/RenderTextWithMention.js.map +1 -1
  87. package/lib/commonjs/v4/component/SearchResultItem/SearchResultItem.js +1 -0
  88. package/lib/commonjs/v4/component/SearchResultItem/SearchResultItem.js.map +1 -1
  89. package/lib/commonjs/v4/component/Toast/index.js +4 -4
  90. package/lib/commonjs/v4/component/Toast/index.js.map +1 -1
  91. package/lib/commonjs/v4/component/Toast/styles.js +2 -2
  92. package/lib/commonjs/v4/component/Toast/styles.js.map +1 -1
  93. package/lib/commonjs/v4/constants/index.js +4 -2
  94. package/lib/commonjs/v4/constants/index.js.map +1 -1
  95. package/lib/commonjs/v4/elements/CommunityCreatePostButton/CommunityCreatePostButton.js +1 -1
  96. package/lib/commonjs/v4/elements/CommunityCreatePostButton/CommunityCreatePostButton.js.map +1 -1
  97. package/lib/commonjs/v4/engine/AssetDownloader.js +2 -1
  98. package/lib/commonjs/v4/engine/AssetDownloader.js.map +1 -1
  99. package/lib/commonjs/v4/enum/roomStatus.js +15 -0
  100. package/lib/commonjs/v4/enum/roomStatus.js.map +1 -0
  101. package/lib/commonjs/v4/features/room/hooks/useRoom.js +26 -0
  102. package/lib/commonjs/v4/features/room/hooks/useRoom.js.map +1 -0
  103. package/lib/commonjs/v4/hook/index.js +22 -0
  104. package/lib/commonjs/v4/hook/index.js.map +1 -1
  105. package/lib/commonjs/v4/hook/useCustomRankingGlobalFeed.js +1 -3
  106. package/lib/commonjs/v4/hook/useCustomRankingGlobalFeed.js.map +1 -1
  107. package/lib/commonjs/v4/hook/usePostSubscription.js +38 -0
  108. package/lib/commonjs/v4/hook/usePostSubscription.js.map +1 -0
  109. package/lib/commonjs/v4/hook/useRoomSubscription.js +22 -0
  110. package/lib/commonjs/v4/hook/useRoomSubscription.js.map +1 -0
  111. package/lib/commonjs/v4/index.js +7 -0
  112. package/lib/commonjs/v4/index.js.map +1 -1
  113. package/lib/commonjs/v4/routes/AmityPageRenderer.js +5 -0
  114. package/lib/commonjs/v4/routes/AmityPageRenderer.js.map +1 -1
  115. package/lib/commonjs/v4/routes/AmitySocialUIKitV4Navigator.js +4 -1
  116. package/lib/commonjs/v4/routes/AmitySocialUIKitV4Navigator.js.map +1 -1
  117. package/lib/commonjs/v4/screen/GlobalBan/GlobalBan.js +42 -0
  118. package/lib/commonjs/v4/screen/GlobalBan/GlobalBan.js.map +1 -0
  119. package/lib/commonjs/v4/screen/GlobalBan/index.js +13 -0
  120. package/lib/commonjs/v4/screen/GlobalBan/index.js.map +1 -0
  121. package/lib/commonjs/v4/screen/GlobalBan/styles.js +46 -0
  122. package/lib/commonjs/v4/screen/GlobalBan/styles.js.map +1 -0
  123. package/lib/commonjs/v4/screen/PostDetail/index.js +3 -2
  124. package/lib/commonjs/v4/screen/PostDetail/index.js.map +1 -1
  125. package/lib/commonjs/v4/stores/slices/toast.js +4 -1
  126. package/lib/commonjs/v4/stores/slices/toast.js.map +1 -1
  127. package/lib/module/components/CreatePostChooseTargetModal/CreatePostChooseTargetModal.js +1 -1
  128. package/lib/module/components/CreatePostChooseTargetModal/CreatePostChooseTargetModal.js.map +1 -1
  129. package/lib/module/components/ErrorBoundary/ErrorBoundary.js +69 -0
  130. package/lib/module/components/ErrorBoundary/ErrorBoundary.js.map +1 -0
  131. package/lib/module/components/ErrorBoundary/index.js +3 -0
  132. package/lib/module/components/ErrorBoundary/index.js.map +1 -0
  133. package/lib/module/components/MediaSection/index.js +3 -3
  134. package/lib/module/components/MediaSection/index.js.map +1 -1
  135. package/lib/module/components/PostTypeChoiceModal/PostTypeChoiceModal.js +15 -8
  136. package/lib/module/components/PostTypeChoiceModal/PostTypeChoiceModal.js.map +1 -1
  137. package/lib/module/components/PostTypeChoiceModal/style.js +1 -2
  138. package/lib/module/components/PostTypeChoiceModal/style.js.map +1 -1
  139. package/lib/module/components/Social/PostList/index.js +8 -5
  140. package/lib/module/components/Social/PostList/index.js.map +1 -1
  141. package/lib/module/hooks/useAuth.js +4 -2
  142. package/lib/module/hooks/useAuth.js.map +1 -1
  143. package/lib/module/index.js +3 -6
  144. package/lib/module/index.js.map +1 -1
  145. package/lib/module/providers/Social/communities-sdk.js +2 -1
  146. package/lib/module/providers/Social/communities-sdk.js.map +1 -1
  147. package/lib/module/providers/amity-ui-kit-provider.js +4 -2
  148. package/lib/module/providers/amity-ui-kit-provider.js.map +1 -1
  149. package/lib/module/providers/auth-provider.js +20 -11
  150. package/lib/module/providers/auth-provider.js.map +1 -1
  151. package/lib/module/screens/CreateLivestream/CreateLivestream.js +17 -17
  152. package/lib/module/screens/CreateLivestream/CreateLivestream.js.map +1 -1
  153. package/lib/module/screens/LivestreamPlayer/index.js +4 -8
  154. package/lib/module/screens/LivestreamPlayer/index.js.map +1 -1
  155. package/lib/module/svg/svg-xml-list.js +1 -1
  156. package/lib/module/util/postTypeChecker.js.map +1 -1
  157. package/lib/module/v4/PublicApi/Components/AmityCreatePostMenuComponent/AmityCreatePostMenuComponent.js +44 -26
  158. package/lib/module/v4/PublicApi/Components/AmityCreatePostMenuComponent/AmityCreatePostMenuComponent.js.map +1 -1
  159. package/lib/module/v4/PublicApi/Components/AmityPostCommentComponent/AmityPostCommentComponent.js +4 -16
  160. package/lib/module/v4/PublicApi/Components/AmityPostCommentComponent/AmityPostCommentComponent.js.map +1 -1
  161. package/lib/module/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/CommentListItem.js +22 -9
  162. package/lib/module/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/CommentListItem.js.map +1 -1
  163. package/lib/module/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/styles.js +4 -3
  164. package/lib/module/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/styles.js.map +1 -1
  165. package/lib/module/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/index.js +14 -13
  166. package/lib/module/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/index.js.map +1 -1
  167. package/lib/module/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/styles.js +8 -10
  168. package/lib/module/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/styles.js.map +1 -1
  169. package/lib/module/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.js +2 -1
  170. package/lib/module/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.js.map +1 -1
  171. package/lib/module/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/DetailStyle.js +1 -1
  172. package/lib/module/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/DetailStyle.js.map +1 -1
  173. package/lib/module/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/FeedStyle.js +2 -1
  174. package/lib/module/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/FeedStyle.js.map +1 -1
  175. package/lib/module/v4/PublicApi/Elements/ButtonWithIconElement/styles.js +3 -2
  176. package/lib/module/v4/PublicApi/Elements/ButtonWithIconElement/styles.js.map +1 -1
  177. package/lib/module/v4/PublicApi/Elements/CommonElements/AvatarElement.js +16 -9
  178. package/lib/module/v4/PublicApi/Elements/CommonElements/AvatarElement.js.map +1 -1
  179. package/lib/module/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.js +29 -26
  180. package/lib/module/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.js.map +1 -1
  181. package/lib/module/v4/PublicApi/Pages/AmityCommunityProfilePage/styles.js +2 -2
  182. package/lib/module/v4/PublicApi/Pages/AmityCommunityProfilePage/styles.js.map +1 -1
  183. package/lib/module/v4/PublicApi/Pages/AmityCreateLivestreamPage/AmityCreateLivestreamPage.js +236 -80
  184. package/lib/module/v4/PublicApi/Pages/AmityCreateLivestreamPage/AmityCreateLivestreamPage.js.map +1 -1
  185. package/lib/module/v4/PublicApi/Pages/AmityCreateLivestreamPage/RoomView.js +42 -0
  186. package/lib/module/v4/PublicApi/Pages/AmityCreateLivestreamPage/RoomView.js.map +1 -0
  187. package/lib/module/v4/PublicApi/Pages/AmityCreateLivestreamPage/styles.js +71 -3
  188. package/lib/module/v4/PublicApi/Pages/AmityCreateLivestreamPage/styles.js.map +1 -1
  189. package/lib/module/v4/PublicApi/Pages/AmityLivestreamPlayerPage/AmityLivestreamPlayerPage.js +115 -126
  190. package/lib/module/v4/PublicApi/Pages/AmityLivestreamPlayerPage/AmityLivestreamPlayerPage.js.map +1 -1
  191. package/lib/module/v4/PublicApi/Pages/AmityLivestreamPlayerPage/styles.js +3 -2
  192. package/lib/module/v4/PublicApi/Pages/AmityLivestreamPlayerPage/styles.js.map +1 -1
  193. package/lib/module/v4/PublicApi/Pages/AmityPostDetailPage/AmityPostDetailPage.js +21 -2
  194. package/lib/module/v4/PublicApi/Pages/AmityPostDetailPage/AmityPostDetailPage.js.map +1 -1
  195. package/lib/module/v4/PublicApi/Pages/AmitySocialGlobalSearchPage/AmitySocialGlobalSearchPage.js.map +1 -1
  196. package/lib/module/v4/PublicApi/Pages/AmityUserProfilePage/AmityUserProfilePage.js +17 -6
  197. package/lib/module/v4/PublicApi/Pages/AmityUserProfilePage/AmityUserProfilePage.js.map +1 -1
  198. package/lib/module/v4/PublicApi/Pages/AmityViewStoryPage/Components/AmityViewStoryItem.js +1 -1
  199. package/lib/module/v4/PublicApi/Pages/AmityViewStoryPage/Components/AmityViewStoryItem.js.map +1 -1
  200. package/lib/module/v4/assets/icons/poll.js +2 -2
  201. package/lib/module/v4/component/LivestreamContent/index.js +13 -13
  202. package/lib/module/v4/component/LivestreamContent/index.js.map +1 -1
  203. package/lib/module/v4/component/MyAvatar/MyAvatar.js +9 -6
  204. package/lib/module/v4/component/MyAvatar/MyAvatar.js.map +1 -1
  205. package/lib/module/v4/component/PollContent/PollResults.js +1 -0
  206. package/lib/module/v4/component/PollContent/PollResults.js.map +1 -1
  207. package/lib/module/v4/component/PostContent/index.js +4 -4
  208. package/lib/module/v4/component/PostContent/index.js.map +1 -1
  209. package/lib/module/v4/component/PostMenu/index.js +2 -2
  210. package/lib/module/v4/component/PostMenu/index.js.map +1 -1
  211. package/lib/module/v4/component/RenderTextWithMention/RenderTextWithMention.js +17 -10
  212. package/lib/module/v4/component/RenderTextWithMention/RenderTextWithMention.js.map +1 -1
  213. package/lib/module/v4/component/SearchResultItem/SearchResultItem.js +1 -0
  214. package/lib/module/v4/component/SearchResultItem/SearchResultItem.js.map +1 -1
  215. package/lib/module/v4/component/Toast/index.js +4 -4
  216. package/lib/module/v4/component/Toast/index.js.map +1 -1
  217. package/lib/module/v4/component/Toast/styles.js +2 -2
  218. package/lib/module/v4/component/Toast/styles.js.map +1 -1
  219. package/lib/module/v4/constants/index.js +3 -1
  220. package/lib/module/v4/constants/index.js.map +1 -1
  221. package/lib/module/v4/elements/CommunityCreatePostButton/CommunityCreatePostButton.js +1 -1
  222. package/lib/module/v4/elements/CommunityCreatePostButton/CommunityCreatePostButton.js.map +1 -1
  223. package/lib/module/v4/engine/AssetDownloader.js +2 -1
  224. package/lib/module/v4/engine/AssetDownloader.js.map +1 -1
  225. package/lib/module/v4/enum/roomStatus.js +9 -0
  226. package/lib/module/v4/enum/roomStatus.js.map +1 -0
  227. package/lib/module/v4/features/room/hooks/useRoom.js +20 -0
  228. package/lib/module/v4/features/room/hooks/useRoom.js.map +1 -0
  229. package/lib/module/v4/hook/index.js +2 -0
  230. package/lib/module/v4/hook/index.js.map +1 -1
  231. package/lib/module/v4/hook/useCustomRankingGlobalFeed.js +1 -3
  232. package/lib/module/v4/hook/useCustomRankingGlobalFeed.js.map +1 -1
  233. package/lib/module/v4/hook/usePostSubscription.js +31 -0
  234. package/lib/module/v4/hook/usePostSubscription.js.map +1 -0
  235. package/lib/module/v4/hook/useRoomSubscription.js +15 -0
  236. package/lib/module/v4/hook/useRoomSubscription.js.map +1 -0
  237. package/lib/module/v4/index.js +1 -1
  238. package/lib/module/v4/index.js.map +1 -1
  239. package/lib/module/v4/routes/AmityPageRenderer.js +5 -0
  240. package/lib/module/v4/routes/AmityPageRenderer.js.map +1 -1
  241. package/lib/module/v4/routes/AmitySocialUIKitV4Navigator.js +4 -1
  242. package/lib/module/v4/routes/AmitySocialUIKitV4Navigator.js.map +1 -1
  243. package/lib/module/v4/screen/GlobalBan/GlobalBan.js +35 -0
  244. package/lib/module/v4/screen/GlobalBan/GlobalBan.js.map +1 -0
  245. package/lib/module/v4/screen/GlobalBan/index.js +2 -0
  246. package/lib/module/v4/screen/GlobalBan/index.js.map +1 -0
  247. package/lib/module/v4/screen/GlobalBan/styles.js +39 -0
  248. package/lib/module/v4/screen/GlobalBan/styles.js.map +1 -0
  249. package/lib/module/v4/screen/PostDetail/index.js +3 -2
  250. package/lib/module/v4/screen/PostDetail/index.js.map +1 -1
  251. package/lib/module/v4/stores/slices/toast.js +4 -1
  252. package/lib/module/v4/stores/slices/toast.js.map +1 -1
  253. package/lib/typescript/src/components/ErrorBoundary/ErrorBoundary.d.ts +20 -0
  254. package/lib/typescript/src/components/ErrorBoundary/ErrorBoundary.d.ts.map +1 -0
  255. package/lib/typescript/src/components/ErrorBoundary/index.d.ts +3 -0
  256. package/lib/typescript/src/components/ErrorBoundary/index.d.ts.map +1 -0
  257. package/lib/typescript/src/components/MediaSection/index.d.ts.map +1 -1
  258. package/lib/typescript/src/components/PostTypeChoiceModal/style.d.ts +1 -2
  259. package/lib/typescript/src/components/PostTypeChoiceModal/style.d.ts.map +1 -1
  260. package/lib/typescript/src/components/Social/PostList/index.d.ts +1 -3
  261. package/lib/typescript/src/components/Social/PostList/index.d.ts.map +1 -1
  262. package/lib/typescript/src/hooks/useAuth.d.ts.map +1 -1
  263. package/lib/typescript/src/index.d.ts +3 -2
  264. package/lib/typescript/src/index.d.ts.map +1 -1
  265. package/lib/typescript/src/providers/amity-ui-kit-provider.d.ts.map +1 -1
  266. package/lib/typescript/src/providers/auth-provider.d.ts.map +1 -1
  267. package/lib/typescript/src/screens/LivestreamPlayer/index.d.ts.map +1 -1
  268. package/lib/typescript/src/types/auth.interface.d.ts +1 -0
  269. package/lib/typescript/src/types/auth.interface.d.ts.map +1 -1
  270. package/lib/typescript/src/types/user.interface.d.ts +1 -0
  271. package/lib/typescript/src/types/user.interface.d.ts.map +1 -1
  272. package/lib/typescript/src/util/postTypeChecker.d.ts +1 -1
  273. package/lib/typescript/src/util/postTypeChecker.d.ts.map +1 -1
  274. package/lib/typescript/src/v4/PublicApi/Components/AmityCreatePostMenuComponent/AmityCreatePostMenuComponent.d.ts.map +1 -1
  275. package/lib/typescript/src/v4/PublicApi/Components/AmityPostCommentComponent/AmityPostCommentComponent.d.ts.map +1 -1
  276. package/lib/typescript/src/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/CommentListItem.d.ts.map +1 -1
  277. package/lib/typescript/src/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/styles.d.ts +1 -0
  278. package/lib/typescript/src/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/styles.d.ts.map +1 -1
  279. package/lib/typescript/src/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/index.d.ts +1 -2
  280. package/lib/typescript/src/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/index.d.ts.map +1 -1
  281. package/lib/typescript/src/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/styles.d.ts +3 -5
  282. package/lib/typescript/src/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/styles.d.ts.map +1 -1
  283. package/lib/typescript/src/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.d.ts +1 -3
  284. package/lib/typescript/src/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.d.ts.map +1 -1
  285. package/lib/typescript/src/v4/PublicApi/Elements/ButtonWithIconElement/styles.d.ts +1 -0
  286. package/lib/typescript/src/v4/PublicApi/Elements/ButtonWithIconElement/styles.d.ts.map +1 -1
  287. package/lib/typescript/src/v4/PublicApi/Elements/CommonElements/AvatarElement.d.ts +1 -0
  288. package/lib/typescript/src/v4/PublicApi/Elements/CommonElements/AvatarElement.d.ts.map +1 -1
  289. package/lib/typescript/src/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.d.ts.map +1 -1
  290. package/lib/typescript/src/v4/PublicApi/Pages/AmityCommunityProfilePage/styles.d.ts +1 -1
  291. package/lib/typescript/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/AmityCreateLivestreamPage.d.ts.map +1 -1
  292. package/lib/typescript/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/RoomView.d.ts +8 -0
  293. package/lib/typescript/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/RoomView.d.ts.map +1 -0
  294. package/lib/typescript/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/styles.d.ts +70 -2
  295. package/lib/typescript/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/styles.d.ts.map +1 -1
  296. package/lib/typescript/src/v4/PublicApi/Pages/AmityLivestreamPlayerPage/AmityLivestreamPlayerPage.d.ts.map +1 -1
  297. package/lib/typescript/src/v4/PublicApi/Pages/AmityLivestreamPlayerPage/styles.d.ts +1 -0
  298. package/lib/typescript/src/v4/PublicApi/Pages/AmityLivestreamPlayerPage/styles.d.ts.map +1 -1
  299. package/lib/typescript/src/v4/PublicApi/Pages/AmityPostDetailPage/AmityPostDetailPage.d.ts +1 -0
  300. package/lib/typescript/src/v4/PublicApi/Pages/AmityPostDetailPage/AmityPostDetailPage.d.ts.map +1 -1
  301. package/lib/typescript/src/v4/PublicApi/Pages/AmitySocialGlobalSearchPage/AmitySocialGlobalSearchPage.d.ts.map +1 -1
  302. package/lib/typescript/src/v4/PublicApi/Pages/AmityUserProfilePage/AmityUserProfilePage.d.ts.map +1 -1
  303. package/lib/typescript/src/v4/component/LivestreamContent/index.d.ts +1 -1
  304. package/lib/typescript/src/v4/component/LivestreamContent/index.d.ts.map +1 -1
  305. package/lib/typescript/src/v4/component/MyAvatar/MyAvatar.d.ts.map +1 -1
  306. package/lib/typescript/src/v4/component/PollContent/PollResults.d.ts.map +1 -1
  307. package/lib/typescript/src/v4/component/PostContent/index.d.ts.map +1 -1
  308. package/lib/typescript/src/v4/component/RenderTextWithMention/RenderTextWithMention.d.ts.map +1 -1
  309. package/lib/typescript/src/v4/component/SearchResultItem/SearchResultItem.d.ts.map +1 -1
  310. package/lib/typescript/src/v4/component/Toast/styles.d.ts +1 -1
  311. package/lib/typescript/src/v4/component/Toast/styles.d.ts.map +1 -1
  312. package/lib/typescript/src/v4/constants/index.d.ts +2 -0
  313. package/lib/typescript/src/v4/constants/index.d.ts.map +1 -1
  314. package/lib/typescript/src/v4/enum/roomStatus.d.ts +9 -0
  315. package/lib/typescript/src/v4/enum/roomStatus.d.ts.map +1 -0
  316. package/lib/typescript/src/v4/features/room/hooks/useRoom.d.ts +2 -0
  317. package/lib/typescript/src/v4/features/room/hooks/useRoom.d.ts.map +1 -0
  318. package/lib/typescript/src/v4/hook/index.d.ts +2 -0
  319. package/lib/typescript/src/v4/hook/index.d.ts.map +1 -1
  320. package/lib/typescript/src/v4/hook/usePendingPostQuery.d.ts +3 -0
  321. package/lib/typescript/src/v4/hook/usePendingPostQuery.d.ts.map +1 -1
  322. package/lib/typescript/src/v4/hook/usePostSubscription.d.ts +4 -0
  323. package/lib/typescript/src/v4/hook/usePostSubscription.d.ts.map +1 -0
  324. package/lib/typescript/src/v4/hook/useRoomSubscription.d.ts +4 -0
  325. package/lib/typescript/src/v4/hook/useRoomSubscription.d.ts.map +1 -0
  326. package/lib/typescript/src/v4/index.d.ts +1 -0
  327. package/lib/typescript/src/v4/index.d.ts.map +1 -1
  328. package/lib/typescript/src/v4/routes/AmityPageRenderer.d.ts.map +1 -1
  329. package/lib/typescript/src/v4/routes/AmitySocialUIKitV4Navigator.d.ts.map +1 -1
  330. package/lib/typescript/src/v4/routes/RouteParamList.d.ts +2 -1
  331. package/lib/typescript/src/v4/routes/RouteParamList.d.ts.map +1 -1
  332. package/lib/typescript/src/v4/screen/GlobalBan/GlobalBan.d.ts +3 -0
  333. package/lib/typescript/src/v4/screen/GlobalBan/GlobalBan.d.ts.map +1 -0
  334. package/lib/typescript/src/v4/screen/GlobalBan/index.d.ts +2 -0
  335. package/lib/typescript/src/v4/screen/GlobalBan/index.d.ts.map +1 -0
  336. package/lib/typescript/src/v4/screen/GlobalBan/styles.d.ts +34 -0
  337. package/lib/typescript/src/v4/screen/GlobalBan/styles.d.ts.map +1 -0
  338. package/lib/typescript/src/v4/screen/PostDetail/index.d.ts.map +1 -1
  339. package/lib/typescript/src/v4/stores/slices/toast.d.ts +1 -0
  340. package/lib/typescript/src/v4/stores/slices/toast.d.ts.map +1 -1
  341. package/package.json +10 -4
  342. package/src/components/CreatePostChooseTargetModal/CreatePostChooseTargetModal.tsx +1 -1
  343. package/src/components/ErrorBoundary/ErrorBoundary.tsx +84 -0
  344. package/src/components/ErrorBoundary/index.ts +2 -0
  345. package/src/components/MediaSection/index.tsx +4 -6
  346. package/src/components/PostTypeChoiceModal/PostTypeChoiceModal.tsx +15 -15
  347. package/src/components/PostTypeChoiceModal/style.ts +1 -2
  348. package/src/components/Social/PostList/index.tsx +8 -6
  349. package/src/hooks/useAuth.ts +2 -0
  350. package/src/index.tsx +4 -2
  351. package/src/providers/Social/communities-sdk.ts +1 -1
  352. package/src/providers/amity-ui-kit-provider.tsx +33 -27
  353. package/src/providers/auth-provider.tsx +17 -7
  354. package/src/screens/CreateLivestream/CreateLivestream.tsx +17 -17
  355. package/src/screens/LivestreamPlayer/index.tsx +9 -15
  356. package/src/svg/svg-xml-list.ts +1 -1
  357. package/src/types/auth.interface.ts +1 -0
  358. package/src/types/user.interface.ts +1 -0
  359. package/src/util/postTypeChecker.ts +1 -1
  360. package/src/v4/PublicApi/Components/AmityCreatePostMenuComponent/AmityCreatePostMenuComponent.tsx +47 -31
  361. package/src/v4/PublicApi/Components/AmityPostCommentComponent/AmityPostCommentComponent.tsx +4 -11
  362. package/src/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/CommentListItem.tsx +39 -15
  363. package/src/v4/PublicApi/Components/AmityPostCommentComponent/CommentListItem/styles.ts +3 -2
  364. package/src/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/index.tsx +38 -23
  365. package/src/v4/PublicApi/Components/AmityPostCommentComponent/ReplyCommentList/styles.ts +5 -7
  366. package/src/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.tsx +2 -1
  367. package/src/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/DetailStyle.tsx +1 -1
  368. package/src/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/FeedStyle.tsx +1 -1
  369. package/src/v4/PublicApi/Elements/ButtonWithIconElement/styles.ts +3 -2
  370. package/src/v4/PublicApi/Elements/CommonElements/AvatarElement.tsx +23 -10
  371. package/src/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.tsx +24 -25
  372. package/src/v4/PublicApi/Pages/AmityCommunityProfilePage/styles.ts +2 -2
  373. package/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/AmityCreateLivestreamPage.tsx +273 -101
  374. package/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/RoomView.tsx +48 -0
  375. package/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/styles.ts +72 -3
  376. package/src/v4/PublicApi/Pages/AmityLivestreamPlayerPage/AmityLivestreamPlayerPage.tsx +150 -155
  377. package/src/v4/PublicApi/Pages/AmityLivestreamPlayerPage/styles.ts +3 -1
  378. package/src/v4/PublicApi/Pages/AmityPostDetailPage/AmityPostDetailPage.tsx +20 -1
  379. package/src/v4/PublicApi/Pages/AmitySocialGlobalSearchPage/AmitySocialGlobalSearchPage.tsx +0 -1
  380. package/src/v4/PublicApi/Pages/AmityUserProfilePage/AmityUserProfilePage.tsx +24 -7
  381. package/src/v4/PublicApi/Pages/AmityViewStoryPage/Components/AmityViewStoryItem.tsx +1 -1
  382. package/src/v4/assets/icons/poll.tsx +2 -2
  383. package/src/v4/component/LivestreamContent/index.tsx +22 -22
  384. package/src/v4/component/MyAvatar/MyAvatar.tsx +12 -6
  385. package/src/v4/component/PollContent/PollResults.tsx +1 -0
  386. package/src/v4/component/PostContent/index.tsx +6 -8
  387. package/src/v4/component/PostMenu/index.tsx +2 -2
  388. package/src/v4/component/RenderTextWithMention/RenderTextWithMention.tsx +16 -10
  389. package/src/v4/component/SearchResultItem/SearchResultItem.tsx +3 -0
  390. package/src/v4/component/Toast/index.tsx +1 -1
  391. package/src/v4/component/Toast/styles.ts +2 -2
  392. package/src/v4/constants/index.ts +4 -0
  393. package/src/v4/elements/CommunityCreatePostButton/CommunityCreatePostButton.tsx +1 -1
  394. package/src/v4/engine/AssetDownloader.ts +1 -1
  395. package/src/v4/enum/roomStatus.ts +8 -0
  396. package/src/v4/features/room/hooks/useRoom.ts +20 -0
  397. package/src/v4/hook/index.ts +2 -0
  398. package/src/v4/hook/useCustomRankingGlobalFeed.ts +1 -1
  399. package/src/v4/hook/usePostSubscription.ts +34 -0
  400. package/src/v4/hook/useRoomSubscription.ts +19 -0
  401. package/src/v4/index.tsx +1 -1
  402. package/src/v4/routes/AmityPageRenderer.tsx +6 -0
  403. package/src/v4/routes/AmitySocialUIKitV4Navigator.tsx +5 -1
  404. package/src/v4/routes/RouteParamList.tsx +2 -1
  405. package/src/v4/screen/GlobalBan/GlobalBan.tsx +38 -0
  406. package/src/v4/screen/GlobalBan/index.ts +1 -0
  407. package/src/v4/screen/GlobalBan/styles.ts +39 -0
  408. package/src/v4/screen/PostDetail/index.tsx +1 -0
  409. package/src/v4/stores/slices/toast.ts +5 -0
  410. package/uikit.config.json +1 -1
  411. package/lib/commonjs/v4/enum/livestreamStatus.js +0 -13
  412. package/lib/commonjs/v4/enum/livestreamStatus.js.map +0 -1
  413. package/lib/module/v4/enum/livestreamStatus.js +0 -7
  414. package/lib/module/v4/enum/livestreamStatus.js.map +0 -1
  415. package/lib/typescript/src/v4/enum/livestreamStatus.d.ts +0 -7
  416. package/lib/typescript/src/v4/enum/livestreamStatus.d.ts.map +0 -1
  417. package/src/v4/enum/livestreamStatus.ts +0 -6
@@ -7,14 +7,14 @@ import {
7
7
  ImageStyle,
8
8
  } from 'react-native';
9
9
  import React, { useEffect, useState, useCallback, Fragment } from 'react';
10
- import { FileRepository, StreamRepository } from '@amityco/ts-sdk-react-native';
10
+ import { FileRepository, RoomRepository } from '@amityco/ts-sdk-react-native';
11
11
  import { useStyles } from './styles';
12
12
  import { useNavigation } from '@react-navigation/native';
13
13
  import { SvgXml } from 'react-native-svg';
14
14
  import type { NativeStackNavigationProp } from '@react-navigation/native-stack';
15
15
  import { play } from '../../assets/icons';
16
16
  import { Typography } from '../Typography/Typography';
17
- import { LivestreamStatus } from '../../enum/livestreamStatus';
17
+ import { RoomStatus } from '../../enum/roomStatus';
18
18
  import LiveStreamEndThumbnail from './LivestreamEndedThumbnail';
19
19
  import LiveStreamIdleThumbnail from './LivestreamIdleThumbnail';
20
20
  import RenderTextWithMention from '../RenderTextWithMention/RenderTextWithMention';
@@ -22,14 +22,14 @@ import { RootStackParamList } from '../../routes/RouteParamList';
22
22
  import LiveStreamTerminatedThumbnail from './LivestreamTerminatedThumbnail';
23
23
 
24
24
  interface ILivestreamContent {
25
- streamId: Amity.Stream['streamId'];
25
+ roomId: Amity.Room['roomId'];
26
26
  onPressPost: () => void;
27
27
  post: Amity.Post;
28
28
  }
29
29
 
30
30
  const LivestreamContent: React.FC<ILivestreamContent> = ({
31
31
  post,
32
- streamId,
32
+ roomId,
33
33
  onPressPost,
34
34
  }) => {
35
35
  const { styles, theme } = useStyles();
@@ -39,18 +39,18 @@ const LivestreamContent: React.FC<ILivestreamContent> = ({
39
39
  >();
40
40
 
41
41
  const [error, setError] = useState<boolean>(false);
42
- const [livestream, setLivestream] = useState<Amity.Stream>();
42
+ const [livestream, setLivestream] = useState<Amity.Room>();
43
43
  const [thumbnailUrl, setThumbnailUrl] = useState<ImageSourcePropType>();
44
44
  const [isUpcoming, setIsUpcoming] = useState<boolean>(false);
45
45
 
46
46
  const onPlayLivestream = useCallback(() => {
47
47
  navigation.navigate('LivestreamPlayer', {
48
48
  post,
49
- streamId: livestream.streamId,
49
+ roomId: livestream.roomId,
50
50
  });
51
51
  }, [livestream, navigation, post]);
52
52
 
53
- const getLivestreamThumbnail = async (currentStream: Amity.Stream) => {
53
+ const getLivestreamThumbnail = async (currentStream: Amity.Room) => {
54
54
  const defaultThumbnail = require('../../assets/images/livestream.png');
55
55
 
56
56
  if (currentStream.thumbnailFileId) {
@@ -71,8 +71,8 @@ const LivestreamContent: React.FC<ILivestreamContent> = ({
71
71
 
72
72
  useEffect(() => {
73
73
  setIsUpcoming(true);
74
- const unsubscribe = StreamRepository.getStreamById(
75
- streamId,
74
+ const unsubscribe = RoomRepository.getRoom(
75
+ roomId,
76
76
  ({ data, loading, error: streamError }) => {
77
77
  if (streamError) setError(!!streamError);
78
78
  if (!loading && data) {
@@ -86,13 +86,13 @@ const LivestreamContent: React.FC<ILivestreamContent> = ({
86
86
  return () => {
87
87
  unsubscribe();
88
88
  };
89
- }, [streamId]);
89
+ }, [roomId]);
90
90
 
91
91
  if (!livestream) return null;
92
92
 
93
93
  if (error || livestream?.isDeleted) {
94
94
  return (
95
- <View key={livestream.streamId} style={styles.container}>
95
+ <View key={livestream.roomId} style={styles.container}>
96
96
  <LiveStreamIdleThumbnail />
97
97
  </View>
98
98
  );
@@ -102,12 +102,12 @@ const LivestreamContent: React.FC<ILivestreamContent> = ({
102
102
  livestream?.moderation?.terminateLabels &&
103
103
  livestream?.moderation?.terminateLabels?.length > 0;
104
104
  const isLiveOrEnded =
105
- livestream?.status === LivestreamStatus.live ||
106
- livestream?.status === LivestreamStatus.ended;
105
+ livestream?.status === RoomStatus.live ||
106
+ livestream?.status === RoomStatus.ended;
107
107
 
108
108
  if (isTerminated && isLiveOrEnded) {
109
109
  return (
110
- <View key={livestream.streamId} style={styles.container}>
110
+ <View key={livestream.roomId} style={styles.container}>
111
111
  <LiveStreamTerminatedThumbnail />
112
112
  </View>
113
113
  );
@@ -129,7 +129,7 @@ const LivestreamContent: React.FC<ILivestreamContent> = ({
129
129
  )}
130
130
  </Pressable>
131
131
  <View style={styles.container}>
132
- {(livestream.status === LivestreamStatus.idle || isUpcoming) &&
132
+ {(livestream.status === RoomStatus.idle || isUpcoming) &&
133
133
  thumbnailUrl && (
134
134
  <View style={styles.content}>
135
135
  <Image
@@ -144,12 +144,11 @@ const LivestreamContent: React.FC<ILivestreamContent> = ({
144
144
  </View>
145
145
  )}
146
146
 
147
- {livestream.status === LivestreamStatus.ended && (
148
- <LiveStreamEndThumbnail />
149
- )}
147
+ {livestream.status === RoomStatus.ended && <LiveStreamEndThumbnail />}
150
148
 
151
- {(livestream.status === LivestreamStatus.live ||
152
- livestream.status === LivestreamStatus.recorded) &&
149
+ {(livestream.status === RoomStatus.live ||
150
+ livestream.status === RoomStatus.recorded ||
151
+ livestream.status === RoomStatus.waitingReconnect) &&
153
152
  thumbnailUrl &&
154
153
  !isUpcoming && (
155
154
  <View style={styles.content}>
@@ -157,14 +156,15 @@ const LivestreamContent: React.FC<ILivestreamContent> = ({
157
156
  source={thumbnailUrl}
158
157
  style={styles.streamImageCover as ImageStyle}
159
158
  />
160
- {livestream.status === LivestreamStatus.live && (
159
+ {(livestream.status === RoomStatus.live ||
160
+ livestream.status === RoomStatus.waitingReconnect) && (
161
161
  <View style={styles.streamStatusLive}>
162
162
  <Typography.CaptionBold style={styles.streamStatusText}>
163
163
  LIVE
164
164
  </Typography.CaptionBold>
165
165
  </View>
166
166
  )}
167
- {livestream.status === LivestreamStatus.recorded && (
167
+ {livestream.status === RoomStatus.recorded && (
168
168
  <View style={styles.streamStatusRecorded}>
169
169
  <Typography.CaptionBold style={styles.streamStatusText}>
170
170
  RECORDED
@@ -15,13 +15,19 @@ const MyAvatar: FC<MyAvatarProp> = (props) => {
15
15
 
16
16
  useEffect(() => {
17
17
  UserRepository.getUser(myId, async ({ data, loading, error }) => {
18
- if (!loading && !error) {
19
- const avatar = await getImage({
20
- fileId: data?.avatarFileId,
21
- imageSize: ImageSizeState.small,
22
- });
23
- setAvatarUrl(avatar ?? defaultAvatarUri);
18
+ if (loading || error || !data) return;
19
+
20
+ if (data.avatarCustomUrl) {
21
+ setAvatarUrl(data.avatarCustomUrl);
22
+ return;
24
23
  }
24
+
25
+ const avatar = await getImage({
26
+ fileId: data.avatarFileId,
27
+ imageSize: ImageSizeState.small,
28
+ });
29
+
30
+ setAvatarUrl(avatar ?? defaultAvatarUri);
25
31
  });
26
32
  }, [getImage, myId]);
27
33
 
@@ -80,6 +80,7 @@ export function PollResults({ options, totalVotes }: PollResultsProps) {
80
80
  targetType="user"
81
81
  style={styles.optionAvatar}
82
82
  avatarId={user?.avatarFileId}
83
+ avatarCustomUrl={user?.avatarCustomUrl}
83
84
  elementID={ElementID.WildCardElement}
84
85
  />
85
86
  )}
@@ -43,9 +43,7 @@ const PostContent: React.FC<IPostContent> = ({
43
43
  const [imagePosts, setImagePosts] = useState<string[]>([]);
44
44
  const [videoPosts, setVideoPosts] = useState<IVideoPost[]>([]);
45
45
  const [pollIds, setPollIds] = useState<{ pollId: string }[]>([]);
46
- const [livestreamId, setLivestreamId] = useState<Amity.Stream['streamId'][]>(
47
- []
48
- );
46
+ const [livestreamId, setLivestreamId] = useState<Amity.Room['roomId'][]>([]);
49
47
 
50
48
  const [imagePostsFullSize, setImagePostsFullSize] = useState<MediaUri[]>([]);
51
49
  const [videoPostsFullSize, setVideoPostsFullSize] = useState<MediaUri[]>([]);
@@ -96,7 +94,7 @@ const PostContent: React.FC<IPostContent> = ({
96
94
  const images: string[] = [];
97
95
  const videos: IVideoPost[] = [];
98
96
  const polls: { pollId: string }[] = [];
99
- const livestreams: Amity.Stream['streamId'][] = [];
97
+ const livestreams: Amity.Room['roomId'][] = [];
100
98
 
101
99
  response.forEach((item) => {
102
100
  if (item?.dataType === 'image' && item?.data?.fileId) {
@@ -119,9 +117,9 @@ const PostContent: React.FC<IPostContent> = ({
119
117
  if (!polls.some((poll) => poll.pollId === item.data.pollId)) {
120
118
  polls.push(item.data);
121
119
  }
122
- } else if (item?.dataType === 'liveStream') {
123
- if (!livestreams.includes(item.data.streamId)) {
124
- livestreams.push(item.data.streamId);
120
+ } else if (item?.dataType === 'room') {
121
+ if (!livestreams.includes(item.data.roomId)) {
122
+ livestreams.push(item.data.roomId);
125
123
  }
126
124
  }
127
125
  });
@@ -344,7 +342,7 @@ const PostContent: React.FC<IPostContent> = ({
344
342
  <LivestreamContent
345
343
  post={post}
346
344
  onPressPost={onPressPost}
347
- streamId={livestreamId[0]}
345
+ roomId={livestreamId[0]}
348
346
  />
349
347
  ) : (
350
348
  renderMediaPosts()
@@ -255,7 +255,7 @@ export function PostMenu({ pageId, componentId, post }: PostMenuProps) {
255
255
  ],
256
256
  },
257
257
  (post?.creator?.userId === myId || isIAmModerator) &&
258
- ((childrenPost?.dataType !== 'liveStream' &&
258
+ ((childrenPost?.dataType !== 'room' &&
259
259
  childrenPost?.dataType !== 'poll') ||
260
260
  (childrenPost?.dataType === 'poll' &&
261
261
  pollData?.status === 'open')) &&
@@ -280,7 +280,7 @@ export function PostMenu({ pageId, componentId, post }: PostMenuProps) {
280
280
  </TouchableOpacity>
281
281
  )}
282
282
  {post?.creator?.userId === myId &&
283
- childrenPost?.dataType !== 'liveStream' &&
283
+ childrenPost?.dataType !== 'room' &&
284
284
  childrenPost?.dataType !== 'poll' && (
285
285
  <TouchableOpacity
286
286
  onPress={goToEditPost}
@@ -1,4 +1,4 @@
1
- import { Text, Linking } from 'react-native';
1
+ import { Text, Linking, TouchableOpacity } from 'react-native';
2
2
  import { useStyles } from './styles';
3
3
  import React, { memo, useCallback } from 'react';
4
4
  import { useNavigation } from '@react-navigation/native';
@@ -6,6 +6,7 @@ import { IMentionPosition } from '../../types/type';
6
6
  import { NativeStackNavigationProp } from '@react-navigation/native-stack';
7
7
  import { RootStackParamList } from '../../routes/RouteParamList';
8
8
  import ReadMore from '@fawazahmed/react-native-read-more';
9
+ import { URL_REGEX } from '../../../v4/constants';
9
10
 
10
11
  interface IrenderTextWithMention {
11
12
  mentionPositionArr: IMentionPosition[];
@@ -28,10 +29,9 @@ const RenderTextWithMention: React.FC<IrenderTextWithMention> = ({
28
29
  const navigation =
29
30
  useNavigation() as NativeStackNavigationProp<RootStackParamList>;
30
31
  const linkArr = useCallback((text: string): LinkInfo[] => {
31
- const urlRegex = /(https?:\/\/|www\.)[^\s]+/g;
32
32
  const links: LinkInfo[] = [];
33
33
  let match;
34
- while ((match = urlRegex.exec(text)) !== null) {
34
+ while ((match = URL_REGEX.exec(text)) !== null) {
35
35
  links.push({
36
36
  link: match[0],
37
37
  index: match.index,
@@ -54,8 +54,14 @@ const RenderTextWithMention: React.FC<IrenderTextWithMention> = ({
54
54
  },
55
55
  [navigation]
56
56
  );
57
- const handleLinkClick = useCallback((url: string) => {
58
- Linking.openURL(url);
57
+ const handleLinkClick = useCallback(async (url: string) => {
58
+ try {
59
+ const hasProtocol = /^(https?|ftp|mailto):/.test(url);
60
+ const formattedUrl = hasProtocol ? url : `https://${url}`;
61
+ await Linking.openURL(formattedUrl);
62
+ } catch (error) {
63
+ console.warn('Failed to open URL:', error);
64
+ }
59
65
  }, []);
60
66
 
61
67
  const handleOnClick = useCallback(
@@ -88,14 +94,14 @@ const RenderTextWithMention: React.FC<IrenderTextWithMention> = ({
88
94
  const nonHighlightedText = textPost.slice(currentPosition, index);
89
95
  // Add highlighted text
90
96
  const highlightedText = (
91
- <Text
92
- selectable
97
+ <TouchableOpacity
93
98
  onPress={() => handleOnClick(link, userId)}
94
99
  key={`highlighted-${i}`}
95
- style={styles.mentionText}
96
100
  >
97
- {textPost.slice(index, index + length)}
98
- </Text>
101
+ <Text style={styles.mentionText} selectable>
102
+ {textPost.slice(index, index + length)}
103
+ </Text>
104
+ </TouchableOpacity>
99
105
  );
100
106
 
101
107
  // Update currentPosition for the next iteration
@@ -91,6 +91,9 @@ const SearchResultItem: FC<SearchResultItemType> = ({
91
91
  pageID={pageId}
92
92
  componentID={componentId}
93
93
  elementID={ElementID.community_avatar}
94
+ avatarCustomUrl={
95
+ searchType === TabName.Users ? item?.avatarCustomUrl : undefined
96
+ }
94
97
  targetType={searchType === TabName.Communities ? 'community' : 'user'}
95
98
  />
96
99
  <View style={styles.profileInfoContainer}>
@@ -8,8 +8,8 @@ import { informative, failed, success } from '../../assets/icons';
8
8
  import { CircularProgressIndicator } from '../CircularProgressIndicator';
9
9
 
10
10
  const Toast = () => {
11
- const { styles, theme } = useStyles();
12
11
  const { hideToast, toast } = useToast();
12
+ const { styles, theme } = useStyles(toast.bottomPosition);
13
13
  const timeoutRef = useRef<number | null>(null);
14
14
  const fadeIn = useRef(new Animated.Value(0)).current;
15
15
 
@@ -3,7 +3,7 @@ import { useTheme } from 'react-native-paper';
3
3
  import type { MyMD3Theme } from '../../../providers/amity-ui-kit-provider';
4
4
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
5
5
 
6
- export const useStyles = () => {
6
+ export const useStyles = (bottomPosition: number = 16) => {
7
7
  const theme = useTheme<MyMD3Theme>();
8
8
  const { bottom } = useSafeAreaInsets();
9
9
 
@@ -13,7 +13,7 @@ export const useStyles = () => {
13
13
  zIndex: 999,
14
14
  width: '90%',
15
15
  borderRadius: 8,
16
- bottom: bottom + 16,
16
+ bottom: bottom + bottomPosition,
17
17
  paddingVertical: 16,
18
18
  alignSelf: 'center',
19
19
  flexDirection: 'row',
@@ -24,6 +24,7 @@ export const ERROR_CODE = {
24
24
  IMAGE_NUDITY: '500000',
25
25
  ONLY_ONE_MODERATOR: '400317',
26
26
  ONLY_ONE_MEMBER: '400318',
27
+ GLOBAL_BAN: '400312',
27
28
  };
28
29
 
29
30
  export const COMMENT_ERROR_MESSAGE = {
@@ -105,3 +106,6 @@ export const QUERY_KEY = {
105
106
  POSTS_COLLECTION: 'posts-collections',
106
107
  PINNED_POSTS_COLLECTION: 'pinned-posts-collections',
107
108
  };
109
+
110
+ export const URL_REGEX =
111
+ /(?:(?:https?|ftp):\/\/(?:[a-zA-Z0-9.-]+|[\d.]+)(?::\d{1,5})?(?:\/(?:[^\s<>|()]*(?:\([^\s<>|()]*\)[^\s<>|()]*)*)*)?|mailto:[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}|www\.(?:[a-zA-Z0-9.-]+)(?:\/(?:[^\s<>|()]*(?:\([^\s<>|()]*\)[^\s<>|()]*)*)*)?(?!\.))/g;
@@ -31,7 +31,7 @@ function CommunityCreatePostButton({
31
31
  xml={plus()}
32
32
  width={32}
33
33
  height={32}
34
- color={themeStyles.colors.base}
34
+ color={themeStyles.colors.background}
35
35
  />
36
36
  </TouchableOpacity>
37
37
  );
@@ -60,7 +60,7 @@ class AssetDownloader {
60
60
 
61
61
  try {
62
62
  // Begin download
63
- const accessToken = this.client.token.accessToken;
63
+ const accessToken = this?.client?.token?.accessToken;
64
64
  const downloadOptions = {
65
65
  fromUrl: url,
66
66
  headers: {
@@ -0,0 +1,8 @@
1
+ export const RoomStatus = {
2
+ idle: 'idle',
3
+ live: 'live',
4
+ recorded: 'recorded',
5
+ ended: 'ended',
6
+ waitingReconnect: 'waitingReconnect',
7
+ terminated: 'terminated',
8
+ } as const satisfies Record<Amity.RoomStatus, Amity.RoomStatus>;
@@ -0,0 +1,20 @@
1
+ import { useEffect, useState } from 'react';
2
+ import { RoomRepository } from '@amityco/ts-sdk-react-native';
3
+
4
+ export function useRoom(roomId: string) {
5
+ const [room, setRoom] = useState<Amity.Room | null>(null);
6
+
7
+ useEffect(() => {
8
+ let unsubscribe: Amity.Unsubscriber;
9
+ if (roomId) {
10
+ unsubscribe = RoomRepository.getRoom(roomId, ({ data }) => {
11
+ setRoom(data);
12
+ });
13
+ }
14
+ return () => {
15
+ unsubscribe && unsubscribe();
16
+ };
17
+ }, [roomId]);
18
+
19
+ return room;
20
+ }
@@ -30,3 +30,5 @@ export * from './usePendingPostQuery';
30
30
  export * from './useMembersQuery';
31
31
  export * from './useRolesQuery';
32
32
  export * from './useFlagUserQuery';
33
+ export * from './usePostSubscription';
34
+ export * from './useRoomSubscription';
@@ -51,7 +51,7 @@ export const useCustomRankingGlobalFeed = () => {
51
51
  if (
52
52
  data?.dataType === 'image' ||
53
53
  data?.dataType === 'video' ||
54
- // data?.dataType === 'liveStream' ||
54
+ data?.dataType === 'room' ||
55
55
  data?.dataType === 'poll'
56
56
  ) {
57
57
  resolve(post);
@@ -0,0 +1,34 @@
1
+ import { useEffect, useState } from 'react';
2
+ import {
3
+ getPostTopic,
4
+ PostRepository,
5
+ subscribeTopic,
6
+ } from '@amityco/ts-sdk-react-native';
7
+
8
+ export const usePostSubscription = (postId: string) => {
9
+ const [subscribedPost, setSubscribedPost] = useState<Amity.Post>(null);
10
+
11
+ useEffect(() => {
12
+ let unsubscribe: () => void;
13
+ if (postId) {
14
+ unsubscribe = PostRepository.getPost(postId, ({ data }) => {
15
+ setSubscribedPost(data);
16
+ });
17
+ }
18
+ return () => {
19
+ unsubscribe && unsubscribe();
20
+ };
21
+ }, [postId]);
22
+
23
+ useEffect(() => {
24
+ let unsubscribe: () => void;
25
+ if (subscribedPost) {
26
+ unsubscribe = subscribeTopic(getPostTopic(subscribedPost));
27
+ }
28
+ return () => {
29
+ unsubscribe && unsubscribe();
30
+ };
31
+ }, [subscribedPost]);
32
+
33
+ return { subscribedPost };
34
+ };
@@ -0,0 +1,19 @@
1
+ import {
2
+ getRoomWatcherTopic,
3
+ subscribeTopic,
4
+ } from '@amityco/ts-sdk-react-native';
5
+ import { useEffect } from 'react';
6
+
7
+ export const useRoomSubscription = ({ room }: { room?: Amity.Room | null }) => {
8
+ useEffect(() => {
9
+ const unsubscriber: Amity.Unsubscriber[] = [];
10
+
11
+ if (room?.roomId && room?.status !== 'recorded') {
12
+ unsubscriber.push(subscribeTopic(getRoomWatcherTopic(room)));
13
+ }
14
+
15
+ return () => unsubscriber.forEach((fn) => fn());
16
+ }, [room, room?.roomId]);
17
+
18
+ return null;
19
+ };
package/src/v4/index.tsx CHANGED
@@ -11,7 +11,7 @@ export { default as AmityMyCommunitiesSearchPage } from './PublicApi/Pages/Amity
11
11
  export { default as AmityAllCategoriesPage } from './PublicApi/Pages/AmityAllCategoriesPage/AmityAllCategoriesPage';
12
12
  export { default as AmityCommunitiesByCategoryPage } from './PublicApi/Pages/AmityCommunitiesByCategoryPage/AmityCommunitiesByCategoryPage';
13
13
  export { default as AmityCommunityProfilePage } from './PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage';
14
- // export { default as AmityCreateLivestreamPage } from './PublicApi/Pages/AmityCreateLivestreamPage';
14
+ export { default as AmityCreateLivestreamPage } from './PublicApi/Pages/AmityCreateLivestreamPage';
15
15
  export { default as AmityLivestreamPostTargetSelectionPage } from './PublicApi/Pages/AmityLivestreamPostTargetSelectionPage';
16
16
  export { default as AmityLivestreamTerminatedPage } from './PublicApi/Pages/AmityLivestreamTerminatedPage';
17
17
  export { default as AmityLivestreamPlayerPage } from './PublicApi/Pages/AmityLivestreamPlayerPage';
@@ -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}
@@ -65,13 +65,17 @@ import CommunityCommentsNotificationSetting from '../../v4/screen/CommunityComme
65
65
  import CommunityStoriesNotificationSetting from '../../v4/screen/CommunityStoriesNotificationSetting';
66
66
  import CommunityLivestreamsNotificationSetting from '../../v4/screen/CommunityLivestreamsNotificationSetting';
67
67
  import CommunityPendingRequest from '../../v4/screen/CommunityPendingRequest';
68
+ import { GlobalBan } from '../screen/GlobalBan';
68
69
 
69
70
  export default function AmitySocialUIKitV4Navigator() {
70
71
  const Stack = createNativeStackNavigator<RootStackParamList>();
71
- const { isConnected } = useAuth();
72
+ const { isConnected, isGlobalBan } = useAuth();
72
73
  const theme = useTheme() as MyMD3Theme;
73
74
 
74
75
  const styles = useStyles();
76
+
77
+ if (isGlobalBan) return <GlobalBan />;
78
+
75
79
  return (
76
80
  <NavigationIndependentTree>
77
81
  <NavigationContainer>
@@ -35,6 +35,7 @@ export type RootStackParamList = {
35
35
  postId: string;
36
36
  showEndPopup?: boolean;
37
37
  category?: AmityPostCategory;
38
+ isDeleted?: boolean;
38
39
  };
39
40
  UserProfile: {
40
41
  userId: string;
@@ -72,7 +73,7 @@ export type RootStackParamList = {
72
73
  targetType: string;
73
74
  };
74
75
  LivestreamPlayer: {
75
- streamId: string;
76
+ roomId: string;
76
77
  post: Amity.Post;
77
78
  };
78
79
  LivestreamTerminated: {
@@ -0,0 +1,38 @@
1
+ import React from 'react';
2
+ import { SafeAreaView } from 'react-native-safe-area-context';
3
+ import { useStyles } from './styles';
4
+ import { Typography } from '../../../v4/component/Typography/Typography';
5
+ import { View } from 'react-native';
6
+ import { SvgXml } from 'react-native-svg';
7
+ import { warning } from '../../../v4/assets/icons';
8
+
9
+ export function GlobalBan() {
10
+ const { styles, theme } = useStyles();
11
+
12
+ return (
13
+ <SafeAreaView style={styles.container} edges={['top', 'left']}>
14
+ <View style={styles.container}>
15
+ <View style={styles.titleContainer}>
16
+ <Typography.TitleBold style={styles.title}>
17
+ Community
18
+ </Typography.TitleBold>
19
+ </View>
20
+ <View style={styles.contentContainer}>
21
+ <SvgXml
22
+ width={56}
23
+ height={56}
24
+ xml={warning()}
25
+ color={theme.colors.base}
26
+ />
27
+ <Typography.Headline style={styles.title}>
28
+ You've been banned.
29
+ </Typography.Headline>
30
+ <Typography.Body style={styles.body}>
31
+ Based on your previous activities, your account has been banned from
32
+ all feeds.
33
+ </Typography.Body>
34
+ </View>
35
+ </View>
36
+ </SafeAreaView>
37
+ );
38
+ }
@@ -0,0 +1 @@
1
+ export { GlobalBan } from './GlobalBan';
@@ -0,0 +1,39 @@
1
+ import { StyleSheet } from 'react-native';
2
+ import { useTheme } from 'react-native-paper';
3
+ import type { MyMD3Theme } from 'src/providers/amity-ui-kit-provider';
4
+
5
+ export const useStyles = () => {
6
+ const theme = useTheme<MyMD3Theme>();
7
+
8
+ const styles = StyleSheet.create({
9
+ container: {
10
+ flex: 1,
11
+ backgroundColor: theme.colors.background,
12
+ },
13
+ titleContainer: {
14
+ padding: 16,
15
+ borderBottomWidth: 1,
16
+ flexDirection: 'row',
17
+ justifyContent: 'center',
18
+ borderBottomColor: theme.colors.baseShade4,
19
+ },
20
+ title: {
21
+ color: theme.colors.base,
22
+ },
23
+ contentContainer: {
24
+ gap: 8,
25
+ flex: 1,
26
+ paddingVertical: 24,
27
+ alignItems: 'center',
28
+ paddingHorizontal: 16,
29
+ flexDirection: 'column',
30
+ justifyContent: 'center',
31
+ },
32
+ body: {
33
+ textAlign: 'center',
34
+ color: theme.colors.baseShade2,
35
+ },
36
+ });
37
+
38
+ return { styles, theme };
39
+ };
@@ -34,6 +34,7 @@ const PostDetail: React.FC<IPostDetailPage> = ({ defaultPostId }) => {
34
34
  isFromComponent={!!defaultPostId && !postIdFromRoute}
35
35
  postId={postId}
36
36
  category={route?.params?.category}
37
+ isDeleted={route?.params?.isDeleted}
37
38
  />
38
39
  );
39
40
  };