@amityco/react-native-social-uikit 4.0.0-e833198.0 → 4.0.0-fe73f9e.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 (242) hide show
  1. package/README.md +14 -14
  2. package/lib/commonjs/providers/file-provider.js +38 -19
  3. package/lib/commonjs/providers/file-provider.js.map +1 -1
  4. package/lib/commonjs/screens/CategorytList/index.js.map +1 -1
  5. package/lib/commonjs/snippet/AmityCommunitySearchResultComponent.js +3 -3
  6. package/lib/commonjs/snippet/AmityCommunitySearchResultComponent.js.map +1 -1
  7. package/lib/commonjs/snippet/AmityCreatePostMenuComponent.js +3 -3
  8. package/lib/commonjs/snippet/AmityCreatePostMenuComponent.js.map +1 -1
  9. package/lib/commonjs/snippet/AmityDetailedMediaAttachmentComponent.js +4 -4
  10. package/lib/commonjs/snippet/AmityDetailedMediaAttachmentComponent.js.map +1 -1
  11. package/lib/commonjs/snippet/AmityEmptyNewsFeedComponent.js +3 -3
  12. package/lib/commonjs/snippet/AmityEmptyNewsFeedComponent.js.map +1 -1
  13. package/lib/commonjs/snippet/AmityGlobalFeedComponent.js +3 -3
  14. package/lib/commonjs/snippet/AmityGlobalFeedComponent.js.map +1 -1
  15. package/lib/commonjs/snippet/AmityMediaAttachmentComponent.js +4 -4
  16. package/lib/commonjs/snippet/AmityMediaAttachmentComponent.js.map +1 -1
  17. package/lib/commonjs/snippet/AmityMyCommunitiesComponent.js +3 -3
  18. package/lib/commonjs/snippet/AmityMyCommunitiesComponent.js.map +1 -1
  19. package/lib/commonjs/snippet/AmityMyCommunitiesSearchPage.js +3 -3
  20. package/lib/commonjs/snippet/AmityMyCommunitiesSearchPage.js.map +1 -1
  21. package/lib/commonjs/snippet/AmityNewsFeedComponent.js +3 -3
  22. package/lib/commonjs/snippet/AmityNewsFeedComponent.js.map +1 -1
  23. package/lib/commonjs/snippet/AmityPostComposerPage.js +4 -4
  24. package/lib/commonjs/snippet/AmityPostComposerPage.js.map +1 -1
  25. package/lib/commonjs/snippet/AmityPostContentComponent.js +3 -3
  26. package/lib/commonjs/snippet/AmityPostContentComponent.js.map +1 -1
  27. package/lib/commonjs/snippet/AmityPostDetailPage.js +3 -3
  28. package/lib/commonjs/snippet/AmityPostDetailPage.js.map +1 -1
  29. package/lib/commonjs/snippet/AmityPostTargetSelectionPage.js +4 -4
  30. package/lib/commonjs/snippet/AmityPostTargetSelectionPage.js.map +1 -1
  31. package/lib/commonjs/snippet/AmityReactionListComponent.js +3 -3
  32. package/lib/commonjs/snippet/AmityReactionListComponent.js.map +1 -1
  33. package/lib/commonjs/snippet/AmitySocialGlobalSearchPage.js +3 -3
  34. package/lib/commonjs/snippet/AmitySocialGlobalSearchPage.js.map +1 -1
  35. package/lib/commonjs/snippet/AmitySocialHomePage.js +3 -3
  36. package/lib/commonjs/snippet/AmitySocialHomePage.js.map +1 -1
  37. package/lib/commonjs/snippet/AmitySocialHomeTopNavigationComponent.js +3 -3
  38. package/lib/commonjs/snippet/AmitySocialHomeTopNavigationComponent.js.map +1 -1
  39. package/lib/commonjs/snippet/AmityStoryTargetSelectionPage.js +3 -3
  40. package/lib/commonjs/snippet/AmityStoryTargetSelectionPage.js.map +1 -1
  41. package/lib/commonjs/snippet/AmityTopSearchBarComponent.js +3 -3
  42. package/lib/commonjs/snippet/AmityTopSearchBarComponent.js.map +1 -1
  43. package/lib/commonjs/snippet/AmityUserSearchResultComponent.js +3 -3
  44. package/lib/commonjs/snippet/AmityUserSearchResultComponent.js.map +1 -1
  45. package/lib/commonjs/v4/PublicApi/Components/AmityCommunityFeedComponent/AmityCommunityFeedComponent.js.map +1 -1
  46. package/lib/commonjs/v4/PublicApi/Components/AmityCommunityProfileTabComponent/AmityCommunityProfileTabComponent.js.map +1 -1
  47. package/lib/commonjs/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.js +4 -3
  48. package/lib/commonjs/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.js.map +1 -1
  49. package/lib/commonjs/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.js +0 -1
  50. package/lib/commonjs/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.js.map +1 -1
  51. package/lib/commonjs/v4/PublicApi/Components/AmityReactionListComponent/AmityReactionListComponent.js.map +1 -1
  52. package/lib/commonjs/v4/PublicApi/Pages/AmityLivestreamPostTargetSelectionPage/AmityLivestreamPostTargetSelectionPage.js +7 -1
  53. package/lib/commonjs/v4/PublicApi/Pages/AmityLivestreamPostTargetSelectionPage/AmityLivestreamPostTargetSelectionPage.js.map +1 -1
  54. package/lib/commonjs/v4/PublicApi/Pages/AmityPollTargetSelectionPage/AmityPollTargetSelectionPage.js +7 -1
  55. package/lib/commonjs/v4/PublicApi/Pages/AmityPollTargetSelectionPage/AmityPollTargetSelectionPage.js.map +1 -1
  56. package/lib/commonjs/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.js +46 -3
  57. package/lib/commonjs/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.js.map +1 -1
  58. package/lib/commonjs/v4/PublicApi/Pages/AmityPostTargetSelectionPage/AmityPostTargetSelectionPage.js +7 -1
  59. package/lib/commonjs/v4/PublicApi/Pages/AmityPostTargetSelectionPage/AmityPostTargetSelectionPage.js.map +1 -1
  60. package/lib/commonjs/v4/PublicApi/Pages/AmitySocialHomePage/AmitySocialHomePage.js.map +1 -1
  61. package/lib/commonjs/v4/PublicApi/Pages/AmityStoryTargetSelectionPage/AmityStoryTargetSelectionPage.js +7 -1
  62. package/lib/commonjs/v4/PublicApi/Pages/AmityStoryTargetSelectionPage/AmityStoryTargetSelectionPage.js.map +1 -1
  63. package/lib/commonjs/v4/component/LoadingImage/index.js +21 -22
  64. package/lib/commonjs/v4/component/LoadingImage/index.js.map +1 -1
  65. package/lib/commonjs/v4/component/LoadingImage/styles.js +19 -2
  66. package/lib/commonjs/v4/component/LoadingImage/styles.js.map +1 -1
  67. package/lib/commonjs/v4/component/LoadingVideo/index.js +11 -3
  68. package/lib/commonjs/v4/component/LoadingVideo/index.js.map +1 -1
  69. package/lib/commonjs/v4/component/MyStories/StoryCircleItem.js.map +1 -1
  70. package/lib/commonjs/v4/component/PreviewLink/LinkPreview.js +3 -3
  71. package/lib/commonjs/v4/component/PreviewLink/LinkPreview.js.map +1 -1
  72. package/lib/commonjs/v4/component/PreviewLink/utils.js +9 -73
  73. package/lib/commonjs/v4/component/PreviewLink/utils.js.map +1 -1
  74. package/lib/commonjs/v4/component/TargetSelectionPage/TargetSelectionPage.js +10 -4
  75. package/lib/commonjs/v4/component/TargetSelectionPage/TargetSelectionPage.js.map +1 -1
  76. package/lib/commonjs/v4/elements/ActionButton/ActionButton.js.map +1 -1
  77. package/lib/commonjs/v4/elements/ImageViewer/ImageViewer.js.map +1 -1
  78. package/lib/commonjs/v4/elements/VideoViewer/VideoViewer.js.map +1 -1
  79. package/lib/commonjs/v4/features/community/Membership/components/MemberItem/MemberItem.js.map +1 -1
  80. package/lib/commonjs/v4/features/community/shared/components/Privacy/index.js.map +1 -1
  81. package/lib/commonjs/v4/hook/useImagePicker.js.map +1 -1
  82. package/lib/commonjs/v4/providers/BehaviourProvider.js +2 -1
  83. package/lib/commonjs/v4/providers/BehaviourProvider.js.map +1 -1
  84. package/lib/module/providers/file-provider.js +38 -19
  85. package/lib/module/providers/file-provider.js.map +1 -1
  86. package/lib/module/screens/CategorytList/index.js.map +1 -1
  87. package/lib/module/snippet/AmityCommunitySearchResultComponent.js +1 -1
  88. package/lib/module/snippet/AmityCommunitySearchResultComponent.js.map +1 -1
  89. package/lib/module/snippet/AmityCreatePostMenuComponent.js +1 -1
  90. package/lib/module/snippet/AmityCreatePostMenuComponent.js.map +1 -1
  91. package/lib/module/snippet/AmityDetailedMediaAttachmentComponent.js +1 -1
  92. package/lib/module/snippet/AmityDetailedMediaAttachmentComponent.js.map +1 -1
  93. package/lib/module/snippet/AmityEmptyNewsFeedComponent.js +1 -1
  94. package/lib/module/snippet/AmityEmptyNewsFeedComponent.js.map +1 -1
  95. package/lib/module/snippet/AmityGlobalFeedComponent.js +1 -1
  96. package/lib/module/snippet/AmityGlobalFeedComponent.js.map +1 -1
  97. package/lib/module/snippet/AmityMediaAttachmentComponent.js +1 -1
  98. package/lib/module/snippet/AmityMediaAttachmentComponent.js.map +1 -1
  99. package/lib/module/snippet/AmityMyCommunitiesComponent.js +1 -1
  100. package/lib/module/snippet/AmityMyCommunitiesComponent.js.map +1 -1
  101. package/lib/module/snippet/AmityMyCommunitiesSearchPage.js +1 -1
  102. package/lib/module/snippet/AmityMyCommunitiesSearchPage.js.map +1 -1
  103. package/lib/module/snippet/AmityNewsFeedComponent.js +1 -1
  104. package/lib/module/snippet/AmityNewsFeedComponent.js.map +1 -1
  105. package/lib/module/snippet/AmityPostComposerPage.js +1 -1
  106. package/lib/module/snippet/AmityPostComposerPage.js.map +1 -1
  107. package/lib/module/snippet/AmityPostContentComponent.js +1 -1
  108. package/lib/module/snippet/AmityPostContentComponent.js.map +1 -1
  109. package/lib/module/snippet/AmityPostDetailPage.js +1 -1
  110. package/lib/module/snippet/AmityPostDetailPage.js.map +1 -1
  111. package/lib/module/snippet/AmityPostTargetSelectionPage.js +1 -1
  112. package/lib/module/snippet/AmityPostTargetSelectionPage.js.map +1 -1
  113. package/lib/module/snippet/AmityReactionListComponent.js +1 -1
  114. package/lib/module/snippet/AmityReactionListComponent.js.map +1 -1
  115. package/lib/module/snippet/AmitySocialGlobalSearchPage.js +1 -1
  116. package/lib/module/snippet/AmitySocialGlobalSearchPage.js.map +1 -1
  117. package/lib/module/snippet/AmitySocialHomePage.js +1 -1
  118. package/lib/module/snippet/AmitySocialHomePage.js.map +1 -1
  119. package/lib/module/snippet/AmitySocialHomeTopNavigationComponent.js +1 -1
  120. package/lib/module/snippet/AmitySocialHomeTopNavigationComponent.js.map +1 -1
  121. package/lib/module/snippet/AmityStoryTargetSelectionPage.js +1 -1
  122. package/lib/module/snippet/AmityStoryTargetSelectionPage.js.map +1 -1
  123. package/lib/module/snippet/AmityTopSearchBarComponent.js +1 -1
  124. package/lib/module/snippet/AmityTopSearchBarComponent.js.map +1 -1
  125. package/lib/module/snippet/AmityUserSearchResultComponent.js +1 -1
  126. package/lib/module/snippet/AmityUserSearchResultComponent.js.map +1 -1
  127. package/lib/module/v4/PublicApi/Components/AmityCommunityFeedComponent/AmityCommunityFeedComponent.js.map +1 -1
  128. package/lib/module/v4/PublicApi/Components/AmityCommunityProfileTabComponent/AmityCommunityProfileTabComponent.js.map +1 -1
  129. package/lib/module/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.js +5 -4
  130. package/lib/module/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.js.map +1 -1
  131. package/lib/module/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.js +0 -1
  132. package/lib/module/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.js.map +1 -1
  133. package/lib/module/v4/PublicApi/Components/AmityReactionListComponent/AmityReactionListComponent.js.map +1 -1
  134. package/lib/module/v4/PublicApi/Pages/AmityLivestreamPostTargetSelectionPage/AmityLivestreamPostTargetSelectionPage.js +7 -1
  135. package/lib/module/v4/PublicApi/Pages/AmityLivestreamPostTargetSelectionPage/AmityLivestreamPostTargetSelectionPage.js.map +1 -1
  136. package/lib/module/v4/PublicApi/Pages/AmityPollTargetSelectionPage/AmityPollTargetSelectionPage.js +7 -1
  137. package/lib/module/v4/PublicApi/Pages/AmityPollTargetSelectionPage/AmityPollTargetSelectionPage.js.map +1 -1
  138. package/lib/module/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.js +46 -3
  139. package/lib/module/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.js.map +1 -1
  140. package/lib/module/v4/PublicApi/Pages/AmityPostTargetSelectionPage/AmityPostTargetSelectionPage.js +7 -1
  141. package/lib/module/v4/PublicApi/Pages/AmityPostTargetSelectionPage/AmityPostTargetSelectionPage.js.map +1 -1
  142. package/lib/module/v4/PublicApi/Pages/AmitySocialHomePage/AmitySocialHomePage.js.map +1 -1
  143. package/lib/module/v4/PublicApi/Pages/AmityStoryTargetSelectionPage/AmityStoryTargetSelectionPage.js +7 -1
  144. package/lib/module/v4/PublicApi/Pages/AmityStoryTargetSelectionPage/AmityStoryTargetSelectionPage.js.map +1 -1
  145. package/lib/module/v4/component/LoadingImage/index.js +21 -21
  146. package/lib/module/v4/component/LoadingImage/index.js.map +1 -1
  147. package/lib/module/v4/component/LoadingImage/styles.js +19 -2
  148. package/lib/module/v4/component/LoadingImage/styles.js.map +1 -1
  149. package/lib/module/v4/component/LoadingVideo/index.js +11 -3
  150. package/lib/module/v4/component/LoadingVideo/index.js.map +1 -1
  151. package/lib/module/v4/component/MyStories/StoryCircleItem.js.map +1 -1
  152. package/lib/module/v4/component/PreviewLink/LinkPreview.js +3 -3
  153. package/lib/module/v4/component/PreviewLink/LinkPreview.js.map +1 -1
  154. package/lib/module/v4/component/PreviewLink/utils.js +9 -73
  155. package/lib/module/v4/component/PreviewLink/utils.js.map +1 -1
  156. package/lib/module/v4/component/TargetSelectionPage/TargetSelectionPage.js +10 -4
  157. package/lib/module/v4/component/TargetSelectionPage/TargetSelectionPage.js.map +1 -1
  158. package/lib/module/v4/elements/ActionButton/ActionButton.js.map +1 -1
  159. package/lib/module/v4/elements/ImageViewer/ImageViewer.js.map +1 -1
  160. package/lib/module/v4/elements/VideoViewer/VideoViewer.js.map +1 -1
  161. package/lib/module/v4/features/community/Membership/components/MemberItem/MemberItem.js.map +1 -1
  162. package/lib/module/v4/features/community/shared/components/Privacy/index.js.map +1 -1
  163. package/lib/module/v4/hook/useImagePicker.js.map +1 -1
  164. package/lib/module/v4/providers/BehaviourProvider.js +2 -1
  165. package/lib/module/v4/providers/BehaviourProvider.js.map +1 -1
  166. package/lib/typescript/src/providers/file-provider.d.ts.map +1 -1
  167. package/lib/typescript/src/screens/CategorytList/index.d.ts.map +1 -1
  168. package/lib/typescript/src/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.d.ts +1 -0
  169. package/lib/typescript/src/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.d.ts.map +1 -1
  170. package/lib/typescript/src/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.d.ts.map +1 -1
  171. package/lib/typescript/src/v4/PublicApi/Pages/AmityLivestreamPostTargetSelectionPage/AmityLivestreamPostTargetSelectionPage.d.ts.map +1 -1
  172. package/lib/typescript/src/v4/PublicApi/Pages/AmityPollTargetSelectionPage/AmityPollTargetSelectionPage.d.ts.map +1 -1
  173. package/lib/typescript/src/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.d.ts.map +1 -1
  174. package/lib/typescript/src/v4/PublicApi/Pages/AmityPostTargetSelectionPage/AmityPostTargetSelectionPage.d.ts.map +1 -1
  175. package/lib/typescript/src/v4/PublicApi/Pages/AmitySocialHomePage/AmitySocialHomePage.d.ts.map +1 -1
  176. package/lib/typescript/src/v4/PublicApi/Pages/AmityStoryTargetSelectionPage/AmityStoryTargetSelectionPage.d.ts.map +1 -1
  177. package/lib/typescript/src/v4/component/LoadingImage/index.d.ts +2 -1
  178. package/lib/typescript/src/v4/component/LoadingImage/index.d.ts.map +1 -1
  179. package/lib/typescript/src/v4/component/LoadingImage/styles.d.ts +21 -0
  180. package/lib/typescript/src/v4/component/LoadingImage/styles.d.ts.map +1 -1
  181. package/lib/typescript/src/v4/component/LoadingVideo/index.d.ts +2 -1
  182. package/lib/typescript/src/v4/component/LoadingVideo/index.d.ts.map +1 -1
  183. package/lib/typescript/src/v4/component/PreviewLink/utils.d.ts +6 -1
  184. package/lib/typescript/src/v4/component/PreviewLink/utils.d.ts.map +1 -1
  185. package/lib/typescript/src/v4/component/TargetSelectionPage/TargetSelectionPage.d.ts +2 -1
  186. package/lib/typescript/src/v4/component/TargetSelectionPage/TargetSelectionPage.d.ts.map +1 -1
  187. package/lib/typescript/src/v4/elements/ActionButton/ActionButton.d.ts.map +1 -1
  188. package/lib/typescript/src/v4/features/community/Membership/components/MemberItem/MemberItem.d.ts.map +1 -1
  189. package/lib/typescript/src/v4/features/community/shared/components/Privacy/index.d.ts.map +1 -1
  190. package/lib/typescript/src/v4/hook/useImagePicker.d.ts.map +1 -1
  191. package/lib/typescript/src/v4/providers/BehaviourProvider.d.ts.map +1 -1
  192. package/lib/typescript/src/v4/types/behaviour.interface.d.ts +7 -0
  193. package/lib/typescript/src/v4/types/behaviour.interface.d.ts.map +1 -1
  194. package/package.json +1 -1
  195. package/src/providers/file-provider.tsx +42 -20
  196. package/src/screens/CategorytList/index.tsx +7 -14
  197. package/src/snippet/AmityCommunitySearchResultComponent.tsx +1 -1
  198. package/src/snippet/AmityCreatePostMenuComponent.tsx +1 -1
  199. package/src/snippet/AmityDetailedMediaAttachmentComponent.tsx +1 -1
  200. package/src/snippet/AmityEmptyNewsFeedComponent.tsx +1 -1
  201. package/src/snippet/AmityGlobalFeedComponent.tsx +1 -1
  202. package/src/snippet/AmityMediaAttachmentComponent.tsx +1 -1
  203. package/src/snippet/AmityMyCommunitiesComponent.tsx +1 -1
  204. package/src/snippet/AmityMyCommunitiesSearchPage.tsx +1 -1
  205. package/src/snippet/AmityNewsFeedComponent.tsx +1 -1
  206. package/src/snippet/AmityPostComposerPage.tsx +1 -1
  207. package/src/snippet/AmityPostContentComponent.tsx +1 -1
  208. package/src/snippet/AmityPostDetailPage.tsx +1 -1
  209. package/src/snippet/AmityPostTargetSelectionPage.tsx +1 -1
  210. package/src/snippet/AmityReactionListComponent.tsx +1 -1
  211. package/src/snippet/AmitySocialGlobalSearchPage.tsx +1 -1
  212. package/src/snippet/AmitySocialHomePage.tsx +1 -1
  213. package/src/snippet/AmitySocialHomeTopNavigationComponent.tsx +1 -1
  214. package/src/snippet/AmityStoryTargetSelectionPage.tsx +1 -1
  215. package/src/snippet/AmityTopSearchBarComponent.tsx +1 -1
  216. package/src/snippet/AmityUserSearchResultComponent.tsx +1 -1
  217. package/src/v4/PublicApi/Components/AmityCommunityFeedComponent/AmityCommunityFeedComponent.tsx +2 -2
  218. package/src/v4/PublicApi/Components/AmityCommunityProfileTabComponent/AmityCommunityProfileTabComponent.tsx +97 -97
  219. package/src/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.tsx +12 -7
  220. package/src/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.tsx +0 -2
  221. package/src/v4/PublicApi/Components/AmityReactionListComponent/AmityReactionListComponent.tsx +9 -9
  222. package/src/v4/PublicApi/Pages/AmityLivestreamPostTargetSelectionPage/AmityLivestreamPostTargetSelectionPage.tsx +6 -0
  223. package/src/v4/PublicApi/Pages/AmityPollTargetSelectionPage/AmityPollTargetSelectionPage.tsx +6 -1
  224. package/src/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.tsx +53 -2
  225. package/src/v4/PublicApi/Pages/AmityPostTargetSelectionPage/AmityPostTargetSelectionPage.tsx +7 -0
  226. package/src/v4/PublicApi/Pages/AmitySocialHomePage/AmitySocialHomePage.tsx +5 -1
  227. package/src/v4/PublicApi/Pages/AmityStoryTargetSelectionPage/AmityStoryTargetSelectionPage.tsx +7 -0
  228. package/src/v4/component/LoadingImage/index.tsx +28 -22
  229. package/src/v4/component/LoadingImage/styles.ts +17 -0
  230. package/src/v4/component/LoadingVideo/index.tsx +12 -3
  231. package/src/v4/component/MyStories/StoryCircleItem.tsx +8 -8
  232. package/src/v4/component/PreviewLink/LinkPreview.tsx +3 -3
  233. package/src/v4/component/PreviewLink/utils.ts +9 -108
  234. package/src/v4/component/TargetSelectionPage/TargetSelectionPage.tsx +12 -4
  235. package/src/v4/elements/ActionButton/ActionButton.tsx +4 -1
  236. package/src/v4/elements/ImageViewer/ImageViewer.tsx +1 -1
  237. package/src/v4/elements/VideoViewer/VideoViewer.tsx +1 -1
  238. package/src/v4/features/community/Membership/components/MemberItem/MemberItem.tsx +11 -2
  239. package/src/v4/features/community/shared/components/Privacy/index.tsx +4 -1
  240. package/src/v4/hook/useImagePicker.ts +4 -1
  241. package/src/v4/providers/BehaviourProvider.tsx +1 -0
  242. package/src/v4/types/behaviour.interface.ts +7 -0
