@amityco/react-native-social-uikit 4.0.0-RC9 → 4.0.0-b024948b.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 (245) 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/screens/CreateLivestream/CreateLivestream.js +16 -16
  14. package/lib/commonjs/screens/CreateLivestream/CreateLivestream.js.map +1 -1
  15. package/lib/commonjs/screens/LivestreamPlayer/index.js +3 -6
  16. package/lib/commonjs/screens/LivestreamPlayer/index.js.map +1 -1
  17. package/lib/commonjs/svg/svg-xml-list.js +1 -1
  18. package/lib/commonjs/util/postTypeChecker.js.map +1 -1
  19. package/lib/commonjs/v4/PublicApi/Components/AmityCreatePostMenuComponent/AmityCreatePostMenuComponent.js +11 -9
  20. package/lib/commonjs/v4/PublicApi/Components/AmityCreatePostMenuComponent/AmityCreatePostMenuComponent.js.map +1 -1
  21. package/lib/commonjs/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/DetailStyle.js +1 -1
  22. package/lib/commonjs/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/DetailStyle.js.map +1 -1
  23. package/lib/commonjs/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/FeedStyle.js +2 -1
  24. package/lib/commonjs/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/FeedStyle.js.map +1 -1
  25. package/lib/commonjs/v4/PublicApi/Elements/ButtonWithIconElement/styles.js +3 -2
  26. package/lib/commonjs/v4/PublicApi/Elements/ButtonWithIconElement/styles.js.map +1 -1
  27. package/lib/commonjs/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.js +28 -25
  28. package/lib/commonjs/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.js.map +1 -1
  29. package/lib/commonjs/v4/PublicApi/Pages/AmityCommunityProfilePage/styles.js +2 -2
  30. package/lib/commonjs/v4/PublicApi/Pages/AmityCommunityProfilePage/styles.js.map +1 -1
  31. package/lib/commonjs/v4/PublicApi/Pages/AmityCreateLivestreamPage/AmityCreateLivestreamPage.js +217 -68
  32. package/lib/commonjs/v4/PublicApi/Pages/AmityCreateLivestreamPage/AmityCreateLivestreamPage.js.map +1 -1
  33. package/lib/commonjs/v4/PublicApi/Pages/AmityCreateLivestreamPage/RoomView.js +50 -0
  34. package/lib/commonjs/v4/PublicApi/Pages/AmityCreateLivestreamPage/RoomView.js.map +1 -0
  35. package/lib/commonjs/v4/PublicApi/Pages/AmityCreateLivestreamPage/styles.js +71 -3
  36. package/lib/commonjs/v4/PublicApi/Pages/AmityCreateLivestreamPage/styles.js.map +1 -1
  37. package/lib/commonjs/v4/PublicApi/Pages/AmityLivestreamPlayerPage/AmityLivestreamPlayerPage.js +150 -124
  38. package/lib/commonjs/v4/PublicApi/Pages/AmityLivestreamPlayerPage/AmityLivestreamPlayerPage.js.map +1 -1
  39. package/lib/commonjs/v4/PublicApi/Pages/AmityLivestreamPlayerPage/styles.js +2 -1
  40. package/lib/commonjs/v4/PublicApi/Pages/AmityLivestreamPlayerPage/styles.js.map +1 -1
  41. package/lib/commonjs/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.js +1 -1
  42. package/lib/commonjs/v4/component/LivestreamContent/index.js +12 -12
  43. package/lib/commonjs/v4/component/LivestreamContent/index.js.map +1 -1
  44. package/lib/commonjs/v4/component/PostContent/index.js +4 -4
  45. package/lib/commonjs/v4/component/PostContent/index.js.map +1 -1
  46. package/lib/commonjs/v4/component/PostMenu/index.js +2 -2
  47. package/lib/commonjs/v4/component/PostMenu/index.js.map +1 -1
  48. package/lib/commonjs/v4/component/PreviewLink/LinkPreview.js +3 -3
  49. package/lib/commonjs/v4/component/PreviewLink/LinkPreview.js.map +1 -1
  50. package/lib/commonjs/v4/component/PreviewLink/utils.js +9 -73
  51. package/lib/commonjs/v4/component/PreviewLink/utils.js.map +1 -1
  52. package/lib/commonjs/v4/component/RenderTextWithMention/RenderTextWithMention.js +16 -9
  53. package/lib/commonjs/v4/component/RenderTextWithMention/RenderTextWithMention.js.map +1 -1
  54. package/lib/commonjs/v4/component/Toast/index.js +4 -4
  55. package/lib/commonjs/v4/component/Toast/index.js.map +1 -1
  56. package/lib/commonjs/v4/component/Toast/styles.js +2 -2
  57. package/lib/commonjs/v4/component/Toast/styles.js.map +1 -1
  58. package/lib/commonjs/v4/constants/index.js +2 -1
  59. package/lib/commonjs/v4/constants/index.js.map +1 -1
  60. package/lib/commonjs/v4/enum/roomStatus.js +14 -0
  61. package/lib/commonjs/v4/enum/roomStatus.js.map +1 -0
  62. package/lib/commonjs/v4/hook/index.js +22 -0
  63. package/lib/commonjs/v4/hook/index.js.map +1 -1
  64. package/lib/commonjs/v4/hook/useCustomRankingGlobalFeed.js +1 -3
  65. package/lib/commonjs/v4/hook/useCustomRankingGlobalFeed.js.map +1 -1
  66. package/lib/commonjs/v4/hook/usePostSubscription.js +38 -0
  67. package/lib/commonjs/v4/hook/usePostSubscription.js.map +1 -0
  68. package/lib/commonjs/v4/hook/useRoomSubscription.js +22 -0
  69. package/lib/commonjs/v4/hook/useRoomSubscription.js.map +1 -0
  70. package/lib/commonjs/v4/index.js +7 -0
  71. package/lib/commonjs/v4/index.js.map +1 -1
  72. package/lib/commonjs/v4/stores/slices/toast.js +4 -1
  73. package/lib/commonjs/v4/stores/slices/toast.js.map +1 -1
  74. package/lib/module/components/CreatePostChooseTargetModal/CreatePostChooseTargetModal.js +1 -1
  75. package/lib/module/components/CreatePostChooseTargetModal/CreatePostChooseTargetModal.js.map +1 -1
  76. package/lib/module/components/MediaSection/index.js +3 -3
  77. package/lib/module/components/MediaSection/index.js.map +1 -1
  78. package/lib/module/components/PostTypeChoiceModal/PostTypeChoiceModal.js +15 -8
  79. package/lib/module/components/PostTypeChoiceModal/PostTypeChoiceModal.js.map +1 -1
  80. package/lib/module/components/PostTypeChoiceModal/style.js +1 -2
  81. package/lib/module/components/PostTypeChoiceModal/style.js.map +1 -1
  82. package/lib/module/components/Social/PostList/index.js +1 -3
  83. package/lib/module/components/Social/PostList/index.js.map +1 -1
  84. package/lib/module/index.js +2 -6
  85. package/lib/module/index.js.map +1 -1
  86. package/lib/module/screens/CreateLivestream/CreateLivestream.js +17 -17
  87. package/lib/module/screens/CreateLivestream/CreateLivestream.js.map +1 -1
  88. package/lib/module/screens/LivestreamPlayer/index.js +4 -8
  89. package/lib/module/screens/LivestreamPlayer/index.js.map +1 -1
  90. package/lib/module/svg/svg-xml-list.js +1 -1
  91. package/lib/module/util/postTypeChecker.js.map +1 -1
  92. package/lib/module/v4/PublicApi/Components/AmityCreatePostMenuComponent/AmityCreatePostMenuComponent.js +11 -9
  93. package/lib/module/v4/PublicApi/Components/AmityCreatePostMenuComponent/AmityCreatePostMenuComponent.js.map +1 -1
  94. package/lib/module/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/DetailStyle.js +1 -1
  95. package/lib/module/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/DetailStyle.js.map +1 -1
  96. package/lib/module/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/FeedStyle.js +2 -1
  97. package/lib/module/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/FeedStyle.js.map +1 -1
  98. package/lib/module/v4/PublicApi/Elements/ButtonWithIconElement/styles.js +3 -2
  99. package/lib/module/v4/PublicApi/Elements/ButtonWithIconElement/styles.js.map +1 -1
  100. package/lib/module/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.js +29 -26
  101. package/lib/module/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.js.map +1 -1
  102. package/lib/module/v4/PublicApi/Pages/AmityCommunityProfilePage/styles.js +2 -2
  103. package/lib/module/v4/PublicApi/Pages/AmityCommunityProfilePage/styles.js.map +1 -1
  104. package/lib/module/v4/PublicApi/Pages/AmityCreateLivestreamPage/AmityCreateLivestreamPage.js +222 -72
  105. package/lib/module/v4/PublicApi/Pages/AmityCreateLivestreamPage/AmityCreateLivestreamPage.js.map +1 -1
  106. package/lib/module/v4/PublicApi/Pages/AmityCreateLivestreamPage/RoomView.js +42 -0
  107. package/lib/module/v4/PublicApi/Pages/AmityCreateLivestreamPage/RoomView.js.map +1 -0
  108. package/lib/module/v4/PublicApi/Pages/AmityCreateLivestreamPage/styles.js +71 -3
  109. package/lib/module/v4/PublicApi/Pages/AmityCreateLivestreamPage/styles.js.map +1 -1
  110. package/lib/module/v4/PublicApi/Pages/AmityLivestreamPlayerPage/AmityLivestreamPlayerPage.js +152 -126
  111. package/lib/module/v4/PublicApi/Pages/AmityLivestreamPlayerPage/AmityLivestreamPlayerPage.js.map +1 -1
  112. package/lib/module/v4/PublicApi/Pages/AmityLivestreamPlayerPage/styles.js +2 -1
  113. package/lib/module/v4/PublicApi/Pages/AmityLivestreamPlayerPage/styles.js.map +1 -1
  114. package/lib/module/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.js +1 -1
  115. package/lib/module/v4/component/LivestreamContent/index.js +13 -13
  116. package/lib/module/v4/component/LivestreamContent/index.js.map +1 -1
  117. package/lib/module/v4/component/PostContent/index.js +4 -4
  118. package/lib/module/v4/component/PostContent/index.js.map +1 -1
  119. package/lib/module/v4/component/PostMenu/index.js +2 -2
  120. package/lib/module/v4/component/PostMenu/index.js.map +1 -1
  121. package/lib/module/v4/component/PreviewLink/LinkPreview.js +3 -3
  122. package/lib/module/v4/component/PreviewLink/LinkPreview.js.map +1 -1
  123. package/lib/module/v4/component/PreviewLink/utils.js +9 -73
  124. package/lib/module/v4/component/PreviewLink/utils.js.map +1 -1
  125. package/lib/module/v4/component/RenderTextWithMention/RenderTextWithMention.js +17 -10
  126. package/lib/module/v4/component/RenderTextWithMention/RenderTextWithMention.js.map +1 -1
  127. package/lib/module/v4/component/Toast/index.js +4 -4
  128. package/lib/module/v4/component/Toast/index.js.map +1 -1
  129. package/lib/module/v4/component/Toast/styles.js +2 -2
  130. package/lib/module/v4/component/Toast/styles.js.map +1 -1
  131. package/lib/module/v4/constants/index.js +1 -0
  132. package/lib/module/v4/constants/index.js.map +1 -1
  133. package/lib/module/v4/enum/roomStatus.js +8 -0
  134. package/lib/module/v4/enum/roomStatus.js.map +1 -0
  135. package/lib/module/v4/hook/index.js +2 -0
  136. package/lib/module/v4/hook/index.js.map +1 -1
  137. package/lib/module/v4/hook/useCustomRankingGlobalFeed.js +1 -3
  138. package/lib/module/v4/hook/useCustomRankingGlobalFeed.js.map +1 -1
  139. package/lib/module/v4/hook/usePostSubscription.js +31 -0
  140. package/lib/module/v4/hook/usePostSubscription.js.map +1 -0
  141. package/lib/module/v4/hook/useRoomSubscription.js +15 -0
  142. package/lib/module/v4/hook/useRoomSubscription.js.map +1 -0
  143. package/lib/module/v4/index.js +1 -1
  144. package/lib/module/v4/index.js.map +1 -1
  145. package/lib/module/v4/stores/slices/toast.js +4 -1
  146. package/lib/module/v4/stores/slices/toast.js.map +1 -1
  147. package/lib/typescript/src/components/MediaSection/index.d.ts.map +1 -1
  148. package/lib/typescript/src/components/PostTypeChoiceModal/style.d.ts +1 -2
  149. package/lib/typescript/src/components/PostTypeChoiceModal/style.d.ts.map +1 -1
  150. package/lib/typescript/src/components/Social/PostList/index.d.ts +1 -3
  151. package/lib/typescript/src/components/Social/PostList/index.d.ts.map +1 -1
  152. package/lib/typescript/src/index.d.ts +2 -2
  153. package/lib/typescript/src/index.d.ts.map +1 -1
  154. package/lib/typescript/src/screens/LivestreamPlayer/index.d.ts.map +1 -1
  155. package/lib/typescript/src/util/postTypeChecker.d.ts +1 -1
  156. package/lib/typescript/src/util/postTypeChecker.d.ts.map +1 -1
  157. package/lib/typescript/src/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.d.ts +1 -3
  158. package/lib/typescript/src/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.d.ts.map +1 -1
  159. package/lib/typescript/src/v4/PublicApi/Elements/ButtonWithIconElement/styles.d.ts +1 -0
  160. package/lib/typescript/src/v4/PublicApi/Elements/ButtonWithIconElement/styles.d.ts.map +1 -1
  161. package/lib/typescript/src/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.d.ts.map +1 -1
  162. package/lib/typescript/src/v4/PublicApi/Pages/AmityCommunityProfilePage/styles.d.ts +1 -1
  163. package/lib/typescript/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/AmityCreateLivestreamPage.d.ts.map +1 -1
  164. package/lib/typescript/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/RoomView.d.ts +8 -0
  165. package/lib/typescript/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/RoomView.d.ts.map +1 -0
  166. package/lib/typescript/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/styles.d.ts +70 -2
  167. package/lib/typescript/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/styles.d.ts.map +1 -1
  168. package/lib/typescript/src/v4/PublicApi/Pages/AmityLivestreamPlayerPage/AmityLivestreamPlayerPage.d.ts.map +1 -1
  169. package/lib/typescript/src/v4/PublicApi/Pages/AmityLivestreamPlayerPage/styles.d.ts +1 -0
  170. package/lib/typescript/src/v4/PublicApi/Pages/AmityLivestreamPlayerPage/styles.d.ts.map +1 -1
  171. package/lib/typescript/src/v4/component/LivestreamContent/index.d.ts +1 -1
  172. package/lib/typescript/src/v4/component/LivestreamContent/index.d.ts.map +1 -1
  173. package/lib/typescript/src/v4/component/PostContent/index.d.ts.map +1 -1
  174. package/lib/typescript/src/v4/component/PreviewLink/utils.d.ts +6 -1
  175. package/lib/typescript/src/v4/component/PreviewLink/utils.d.ts.map +1 -1
  176. package/lib/typescript/src/v4/component/RenderTextWithMention/RenderTextWithMention.d.ts.map +1 -1
  177. package/lib/typescript/src/v4/component/Toast/styles.d.ts +1 -1
  178. package/lib/typescript/src/v4/component/Toast/styles.d.ts.map +1 -1
  179. package/lib/typescript/src/v4/constants/index.d.ts +1 -0
  180. package/lib/typescript/src/v4/constants/index.d.ts.map +1 -1
  181. package/lib/typescript/src/v4/enum/roomStatus.d.ts +8 -0
  182. package/lib/typescript/src/v4/enum/roomStatus.d.ts.map +1 -0
  183. package/lib/typescript/src/v4/hook/index.d.ts +2 -0
  184. package/lib/typescript/src/v4/hook/index.d.ts.map +1 -1
  185. package/lib/typescript/src/v4/hook/usePendingPostQuery.d.ts +3 -0
  186. package/lib/typescript/src/v4/hook/usePendingPostQuery.d.ts.map +1 -1
  187. package/lib/typescript/src/v4/hook/usePostSubscription.d.ts +4 -0
  188. package/lib/typescript/src/v4/hook/usePostSubscription.d.ts.map +1 -0
  189. package/lib/typescript/src/v4/hook/useRoomSubscription.d.ts +4 -0
  190. package/lib/typescript/src/v4/hook/useRoomSubscription.d.ts.map +1 -0
  191. package/lib/typescript/src/v4/index.d.ts +1 -0
  192. package/lib/typescript/src/v4/index.d.ts.map +1 -1
  193. package/lib/typescript/src/v4/routes/RouteParamList.d.ts +1 -1
  194. package/lib/typescript/src/v4/routes/RouteParamList.d.ts.map +1 -1
  195. package/lib/typescript/src/v4/stores/slices/toast.d.ts +1 -0
  196. package/lib/typescript/src/v4/stores/slices/toast.d.ts.map +1 -1
  197. package/package.json +6 -3
  198. package/src/components/CreatePostChooseTargetModal/CreatePostChooseTargetModal.tsx +1 -1
  199. package/src/components/MediaSection/index.tsx +4 -6
  200. package/src/components/PostTypeChoiceModal/PostTypeChoiceModal.tsx +15 -15
  201. package/src/components/PostTypeChoiceModal/style.ts +1 -2
  202. package/src/components/Social/PostList/index.tsx +1 -4
  203. package/src/index.tsx +2 -2
  204. package/src/screens/CreateLivestream/CreateLivestream.tsx +17 -17
  205. package/src/screens/LivestreamPlayer/index.tsx +9 -15
  206. package/src/svg/svg-xml-list.ts +1 -1
  207. package/src/util/postTypeChecker.ts +1 -1
  208. package/src/v4/PublicApi/Components/AmityCreatePostMenuComponent/AmityCreatePostMenuComponent.tsx +10 -10
  209. package/src/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.tsx +1 -1
  210. package/src/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/DetailStyle.tsx +1 -1
  211. package/src/v4/PublicApi/Components/AmityPostEngagementActionsComponent/Components/FeedStyle.tsx +1 -1
  212. package/src/v4/PublicApi/Elements/ButtonWithIconElement/styles.ts +3 -2
  213. package/src/v4/PublicApi/Pages/AmityCommunityProfilePage/AmityCommunityProfilePage.tsx +24 -25
  214. package/src/v4/PublicApi/Pages/AmityCommunityProfilePage/styles.ts +2 -2
  215. package/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/AmityCreateLivestreamPage.tsx +255 -89
  216. package/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/RoomView.tsx +48 -0
  217. package/src/v4/PublicApi/Pages/AmityCreateLivestreamPage/styles.ts +72 -3
  218. package/src/v4/PublicApi/Pages/AmityLivestreamPlayerPage/AmityLivestreamPlayerPage.tsx +205 -154
  219. package/src/v4/PublicApi/Pages/AmityLivestreamPlayerPage/styles.ts +2 -0
  220. package/src/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.tsx +1 -1
  221. package/src/v4/component/LivestreamContent/index.tsx +21 -22
  222. package/src/v4/component/PostContent/index.tsx +6 -8
  223. package/src/v4/component/PostMenu/index.tsx +2 -2
  224. package/src/v4/component/PreviewLink/LinkPreview.tsx +3 -3
  225. package/src/v4/component/PreviewLink/utils.ts +9 -108
  226. package/src/v4/component/RenderTextWithMention/RenderTextWithMention.tsx +16 -10
  227. package/src/v4/component/Toast/index.tsx +1 -1
  228. package/src/v4/component/Toast/styles.ts +2 -2
  229. package/src/v4/constants/index.ts +3 -0
  230. package/src/v4/enum/roomStatus.ts +7 -0
  231. package/src/v4/hook/index.ts +2 -0
  232. package/src/v4/hook/useCustomRankingGlobalFeed.ts +1 -1
  233. package/src/v4/hook/usePostSubscription.ts +34 -0
  234. package/src/v4/hook/useRoomSubscription.ts +19 -0
  235. package/src/v4/index.tsx +1 -1
  236. package/src/v4/routes/RouteParamList.tsx +1 -1
  237. package/src/v4/stores/slices/toast.ts +5 -0
  238. package/uikit.config.json +1 -1
  239. package/lib/commonjs/v4/enum/livestreamStatus.js +0 -13
  240. package/lib/commonjs/v4/enum/livestreamStatus.js.map +0 -1
  241. package/lib/module/v4/enum/livestreamStatus.js +0 -7
  242. package/lib/module/v4/enum/livestreamStatus.js.map +0 -1
  243. package/lib/typescript/src/v4/enum/livestreamStatus.d.ts +0 -7
  244. package/lib/typescript/src/v4/enum/livestreamStatus.d.ts.map +0 -1
  245. package/src/v4/enum/livestreamStatus.ts +0 -6
