@amityco/react-native-social-uikit 4.0.0-48d9564c.0 → 4.0.0-61103059.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 (263) hide show
  1. package/lib/commonjs/components/CreatePostChooseTargetModal/CreatePostChooseTargetModal.js +1 -1
  2. package/lib/commonjs/components/CreatePostChooseTargetModal/CreatePostChooseTargetModal.js.map +1 -1
  3. package/lib/commonjs/components/MediaSection/index.js +3 -3
  4. package/lib/commonjs/components/MediaSection/index.js.map +1 -1
  5. package/lib/commonjs/components/PostTypeChoiceModal/PostTypeChoiceModal.js +14 -5
  6. package/lib/commonjs/components/PostTypeChoiceModal/PostTypeChoiceModal.js.map +1 -1
  7. package/lib/commonjs/components/PostTypeChoiceModal/style.js +1 -2
  8. package/lib/commonjs/components/PostTypeChoiceModal/style.js.map +1 -1
  9. package/lib/commonjs/components/Social/PostList/index.js +1 -3
  10. package/lib/commonjs/components/Social/PostList/index.js.map +1 -1
  11. package/lib/commonjs/index.js +6 -0
  12. package/lib/commonjs/index.js.map +1 -1
  13. package/lib/commonjs/providers/file-provider.js +19 -39
  14. package/lib/commonjs/providers/file-provider.js.map +1 -1
  15. package/lib/commonjs/screens/CreateLivestream/CreateLivestream.js +16 -16
  16. package/lib/commonjs/screens/CreateLivestream/CreateLivestream.js.map +1 -1
  17. package/lib/commonjs/screens/LivestreamPlayer/index.js +3 -6
  18. package/lib/commonjs/screens/LivestreamPlayer/index.js.map +1 -1
  19. package/lib/commonjs/svg/svg-xml-list.js +1 -1
  20. package/lib/commonjs/util/postTypeChecker.js.map +1 -1
  21. package/lib/commonjs/v4/PublicApi/Components/AmityCreatePostMenuComponent/AmityCreatePostMenuComponent.js +11 -9
  22. package/lib/commonjs/v4/PublicApi/Components/AmityCreatePostMenuComponent/AmityCreatePostMenuComponent.js.map +1 -1
  23. package/lib/commonjs/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/DetailStyle.js +1 -1
  24. package/lib/commonjs/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/DetailStyle.js.map +1 -1
  25. package/lib/commonjs/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/FeedStyle.js +2 -1
  26. package/lib/commonjs/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/FeedStyle.js.map +1 -1
  27. package/lib/commonjs/v4/PublicApi/Elements/ButtonWithIconElement/styles.js +3 -2
  28. package/lib/commonjs/v4/PublicApi/Elements/ButtonWithIconElement/styles.js.map +1 -1
  29. package/lib/commonjs/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.js +28 -25
  30. package/lib/commonjs/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.js.map +1 -1
  31. package/lib/commonjs/v4/PublicApi/Pages/AmityCommunityProfilePage/styles.js +2 -2
  32. package/lib/commonjs/v4/PublicApi/Pages/AmityCommunityProfilePage/styles.js.map +1 -1
  33. package/lib/commonjs/v4/PublicApi/Pages/AmityCreateLivestreamPage/AmityCreateLivestreamPage.js +217 -68
  34. package/lib/commonjs/v4/PublicApi/Pages/AmityCreateLivestreamPage/AmityCreateLivestreamPage.js.map +1 -1
  35. package/lib/commonjs/v4/PublicApi/Pages/AmityCreateLivestreamPage/RoomView.js +50 -0
  36. package/lib/commonjs/v4/PublicApi/Pages/AmityCreateLivestreamPage/RoomView.js.map +1 -0
  37. package/lib/commonjs/v4/PublicApi/Pages/AmityCreateLivestreamPage/styles.js +71 -3
  38. package/lib/commonjs/v4/PublicApi/Pages/AmityCreateLivestreamPage/styles.js.map +1 -1
  39. package/lib/commonjs/v4/PublicApi/Pages/AmityLivestreamPlayerPage/AmityLivestreamPlayerPage.js +151 -124
  40. package/lib/commonjs/v4/PublicApi/Pages/AmityLivestreamPlayerPage/AmityLivestreamPlayerPage.js.map +1 -1
  41. package/lib/commonjs/v4/PublicApi/Pages/AmityLivestreamPlayerPage/styles.js +2 -1
  42. package/lib/commonjs/v4/PublicApi/Pages/AmityLivestreamPlayerPage/styles.js.map +1 -1
  43. package/lib/commonjs/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.js +1 -37
  44. package/lib/commonjs/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.js.map +1 -1
  45. package/lib/commonjs/v4/component/LivestreamContent/index.js +12 -12
  46. package/lib/commonjs/v4/component/LivestreamContent/index.js.map +1 -1
  47. package/lib/commonjs/v4/component/LoadingImage/index.js +22 -20
  48. package/lib/commonjs/v4/component/LoadingImage/index.js.map +1 -1
  49. package/lib/commonjs/v4/component/LoadingImage/styles.js +2 -19
  50. package/lib/commonjs/v4/component/LoadingImage/styles.js.map +1 -1
  51. package/lib/commonjs/v4/component/LoadingVideo/index.js +3 -11
  52. package/lib/commonjs/v4/component/LoadingVideo/index.js.map +1 -1
  53. package/lib/commonjs/v4/component/PostContent/index.js +4 -4
  54. package/lib/commonjs/v4/component/PostContent/index.js.map +1 -1
  55. package/lib/commonjs/v4/component/PostMenu/index.js +2 -2
  56. package/lib/commonjs/v4/component/PostMenu/index.js.map +1 -1
  57. package/lib/commonjs/v4/component/RenderTextWithMention/RenderTextWithMention.js +16 -9
  58. package/lib/commonjs/v4/component/RenderTextWithMention/RenderTextWithMention.js.map +1 -1
  59. package/lib/commonjs/v4/component/Toast/index.js +4 -4
  60. package/lib/commonjs/v4/component/Toast/index.js.map +1 -1
  61. package/lib/commonjs/v4/component/Toast/styles.js +2 -2
  62. package/lib/commonjs/v4/component/Toast/styles.js.map +1 -1
  63. package/lib/commonjs/v4/constants/index.js +2 -1
  64. package/lib/commonjs/v4/constants/index.js.map +1 -1
  65. package/lib/commonjs/v4/enum/roomStatus.js +14 -0
  66. package/lib/commonjs/v4/enum/roomStatus.js.map +1 -0
  67. package/lib/commonjs/v4/hook/index.js +22 -0
  68. package/lib/commonjs/v4/hook/index.js.map +1 -1
  69. package/lib/commonjs/v4/hook/useCustomRankingGlobalFeed.js +1 -3
  70. package/lib/commonjs/v4/hook/useCustomRankingGlobalFeed.js.map +1 -1
  71. package/lib/commonjs/v4/hook/usePostSubscription.js +38 -0
  72. package/lib/commonjs/v4/hook/usePostSubscription.js.map +1 -0
  73. package/lib/commonjs/v4/hook/useRoomSubscription.js +22 -0
  74. package/lib/commonjs/v4/hook/useRoomSubscription.js.map +1 -0
  75. package/lib/commonjs/v4/index.js +7 -0
  76. package/lib/commonjs/v4/index.js.map +1 -1
  77. package/lib/commonjs/v4/stores/slices/toast.js +4 -1
  78. package/lib/commonjs/v4/stores/slices/toast.js.map +1 -1
  79. package/lib/module/components/CreatePostChooseTargetModal/CreatePostChooseTargetModal.js +1 -1
  80. package/lib/module/components/CreatePostChooseTargetModal/CreatePostChooseTargetModal.js.map +1 -1
  81. package/lib/module/components/MediaSection/index.js +3 -3
  82. package/lib/module/components/MediaSection/index.js.map +1 -1
  83. package/lib/module/components/PostTypeChoiceModal/PostTypeChoiceModal.js +15 -8
  84. package/lib/module/components/PostTypeChoiceModal/PostTypeChoiceModal.js.map +1 -1
  85. package/lib/module/components/PostTypeChoiceModal/style.js +1 -2
  86. package/lib/module/components/PostTypeChoiceModal/style.js.map +1 -1
  87. package/lib/module/components/Social/PostList/index.js +1 -3
  88. package/lib/module/components/Social/PostList/index.js.map +1 -1
  89. package/lib/module/index.js +2 -6
  90. package/lib/module/index.js.map +1 -1
  91. package/lib/module/providers/file-provider.js +19 -39
  92. package/lib/module/providers/file-provider.js.map +1 -1
  93. package/lib/module/screens/CreateLivestream/CreateLivestream.js +17 -17
  94. package/lib/module/screens/CreateLivestream/CreateLivestream.js.map +1 -1
  95. package/lib/module/screens/LivestreamPlayer/index.js +4 -8
  96. package/lib/module/screens/LivestreamPlayer/index.js.map +1 -1
  97. package/lib/module/svg/svg-xml-list.js +1 -1
  98. package/lib/module/util/postTypeChecker.js.map +1 -1
  99. package/lib/module/v4/PublicApi/Components/AmityCreatePostMenuComponent/AmityCreatePostMenuComponent.js +11 -9
  100. package/lib/module/v4/PublicApi/Components/AmityCreatePostMenuComponent/AmityCreatePostMenuComponent.js.map +1 -1
  101. package/lib/module/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/DetailStyle.js +1 -1
  102. package/lib/module/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/DetailStyle.js.map +1 -1
  103. package/lib/module/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/FeedStyle.js +2 -1
  104. package/lib/module/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/FeedStyle.js.map +1 -1
  105. package/lib/module/v4/PublicApi/Elements/ButtonWithIconElement/styles.js +3 -2
  106. package/lib/module/v4/PublicApi/Elements/ButtonWithIconElement/styles.js.map +1 -1
  107. package/lib/module/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.js +29 -26
  108. package/lib/module/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.js.map +1 -1
  109. package/lib/module/v4/PublicApi/Pages/AmityCommunityProfilePage/styles.js +2 -2
  110. package/lib/module/v4/PublicApi/Pages/AmityCommunityProfilePage/styles.js.map +1 -1
  111. package/lib/module/v4/PublicApi/Pages/AmityCreateLivestreamPage/AmityCreateLivestreamPage.js +222 -72
  112. package/lib/module/v4/PublicApi/Pages/AmityCreateLivestreamPage/AmityCreateLivestreamPage.js.map +1 -1
  113. package/lib/module/v4/PublicApi/Pages/AmityCreateLivestreamPage/RoomView.js +42 -0
  114. package/lib/module/v4/PublicApi/Pages/AmityCreateLivestreamPage/RoomView.js.map +1 -0
  115. package/lib/module/v4/PublicApi/Pages/AmityCreateLivestreamPage/styles.js +71 -3
  116. package/lib/module/v4/PublicApi/Pages/AmityCreateLivestreamPage/styles.js.map +1 -1
  117. package/lib/module/v4/PublicApi/Pages/AmityLivestreamPlayerPage/AmityLivestreamPlayerPage.js +153 -126
  118. package/lib/module/v4/PublicApi/Pages/AmityLivestreamPlayerPage/AmityLivestreamPlayerPage.js.map +1 -1
  119. package/lib/module/v4/PublicApi/Pages/AmityLivestreamPlayerPage/styles.js +2 -1
  120. package/lib/module/v4/PublicApi/Pages/AmityLivestreamPlayerPage/styles.js.map +1 -1
  121. package/lib/module/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.js +1 -37
  122. package/lib/module/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.js.map +1 -1
  123. package/lib/module/v4/component/LivestreamContent/index.js +13 -13
  124. package/lib/module/v4/component/LivestreamContent/index.js.map +1 -1
  125. package/lib/module/v4/component/LoadingImage/index.js +21 -20
  126. package/lib/module/v4/component/LoadingImage/index.js.map +1 -1
  127. package/lib/module/v4/component/LoadingImage/styles.js +2 -19
  128. package/lib/module/v4/component/LoadingImage/styles.js.map +1 -1
  129. package/lib/module/v4/component/LoadingVideo/index.js +3 -11
  130. package/lib/module/v4/component/LoadingVideo/index.js.map +1 -1
  131. package/lib/module/v4/component/PostContent/index.js +4 -4
  132. package/lib/module/v4/component/PostContent/index.js.map +1 -1
  133. package/lib/module/v4/component/PostMenu/index.js +2 -2
  134. package/lib/module/v4/component/PostMenu/index.js.map +1 -1
  135. package/lib/module/v4/component/RenderTextWithMention/RenderTextWithMention.js +17 -10
  136. package/lib/module/v4/component/RenderTextWithMention/RenderTextWithMention.js.map +1 -1
  137. package/lib/module/v4/component/Toast/index.js +4 -4
  138. package/lib/module/v4/component/Toast/index.js.map +1 -1
  139. package/lib/module/v4/component/Toast/styles.js +2 -2
  140. package/lib/module/v4/component/Toast/styles.js.map +1 -1
  141. package/lib/module/v4/constants/index.js +1 -0
  142. package/lib/module/v4/constants/index.js.map +1 -1
  143. package/lib/module/v4/enum/roomStatus.js +8 -0
  144. package/lib/module/v4/enum/roomStatus.js.map +1 -0
  145. package/lib/module/v4/hook/index.js +2 -0
  146. package/lib/module/v4/hook/index.js.map +1 -1
  147. package/lib/module/v4/hook/useCustomRankingGlobalFeed.js +1 -3
  148. package/lib/module/v4/hook/useCustomRankingGlobalFeed.js.map +1 -1
  149. package/lib/module/v4/hook/usePostSubscription.js +31 -0
  150. package/lib/module/v4/hook/usePostSubscription.js.map +1 -0
  151. package/lib/module/v4/hook/useRoomSubscription.js +15 -0
  152. package/lib/module/v4/hook/useRoomSubscription.js.map +1 -0
  153. package/lib/module/v4/index.js +1 -1
  154. package/lib/module/v4/index.js.map +1 -1
  155. package/lib/module/v4/stores/slices/toast.js +4 -1
  156. package/lib/module/v4/stores/slices/toast.js.map +1 -1
  157. package/lib/typescript/src/components/MediaSection/index.d.ts.map +1 -1
  158. package/lib/typescript/src/components/PostTypeChoiceModal/style.d.ts +1 -2
  159. package/lib/typescript/src/components/PostTypeChoiceModal/style.d.ts.map +1 -1
  160. package/lib/typescript/src/components/Social/PostList/index.d.ts +1 -3
  161. package/lib/typescript/src/components/Social/PostList/index.d.ts.map +1 -1
  162. package/lib/typescript/src/index.d.ts +2 -2
  163. package/lib/typescript/src/index.d.ts.map +1 -1
  164. package/lib/typescript/src/providers/file-provider.d.ts.map +1 -1
  165. package/lib/typescript/src/screens/LivestreamPlayer/index.d.ts.map +1 -1
  166. package/lib/typescript/src/util/postTypeChecker.d.ts +1 -1
  167. package/lib/typescript/src/util/postTypeChecker.d.ts.map +1 -1
  168. package/lib/typescript/src/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.d.ts +1 -3
  169. package/lib/typescript/src/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.d.ts.map +1 -1
  170. package/lib/typescript/src/v4/PublicApi/Elements/ButtonWithIconElement/styles.d.ts +1 -0
  171. package/lib/typescript/src/v4/PublicApi/Elements/ButtonWithIconElement/styles.d.ts.map +1 -1
  172. package/lib/typescript/src/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.d.ts.map +1 -1
  173. package/lib/typescript/src/v4/PublicApi/Pages/AmityCommunityProfilePage/styles.d.ts +1 -1
  174. package/lib/typescript/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/AmityCreateLivestreamPage.d.ts.map +1 -1
  175. package/lib/typescript/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/RoomView.d.ts +8 -0
  176. package/lib/typescript/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/RoomView.d.ts.map +1 -0
  177. package/lib/typescript/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/styles.d.ts +70 -2
  178. package/lib/typescript/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/styles.d.ts.map +1 -1
  179. package/lib/typescript/src/v4/PublicApi/Pages/AmityLivestreamPlayerPage/AmityLivestreamPlayerPage.d.ts.map +1 -1
  180. package/lib/typescript/src/v4/PublicApi/Pages/AmityLivestreamPlayerPage/styles.d.ts +1 -0
  181. package/lib/typescript/src/v4/PublicApi/Pages/AmityLivestreamPlayerPage/styles.d.ts.map +1 -1
  182. package/lib/typescript/src/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.d.ts.map +1 -1
  183. package/lib/typescript/src/v4/component/LivestreamContent/index.d.ts +1 -1
  184. package/lib/typescript/src/v4/component/LivestreamContent/index.d.ts.map +1 -1
  185. package/lib/typescript/src/v4/component/LoadingImage/index.d.ts +1 -2
  186. package/lib/typescript/src/v4/component/LoadingImage/index.d.ts.map +1 -1
  187. package/lib/typescript/src/v4/component/LoadingImage/styles.d.ts +0 -21
  188. package/lib/typescript/src/v4/component/LoadingImage/styles.d.ts.map +1 -1
  189. package/lib/typescript/src/v4/component/LoadingVideo/index.d.ts +1 -2
  190. package/lib/typescript/src/v4/component/LoadingVideo/index.d.ts.map +1 -1
  191. package/lib/typescript/src/v4/component/PostContent/index.d.ts.map +1 -1
  192. package/lib/typescript/src/v4/component/RenderTextWithMention/RenderTextWithMention.d.ts.map +1 -1
  193. package/lib/typescript/src/v4/component/Toast/styles.d.ts +1 -1
  194. package/lib/typescript/src/v4/component/Toast/styles.d.ts.map +1 -1
  195. package/lib/typescript/src/v4/constants/index.d.ts +1 -0
  196. package/lib/typescript/src/v4/constants/index.d.ts.map +1 -1
  197. package/lib/typescript/src/v4/enum/roomStatus.d.ts +8 -0
  198. package/lib/typescript/src/v4/enum/roomStatus.d.ts.map +1 -0
  199. package/lib/typescript/src/v4/hook/index.d.ts +2 -0
  200. package/lib/typescript/src/v4/hook/index.d.ts.map +1 -1
  201. package/lib/typescript/src/v4/hook/usePendingPostQuery.d.ts +3 -0
  202. package/lib/typescript/src/v4/hook/usePendingPostQuery.d.ts.map +1 -1
  203. package/lib/typescript/src/v4/hook/usePostSubscription.d.ts +4 -0
  204. package/lib/typescript/src/v4/hook/usePostSubscription.d.ts.map +1 -0
  205. package/lib/typescript/src/v4/hook/useRoomSubscription.d.ts +4 -0
  206. package/lib/typescript/src/v4/hook/useRoomSubscription.d.ts.map +1 -0
  207. package/lib/typescript/src/v4/index.d.ts +1 -0
  208. package/lib/typescript/src/v4/index.d.ts.map +1 -1
  209. package/lib/typescript/src/v4/routes/RouteParamList.d.ts +1 -1
  210. package/lib/typescript/src/v4/routes/RouteParamList.d.ts.map +1 -1
  211. package/lib/typescript/src/v4/stores/slices/toast.d.ts +1 -0
  212. package/lib/typescript/src/v4/stores/slices/toast.d.ts.map +1 -1
  213. package/package.json +6 -3
  214. package/src/components/CreatePostChooseTargetModal/CreatePostChooseTargetModal.tsx +1 -1
  215. package/src/components/MediaSection/index.tsx +4 -6
  216. package/src/components/PostTypeChoiceModal/PostTypeChoiceModal.tsx +15 -15
  217. package/src/components/PostTypeChoiceModal/style.ts +1 -2
  218. package/src/components/Social/PostList/index.tsx +1 -4
  219. package/src/index.tsx +2 -2
  220. package/src/providers/file-provider.tsx +20 -43
  221. package/src/screens/CreateLivestream/CreateLivestream.tsx +17 -17
  222. package/src/screens/LivestreamPlayer/index.tsx +9 -15
  223. package/src/svg/svg-xml-list.ts +1 -1
  224. package/src/util/postTypeChecker.ts +1 -1
  225. package/src/v4/PublicApi/Components/AmityCreatePostMenuComponent/AmityCreatePostMenuComponent.tsx +10 -10
  226. package/src/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.tsx +1 -1
  227. package/src/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/DetailStyle.tsx +1 -1
  228. package/src/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/FeedStyle.tsx +1 -1
  229. package/src/v4/PublicApi/Elements/ButtonWithIconElement/styles.ts +3 -2
  230. package/src/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.tsx +24 -25
  231. package/src/v4/PublicApi/Pages/AmityCommunityProfilePage/styles.ts +2 -2
  232. package/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/AmityCreateLivestreamPage.tsx +255 -89
  233. package/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/RoomView.tsx +48 -0
  234. package/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/styles.ts +72 -3
  235. package/src/v4/PublicApi/Pages/AmityLivestreamPlayerPage/AmityLivestreamPlayerPage.tsx +206 -154
  236. package/src/v4/PublicApi/Pages/AmityLivestreamPlayerPage/styles.ts +2 -0
  237. package/src/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.tsx +0 -46
  238. package/src/v4/component/LivestreamContent/index.tsx +21 -22
  239. package/src/v4/component/LoadingImage/index.tsx +22 -27
  240. package/src/v4/component/LoadingImage/styles.ts +0 -17
  241. package/src/v4/component/LoadingVideo/index.tsx +3 -12
  242. package/src/v4/component/PostContent/index.tsx +6 -8
  243. package/src/v4/component/PostMenu/index.tsx +2 -2
  244. package/src/v4/component/RenderTextWithMention/RenderTextWithMention.tsx +16 -10
  245. package/src/v4/component/Toast/index.tsx +1 -1
  246. package/src/v4/component/Toast/styles.ts +2 -2
  247. package/src/v4/constants/index.ts +3 -0
  248. package/src/v4/enum/roomStatus.ts +7 -0
  249. package/src/v4/hook/index.ts +2 -0
  250. package/src/v4/hook/useCustomRankingGlobalFeed.ts +1 -1
  251. package/src/v4/hook/usePostSubscription.ts +34 -0
  252. package/src/v4/hook/useRoomSubscription.ts +19 -0
  253. package/src/v4/index.tsx +1 -1
  254. package/src/v4/routes/RouteParamList.tsx +1 -1
  255. package/src/v4/stores/slices/toast.ts +5 -0
  256. package/uikit.config.json +1 -1
  257. package/lib/commonjs/v4/enum/livestreamStatus.js +0 -13
  258. package/lib/commonjs/v4/enum/livestreamStatus.js.map +0 -1
  259. package/lib/module/v4/enum/livestreamStatus.js +0 -7
  260. package/lib/module/v4/enum/livestreamStatus.js.map +0 -1
  261. package/lib/typescript/src/v4/enum/livestreamStatus.d.ts +0 -7
  262. package/lib/typescript/src/v4/enum/livestreamStatus.d.ts.map +0 -1
  263. 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,10 @@ 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) &&