@@ -28,107 +28,107 @@ const AmityCommunityProfileTabComponent: FC<
28
28
  currentTab,
29
29
  onTabChange,
30
30
  }) => {
31
- const elementId = ElementID.community_profile_tab;
31
+ const elementId = ElementID.community_profile_tab;
32
32
 
33
- const { themeStyles, accessibilityId } = useAmityElement({
34
- pageId,
35
- componentId,
36
- elementId,
37
- });
33
+ const { themeStyles, accessibilityId } = useAmityElement({
34
+ pageId,
35
+ componentId,
36
+ elementId,
37
+ });
38
38
 
39
- const styles = StyleSheet.create({
40
- container: {
41
- backgroundColor: themeStyles?.colors.background,
42
- flexDirection: 'row',
43
- width: '100%',
44
- paddingHorizontal: 16,
45
- justifyContent: 'space-between',
46
- borderBottomColor: themeStyles?.colors.baseShade4,
47
- borderBottomWidth: 1,
48
- },
49
- });
39
+ const styles = StyleSheet.create({
40
+ container: {
41
+ backgroundColor: themeStyles?.colors.background,
42
+ flexDirection: 'row',
43
+ width: '100%',
44
+ paddingHorizontal: 16,
45
+ justifyContent: 'space-between',
46
+ borderBottomColor: themeStyles?.colors.baseShade4,
47
+ borderBottomWidth: 1,
48
+ },
49
+ });
50
50
 
51
- const getActiveColor = useCallback(
52
- (isActive: boolean) => {
53
- return isActive
54
- ? themeStyles?.colors.base
55
- : themeStyles?.colors.baseShade2;
56
- },
57
- [themeStyles]
58
- );
51
+ const getActiveColor = useCallback(
52
+ (isActive: boolean) => {
53
+ return isActive
54
+ ? themeStyles?.colors.base
55
+ : themeStyles?.colors.baseShade2;
56
+ },
57
+ [themeStyles]
58
+ );
59
59
 
60
- return (
61
- <View
62
- style={styles.container}
63
- testID={accessibilityId}
64
- accessibilityLabel={accessibilityId}
60
+ return (
61
+ <View
62
+ style={styles.container}
63
+ testID={accessibilityId}
64
+ accessibilityLabel={accessibilityId}
65
+ >
66
+ <Pressable
67
+ onPress={() => onTabChange(CommunityProfileTab.community_feed)}
65
68
  >
66
- <Pressable
67
- onPress={() => onTabChange(CommunityProfileTab.community_feed)}
68
- >
69
- <IconTab
70
- themeStyles={themeStyles}
71
- icon={
72
- <SvgXml
73
- xml={feed(
74
- getActiveColor(
75
- currentTab === CommunityProfileTab.community_feed
76
- )
77
- )}
78
- />
79
- }
80
- isActive={currentTab === CommunityProfileTab.community_feed}
81
- />
82
- </Pressable>
83
- <Pressable onPress={() => onTabChange(CommunityProfileTab.community_pin)}>
84
- <IconTab
85
- themeStyles={themeStyles}
86
- icon={
87
- <SvgXml
88
- xml={pin(
89
- getActiveColor(currentTab === CommunityProfileTab.community_pin)
90
- )}
91
- />
92
- }
93
- isActive={currentTab === CommunityProfileTab.community_pin}
94
- />
95
- </Pressable>
96
- <Pressable
97
- onPress={() => onTabChange(CommunityProfileTab.community_image_feed)}
98
- >
99
- <IconTab
100
- themeStyles={themeStyles}
101
- icon={
102
- <SvgXml
103
- xml={image(
104
- getActiveColor(
105
- currentTab === CommunityProfileTab.community_image_feed
106
- )
107
- )}
108
- />
109
- }
110
- isActive={currentTab === CommunityProfileTab.community_image_feed}
111
- />
112
- </Pressable>
113
- <Pressable
114
- onPress={() => onTabChange(CommunityProfileTab.community_video_feed)}
115
- >
116
- <IconTab
117
- themeStyles={themeStyles}
118
- icon={
119
- <SvgXml
120
- xml={video(
121
- getActiveColor(
122
- currentTab === CommunityProfileTab.community_video_feed
123
- )
124
- )}
125
- />
126
- }
127
- isActive={currentTab === CommunityProfileTab.community_video_feed}
128
- />
129
- </Pressable>
130
- </View>
131
- );
132
- };
69
+ <IconTab
70
+ themeStyles={themeStyles}
71
+ icon={
72
+ <SvgXml
73
+ xml={feed(
74
+ getActiveColor(
75
+ currentTab === CommunityProfileTab.community_feed
76
+ )
77
+ )}
78
+ />
79
+ }
80
+ isActive={currentTab === CommunityProfileTab.community_feed}
81
+ />
82
+ </Pressable>
83
+ <Pressable onPress={() => onTabChange(CommunityProfileTab.community_pin)}>
84
+ <IconTab
85
+ themeStyles={themeStyles}
86
+ icon={
87
+ <SvgXml
88
+ xml={pin(
89
+ getActiveColor(currentTab === CommunityProfileTab.community_pin)
90
+ )}
91
+ />
92
+ }
93
+ isActive={currentTab === CommunityProfileTab.community_pin}
94
+ />
95
+ </Pressable>
96
+ <Pressable
97
+ onPress={() => onTabChange(CommunityProfileTab.community_image_feed)}
98
+ >
99
+ <IconTab
100
+ themeStyles={themeStyles}
101
+ icon={
102
+ <SvgXml
103
+ xml={image(
104
+ getActiveColor(
105
+ currentTab === CommunityProfileTab.community_image_feed
106
+ )
107
+ )}
108
+ />
109
+ }
110
+ isActive={currentTab === CommunityProfileTab.community_image_feed}
111
+ />
112
+ </Pressable>
113
+ <Pressable
114
+ onPress={() => onTabChange(CommunityProfileTab.community_video_feed)}
115
+ >
116
+ <IconTab
117
+ themeStyles={themeStyles}
118
+ icon={
119
+ <SvgXml
120
+ xml={video(
121
+ getActiveColor(
122
+ currentTab === CommunityProfileTab.community_video_feed
123
+ )
124
+ )}
125
+ />
126
+ }
127
+ isActive={currentTab === CommunityProfileTab.community_video_feed}
128
+ />
129
+ </Pressable>
130
+ </View>
131
+ );
132
+ };
133
133
 