@@ -1,131 +1,77 @@
1
- import React, { useEffect, useRef, useState } from 'react';
2
- import {
3
- View,
4
- TouchableOpacity,
5
- TouchableWithoutFeedback,
6
- useAnimatedValue,
7
- } from 'react-native';
1
+ import React, { useEffect, useState, useRef } from 'react';
2
+ import { View, TouchableOpacity, Platform } from 'react-native';
8
3
  import { useStyles } from './styles';
9
- // @ts-ignore
10
- // import { AmityStreamPlayer } from '@amityco/video-player-react-native';
11
4
  import LiveStreamEndThumbnail from '../../../component/LivestreamContent/LivestreamEndedThumbnail';
12
- import { Animated } from 'react-native';
13
5
  import { SvgXml } from 'react-native-svg';
14
- import {
15
- getPostTopic,
16
- PostRepository,
17
- StreamRepository,
18
- subscribeTopic,
19
- } from '@amityco/ts-sdk-react-native';
20
- import { close, pause, resume } from '../../../assets/icons';
6
+ import { close } from '../../../assets/icons';
21
7
  import { RouteProp, useNavigation, useRoute } from '@react-navigation/native';
22
8
  import { NativeStackNavigationProp } from '@react-navigation/native-stack';
23
9
  import { RootStackParamList } from '../../../routes/RouteParamList';