153
151
  thumbnailUrl &&
154
152
  !isUpcoming && (
155
153
  <View style={styles.content}>
@@ -157,14 +155,15 @@ const LivestreamContent: React.FC<ILivestreamContent> = ({
157
155
  source={thumbnailUrl}
158
156
  style={styles.streamImageCover as ImageStyle}
159
157
  />
160
- {livestream.status === LivestreamStatus.live && (
158
+ {(livestream.status === RoomStatus.live ||
159
+ livestream.status === RoomStatus.waiting_reconnect) && (
161
160
  <View style={styles.streamStatusLive}>
162
161
  <Typography.CaptionBold style={styles.streamStatusText}>
163
162
  LIVE
164
163
  </Typography.CaptionBold>
165
164
  </View>
166
165
  )}
167
- {livestream.status === LivestreamStatus.recorded && (
166
+ {livestream.status === RoomStatus.recorded && (
168
167
  <View style={styles.streamStatusRecorded}>
169
168
  <Typography.CaptionBold style={styles.streamStatusText}>
170
169
  RECORDED
@@ -10,6 +10,8 @@ import { closeIcon, toastIcon } from '../../../svg/svg-xml-list';
10
10
  import { useStyles } from './styles';
11
11
  import { useTheme } from 'react-native-paper';
12
12
  import type { MyMD3Theme } from '../../../providers/amity-ui-kit-provider';
13
+ import uiSlice from '../../../redux/slices/uiSlice';
14
+ import { useUIKitDispatch } from '../../../redux/store';
13
15
 
14
16
  interface OverlayImageProps {
15
17
  source: string;
@@ -21,7 +23,6 @@ interface OverlayImageProps {
21
23
  index: number,
22
24
  originalPath: string
23
25
  ) => void;
24
- onUploadError?: (hasError: boolean, source: string) => void;
25
26
  index?: number;
26
27
  isUploaded: boolean;
27
28
  fileId?: string;
@@ -35,7 +36,6 @@ const LoadingImage = ({
35
36
  onClose,
36
37
  index,
37
38
  onLoadFinish,
38
- onUploadError,
39
39
  isUploaded = false,
40
40
  fileId = '',
41
41
  isEditMode = false,
@@ -44,6 +44,8 @@ const LoadingImage = ({
44
44
  setIsUploading,
45
45
  }: OverlayImageProps) => {
46
46
  const theme = useTheme() as MyMD3Theme;
47
+ const dispatch = useUIKitDispatch();
48
+ const { showToastMessage } = uiSlice.actions;
47
49
  const [loading, setLoading] = useState(true);
48
50
  const [progress, setProgress] = useState(0);
49
51
  const [isProcess, setIsProcess] = useState<boolean>(false);
@@ -82,38 +84,33 @@ const LoadingImage = ({
82
84
  source
83
85
  );
84
86
  } else {
85
- setIsUploading(false);
86
87
  handleLoadEnd();
87
- setIsProcess(false);
88
+ dispatch(showToastMessage({ toastMessage: 'Failed to upload file' }));
88
89
  setIsUploadError(true);
89
- onUploadError?.(true, source);
90
90
  }
91
91
  } catch (error) {
92
92
  handleLoadEnd();
93
- setIsProcess(false);
93
+ dispatch(showToastMessage({ toastMessage: 'Failed to upload file' }));
94
94
  setIsUploadError(true);
95
- onUploadError?.(true, source);
96
95
  }
97
96
  }, [
97
+ dispatch,
98
98
  handleLoadEnd,
99
99
  index,
100
100
  onLoadFinish,
101
- onUploadError,
102
101
  setIsUploading,
102
+ showToastMessage,
103
103
  source,
104
104
  ]);
105
105
 
106
106
  const handleDelete = async () => {
107
- if (fileId && !isEditMode) {
107
+ if (!fileId) return null;
108
+ if (!isEditMode) {
108
109
  await deleteAmityFile(fileId);
109
110
  }
110
111
  onClose && onClose(source, fileId, postId);
111
112
  };
112
113
  useEffect(() => {
113
- setIsUploadError(false);
114
- onUploadError?.(false, source);
115
- setProgress(0);
116
- setIsProcess(false);
117
114
  if (isUploaded) {
118
115
  setLoading(false);
119
116
  } else {
@@ -154,21 +151,19 @@ const LoadingImage = ({
154
151
  )}
155
152
  </View>
156
153
  )}
157
- {!loading && isUploadError && (
158
- <View style={styles.failedOverlay}>
159
- <TouchableOpacity style={styles.errorOverlay} onPress={onRetryUpload}>
160
- <SvgXml xml={toastIcon()} width="28" height="28" />
161
- </TouchableOpacity>
162
- </View>
154
+ {!loading && isUploadError ? (
155
+ <TouchableOpacity style={styles.overlay} onPress={onRetryUpload}>
156
+ <SvgXml xml={toastIcon()} width="24" height="24" />
157
+ </TouchableOpacity>
158
+ ) : (
159
+ <TouchableOpacity
160
+ style={styles.closeButton}
161
+ disabled={loading || isProcess}
162
+ onPress={handleDelete}
163
+ >
164
+ <SvgXml xml={closeIcon(theme.colors.base)} width="12" height="12" />
165
+ </TouchableOpacity>
163
166
  )}
164
-
165
- <TouchableOpacity
166
- style={styles.closeButton}
167
- disabled={(loading || isProcess) && !isUploadError}
168
- onPress={handleDelete}
169
- >
170
- <SvgXml xml={closeIcon(theme.colors.base)} width="12" height="12" />
171
- </TouchableOpacity>
172
167
  </View>
173
168
  );
174
169
  };
@@ -18,28 +18,12 @@ export const useStyles = () => {
18
18
  height: '100%',
19
19
  resizeMode: 'cover',
20
20
  borderRadius: 5,
21
- position: 'relative',
22
21
  },
23
22
  overlay: {
24
23
  ...StyleSheet.absoluteFillObject,
25
24
  justifyContent: 'center',
26
25
  alignItems: 'center',
27
26
  },
28
- failedOverlay: {
29
- ...StyleSheet.absoluteFillObject,
30
- justifyContent: 'center',
31
- alignItems: 'center',
32
- backgroundColor: 'rgba(0, 0, 0, 0.4)',
33
- borderRadius: 5,
34
- },
35
- errorOverlay: {
36
- position: 'absolute',
37
- top: '50%',
38
- left: 0,
39
- right: 0,
40
- alignItems: 'center',
41
- justifyContent: 'center',
42
- },
43
27
  progressBar: {
44
28
  marginVertical: 10,
45
29
  },
@@ -56,7 +40,6 @@ export const useStyles = () => {
56
40
  padding: 7,
57
41
  backgroundColor: 'rgba(0, 0, 0, 0.4)',
58
42
  borderRadius: 72,
59
- zIndex: 10,
60
43
  },
61
44
  });
62
45
  };
@@ -35,7 +35,6 @@ interface OverlayImageProps {
35
35
  originalPath: string,
36
36
  thumbNail: string
37
37
  ) => void;
38
- onUploadError?: (hasError: boolean, source: string) => void;
39
38
  index?: number;
40
39
  isUploaded: boolean;
41
40
  fileId?: string;
@@ -51,7 +50,6 @@ const LoadingVideo = ({
51
50
  onClose,
52
51
  index,
53
52
  onLoadFinish,
54
- onUploadError,
55
53
  isUploaded = false,
56
54
  thumbNail,
57
55
  onPlay,
@@ -131,30 +129,23 @@ const LoadingVideo = ({
131
129
  } else {
132
130
  handleLoadEnd();
133
131
  dispatch(showToastMessage({ toastMessage: 'Failed to upload file' }));
134
- setIsProcess(false);
135
132
  setIsUploadError(true);
136
- onUploadError?.(true, source);
137
133
  }
138
134
  } catch (error) {
139
135
  handleLoadEnd();
140
136
  dispatch(showToastMessage({ toastMessage: 'Failed to upload file' }));
141
- setIsProcess(false);
142
137
  setIsUploadError(true);
143
- onUploadError?.(true, source);
144
138
  }
145
139
  }, [source]);
146
140
 
147
141
  const handleDelete = async () => {
148
- if (fileId && !isEditMode) {
142
+ if (!fileId) return null;
143
+ if (!isEditMode) {
149
144
  await deleteAmityFile(fileId);
150
145
  }
151
146
  onClose && onClose(source, fileId, postId);
152
147
  };
153
148
  useEffect(() => {
154
- setIsUploadError(false);
155
- onUploadError?.(false, source);
156
- setProgress(0);
157
- setIsProcess(false);
158
149
  if (isUploaded) {
159
150
  setLoading(false);
160
151
  } else {
@@ -225,7 +216,7 @@ const LoadingVideo = ({
225
216
  ) : (
226
217
  <TouchableOpacity
227
218
  style={styles.closeButton}
228
- disabled={(loading || isProcess) && !isUploadError}
219
+ disabled={loading || isProcess}
229
220
  onPress={handleDelete}
230
221
  >
231
222
  <SvgXml xml={closeIcon(theme.colors.base)} width="12" height="12" />
@@ -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
@@ -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',
@@ -105,3 +105,6 @@ export const QUERY_KEY = {
105
105
  POSTS_COLLECTION: 'posts-collections',
106
106
  PINNED_POSTS_COLLECTION: 'pinned-posts-collections',
107
107
  };
108
+
109
+ export const URL_REGEX =
110
+ /(?:(?: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;
@@ -0,0 +1,7 @@
1
+ export const RoomStatus = {
2
+ idle: 'idle' as Amity.RoomStatus,
3
+ live: 'live' as Amity.RoomStatus,
4
+ recorded: 'recorded' as Amity.RoomStatus,
5
+ ended: 'ended' as Amity.RoomStatus,
6
+ waiting_reconnect: 'waitingReconnect' as Amity.RoomStatus,
7
+ };
@@ -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';
@@ -72,7 +72,7 @@ export type RootStackParamList = {
72
72
  targetType: string;
73
73
  };
74
74
  LivestreamPlayer: {
75
- streamId: string;
75
+ roomId: string;
76
76
  post: Amity.Post;
77
77
  };
78
78
  LivestreamTerminated: {
@@ -10,12 +10,14 @@ type ToastState = {
10
10
  message: string;
11
11
  type: 'failed' | 'success' | 'informative' | 'loading';
12
12
  duration?: number;
13
+ bottomPosition?: number;
13
14
  };
14
15
  const initialState: ToastState = {
15
16
  visible: false,
16
17
  message: '',
17
18
  type: 'loading',
18
19
  duration: 2500,
20
+ bottomPosition: 16,
19
21
  };
20
22
 
21
23
  const toastSlice = createSlice({
@@ -27,12 +29,15 @@ const toastSlice = createSlice({
27
29
  state.message = action.payload.message;
28
30
  state.type = action.payload.type;
29
31
  state.duration = action.payload.duration ?? initialState.duration;
32
+ state.bottomPosition =
33
+ action.payload.bottomPosition ?? initialState.bottomPosition;
30
34
  },
31
35
  hideToast: (state) => {
32
36
  state.visible = false;
33
37
  state.message = '';
34
38
  state.type = 'loading';
35
39
  state.duration = 2500;
40
+ state.bottomPosition = 16;
36
41
  },
37
42
  },
38
43
  });
package/uikit.config.json CHANGED
@@ -287,7 +287,7 @@
287
287
  "image": "create_poll_button"
288
288
  },
289
289
  "social_home_page/create_post_menu/create_livestream_button": {
290
- "text": "Livestream",
290
+ "text": "Live stream",
291
291
  "image": "create_livestream_button"
292
292
  },
293
293
  "select_post_target_page/*/close_button": {
@@ -1,13 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.LivestreamStatus = void 0;
7
- const LivestreamStatus = exports.LivestreamStatus = {
8
- idle: 'idle',
9
- live: 'live',
10
- recorded: 'recorded',
11
- ended: 'ended'
12
- };
13
- //# sourceMappingURL=livestreamStatus.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["LivestreamStatus","exports","idle","live","recorded","ended"],"sourceRoot":"../../../../src","sources":["v4/enum/livestreamStatus.ts"],"mappings":";;;;;;AAAO,MAAMA,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG;EAC9BE,IAAI,EAAE,MAA4B;EAClCC,IAAI,EAAE,MAA4B;EAClCC,QAAQ,EAAE,UAAgC;EAC1CC,KAAK,EAAE;AACT,CAAC","ignoreList":[]}