134
134
  export default memo(AmityCommunityProfileTabComponent);
@@ -1,5 +1,5 @@
1
1
  import React, { FC, memo, useCallback, useRef, useState } from 'react';
2
- import { FlatList } from 'react-native';
2
+ import { FlatList, View } from 'react-native';
3
3
 
4
4
  import { RefreshControl } from 'react-native';
5
5
  import AmityPostContentComponent from '../AmityPostContentComponent/AmityPostContentComponent';
@@ -20,6 +20,7 @@ import Divider from '../../../component/Divider';
20
20
  type AmityGlobalFeedComponentType = {
21
21
  pageId?: PageID;
22
22
  isShowStoryTab?: boolean;
23
+ GlobalFeedHeaderComponent?: React.ReactElement;
23
24
  };
24
25
 
25
26
  export const globalFeedPageLimit = 20;
@@ -27,6 +28,7 @@ export const globalFeedPageLimit = 20;
27
28
  const AmityGlobalFeedComponent: FC<AmityGlobalFeedComponentType> = ({
28
29
  pageId,
29
30
  isShowStoryTab = true,
31
+ GlobalFeedHeaderComponent,
30
32
  }) => {
31
33
  const { itemWithAds, refresh, loading, onNextPage } =
32
34
  useCustomRankingGlobalFeed();
@@ -100,12 +102,15 @@ const AmityGlobalFeedComponent: FC<AmityGlobalFeedComponentType> = ({
100
102
  }
101
103
  keyboardShouldPersistTaps="handled"
102
104
  ListHeaderComponent={
103
- !refreshing &&
104
- !loading &&
105
- isShowStoryTab && (
106
- <AmityStoryTabComponent
107
- type={AmityStoryTabComponentEnum.globalFeed}
108
- />
105
+ !refreshing && !loading && isShowStoryTab ? (
106
+ <View>
107
+ {GlobalFeedHeaderComponent}
108
+ <AmityStoryTabComponent
109
+ type={AmityStoryTabComponentEnum.globalFeed}
110
+ />
111
+ </View>
112
+ ) : (
113
+ GlobalFeedHeaderComponent
109
114
  )
110
115
  }
111
116
  viewabilityConfig={{ viewAreaCoveragePercentThreshold: 60 }}
@@ -158,8 +158,6 @@ const AmityPostContentComponent: FC<AmityPostContentComponentProps> = ({
158
158
  });
159
159
  };
160
160
 
161
- if (post?.structureType === 'liveStream') return null;
162
-
163
161
  return (
164
162
  <View>
165
163
  {(category === AmityPostCategory.ANNOUNCEMENT ||
@@ -74,10 +74,10 @@ const AmityReactionListComponent: FC<AmityReactionListComponentType> = ({
74
74
  selectedReactionIndex === 0
75
75
  ? allReactionList
76
76
  : selectedReactionIndex === 1
77
- ? likeReactionList
78
- : selectedReactionIndex === 2
79
- ? loveReactionList
80
- : null;
77
+ ? likeReactionList
78
+ : selectedReactionIndex === 2
79
+ ? loveReactionList
80
+ : null;
81
81
  if (currentUsers?.length > 0) {
82
82
  const userList = currentUsers.map((item) => item.userId);
83
83
  try {
@@ -95,7 +95,7 @@ const AmityReactionListComponent: FC<AmityReactionListComponentType> = ({
95
95
  }
96
96
  })();
97
97
 
98
- return () => { };
98
+ return () => {};
99
99
  }, [
100
100
  allReactionList,
101
101
  likeReactionList,
@@ -231,10 +231,10 @@ const AmityReactionListComponent: FC<AmityReactionListComponentType> = ({
231
231
  {loading
232
232
  ? renderContentLoading()
233
233
  : hasError
234
- ? errorContent()
235
- : reactors
236
- ? renderReactionList()
237
- : null}
234
+ ? errorContent()
235
+ : reactors
236
+ ? renderReactionList()
237
+ : null}
238
238
  </View>
239
239
  </Modal>
240
240
  );
@@ -37,10 +37,16 @@ const AmityLivestreamPostTargetSelectionPage = () => {
37
37
  navigation.navigate('CreateLivestream', context);
38
38
  };
39
39
 
40
+ const onClickClose = () => {
41
+ if (AmityLivestreamPostTargetSelectionPageBehavior?.onClickClose) {
42
+ AmityLivestreamPostTargetSelectionPageBehavior.onClickClose();
43
+ }
44
+ };
40
45
  return (
41
46
  <TargetSelectionPage
42
47
  onSelectFeed={onSelectFeed}
43
48
  pageId={PageID.livestream_post_target_selection_page}
49
+ onClickClose={onClickClose}
44
50
  />
45
51
  );
46
52
  };
@@ -28,11 +28,16 @@ const AmityPollTargetSelectionPage = () => {
28
28
  }
29
29
  navigation.navigate('PollPostComposer', context);
30
30
  };
31
-
31
+ const onClickClose = () => {
32
+ if (AmityPollTargetSelectionPageBehavior?.onClickClose) {
33
+ AmityPollTargetSelectionPageBehavior.onClickClose();
34
+ }
35
+ };
32
36
  return (
33
37
  <TargetSelectionPage
34
38
  onSelectFeed={onSelectFeed}
35
39
  pageId={PageID.select_poll_target_page}
40
+ onClickClose={onClickClose}
36
41
  />
37
42
  );
38
43
  };
@@ -60,6 +60,7 @@ import { getPostErrorMessage } from '../../../utils/errors';
60
60
  import { MAXIMUM_POST_CHARACTERS } from '../../../constants';
61
61
  import { replaceTriggerValues } from 'react-native-controlled-mentions';
62
62
  import { useUIKitDispatch } from '../../../../redux/store';
63
+ import { useBehaviour } from '../../../../v4/providers/BehaviourProvider';
63
64
 
64
65
  const AmityPostComposerPage: FC<AmityPostComposerPageType> = ({
65
66
  mode,
@@ -75,6 +76,7 @@ const AmityPostComposerPage: FC<AmityPostComposerPageType> = ({
75
76
  shouldCall: true,
76
77
  });
77
78
  const pageId = PageID.post_composer_page;
79
+ const { AmityPostComposerPageBehavior } = useBehaviour();
78
80
  const { isExcluded, themeStyles, accessibilityId } = useAmityPage({ pageId });
79
81
  const styles = useStyles(themeStyles);
80
82
  const { getImage } = useFile();
@@ -105,12 +107,16 @@ const AmityPostComposerPage: FC<AmityPostComposerPageType> = ({
105
107
  const [deletedPostIds, setDeletedPostIds] = useState<string[]>([]);
106
108
  const [isUploading, setIsUploading] = useState(false);
107
109
  const [hasChangedAttachment, setHasChangedAttachment] = useState(false);
110
+ const [imageErrors, setImageErrors] = useState<Set<string>>(new Set());
111
+ const [videoErrors, setVideoErrors] = useState<Set<string>>(new Set());
108
112
  const privateCommunityId = !community?.isPublic && community?.communityId;
109
113
  const title = isEditMode
110
114
  ? 'Edit Post'
111
115
  : community?.displayName ?? 'My Timeline';
112
116
  const isInputValid =
113
117
  !isUploading &&
118
+ imageErrors.size === 0 &&
119
+ videoErrors.size === 0 &&
114
120
  inputMessage.trim().length <= MAXIMUM_POST_CHARACTERS &&
115
121
  (inputMessage.trim().length > 0 ||
116
122
  displayImages.length > 0 ||
@@ -286,17 +292,20 @@ const AmityPostComposerPage: FC<AmityPostComposerPageType> = ({
286
292
 
287
293
  const onPressClose = useCallback(() => {
288
294
  const routes = navigation.getState().routes;
295
+ if (AmityPostComposerPageBehavior?.onPressPost) {
296
+ AmityPostComposerPageBehavior.onPressPost();
297
+ }
289
298
  if (routes[routes.length - 2].name === 'PostTargetSelection') {
290
299
  navigation.pop(2);
291
300
  } else navigation.pop();
292
- }, [navigation]);
301
+ }, [navigation, AmityPostComposerPageBehavior]);
293
302
 
294
303
  const onClose = useCallback(() => {
295
304
  Alert.alert(
296
305
  'Discard this post',
297
306
  'The post will be permanently deleted. It cannot be undone',
298
307
  [
299
- { text: 'Keey Editing', style: 'cancel' },
308
+ { text: 'Keep Editing', style: 'cancel' },
300
309
  {
301
310
  text: 'Discard',
302
311
  style: 'destructive',
@@ -593,10 +602,45 @@ const AmityPostComposerPage: FC<AmityPostComposerPageType> = ({
593
602
  }
594
603
  }, [displayVideos.length, processMedia]);
595
604
 
605
+ const handleImageUploadError = useCallback(
606
+ (hasError: boolean, source: string) => {
607
+ setImageErrors((prev) => {
608
+ const newSet = new Set(prev);
609
+ if (hasError) {
610
+ newSet.add(source);
611
+ } else {
612
+ newSet.delete(source);
613
+ }
614
+ return newSet;
615
+ });
616
+ },
617
+ []
618
+ );
619
+
620
+ const handleVideoUploadError = useCallback(
621
+ (hasError: boolean, source: string) => {
622
+ setVideoErrors((prev) => {
623
+ const newSet = new Set(prev);
624
+ if (hasError) {
625
+ newSet.add(source);
626
+ } else {
627
+ newSet.delete(source);
628
+ }
629
+ return newSet;
630
+ });
631
+ },
632
+ []
633
+ );
634
+
596
635
  const handleOnCloseImage = useCallback(
597
636
  (originalPath: string, _, postId: string) => {
598
637
  setHasChangedAttachment(true);
599
638
  setDeletedPostIds((prev) => [...prev, postId]);
639
+ setImageErrors((prev) => {
640
+ const newSet = new Set(prev);
641
+ newSet.delete(originalPath);
642
+ return newSet;
643
+ });
600
644
  setDisplayImages((prevData) => {
601
645
  const newData = prevData.filter(
602
646
  (item: IDisplayImage) => item.url !== originalPath
@@ -610,6 +654,11 @@ const AmityPostComposerPage: FC<AmityPostComposerPageType> = ({
610
654
  (originalPath: string, _, postId: string) => {
611
655
  setHasChangedAttachment(true);
612
656
  setDeletedPostIds((prev) => [...prev, postId]);
657
+ setVideoErrors((prev) => {
658
+ const newSet = new Set(prev);
659
+ newSet.delete(originalPath);
660
+ return newSet;
661
+ });
613
662
  setDisplayVideos((prevData) => {
614
663
  const newData = prevData.filter(
615
664
  (item: IDisplayImage) => item.url !== originalPath
@@ -755,6 +804,7 @@ const AmityPostComposerPage: FC<AmityPostComposerPageType> = ({
755
804
  onClose={handleOnCloseImage}
756
805
  index={index} //TODO: Fix this without index
757
806
  onLoadFinish={handleOnFinishImage}
807
+ onUploadError={handleImageUploadError}
758
808
  isUploaded={item.isUploaded}
759
809
  fileId={item.fileId}
760
810
  fileCount={displayImages.length}
@@ -778,6 +828,7 @@ const AmityPostComposerPage: FC<AmityPostComposerPageType> = ({
778
828
  onClose={handleOnCloseVideo}
779
829
  index={index} //TODO: Fix this without index
780
830
  onLoadFinish={handleOnFinishVideo}
831
+ onUploadError={handleVideoUploadError}
781
832
  isUploaded={item.isUploaded}
782
833
  fileId={item.fileId}
783
834
  thumbNail={item.thumbNail as string}
@@ -81,10 +81,17 @@ const AmityPostTargetSelectionPage = ({
81
81
  }
82
82
  };
83
83
 
84
+ const onClickClose = () => {
85
+ if (AmityPostTargetSelectionPageBehavior?.onClickClose) {
86
+ AmityPostTargetSelectionPageBehavior.onClickClose();
87
+ }
88
+ };
89
+
84
90
  return (
85
91
  <TargetSelectionPage
86
92
  pageId={PageID.select_post_target_page}
87
93
  onSelectFeed={onSelectFeed}
94
+ onClickClose={onClickClose}
88
95
  />
89
96
  );
90
97
  };
@@ -3,7 +3,11 @@ import { useCallback, useState } from 'react';
3
3
  import { LogBox, SafeAreaView, StyleSheet } from 'react-native';
4
4
  import CustomSocialTab from '../../../../v4/component/CustomSocialTab/CustomSocialTab';
5
5
  import { useUiKitConfig } from '../../../../v4/hook';
6
- import { ComponentID, ElementID, PageID } from '../../../../v4/enum/enumUIKitID';
6
+ import {
7
+ ComponentID,
8
+ ElementID,
9
+ PageID,
10
+ } from '../../../../v4/enum/enumUIKitID';
7
11
 
8
12
  import { useTheme } from 'react-native-paper';
9
13
  import { useBehaviour } from '../../../../v4/providers/BehaviourProvider';
@@ -24,11 +24,18 @@ const AmityStoryTargetSelectionPage = () => {
24
24
  });
25
25
  };
26
26
 
27
+ const onClickClose = () => {
28
+ if (AmityStoryTargetSelectionPageBehavior?.onClickClose) {
29
+ AmityStoryTargetSelectionPageBehavior.onClickClose();
30
+ }
31
+ };
32
+
27
33
  return (
28
34
  <TargetSelectionPage
29
35
  pageId={PageID.select_story_target_page}
30
36
  onSelectFeed={onSelectFeed}
31
37
  hideMyTimelineTarget={true}
38
+ onClickClose={onClickClose}
32
39
  />
33
40
  );
34
41
  };
@@ -10,8 +10,6 @@ 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';
15
13
 
16
14
  interface OverlayImageProps {
17
15
  source: string;
@@ -23,6 +21,7 @@ interface OverlayImageProps {
23
21
  index: number,
24
22
  originalPath: string
25
23
  ) => void;
24
+ onUploadError?: (hasError: boolean, source: string) => void;
26
25
  index?: number;
27
26
  isUploaded: boolean;
28
27
  fileId?: string;
@@ -36,6 +35,7 @@ const LoadingImage = ({
36
35
  onClose,
37
36
  index,
38
37
  onLoadFinish,
38
+ onUploadError,
39
39
  isUploaded = false,
40
40
  fileId = '',
41
41
  isEditMode = false,
@@ -44,8 +44,6 @@ const LoadingImage = ({
44
44
  setIsUploading,
45
45
  }: OverlayImageProps) => {
46
46
  const theme = useTheme() as MyMD3Theme;
47
- const dispatch = useUIKitDispatch();
48
- const { showToastMessage } = uiSlice.actions;
49
47
  const [loading, setLoading] = useState(true);
50
48
  const [progress, setProgress] = useState(0);
51
49
  const [isProcess, setIsProcess] = useState<boolean>(false);
@@ -84,33 +82,39 @@ const LoadingImage = ({
84
82
  source
85
83
  );
86
84
  } else {
85
+ setIsUploading(false);
87
86
  handleLoadEnd();
88
- dispatch(showToastMessage({ toastMessage: 'Failed to upload file' }));
87
+ setIsProcess(false);
89
88
  setIsUploadError(true);
89
+ onUploadError?.(true, source);
90
90
  }
91
91
  } catch (error) {
92
92
  handleLoadEnd();
93
- dispatch(showToastMessage({ toastMessage: 'Failed to upload file' }));
93
+ setIsProcess(false);
94
+ setIsUploading(false);
94
95
  setIsUploadError(true);
96
+ onUploadError?.(true, source);
95
97
  }
96
98
  }, [
97
- dispatch,
98
99
  handleLoadEnd,
99
100
  index,
100
101
  onLoadFinish,
102
+ onUploadError,
101
103
  setIsUploading,
102
- showToastMessage,
103
104
  source,
104
105
  ]);
105
106
 
106
107
  const handleDelete = async () => {
107
- if (!fileId) return null;
108
- if (!isEditMode) {
108
+ if (fileId && !isEditMode) {
109
109
  await deleteAmityFile(fileId);
110
110
  }
111
111
  onClose && onClose(source, fileId, postId);
112
112
  };
113
113
  useEffect(() => {
114
+ setIsUploadError(false);
115
+ onUploadError?.(false, source);
116
+ setProgress(0);
117
+ setIsProcess(false);
114
118
  if (isUploaded) {
115
119
  setLoading(false);
116
120
  } else {
@@ -151,19 +155,21 @@ const LoadingImage = ({
151
155
  )}
152
156
  </View>
153
157
  )}
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>
158
+ {!loading && isUploadError && (
159
+ <View style={styles.failedOverlay}>
160
+ <TouchableOpacity style={styles.errorOverlay} onPress={onRetryUpload}>
161
+ <SvgXml xml={toastIcon()} width="28" height="28" />
162
+ </TouchableOpacity>
163
+ </View>
166
164
  )}
165
+
166
+ <TouchableOpacity
167
+ style={styles.closeButton}
168
+ disabled={(loading || isProcess) && !isUploadError}
169
+ onPress={handleDelete}
170
+ >
171
+ <SvgXml xml={closeIcon(theme.colors.base)} width="12" height="12" />
172
+ </TouchableOpacity>
167
173
  </View>
168
174
  );
169
175
  };
@@ -18,12 +18,28 @@ export const useStyles = () => {
18
18
  height: '100%',
19
19
  resizeMode: 'cover',
20
20
  borderRadius: 5,
21
+ position: 'relative',
21
22
  },
22
23
  overlay: {
23
24
  ...StyleSheet.absoluteFillObject,
24
25
  justifyContent: 'center',
25
26
  alignItems: 'center',
26
27
  },
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
+ },
27
43
  progressBar: {
28
44
  marginVertical: 10,
29
45
  },
@@ -40,6 +56,7 @@ export const useStyles = () => {
40
56
  padding: 7,
41
57
  backgroundColor: 'rgba(0, 0, 0, 0.4)',
42
58
  borderRadius: 72,
59
+ zIndex: 10,
43
60
  },
44
61
  });
45
62
  };