24
- import { LivestreamStatus } from '../../../enum/livestreamStatus';
10
+ import { RoomStatus } from '../../../enum/roomStatus';
25
11
  import LiveStreamIdleThumbnail from '../../../component/LivestreamContent/LivestreamIdleThumbnail';
26
12
  import { Typography } from '../../../component/Typography/Typography';
27
13
  import { SafeAreaView } from 'react-native-safe-area-context';
28
14
  import NetInfo from '@react-native-community/netinfo';
29
15
  import { CircularProgressIndicator } from '../../../component/CircularProgressIndicator';
30
- const usePostSubscription = (postId: string) => {
31
- const [subscribedPost, setSubscribedPost] = useState<Amity.Post>(null);
32
-
33
- useEffect(() => {
34
- let unsubscribe: () => void;
35
- if (postId) {
36
- unsubscribe = PostRepository.getPost(postId, ({ data }) => {
37
- setSubscribedPost(data);
38
- });
39
- }
40
- return () => {
41
- unsubscribe && unsubscribe();
42
- };
43
- }, [postId]);
44
-
45
- useEffect(() => {
46
- let unsubscribe: () => void;
47
- if (subscribedPost) {
48
- unsubscribe = subscribeTopic(getPostTopic(subscribedPost));
49
- }
50
- return () => {
51
- unsubscribe && unsubscribe();
52
- };
53
- }, [subscribedPost]);
54
-
55
- return { subscribedPost };
56
- };
16
+ import Video from 'react-native-video';
17
+ import useAuth from '../../../../hooks/useAuth';
18
+ import {
19
+ usePostSubscription,
20
+ useRoomSubscription,
21
+ } from '../../../../v4/hook/index';
22
+ import { RoomRepository } from '@amityco/ts-sdk-react-native';
57
23
 
58
24
  function AmityLiveStreamPlayerPage() {
59
- const ref = useRef<any>(null);
60
25
  const { styles, theme } = useStyles();
61
- const controlOpacity = useAnimatedValue(0);
62
26
  const navigation =
63
27
  useNavigation<NativeStackNavigationProp<RootStackParamList>>();
64
28
  const route = useRoute<RouteProp<RootStackParamList, 'LivestreamPlayer'>>();
65
29
 
66
- const [error, setError] = useState<any>(null);
67
- const [isPlaying, setIsPlaying] = useState(true);
68
30
  const [reconnecting, setReconnecting] = useState(false);
69
- const [livestream, setLivestream] = useState<Amity.Stream>();
70
-
71
- const { streamId, post } = route.params;
31
+ const [room, setRoom] = useState<Amity.Room | null>(null);
32
+ const [videoError, setVideoError] = useState(false);
33
+ const [error, setError] = useState<Error | null>(null);
34
+ const [, setPlayerInitialized] = useState(false);
35
+ const [videoKey, setVideoKey] = useState(0);
36
+ const [isPaused, setIsPaused] = useState(false);
37
+ const [wasLive, setWasLive] = useState(false);
72
38
 
39
+ const { roomId, post } = route.params;
73
40
  const { subscribedPost } = usePostSubscription(post?.postId);
41
+ useRoomSubscription({ room });
74
42
 
75
- const onStopPlayer = () => {
76
- ref.current && ref.current.pause();
77
- setIsPlaying(false);
78
- };
79
-
80
- const onStartPlayer = () => {
81
- ref.current && ref.current.play();
82
- setIsPlaying(true);
83
- };
84
-
85
- const onPressControlButton = () => {
86
- isPlaying ? onStopPlayer() : onStartPlayer();
87
- };
88
-
89
- const onToggleControl = () => {
90
- controlOpacity.stopAnimation((currentValue) => {
91
- Animated.timing(controlOpacity, {
92
- toValue: currentValue === 0 ? 1 : 0,
93
- duration: 300,
94
- useNativeDriver: false,
95
- }).start();
96
- });
97
- };
43
+ const { client } = useAuth();
44
+ const videoRef = useRef<any>(null);
45
+ const isStreamEnding = useRef(false);
98
46
 
99
47
  useEffect(() => {
100
- const unsubscribe = StreamRepository.getStreamById(
101
- streamId,
48
+ const unsubscribe = RoomRepository.getRoom(
49
+ roomId,
102
50
  ({ data, loading, error: streamError }) => {
103
51
  if (streamError) setError(streamError);
104
- if (!loading && data) setLivestream({ ...data });
52
+ if (!loading && data) setRoom({ ...data });
105
53
  }
106
54
  );
107
55
 
108
56
  return () => unsubscribe();
109
- }, [streamId]);
57
+ }, [roomId]);
110
58
 
111
59
  useEffect(() => {
112
- if (livestream?.isDeleted || subscribedPost?.isDeleted) {
113
- navigation.replace('PostDetail', { postId: subscribedPost?.postId });
60
+ if (room?.status === RoomStatus.live) {
61
+ setWasLive(true);
114
62
  }
115
- }, [livestream?.isDeleted, subscribedPost, navigation]);
63
+ }, [room?.status]);
116
64
 
117
65
  useEffect(() => {
118
- const isTerminated =
119
- livestream?.moderation?.terminateLabels &&
120
- livestream?.moderation?.terminateLabels?.length > 0;
121
- const isLiveOrEnded =
122
- livestream?.status === LivestreamStatus.live ||
123
- livestream?.status === LivestreamStatus.ended;
124
-
125
- if (isLiveOrEnded && isTerminated) {
126
- navigation.replace('LivestreamTerminated', { type: 'viewer' });
66
+ if (room?.isDeleted || subscribedPost?.isDeleted) {
67
+ navigation.replace('PostDetail', { postId: subscribedPost?.postId });
127
68
  }
128
- }, [livestream?.moderation?.terminateLabels, livestream?.status, navigation]);
69
+ }, [
70
+ navigation,
71
+ room?.isDeleted,
72
+ subscribedPost?.postId,
73
+ subscribedPost?.isDeleted,
74
+ ]);
129
75
 
130
76
  useEffect(() => {
131
77
  const unsubscribe = NetInfo.addEventListener((state) => {
@@ -134,24 +80,121 @@ function AmityLiveStreamPlayerPage() {
134
80
  return () => unsubscribe();
135
81
  }, []);
136
82
 
137
- if (!livestream || error)
83
+ useEffect(() => {
84
+ if (!room?.status) return;
85
+
86
+ const shouldEnd =
87
+ room.status === RoomStatus.ended ||
88
+ (room.status === RoomStatus.recorded && wasLive);
89
+
90
+ if (!shouldEnd || isStreamEnding.current) return;
91
+
92
+ isStreamEnding.current = true;
93
+ setIsPaused(true);
94
+
95
+ if (Platform.OS === 'ios') {
96
+ // iOS: ONLY dismiss fullscreen. DO NOT touch key. DO NOT unmount.
97
+ requestAnimationFrame(() => {
98
+ videoRef.current?.dismissFullscreenPlayer?.();
99
+ });
100
+ } else {
101
+ // Android: HARD destroy
102
+ setTimeout(() => {
103
+ setVideoKey((prev) => prev + 1);
104
+ }, 50);
105
+ }
106
+ }, [room?.status, wasLive]);
107
+
108
+ useEffect(() => {
109
+ let timer: ReturnType<typeof setTimeout> | null = null;
110
+
111
+ if (
112
+ videoRef.current &&
113
+ room &&
114
+ room.status === RoomStatus.live &&
115
+ !videoError &&
116
+ Platform.OS === 'ios'
117
+ ) {
118
+ const isTerminated =
119
+ room?.moderation?.terminateLabels &&
120
+ room?.moderation?.terminateLabels?.length > 0;
121
+
122
+ if (!isTerminated) {
123
+ timer = setTimeout(() => {
124
+ videoRef.current?.presentFullscreenPlayer();
125
+ }, 100);
126
+ }
127
+ }
128
+
129
+ return () => {
130
+ if (timer !== null) {
131
+ clearTimeout(timer);
132
+ }
133
+ };
134
+ }, [room, videoError]);
135
+
136
+ const isTerminated =
137
+ room?.moderation?.terminateLabels &&
138
+ room?.moderation?.terminateLabels?.length > 0;
139
+
140
+ const shouldShowEndThumbnail =
141
+ room?.status === RoomStatus.ended ||
142
+ (room?.status === RoomStatus.recorded && wasLive) ||
143
+ isTerminated;
144
+
145
+ useEffect(() => {
146
+ if (!room?.status) return;
147
+
148
+ const shouldEnd =
149
+ room.status === RoomStatus.ended ||
150
+ (room.status === RoomStatus.recorded && wasLive);
151
+
152
+ if (!shouldEnd || isStreamEnding.current) return;
153
+
154
+ isStreamEnding.current = true;
155
+ setIsPaused(true);
156
+
157
+ if (Platform.OS === 'ios') {
158
+ // iOS: just dismiss fullscreen, DO NOT destroy immediately
159
+ if (videoRef.current) {
160
+ try {
161
+ videoRef.current.dismissFullscreenPlayer?.();
162
+ } catch {}
163
+ }
164
+ } else {
165
+ // Android: HARD destroy
166
+ setTimeout(() => {
167
+ setVideoKey((prev) => prev + 1);
168
+ }, 50);
169
+ }
170
+ }, [room?.status, wasLive]);
171
+
172
+ if (!room || error) {
138
173
  return (
139
174
  <SafeAreaView style={styles.container}>
140
175
  <LiveStreamIdleThumbnail />
141
176
  </SafeAreaView>
142
177
  );
178
+ }
179
+
180
+ const closePlayer = () => {
181
+ navigation.goBack();
182
+ };
183
+
184
+ const videoUrl =
185
+ room.status === RoomStatus.recorded
186
+ ? room.recordedPlaybackInfos[0]?.url
187
+ : room.livePlaybackUrl;
143
188
 
144
189
  return (
145
190
  <SafeAreaView style={styles.container}>
146
- {livestream.status === LivestreamStatus.ended ? (
191
+ {shouldShowEndThumbnail ? (
147
192
  <>
148
193
  <View style={styles.steamEndContainer}>
149
194
  <LiveStreamEndThumbnail />
150
195
  </View>
151
- <TouchableOpacity
152
- style={styles.closeButton}
153
- onPress={navigation.goBack}
154
- >
196
+
197
+ <TouchableOpacity style={styles.closeButton} onPress={closePlayer}>
155
198
  <SvgXml
156
199
  xml={close()}
157
200
  width="28"
@@ -160,14 +203,70 @@ function AmityLiveStreamPlayerPage() {
160
203
  />
161
204
  </TouchableOpacity>
162
205
  </>
163
- ) : // <AmityStreamPlayer
164
- // ref={ref}
165
- // stream={livestream}
166
- // onBack={navigation.goBack}
167
- // status={livestream.status === 'live' ? 'live' : 'recorded'}
168
- // />
169
- null}
170
- {livestream.status === LivestreamStatus.live && reconnecting && (
206
+ ) : (
207
+ <View style={styles.container}>
208
+ {(room.status === RoomStatus.live ||
209
+ room.status === RoomStatus.waiting_reconnect) && (
210
+ <View style={styles.indicator}>
211
+ <View style={styles.status}>
212
+ <Typography.CaptionBold style={styles.live}>
213
+ LIVE
214
+ </Typography.CaptionBold>
215
+ </View>
216
+ </View>
217
+ )}
218
+
219
+ {!shouldShowEndThumbnail && (
220
+ <Video
221
+ key={
222
+ Platform.OS === 'android' ? `${videoUrl}-${videoKey}` : videoUrl
223
+ }
224
+ ref={videoRef}
225
+ source={{
226
+ uri:
227
+ room.status === RoomStatus.recorded
228
+ ? room.recordedPlaybackInfos[0]?.url
229
+ : room.livePlaybackUrl,
230
+ headers: {
231
+ Authorization: `Bearer ${client.token.accessToken}`,
232
+ },
233
+ }}
234
+ style={styles.container}
235
+ resizeMode="contain"
236
+ controls={room?.status === RoomStatus.recorded && !wasLive}
237
+ fullscreen={
238
+ Platform.OS === 'ios' && room.status !== RoomStatus.recorded
239
+ }
240
+ fullscreenOrientation="landscape"
241
+ paused={isPaused}
242
+ muted={false}
243
+ volume={1.0}
244
+ audioOutput="speaker"
245
+ playInBackground={false}
246
+ playWhenInactive={false}
247
+ repeat={false}
248
+ onLoad={() => {
249
+ setPlayerInitialized(true);
250
+ if (room.status === RoomStatus.recorded) {
251
+ setIsPaused(false);
252
+ }
253
+ }}
254
+ onError={(e) => {
255
+ console.log('Video Error: ', e);
256
+ setVideoError(true);
257
+ }}
258
+ onFullscreenPlayerDidDismiss={() => {
259
+ if (Platform.OS === 'ios') {
260
+ closePlayer();
261
+ }
262
+ }}
263
+ />
264
+ )}
265
+ </View>
266
+ )}
267
+
268
+ {((room.status === RoomStatus.live && reconnecting) ||
269
+ room.status === RoomStatus.waiting_reconnect) && (
171
270
  <View style={styles.connecting}>
172
271
  <CircularProgressIndicator size={40} strokeWidth={2} />
173
272
  <Typography.TitleBold style={styles.text}>
@@ -179,54 +278,6 @@ function AmityLiveStreamPlayerPage() {
179
278
  </Typography.Caption>
180
279
  </View>
181
280
  )}
182
- {livestream.status === LivestreamStatus.live && (
183
- <>
184
- <View style={styles.indicator}>
185
- <View style={styles.status}>
186
- <Typography.CaptionBold style={styles.live}>
187
- LIVE
188
- </Typography.CaptionBold>
189
- </View>
190
- </View>
191
- <TouchableWithoutFeedback onPress={onToggleControl}>
192
- <Animated.View
193
- style={[styles.control, { opacity: controlOpacity }]}
194
- >
195
- <TouchableOpacity
196
- style={styles.closeButton}
197
- onPress={navigation.goBack}
198
- >
199
- <SvgXml
200
- xml={close()}
201
- width="28"
202
- height="28"
203
- color={theme.colors.background}
204
- />
205
- </TouchableOpacity>
206
-
207
- <View style={styles.controller}>
208
- <TouchableOpacity onPress={onPressControlButton}>
209
- {isPlaying ? (
210
- <SvgXml
211
- width={32}
212
- height={32}
213
- xml={pause()}
214
- color={theme.colors.background}
215
- />
216
- ) : (
217
- <SvgXml
218
- width={32}
219
- height={32}
220
- xml={resume()}
221
- color={theme.colors.background}
222
- />
223
- )}
224
- </TouchableOpacity>
225
- </View>
226
- </Animated.View>
227
- </TouchableWithoutFeedback>
228
- </>
229
- )}
230
281
  </SafeAreaView>
231
282
  );
232
283
  }
@@ -13,9 +13,11 @@ export const useStyles = () => {
13
13
  position: 'relative',
14
14
  backgroundColor: '#000000',
15
15
  },
16
+
16
17
  steamEndContainer: {
17
18
  flex: 1,
18
19
  justifyContent: 'center',
20
+ backgroundColor: '#000000',
19
21
  },
20
22
  indicator: {
21
23
  left: 16,
@@ -301,7 +301,7 @@ const AmityPostComposerPage: FC<AmityPostComposerPageType> = ({
301
301
  'Discard this post',
302
302
  'The post will be permanently deleted. It cannot be undone',
303
303
  [
304
- { text: 'Keey Editing', style: 'cancel' },
304
+ { text: 'Keep Editing', style: 'cancel' },
305
305
  {
306
306
  text: 'Discard',
307
307
  style: 'destructive',
@@ -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
@@ -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}
@@ -21,7 +21,7 @@ export const LinkPreview = React.memo(
21
21
 
22
22
  const fetchData = async () => {
23
23
  setData(undefined);
24
- const newData = await getPreviewData(text, 5000);
24
+ const newData = await getPreviewData(text);
25
25
  if (!isCancelled) {
26
26
  setData(newData);
27
27
  }
@@ -37,8 +37,8 @@ export const LinkPreview = React.memo(
37
37
 
38
38
  const renderImageNode = React.useCallback(
39
39
  (image: PreviewDataImage) => {
40
- const imageUrl = image?.url
41
- ? { uri: image.url }
40
+ const imageUrl = image
41
+ ? { uri: image }
42
42
  : require('../../assets/images/previewLinkDefaultBackground.png');
43
43
 
44
44
  return (