@amityco/react-native-social-uikit 4.1.1-fe2678f6.0 → 4.2.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 (205) hide show
  1. package/README.md +7 -0
  2. package/lib/commonjs/core/assets/icons/post.js +1 -1
  3. package/lib/commonjs/core/assets/icons/post.js.map +1 -1
  4. package/lib/commonjs/core/assets/icons/story.js +1 -1
  5. package/lib/commonjs/core/assets/icons/story.js.map +1 -1
  6. package/lib/commonjs/core/assets/icons/xml.js +16 -2
  7. package/lib/commonjs/core/assets/icons/xml.js.map +1 -1
  8. package/lib/commonjs/core/legacy/file.js +145 -62
  9. package/lib/commonjs/core/legacy/file.js.map +1 -1
  10. package/lib/commonjs/core/stores/slices/feedSlice.js +3 -0
  11. package/lib/commonjs/core/stores/slices/feedSlice.js.map +1 -1
  12. package/lib/commonjs/core/stores/slices/globalfeedSlice.js +5 -0
  13. package/lib/commonjs/core/stores/slices/globalfeedSlice.js.map +1 -1
  14. package/lib/commonjs/core/stores/slices/localVideoThumbnailSlice.js +46 -0
  15. package/lib/commonjs/core/stores/slices/localVideoThumbnailSlice.js.map +1 -0
  16. package/lib/commonjs/core/stores/slices/uiSlice.js +5 -1
  17. package/lib/commonjs/core/stores/slices/uiSlice.js.map +1 -1
  18. package/lib/commonjs/core/stores/store/index.js +3 -1
  19. package/lib/commonjs/core/stores/store/index.js.map +1 -1
  20. package/lib/commonjs/social/components/LoadingImage/index.js +73 -12
  21. package/lib/commonjs/social/components/LoadingImage/index.js.map +1 -1
  22. package/lib/commonjs/social/components/LoadingImage/styles.js +8 -3
  23. package/lib/commonjs/social/components/LoadingImage/styles.js.map +1 -1
  24. package/lib/commonjs/social/components/LoadingVideo/index.js +90 -16
  25. package/lib/commonjs/social/components/LoadingVideo/index.js.map +1 -1
  26. package/lib/commonjs/social/components/LoadingVideo/styles.js +14 -5
  27. package/lib/commonjs/social/components/LoadingVideo/styles.js.map +1 -1
  28. package/lib/commonjs/social/components/MediaViewer/MediaViewer.js +13 -13
  29. package/lib/commonjs/social/components/MediaViewer/MediaViewer.js.map +1 -1
  30. package/lib/commonjs/social/components/MediaViewer/styles.js +11 -1
  31. package/lib/commonjs/social/components/MediaViewer/styles.js.map +1 -1
  32. package/lib/commonjs/social/components/PostContent/index.js +8 -29
  33. package/lib/commonjs/social/components/PostContent/index.js.map +1 -1
  34. package/lib/commonjs/social/components/SelectedMediaComponent/SelectedMediaComponent.js +109 -17
  35. package/lib/commonjs/social/components/SelectedMediaComponent/SelectedMediaComponent.js.map +1 -1
  36. package/lib/commonjs/social/components/legacy/LoadingVideo/index.js +17 -6
  37. package/lib/commonjs/social/components/legacy/LoadingVideo/index.js.map +1 -1
  38. package/lib/commonjs/social/elements/PostMediaElement/PostMediaElement.js +121 -23
  39. package/lib/commonjs/social/elements/PostMediaElement/PostMediaElement.js.map +1 -1
  40. package/lib/commonjs/social/elements/PostMediaElement/styles.js +7 -0
  41. package/lib/commonjs/social/elements/PostMediaElement/styles.js.map +1 -1
  42. package/lib/commonjs/social/features/community/PendingRequest/components/PendingPostList/PendingPostList.js +11 -5
  43. package/lib/commonjs/social/features/community/PendingRequest/components/PendingPostList/PendingPostList.js.map +1 -1
  44. package/lib/commonjs/social/features/feed/components/NewsFeed/NewsFeed.js +14 -0
  45. package/lib/commonjs/social/features/feed/components/NewsFeed/NewsFeed.js.map +1 -1
  46. package/lib/commonjs/social/features/post/Composer/PostComposer.js +234 -86
  47. package/lib/commonjs/social/features/post/Composer/PostComposer.js.map +1 -1
  48. package/lib/commonjs/social/hooks/index.js +11 -0
  49. package/lib/commonjs/social/hooks/index.js.map +1 -1
  50. package/lib/commonjs/social/hooks/useCommunities.js +5 -3
  51. package/lib/commonjs/social/hooks/useCommunities.js.map +1 -1
  52. package/lib/commonjs/social/hooks/useCommunityPermission.js +43 -0
  53. package/lib/commonjs/social/hooks/useCommunityPermission.js.map +1 -0
  54. package/lib/commonjs/social/hooks/useCustomRankingGlobalFeed.js +10 -1
  55. package/lib/commonjs/social/hooks/useCustomRankingGlobalFeed.js.map +1 -1
  56. package/lib/commonjs/social/hooks/useFile.js +11 -0
  57. package/lib/commonjs/social/hooks/useFile.js.map +1 -1
  58. package/lib/commonjs/social/screens/CommunityProfile/components/Header/Header.js +18 -7
  59. package/lib/commonjs/social/screens/CommunityProfile/components/Header/Header.js.map +1 -1
  60. package/lib/commonjs/social/utils/mediaAttachments.js +150 -0
  61. package/lib/commonjs/social/utils/mediaAttachments.js.map +1 -0
  62. package/lib/commonjs/social/utils/postChildren.js +72 -0
  63. package/lib/commonjs/social/utils/postChildren.js.map +1 -0
  64. package/lib/module/core/assets/icons/post.js +1 -1
  65. package/lib/module/core/assets/icons/post.js.map +1 -1
  66. package/lib/module/core/assets/icons/story.js +1 -1
  67. package/lib/module/core/assets/icons/story.js.map +1 -1
  68. package/lib/module/core/assets/icons/xml.js +13 -0
  69. package/lib/module/core/assets/icons/xml.js.map +1 -1
  70. package/lib/module/core/legacy/file.js +145 -62
  71. package/lib/module/core/legacy/file.js.map +1 -1
  72. package/lib/module/core/stores/slices/feedSlice.js +3 -0
  73. package/lib/module/core/stores/slices/feedSlice.js.map +1 -1
  74. package/lib/module/core/stores/slices/globalfeedSlice.js +5 -0
  75. package/lib/module/core/stores/slices/globalfeedSlice.js.map +1 -1
  76. package/lib/module/core/stores/slices/localVideoThumbnailSlice.js +41 -0
  77. package/lib/module/core/stores/slices/localVideoThumbnailSlice.js.map +1 -0
  78. package/lib/module/core/stores/slices/uiSlice.js +5 -1
  79. package/lib/module/core/stores/slices/uiSlice.js.map +1 -1
  80. package/lib/module/core/stores/store/index.js +3 -1
  81. package/lib/module/core/stores/store/index.js.map +1 -1
  82. package/lib/module/social/components/LoadingImage/index.js +74 -14
  83. package/lib/module/social/components/LoadingImage/index.js.map +1 -1
  84. package/lib/module/social/components/LoadingImage/styles.js +8 -3
  85. package/lib/module/social/components/LoadingImage/styles.js.map +1 -1
  86. package/lib/module/social/components/LoadingVideo/index.js +91 -17
  87. package/lib/module/social/components/LoadingVideo/index.js.map +1 -1
  88. package/lib/module/social/components/LoadingVideo/styles.js +14 -5
  89. package/lib/module/social/components/LoadingVideo/styles.js.map +1 -1
  90. package/lib/module/social/components/MediaViewer/MediaViewer.js +13 -13
  91. package/lib/module/social/components/MediaViewer/MediaViewer.js.map +1 -1
  92. package/lib/module/social/components/MediaViewer/styles.js +11 -1
  93. package/lib/module/social/components/MediaViewer/styles.js.map +1 -1
  94. package/lib/module/social/components/PostContent/index.js +8 -29
  95. package/lib/module/social/components/PostContent/index.js.map +1 -1
  96. package/lib/module/social/components/SelectedMediaComponent/SelectedMediaComponent.js +110 -18
  97. package/lib/module/social/components/SelectedMediaComponent/SelectedMediaComponent.js.map +1 -1
  98. package/lib/module/social/components/legacy/LoadingVideo/index.js +17 -6
  99. package/lib/module/social/components/legacy/LoadingVideo/index.js.map +1 -1
  100. package/lib/module/social/elements/PostMediaElement/PostMediaElement.js +123 -25
  101. package/lib/module/social/elements/PostMediaElement/PostMediaElement.js.map +1 -1
  102. package/lib/module/social/elements/PostMediaElement/styles.js +7 -0
  103. package/lib/module/social/elements/PostMediaElement/styles.js.map +1 -1
  104. package/lib/module/social/features/community/PendingRequest/components/PendingPostList/PendingPostList.js +12 -6
  105. package/lib/module/social/features/community/PendingRequest/components/PendingPostList/PendingPostList.js.map +1 -1
  106. package/lib/module/social/features/feed/components/NewsFeed/NewsFeed.js +15 -1
  107. package/lib/module/social/features/feed/components/NewsFeed/NewsFeed.js.map +1 -1
  108. package/lib/module/social/features/post/Composer/PostComposer.js +236 -89
  109. package/lib/module/social/features/post/Composer/PostComposer.js.map +1 -1
  110. package/lib/module/social/hooks/index.js +1 -0
  111. package/lib/module/social/hooks/index.js.map +1 -1
  112. package/lib/module/social/hooks/useCommunities.js +5 -3
  113. package/lib/module/social/hooks/useCommunities.js.map +1 -1
  114. package/lib/module/social/hooks/useCommunityPermission.js +37 -0
  115. package/lib/module/social/hooks/useCommunityPermission.js.map +1 -0
  116. package/lib/module/social/hooks/useCustomRankingGlobalFeed.js +10 -1
  117. package/lib/module/social/hooks/useCustomRankingGlobalFeed.js.map +1 -1
  118. package/lib/module/social/hooks/useFile.js +11 -0
  119. package/lib/module/social/hooks/useFile.js.map +1 -1
  120. package/lib/module/social/screens/CommunityProfile/components/Header/Header.js +19 -8
  121. package/lib/module/social/screens/CommunityProfile/components/Header/Header.js.map +1 -1
  122. package/lib/module/social/utils/mediaAttachments.js +139 -0
  123. package/lib/module/social/utils/mediaAttachments.js.map +1 -0
  124. package/lib/module/social/utils/postChildren.js +66 -0
  125. package/lib/module/social/utils/postChildren.js.map +1 -0
  126. package/lib/typescript/core/assets/icons/xml.d.ts +1 -0
  127. package/lib/typescript/core/assets/icons/xml.d.ts.map +1 -1
  128. package/lib/typescript/core/legacy/file.d.ts +32 -0
  129. package/lib/typescript/core/legacy/file.d.ts.map +1 -1
  130. package/lib/typescript/core/stores/slices/feedSlice.d.ts.map +1 -1
  131. package/lib/typescript/core/stores/slices/globalfeedSlice.d.ts.map +1 -1
  132. package/lib/typescript/core/stores/slices/localVideoThumbnailSlice.d.ts +35 -0
  133. package/lib/typescript/core/stores/slices/localVideoThumbnailSlice.d.ts.map +1 -0
  134. package/lib/typescript/core/stores/slices/uiSlice.d.ts +5 -0
  135. package/lib/typescript/core/stores/slices/uiSlice.d.ts.map +1 -1
  136. package/lib/typescript/core/stores/store/index.d.ts.map +1 -1
  137. package/lib/typescript/core/types/mention.d.ts +34 -0
  138. package/lib/typescript/core/types/mention.d.ts.map +1 -1
  139. package/lib/typescript/social/components/LoadingImage/index.d.ts +8 -2
  140. package/lib/typescript/social/components/LoadingImage/index.d.ts.map +1 -1
  141. package/lib/typescript/social/components/LoadingImage/styles.d.ts.map +1 -1
  142. package/lib/typescript/social/components/LoadingVideo/index.d.ts +9 -2
  143. package/lib/typescript/social/components/LoadingVideo/index.d.ts.map +1 -1
  144. package/lib/typescript/social/components/LoadingVideo/styles.d.ts +1 -0
  145. package/lib/typescript/social/components/LoadingVideo/styles.d.ts.map +1 -1
  146. package/lib/typescript/social/components/MediaViewer/MediaViewer.d.ts.map +1 -1
  147. package/lib/typescript/social/components/MediaViewer/styles.d.ts +1 -0
  148. package/lib/typescript/social/components/MediaViewer/styles.d.ts.map +1 -1
  149. package/lib/typescript/social/components/PostContent/index.d.ts.map +1 -1
  150. package/lib/typescript/social/components/SelectedMediaComponent/SelectedMediaComponent.d.ts +2 -2
  151. package/lib/typescript/social/components/SelectedMediaComponent/SelectedMediaComponent.d.ts.map +1 -1
  152. package/lib/typescript/social/components/legacy/LoadingVideo/index.d.ts.map +1 -1
  153. package/lib/typescript/social/elements/PostMediaElement/PostMediaElement.d.ts.map +1 -1
  154. package/lib/typescript/social/elements/PostMediaElement/styles.d.ts +4 -0
  155. package/lib/typescript/social/elements/PostMediaElement/styles.d.ts.map +1 -1
  156. package/lib/typescript/social/features/community/PendingRequest/components/PendingPostList/PendingPostList.d.ts.map +1 -1
  157. package/lib/typescript/social/features/feed/components/NewsFeed/NewsFeed.d.ts.map +1 -1
  158. package/lib/typescript/social/features/post/Composer/PostComposer.d.ts.map +1 -1
  159. package/lib/typescript/social/hooks/index.d.ts +1 -0
  160. package/lib/typescript/social/hooks/index.d.ts.map +1 -1
  161. package/lib/typescript/social/hooks/useCommunities.d.ts +2 -1
  162. package/lib/typescript/social/hooks/useCommunities.d.ts.map +1 -1
  163. package/lib/typescript/social/hooks/useCommunityPermission.d.ts +14 -0
  164. package/lib/typescript/social/hooks/useCommunityPermission.d.ts.map +1 -0
  165. package/lib/typescript/social/hooks/useCustomRankingGlobalFeed.d.ts.map +1 -1
  166. package/lib/typescript/social/hooks/useFile.d.ts +11 -0
  167. package/lib/typescript/social/hooks/useFile.d.ts.map +1 -1
  168. package/lib/typescript/social/screens/CommunityProfile/components/Header/Header.d.ts.map +1 -1
  169. package/lib/typescript/social/utils/mediaAttachments.d.ts +91 -0
  170. package/lib/typescript/social/utils/mediaAttachments.d.ts.map +1 -0
  171. package/lib/typescript/social/utils/postChildren.d.ts +38 -0
  172. package/lib/typescript/social/utils/postChildren.d.ts.map +1 -0
  173. package/package.json +3 -3
  174. package/src/core/assets/icons/post.tsx +1 -1
  175. package/src/core/assets/icons/story.tsx +1 -1
  176. package/src/core/assets/icons/xml.ts +15 -0
  177. package/src/core/legacy/file.tsx +169 -84
  178. package/src/core/stores/slices/feedSlice.ts +3 -0
  179. package/src/core/stores/slices/globalfeedSlice.ts +5 -0
  180. package/src/core/stores/slices/localVideoThumbnailSlice.ts +58 -0
  181. package/src/core/stores/slices/uiSlice.ts +8 -0
  182. package/src/core/stores/store/index.ts +2 -0
  183. package/src/core/types/mention.ts +34 -0
  184. package/src/social/components/LoadingImage/index.tsx +81 -12
  185. package/src/social/components/LoadingImage/styles.ts +8 -3
  186. package/src/social/components/LoadingVideo/index.tsx +111 -21
  187. package/src/social/components/LoadingVideo/styles.ts +13 -4
  188. package/src/social/components/MediaViewer/MediaViewer.tsx +11 -12
  189. package/src/social/components/MediaViewer/styles.ts +9 -1
  190. package/src/social/components/PostContent/index.tsx +3 -35
  191. package/src/social/components/SelectedMediaComponent/SelectedMediaComponent.tsx +103 -13
  192. package/src/social/components/legacy/LoadingVideo/index.tsx +26 -15
  193. package/src/social/elements/PostMediaElement/PostMediaElement.tsx +139 -29
  194. package/src/social/elements/PostMediaElement/styles.ts +7 -0
  195. package/src/social/features/community/PendingRequest/components/PendingPostList/PendingPostList.tsx +11 -6
  196. package/src/social/features/feed/components/NewsFeed/NewsFeed.tsx +16 -1
  197. package/src/social/features/post/Composer/PostComposer.tsx +304 -91
  198. package/src/social/hooks/index.ts +1 -0
  199. package/src/social/hooks/useCommunities.ts +4 -2
  200. package/src/social/hooks/useCommunityPermission.ts +40 -0
  201. package/src/social/hooks/useCustomRankingGlobalFeed.ts +8 -1
  202. package/src/social/hooks/useFile.ts +11 -0
  203. package/src/social/screens/CommunityProfile/components/Header/Header.tsx +19 -10
  204. package/src/social/utils/mediaAttachments.ts +158 -0
  205. package/src/social/utils/postChildren.ts +85 -0
@@ -46,6 +46,11 @@ const globalFeedSlice = createSlice({
46
46
  postDetail
47
47
  } = action.payload;
48
48
  const index = state.postList.findIndex(item => !isAmityAd(item) && item.postId === postId);
49
+ // A post edited from a feed this list never held (a community feed, say)
50
+ // is simply not here. Without this guard the -1 miss was written as a
51
+ // "-1" property on the array: the real entries stayed stale and nothing
52
+ // reported a failure.
53
+ if (index < 0) return;
49
54
  state.postList[index] = postDetail;
50
55
  },
51
56
  deleteByPostId: (state, action) => {
@@ -1 +1 @@
1
- {"version":3,"names":["createSlice","isAmityAd","initialState","postList","paginationData","next","previous","globalFeedSlice","name","reducers","setNewGlobalFeed","state","action","seen","Set","payload","filter","post","has","postId","add","updateGlobalFeed","uniqueIds","map","adId","newUnique","id","push","setPaginationData","addPostToGlobalFeed","alreadyExists","some","item","updateByPostId","postDetail","index","findIndex","deleteByPostId","prevPostList","updatedPostList","clearFeed"],"sourceRoot":"../../../../../src","sources":["core/stores/slices/globalfeedSlice.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createSlice","isAmityAd","initialState","postList","paginationData","next","previous","globalFeedSlice","name","reducers","setNewGlobalFeed","state","action","seen","Set","payload","filter","post","has","postId","add","updateGlobalFeed","uniqueIds","map","adId","newUnique","id","push","setPaginationData","addPostToGlobalFeed","alreadyExists","some","item","updateByPostId","postDetail","index","findIndex","deleteByPostId","prevPostList","updatedPostList","clearFeed"],"sourceRoot":"../../../../../src","sources":["core/stores/slices/globalfeedSlice.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ import { createSlice } from '@reduxjs/toolkit';
2
+
3
+ /**
4
+ * A video post has no server-side thumbnail until the backend finishes
5
+ * transcoding, so for the first stretch of a new post's life the feed has
6
+ * nothing to render. The composer has already decoded a frame locally to show
7
+ * its own preview, so keep that frame around and let the feed borrow it until
8
+ * the real one exists.
9
+ *
10
+ * Keyed by the ORIGINAL video's fileId, which is what the created post carries
11
+ * in `data.videoFileId.original`. Mirrors web's LayoutProvider `videoThumbnail`
12
+ * + the VideoContent fallback.
13
+ *
14
+ * Only the most recently created post is kept — the same bound web has — so
15
+ * this never grows with session length. These are local file uris, valid only
16
+ * for this process; nothing persists them.
17
+ */
18
+
19
+ const initialState = {
20
+ postId: null,
21
+ videos: []
22
+ };
23
+ const localVideoThumbnailSlice = createSlice({
24
+ name: 'localVideoThumbnail',
25
+ initialState,
26
+ reducers: {
27
+ setLocalVideoThumbnails: (state, action) => {
28
+ state.postId = action.payload.postId;
29
+ state.videos = action.payload.videos.filter(({
30
+ fileId,
31
+ thumbnailUrl
32
+ }) => !!fileId && !!thumbnailUrl);
33
+ },
34
+ clearLocalVideoThumbnails: state => {
35
+ state.postId = null;
36
+ state.videos = [];
37
+ }
38
+ }
39
+ });
40
+ export default localVideoThumbnailSlice;
41
+ //# sourceMappingURL=localVideoThumbnailSlice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createSlice","initialState","postId","videos","localVideoThumbnailSlice","name","reducers","setLocalVideoThumbnails","state","action","payload","filter","fileId","thumbnailUrl","clearLocalVideoThumbnails"],"sourceRoot":"../../../../../src","sources":["core/stores/slices/localVideoThumbnailSlice.ts"],"mappings":"AAAA,SAAwBA,WAAW,QAAQ,kBAAkB;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAaA,MAAMC,YAAsC,GAAG;EAC7CC,MAAM,EAAE,IAAI;EACZC,MAAM,EAAE;AACV,CAAC;AAED,MAAMC,wBAAwB,GAAGJ,WAAW,CAAC;EAC3CK,IAAI,EAAE,qBAAqB;EAC3BJ,YAAY;EACZK,QAAQ,EAAE;IACRC,uBAAuB,EAAEA,CACvBC,KAAK,EACLC,MAGE,KACC;MACHD,KAAK,CAACN,MAAM,GAAGO,MAAM,CAACC,OAAO,CAACR,MAAM;MACpCM,KAAK,CAACL,MAAM,GAAGM,MAAM,CAACC,OAAO,CAACP,MAAM,CAACQ,MAAM,CACzC,CAAC;QAAEC,MAAM;QAAEC;MAAa,CAAC,KAAK,CAAC,CAACD,MAAM,IAAI,CAAC,CAACC,YAC9C,CAAC;IACH,CAAC;IACDC,yBAAyB,EAAGN,KAAK,IAAK;MACpCA,KAAK,CAACN,MAAM,GAAG,IAAI;MACnBM,KAAK,CAACL,MAAM,GAAG,EAAE;IACnB;EACF;AACF,CAAC,CAAC;AAEF,eAAeC,wBAAwB","ignoreList":[]}
@@ -7,7 +7,8 @@ const initialState = {
7
7
  targetName: '',
8
8
  postSetting: null,
9
9
  needApprovalOnPostCreation: true,
10
- isPublic: false
10
+ isPublic: false,
11
+ feedReloadToken: 0
11
12
  };
12
13
  const uiSlice = createSlice({
13
14
  name: 'ui',
@@ -39,6 +40,9 @@ const uiSlice = createSlice({
39
40
  state.isLoadingToast = action.payload.isLoadingToast;
40
41
  state.isSuccessToast = action.payload.isSuccessToast;
41
42
  },
43
+ markFeedReloaded: state => {
44
+ state.feedReloadToken += 1;
45
+ },
42
46
  hideToastMessage: state => {
43
47
  state.showToastMessage = false;
44
48
  state.toastMessage = '';
@@ -1 +1 @@
1
- {"version":3,"names":["createSlice","initialState","showPostTypeChoiceModal","userId","targetId","targetType","targetName","postSetting","needApprovalOnPostCreation","isPublic","uiSlice","name","reducers","openPostTypeChoiceModal","state","action","payload","closePostTypeChoiceModal","showToastMessage","toastMessage","isLoadingToast","isSuccessToast","hideToastMessage"],"sourceRoot":"../../../../../src","sources":["core/stores/slices/uiSlice.ts"],"mappings":"AAAA,SAAwBA,WAAW,QAAQ,kBAAkB;AAuB7D,MAAMC,YAAqB,GAAG;EAC5BC,uBAAuB,EAAE,KAAK;EAC9BC,MAAM,EAAE,IAAI;EACZC,QAAQ,EAAE,IAAI;EACdC,UAAU,EAAE,EAAE;EACdC,UAAU,EAAE,EAAE;EACdC,WAAW,EAAE,IAAI;EACjBC,0BAA0B,EAAE,IAAI;EAChCC,QAAQ,EAAE;AACZ,CAAC;AAED,MAAMC,OAAO,GAAGV,WAAW,CAAC;EAC1BW,IAAI,EAAE,IAAI;EACVV,YAAY;EACZW,QAAQ,EAAE;IACRC,uBAAuB,EAAEA,CACvBC,KAAK,EACLC,MAcE,KACC;MACHD,KAAK,CAACZ,uBAAuB,GAAG,IAAI;MACpCY,KAAK,CAACX,MAAM,GAAGY,MAAM,CAACC,OAAO,CAACb,MAAM;MACpCW,KAAK,CAACV,QAAQ,GAAGW,MAAM,CAACC,OAAO,CAACZ,QAAQ,IAAI,IAAI;MAChDU,KAAK,CAACR,UAAU,GAAGS,MAAM,CAACC,OAAO,CAACV,UAAU,IAAI,EAAE;MAClDQ,KAAK,CAACT,UAAU,GAAGU,MAAM,CAACC,OAAO,CAACX,UAAU,IAAI,EAAE;MAClDS,KAAK,CAACP,WAAW,GAAGQ,MAAM,CAACC,OAAO,CAACT,WAAW,IAAI,IAAI;MACtDO,KAAK,CAACL,QAAQ,GAAGM,MAAM,CAACC,OAAO,CAACP,QAAQ;MACxCK,KAAK,CAACN,0BAA0B,GAC9BO,MAAM,CAACC,OAAO,CAACR,0BAA0B;IAC7C,CAAC;IACDS,wBAAwB,EAAGH,KAAK,IAAK;MACnCA,KAAK,CAACZ,uBAAuB,GAAG,KAAK;MACrCY,KAAK,CAACX,MAAM,GAAG,IAAI;MACnBW,KAAK,CAACV,QAAQ,GAAG,IAAI;MACrBU,KAAK,CAACT,UAAU,GAAG,EAAE;MACrBS,KAAK,CAACR,UAAU,GAAG,EAAE;MACrBQ,KAAK,CAACP,WAAW,GAAG,IAAI;MACxBO,KAAK,CAACN,0BAA0B,GAAG,IAAI;MACvCM,KAAK,CAACL,QAAQ,GAAG,KAAK;IACxB,CAAC;IACDS,gBAAgB,EAAEA,CAChBJ,KAAK,EACLC,MAIE,KACC;MACHD,KAAK,CAACI,gBAAgB,GAAG,IAAI;MAC7BJ,KAAK,CAACK,YAAY,GAAGJ,MAAM,CAACC,OAAO,CAACG,YAAY;MAChDL,KAAK,CAACM,cAAc,GAAGL,MAAM,CAACC,OAAO,CAACI,cAAc;MACpDN,KAAK,CAACO,cAAc,GAAGN,MAAM,CAACC,OAAO,CAACK,cAAc;IACtD,CAAC;IACDC,gBAAgB,EAAGR,KAAK,IAAK;MAC3BA,KAAK,CAACI,gBAAgB,GAAG,KAAK;MAC9BJ,KAAK,CAACK,YAAY,GAAG,EAAE;MACvBL,KAAK,CAACM,cAAc,GAAG,KAAK;MAC5BN,KAAK,CAACO,cAAc,GAAG,KAAK;IAC9B;EACF;AACF,CAAC,CAAC;AAEF,eAAeX,OAAO","ignoreList":[]}
1
+ {"version":3,"names":["createSlice","initialState","showPostTypeChoiceModal","userId","targetId","targetType","targetName","postSetting","needApprovalOnPostCreation","isPublic","feedReloadToken","uiSlice","name","reducers","openPostTypeChoiceModal","state","action","payload","closePostTypeChoiceModal","showToastMessage","toastMessage","isLoadingToast","isSuccessToast","markFeedReloaded","hideToastMessage"],"sourceRoot":"../../../../../src","sources":["core/stores/slices/uiSlice.ts"],"mappings":"AAAA,SAAwBA,WAAW,QAAQ,kBAAkB;AA2B7D,MAAMC,YAAqB,GAAG;EAC5BC,uBAAuB,EAAE,KAAK;EAC9BC,MAAM,EAAE,IAAI;EACZC,QAAQ,EAAE,IAAI;EACdC,UAAU,EAAE,EAAE;EACdC,UAAU,EAAE,EAAE;EACdC,WAAW,EAAE,IAAI;EACjBC,0BAA0B,EAAE,IAAI;EAChCC,QAAQ,EAAE,KAAK;EACfC,eAAe,EAAE;AACnB,CAAC;AAED,MAAMC,OAAO,GAAGX,WAAW,CAAC;EAC1BY,IAAI,EAAE,IAAI;EACVX,YAAY;EACZY,QAAQ,EAAE;IACRC,uBAAuB,EAAEA,CACvBC,KAAK,EACLC,MAcE,KACC;MACHD,KAAK,CAACb,uBAAuB,GAAG,IAAI;MACpCa,KAAK,CAACZ,MAAM,GAAGa,MAAM,CAACC,OAAO,CAACd,MAAM;MACpCY,KAAK,CAACX,QAAQ,GAAGY,MAAM,CAACC,OAAO,CAACb,QAAQ,IAAI,IAAI;MAChDW,KAAK,CAACT,UAAU,GAAGU,MAAM,CAACC,OAAO,CAACX,UAAU,IAAI,EAAE;MAClDS,KAAK,CAACV,UAAU,GAAGW,MAAM,CAACC,OAAO,CAACZ,UAAU,IAAI,EAAE;MAClDU,KAAK,CAACR,WAAW,GAAGS,MAAM,CAACC,OAAO,CAACV,WAAW,IAAI,IAAI;MACtDQ,KAAK,CAACN,QAAQ,GAAGO,MAAM,CAACC,OAAO,CAACR,QAAQ;MACxCM,KAAK,CAACP,0BAA0B,GAC9BQ,MAAM,CAACC,OAAO,CAACT,0BAA0B;IAC7C,CAAC;IACDU,wBAAwB,EAAGH,KAAK,IAAK;MACnCA,KAAK,CAACb,uBAAuB,GAAG,KAAK;MACrCa,KAAK,CAACZ,MAAM,GAAG,IAAI;MACnBY,KAAK,CAACX,QAAQ,GAAG,IAAI;MACrBW,KAAK,CAACV,UAAU,GAAG,EAAE;MACrBU,KAAK,CAACT,UAAU,GAAG,EAAE;MACrBS,KAAK,CAACR,WAAW,GAAG,IAAI;MACxBQ,KAAK,CAACP,0BAA0B,GAAG,IAAI;MACvCO,KAAK,CAACN,QAAQ,GAAG,KAAK;IACxB,CAAC;IACDU,gBAAgB,EAAEA,CAChBJ,KAAK,EACLC,MAIE,KACC;MACHD,KAAK,CAACI,gBAAgB,GAAG,IAAI;MAC7BJ,KAAK,CAACK,YAAY,GAAGJ,MAAM,CAACC,OAAO,CAACG,YAAY;MAChDL,KAAK,CAACM,cAAc,GAAGL,MAAM,CAACC,OAAO,CAACI,cAAc;MACpDN,KAAK,CAACO,cAAc,GAAGN,MAAM,CAACC,OAAO,CAACK,cAAc;IACtD,CAAC;IACDC,gBAAgB,EAAGR,KAAK,IAAK;MAC3BA,KAAK,CAACL,eAAe,IAAI,CAAC;IAC5B,CAAC;IACDc,gBAAgB,EAAGT,KAAK,IAAK;MAC3BA,KAAK,CAACI,gBAAgB,GAAG,KAAK;MAC9BJ,KAAK,CAACK,YAAY,GAAG,EAAE;MACvBL,KAAK,CAACM,cAAc,GAAG,KAAK;MAC5BN,KAAK,CAACO,cAAc,GAAG,KAAK;IAC9B;EACF;AACF,CAAC,CAAC;AAEF,eAAeX,OAAO","ignoreList":[]}
@@ -5,6 +5,7 @@ import postDetailSlice from '../slices/postDetailSlice';
5
5
  import uiSlice from '../slices/uiSlice';
6
6
  import bottomSheetSlice from '../slices/bottomSheetSlice';
7
7
  import toastSlice from '../slices/toastSlice';
8
+ import localVideoThumbnailSlice from '../slices/localVideoThumbnailSlice';
8
9
  import { createContext } from 'react';
9
10
  import { createStoreHook, createDispatchHook, createSelectorHook } from 'react-redux';
10
11
  export const AmityUIKitReduxContext = /*#__PURE__*/createContext(null);
@@ -18,7 +19,8 @@ export const store = configureStore({
18
19
  feed: feedSlice.reducer,
19
20
  ui: uiSlice.reducer,
20
21
  bottomSheet: bottomSheetSlice.reducer,
21
- toast: toastSlice.reducer
22
+ toast: toastSlice.reducer,
23
+ localVideoThumbnail: localVideoThumbnailSlice.reducer
22
24
  },
23
25
  middleware: getDefaultMiddleware => getDefaultMiddleware({
24
26
  serializableCheck: false
@@ -1 +1 @@
1
- {"version":3,"names":["configureStore","globalFeedSlice","feedSlice","postDetailSlice","uiSlice","bottomSheetSlice","toastSlice","createContext","createStoreHook","createDispatchHook","createSelectorHook","AmityUIKitReduxContext","useUIKitStore","useUIKitDispatch","useUIKitSelector","store","reducer","globalFeed","postDetail","feed","ui","bottomSheet","toast","middleware","getDefaultMiddleware","serializableCheck"],"sourceRoot":"../../../../../src","sources":["core/stores/store/index.ts"],"mappings":"AAAA,SAASA,cAAc,QAAe,kBAAkB;AACxD,OAAOC,eAAe,MAAM,2BAA2B;AACvD,OAAOC,SAAS,MAAM,qBAAqB;AAC3C,OAAOC,eAAe,MAAM,2BAA2B;AACvD,OAAOC,OAAO,MAAM,mBAAmB;AACvC,OAAOC,gBAAgB,MAAM,4BAA4B;AACzD,OAAOC,UAAU,MAAM,sBAAsB;AAC7C,SAASC,aAAa,QAAQ,OAAO;AACrC,SACEC,eAAe,EACfC,kBAAkB,EAClBC,kBAAkB,QAEb,aAAa;AAGpB,OAAO,MAAMC,sBAAsB,gBAAGJ,aAAa,CAEjD,IAAW,CAAC;AAEd,OAAO,MAAMK,aAAa,GAAGJ,eAAe,CAACG,sBAA6B,CAAC;AAC3E,OAAO,MAAME,gBAAgB,GAAGJ,kBAAkB,CAChDE,sBACF,CAAC;AACD,OAAO,MAAMG,gBAAgB,GAAGJ,kBAAkB,CAChDC,sBACF,CAAC;AAED,OAAO,MAAMI,KAAY,GAAGf,cAAc,CAAC;EACzCgB,OAAO,EAAE;IACPC,UAAU,EAAEhB,eAAe,CAACe,OAAO;IACnCE,UAAU,EAAEf,eAAe,CAACa,OAAO;IACnCG,IAAI,EAAEjB,SAAS,CAACc,OAAO;IACvBI,EAAE,EAAEhB,OAAO,CAACY,OAAO;IACnBK,WAAW,EAAEhB,gBAAgB,CAACW,OAAO;IACrCM,KAAK,EAAEhB,UAAU,CAACU;EACpB,CAAC;EACDO,UAAU,EAAGC,oBAAoB,IAC/BA,oBAAoB,CAAC;IACnBC,iBAAiB,EAAE;EACrB,CAAC;AACL,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["configureStore","globalFeedSlice","feedSlice","postDetailSlice","uiSlice","bottomSheetSlice","toastSlice","localVideoThumbnailSlice","createContext","createStoreHook","createDispatchHook","createSelectorHook","AmityUIKitReduxContext","useUIKitStore","useUIKitDispatch","useUIKitSelector","store","reducer","globalFeed","postDetail","feed","ui","bottomSheet","toast","localVideoThumbnail","middleware","getDefaultMiddleware","serializableCheck"],"sourceRoot":"../../../../../src","sources":["core/stores/store/index.ts"],"mappings":"AAAA,SAASA,cAAc,QAAe,kBAAkB;AACxD,OAAOC,eAAe,MAAM,2BAA2B;AACvD,OAAOC,SAAS,MAAM,qBAAqB;AAC3C,OAAOC,eAAe,MAAM,2BAA2B;AACvD,OAAOC,OAAO,MAAM,mBAAmB;AACvC,OAAOC,gBAAgB,MAAM,4BAA4B;AACzD,OAAOC,UAAU,MAAM,sBAAsB;AAC7C,OAAOC,wBAAwB,MAAM,oCAAoC;AACzE,SAASC,aAAa,QAAQ,OAAO;AACrC,SACEC,eAAe,EACfC,kBAAkB,EAClBC,kBAAkB,QAEb,aAAa;AAGpB,OAAO,MAAMC,sBAAsB,gBAAGJ,aAAa,CAEjD,IAAW,CAAC;AAEd,OAAO,MAAMK,aAAa,GAAGJ,eAAe,CAACG,sBAA6B,CAAC;AAC3E,OAAO,MAAME,gBAAgB,GAAGJ,kBAAkB,CAChDE,sBACF,CAAC;AACD,OAAO,MAAMG,gBAAgB,GAAGJ,kBAAkB,CAChDC,sBACF,CAAC;AAED,OAAO,MAAMI,KAAY,GAAGhB,cAAc,CAAC;EACzCiB,OAAO,EAAE;IACPC,UAAU,EAAEjB,eAAe,CAACgB,OAAO;IACnCE,UAAU,EAAEhB,eAAe,CAACc,OAAO;IACnCG,IAAI,EAAElB,SAAS,CAACe,OAAO;IACvBI,EAAE,EAAEjB,OAAO,CAACa,OAAO;IACnBK,WAAW,EAAEjB,gBAAgB,CAACY,OAAO;IACrCM,KAAK,EAAEjB,UAAU,CAACW,OAAO;IACzBO,mBAAmB,EAAEjB,wBAAwB,CAACU;EAChD,CAAC;EACDQ,UAAU,EAAGC,oBAAoB,IAC/BA,oBAAoB,CAAC;IACnBC,iBAAiB,EAAE;EACrB,CAAC;AACL,CAAC,CAAC","ignoreList":[]}
@@ -1,9 +1,10 @@
1
- import { useCallback, useEffect, useState } from 'react';
1
+ import { useCallback, useEffect, useRef, useState } from 'react';
2
+ import NetInfo from '@react-native-community/netinfo';
2
3
  import { View, Image, TouchableOpacity } from 'react-native';
3
4
  import * as Progress from 'react-native-progress';
4
5
  import { SvgXml } from 'react-native-svg';
5
6
  import { deleteAmityFile, uploadImageFile } from '../../../core/legacy/file';
6
- import { closeIcon, toastIcon } from '../../../core/assets/icons/xml';
7
+ import { mediaRemoveIcon, toastIcon } from '../../../core/assets/icons/xml';
7
8
  import { useStyles } from './styles';
8
9
  const LoadingImage = ({
9
10
  source,
@@ -12,11 +13,12 @@ const LoadingImage = ({
12
13
  onLoadFinish,
13
14
  onUploadError,
14
15
  isUploaded = false,
16
+ displayUri,
15
17
  fileId = '',
16
18
  isEditMode = false,
17
19
  fileCount,
18
20
  postId,
19
- setIsUploading,
21
+ onUploadingChange,
20
22
  carousel = false
21
23
  }) => {
22
24
  const [loading, setLoading] = useState(true);
@@ -26,16 +28,33 @@ const LoadingImage = ({
26
28
  const styles = useStyles();
27
29
  const handleLoadEnd = useCallback(() => {
28
30
  setLoading(false);
29
- setIsUploading(false);
30
- }, [setIsUploading]);
31
+ onUploadingChange === null || onUploadingChange === void 0 || onUploadingChange(false, source);
32
+ }, [onUploadingChange, source]);
31
33
  useEffect(() => {
32
34
  if (progress === 100) {
33
35
  setIsProcess(true);
34
36
  }
35
37
  }, [progress]);
36
38
  const uploadFileToAmity = useCallback(async () => {
37
- setIsUploading(true);
39
+ onUploadingChange === null || onUploadingChange === void 0 || onUploadingChange(true, source);
38
40
  setIsUploadError(false);
41
+ // A retry re-enters this function with `loading` already false — the failed
42
+ // attempt's `handleLoadEnd` cleared it and nothing ever set it back, so
43
+ // `setLoading` only ever ran downwards in this component. The frame then
44
+ // re-uploaded with no spinner at all, which reads as "finished instantly"
45
+ // while Post stays disabled for the length of the upload.
46
+ // Progress and the processing flag are stale from the failed attempt too,
47
+ // so reset the whole visual upload state here rather than only in the
48
+ // mount effect, which does not re-run on a retry.
49
+ setLoading(true);
50
+ setProgress(0);
51
+ setIsProcess(false);
52
+ // Clearing the local flag alone left this source inside the parent's
53
+ // `imageErrors` set, and that set is otherwise only cleared by the
54
+ // mount effect below — which does not re-run on a retry, since neither
55
+ // `isUploaded` nor `source` changed. Post stayed disabled even after the
56
+ // retry uploaded fine, so tell the parent the error is gone up front.
57
+ onUploadError === null || onUploadError === void 0 || onUploadError(false, source);
39
58
  try {
40
59
  const file = await uploadImageFile(source, percent => {
41
60
  setProgress(percent);
@@ -46,7 +65,8 @@ const LoadingImage = ({
46
65
  handleLoadEnd();
47
66
  onLoadFinish && onLoadFinish((_file$ = file[0]) === null || _file$ === void 0 ? void 0 : _file$.fileId, ((_file$2 = file[0]) === null || _file$2 === void 0 ? void 0 : _file$2.fileUrl) + '?size=medium', (_file$3 = file[0]) === null || _file$3 === void 0 ? void 0 : _file$3.attributes.name, index, source);
48
67
  } else {
49
- setIsUploading(false);
68
+ // `handleLoadEnd` already reports the upload as finished — the extra
69
+ // setter call it used to be paired with was redundant.
50
70
  handleLoadEnd();
51
71
  setIsProcess(false);
52
72
  setIsUploadError(true);
@@ -55,11 +75,34 @@ const LoadingImage = ({
55
75
  } catch (error) {
56
76
  handleLoadEnd();
57
77
  setIsProcess(false);
58
- setIsUploading(false);
59
78
  setIsUploadError(true);
60
79
  onUploadError === null || onUploadError === void 0 || onUploadError(true, source);
61
80
  }
62
- }, [handleLoadEnd, index, onLoadFinish, onUploadError, setIsUploading, source]);
81
+ }, [handleLoadEnd, index, onLoadFinish, onUploadError, onUploadingChange, source]);
82
+
83
+ // The frame is expected to end up uploaded, and Post enabled, once
84
+ // connectivity returns. Nothing retried on its own —
85
+ // the error key only cleared on a manual tap on that specific frame, and the
86
+ // peek carousel can leave a failed frame off-screen entirely, so Post stayed
87
+ // disabled with no visible cause. Retry when the device regains a
88
+ // connection, using the same NetInfo listener idiom as post Detail and the
89
+ // livestream screens.
90
+ //
91
+ // Gated on a disconnected -> connected transition, not merely on being
92
+ // connected: addEventListener fires immediately with the current state, so a
93
+ // failure that happened while online (a server error, say) would otherwise
94
+ // re-fire on every resubscribe and spin.
95
+ const wasDisconnectedRef = useRef(false);
96
+ useEffect(() => {
97
+ const unsubscribe = NetInfo.addEventListener(state => {
98
+ const isConnected = !!state.isConnected;
99
+ if (isConnected && wasDisconnectedRef.current && isUploadError) {
100
+ uploadFileToAmity();
101
+ }
102
+ wasDisconnectedRef.current = !isConnected;
103
+ });
104
+ return () => unsubscribe();
105
+ }, [isUploadError, uploadFileToAmity]);
63
106
  const handleDelete = async () => {
64
107
  if (fileId && !isEditMode) {
65
108
  await deleteAmityFile(fileId);
@@ -77,6 +120,17 @@ const LoadingImage = ({
77
120
  uploadFileToAmity();
78
121
  }
79
122
  }, [isUploaded, source]);
123
+
124
+ // A frame can be removed (or its source swapped) while its upload is still
125
+ // in flight, in which case `handleLoadEnd` never runs and the composer would
126
+ // keep waiting on an entry no mounted child owns any more — leaving Post
127
+ // disabled forever. Clearing it from this cleanup keeps the
128
+ // bookkeeping in the same component that added it.
129
+ useEffect(() => {
130
+ return () => {
131
+ onUploadingChange === null || onUploadingChange === void 0 || onUploadingChange(false, source);
132
+ };
133
+ }, [onUploadingChange, source]);
80
134
  const onRetryUpload = () => {
81
135
  uploadFileToAmity();
82
136
  };
@@ -84,7 +138,7 @@ const LoadingImage = ({
84
138
  style: carousel ? styles.carouselContainer : fileCount >= 3 ? styles.image3XContainer : styles.container
85
139
  }, /*#__PURE__*/React.createElement(Image, {
86
140
  source: {
87
- uri: source
141
+ uri: displayUri ?? source
88
142
  },
89
143
  resizeMode: carousel ? 'cover' : 'contain',
90
144
  style: [styles.image, loading ? styles.loadingImage : styles.loadedImage]
@@ -110,13 +164,19 @@ const LoadingImage = ({
110
164
  width: "28",
111
165
  height: "28"
112
166
  }))), /*#__PURE__*/React.createElement(TouchableOpacity, {
113
- style: styles.closeButton,
167
+ style: styles.closeButton
168
+ // The button matches web at 28dp, which is still under Apple's 44pt
169
+ // minimum touch target. Grow the touch area rather than the black
170
+ // disc, so the visual stays in parity while the frame stays tappable:
171
+ // 28 + 8 on each side lands exactly on 44.
172
+ ,
173
+ hitSlop: 8,
114
174
  disabled: (loading || isProcess) && !isUploadError,
115
175
  onPress: handleDelete
116
176
  }, /*#__PURE__*/React.createElement(SvgXml, {
117
- xml: closeIcon('white'),
118
- width: "12",
119
- height: "12"
177
+ xml: mediaRemoveIcon(),
178
+ width: "20",
179
+ height: "20"
120
180
  })));
121
181
  };
122
182
  export default LoadingImage;
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useState","View","Image","TouchableOpacity","Progress","SvgXml","deleteAmityFile","uploadImageFile","closeIcon","toastIcon","useStyles","LoadingImage","source","onClose","index","onLoadFinish","onUploadError","isUploaded","fileId","isEditMode","fileCount","postId","setIsUploading","carousel","loading","setLoading","progress","setProgress","isProcess","setIsProcess","isUploadError","setIsUploadError","styles","handleLoadEnd","uploadFileToAmity","file","percent","_file$","_file$2","_file$3","fileUrl","attributes","name","error","handleDelete","onRetryUpload","React","createElement","style","carouselContainer","image3XContainer","container","uri","resizeMode","image","loadingImage","loadedImage","overlay","CircleSnail","size","borderColor","thickness","Circle","unfilledColor","failedOverlay","errorOverlay","onPress","xml","width","height","closeButton","disabled"],"sourceRoot":"../../../../../src","sources":["social/components/LoadingImage/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","NetInfo","View","Image","TouchableOpacity","Progress","SvgXml","deleteAmityFile","uploadImageFile","mediaRemoveIcon","toastIcon","useStyles","LoadingImage","source","onClose","index","onLoadFinish","onUploadError","isUploaded","displayUri","fileId","isEditMode","fileCount","postId","onUploadingChange","carousel","loading","setLoading","progress","setProgress","isProcess","setIsProcess","isUploadError","setIsUploadError","styles","handleLoadEnd","uploadFileToAmity","file","percent","_file$","_file$2","_file$3","fileUrl","attributes","name","error","wasDisconnectedRef","unsubscribe","addEventListener","state","isConnected","current","handleDelete","onRetryUpload","React","createElement","style","carouselContainer","image3XContainer","container","uri","resizeMode","image","loadingImage","loadedImage","overlay","CircleSnail","size","borderColor","thickness","Circle","unfilledColor","failedOverlay","errorOverlay","onPress","xml","width","height","closeButton","hitSlop","disabled"],"sourceRoot":"../../../../../src","sources":["social/components/LoadingImage/index.tsx"],"mappings":"AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAChE,OAAOC,OAAO,MAAM,iCAAiC;AACrD,SAASC,IAAI,EAAEC,KAAK,EAAEC,gBAAgB,QAAQ,cAAc;AAC5D,OAAO,KAAKC,QAAQ,MAAM,uBAAuB;AACjD,SAASC,MAAM,QAAQ,kBAAkB;AACzC,SAASC,eAAe,EAAEC,eAAe,QAAQ,2BAA2B;AAC5E,SAASC,eAAe,EAAEC,SAAS,QAAQ,gCAAgC;AAC3E,SAASC,SAAS,QAAQ,UAAU;AAgCpC,MAAMC,YAAY,GAAGA,CAAC;EACpBC,MAAM;EACNC,OAAO;EACPC,KAAK;EACLC,YAAY;EACZC,aAAa;EACbC,UAAU,GAAG,KAAK;EAClBC,UAAU;EACVC,MAAM,GAAG,EAAE;EACXC,UAAU,GAAG,KAAK;EAClBC,SAAS;EACTC,MAAM;EACNC,iBAAiB;EACjBC,QAAQ,GAAG;AACM,CAAC,KAAK;EACvB,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG3B,QAAQ,CAAC,IAAI,CAAC;EAC5C,MAAM,CAAC4B,QAAQ,EAAEC,WAAW,CAAC,GAAG7B,QAAQ,CAAC,CAAC,CAAC;EAC3C,MAAM,CAAC8B,SAAS,EAAEC,YAAY,CAAC,GAAG/B,QAAQ,CAAU,KAAK,CAAC;EAC1D,MAAM,CAACgC,aAAa,EAAEC,gBAAgB,CAAC,GAAGjC,QAAQ,CAAC,KAAK,CAAC;EACzD,MAAMkC,MAAM,GAAGvB,SAAS,CAAC,CAAC;EAC1B,MAAMwB,aAAa,GAAGtC,WAAW,CAAC,MAAM;IACtC8B,UAAU,CAAC,KAAK,CAAC;IACjBH,iBAAiB,aAAjBA,iBAAiB,eAAjBA,iBAAiB,CAAG,KAAK,EAAEX,MAAM,CAAC;EACpC,CAAC,EAAE,CAACW,iBAAiB,EAAEX,MAAM,CAAC,CAAC;EAE/Bf,SAAS,CAAC,MAAM;IACd,IAAI8B,QAAQ,KAAK,GAAG,EAAE;MACpBG,YAAY,CAAC,IAAI,CAAC;IACpB;EACF,CAAC,EAAE,CAACH,QAAQ,CAAC,CAAC;EAEd,MAAMQ,iBAAiB,GAAGvC,WAAW,CAAC,YAAY;IAChD2B,iBAAiB,aAAjBA,iBAAiB,eAAjBA,iBAAiB,CAAG,IAAI,EAAEX,MAAM,CAAC;IACjCoB,gBAAgB,CAAC,KAAK,CAAC;IACvB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACAN,UAAU,CAAC,IAAI,CAAC;IAChBE,WAAW,CAAC,CAAC,CAAC;IACdE,YAAY,CAAC,KAAK,CAAC;IACnB;IACA;IACA;IACA;IACA;IACAd,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAG,KAAK,EAAEJ,MAAM,CAAC;IAC9B,IAAI;MACF,MAAMwB,IAAuB,GAAG,MAAM7B,eAAe,CACnDK,MAAM,EACLyB,OAAe,IAAK;QACnBT,WAAW,CAACS,OAAO,CAAC;MACtB,CACF,CAAC;MACD,IAAID,IAAI,EAAE;QAAA,IAAAE,MAAA,EAAAC,OAAA,EAAAC,OAAA;QACRV,YAAY,CAAC,KAAK,CAAC;QACnBI,aAAa,CAAC,CAAC;QACfnB,YAAY,IACVA,YAAY,EAAAuB,MAAA,GACVF,IAAI,CAAC,CAAC,CAAC,cAAAE,MAAA,uBAAPA,MAAA,CAASnB,MAAM,EACd,EAAAoB,OAAA,GAAAH,IAAI,CAAC,CAAC,CAAC,cAAAG,OAAA,uBAAPA,OAAA,CAASE,OAAO,IAAG,cAAc,GAAAD,OAAA,GAClCJ,IAAI,CAAC,CAAC,CAAC,cAAAI,OAAA,uBAAPA,OAAA,CAASE,UAAU,CAACC,IAAI,EACxB7B,KAAK,EACLF,MACF,CAAC;MACL,CAAC,MAAM;QACL;QACA;QACAsB,aAAa,CAAC,CAAC;QACfJ,YAAY,CAAC,KAAK,CAAC;QACnBE,gBAAgB,CAAC,IAAI,CAAC;QACtBhB,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAG,IAAI,EAAEJ,MAAM,CAAC;MAC/B;IACF,CAAC,CAAC,OAAOgC,KAAK,EAAE;MACdV,aAAa,CAAC,CAAC;MACfJ,YAAY,CAAC,KAAK,CAAC;MACnBE,gBAAgB,CAAC,IAAI,CAAC;MACtBhB,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAG,IAAI,EAAEJ,MAAM,CAAC;IAC/B;EACF,CAAC,EAAE,CACDsB,aAAa,EACbpB,KAAK,EACLC,YAAY,EACZC,aAAa,EACbO,iBAAiB,EACjBX,MAAM,CACP,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMiC,kBAAkB,GAAG/C,MAAM,CAAC,KAAK,CAAC;EACxCD,SAAS,CAAC,MAAM;IACd,MAAMiD,WAAW,GAAG9C,OAAO,CAAC+C,gBAAgB,CAAEC,KAAK,IAAK;MACtD,MAAMC,WAAW,GAAG,CAAC,CAACD,KAAK,CAACC,WAAW;MACvC,IAAIA,WAAW,IAAIJ,kBAAkB,CAACK,OAAO,IAAInB,aAAa,EAAE;QAC9DI,iBAAiB,CAAC,CAAC;MACrB;MACAU,kBAAkB,CAACK,OAAO,GAAG,CAACD,WAAW;IAC3C,CAAC,CAAC;IACF,OAAO,MAAMH,WAAW,CAAC,CAAC;EAC5B,CAAC,EAAE,CAACf,aAAa,EAAEI,iBAAiB,CAAC,CAAC;EAEtC,MAAMgB,YAAY,GAAG,MAAAA,CAAA,KAAY;IAC/B,IAAIhC,MAAM,IAAI,CAACC,UAAU,EAAE;MACzB,MAAMd,eAAe,CAACa,MAAM,CAAC;IAC/B;IACAN,OAAO,IAAIA,OAAO,CAACD,MAAM,EAAEO,MAAM,EAAEG,MAAM,CAAC;EAC5C,CAAC;EACDzB,SAAS,CAAC,MAAM;IACdmC,gBAAgB,CAAC,KAAK,CAAC;IACvBhB,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAG,KAAK,EAAEJ,MAAM,CAAC;IAC9BgB,WAAW,CAAC,CAAC,CAAC;IACdE,YAAY,CAAC,KAAK,CAAC;IACnB,IAAIb,UAAU,EAAE;MACdS,UAAU,CAAC,KAAK,CAAC;IACnB,CAAC,MAAM;MACLS,iBAAiB,CAAC,CAAC;IACrB;EACF,CAAC,EAAE,CAAClB,UAAU,EAAEL,MAAM,CAAC,CAAC;;EAExB;EACA;EACA;EACA;EACA;EACAf,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACX0B,iBAAiB,aAAjBA,iBAAiB,eAAjBA,iBAAiB,CAAG,KAAK,EAAEX,MAAM,CAAC;IACpC,CAAC;EACH,CAAC,EAAE,CAACW,iBAAiB,EAAEX,MAAM,CAAC,CAAC;EAE/B,MAAMwC,aAAa,GAAGA,CAAA,KAAM;IAC1BjB,iBAAiB,CAAC,CAAC;EACrB,CAAC;EACD,oBACEkB,KAAA,CAAAC,aAAA,CAACrD,IAAI;IACHsD,KAAK,EACH/B,QAAQ,GACJS,MAAM,CAACuB,iBAAiB,GACxBnC,SAAS,IAAI,CAAC,GACdY,MAAM,CAACwB,gBAAgB,GACvBxB,MAAM,CAACyB;EACZ,gBAEDL,KAAA,CAAAC,aAAA,CAACpD,KAAK;IACJU,MAAM,EAAE;MAAE+C,GAAG,EAAEzC,UAAU,IAAIN;IAAO,CAAE;IACtCgD,UAAU,EAAEpC,QAAQ,GAAG,OAAO,GAAG,SAAU;IAC3C+B,KAAK,EAAE,CACLtB,MAAM,CAAC4B,KAAK,EACZpC,OAAO,GAAGQ,MAAM,CAAC6B,YAAY,GAAG7B,MAAM,CAAC8B,WAAW;EAClD,CACH,CAAC,EACDtC,OAAO,iBACN4B,KAAA,CAAAC,aAAA,CAACrD,IAAI;IAACsD,KAAK,EAAEtB,MAAM,CAAC+B;EAAQ,GACzBnC,SAAS,gBACRwB,KAAA,CAAAC,aAAA,CAAClD,QAAQ,CAAC6D,WAAW;IACnBC,IAAI,EAAE,EAAG;IACTC,WAAW,EAAC,aAAa;IACzBC,SAAS,EAAE;EAAE,CACd,CAAC,gBAEFf,KAAA,CAAAC,aAAA,CAAClD,QAAQ,CAACiE,MAAM;IACd1C,QAAQ,EAAEA,QAAQ,GAAG,GAAI;IACzBuC,IAAI,EAAE,EAAG;IACTC,WAAW,EAAC,aAAa;IACzBG,aAAa,EAAC,SAAS;IACvBF,SAAS,EAAE;EAAE,CACd,CAEC,CACP,EACA,CAAC3C,OAAO,IAAIM,aAAa,iBACxBsB,KAAA,CAAAC,aAAA,CAACrD,IAAI;IAACsD,KAAK,EAAEtB,MAAM,CAACsC;EAAc,gBAChClB,KAAA,CAAAC,aAAA,CAACnD,gBAAgB;IAACoD,KAAK,EAAEtB,MAAM,CAACuC,YAAa;IAACC,OAAO,EAAErB;EAAc,gBACnEC,KAAA,CAAAC,aAAA,CAACjD,MAAM;IAACqE,GAAG,EAAEjE,SAAS,CAAC,CAAE;IAACkE,KAAK,EAAC,IAAI;IAACC,MAAM,EAAC;EAAI,CAAE,CAClC,CACd,CACP,eAEDvB,KAAA,CAAAC,aAAA,CAACnD,gBAAgB;IACfoD,KAAK,EAAEtB,MAAM,CAAC4C;IACd;IACA;IACA;IACA;IAAA;IACAC,OAAO,EAAE,CAAE;IACXC,QAAQ,EAAE,CAACtD,OAAO,IAAII,SAAS,KAAK,CAACE,aAAc;IACnD0C,OAAO,EAAEtB;EAAa,gBAEtBE,KAAA,CAAAC,aAAA,CAACjD,MAAM;IAACqE,GAAG,EAAElE,eAAe,CAAC,CAAE;IAACmE,KAAK,EAAC,IAAI;IAACC,MAAM,EAAC;EAAI,CAAE,CACxC,CACd,CAAC;AAEX,CAAC;AACD,eAAejE,YAAY","ignoreList":[]}
@@ -56,9 +56,14 @@ export const useStyles = () => {
56
56
  },
57
57
  closeButton: {
58
58
  position: 'absolute',
59
- top: 7,
60
- right: 7,
61
- padding: 7,
59
+ // Matched to the web UIKit's remove button, which is 20px of icon inside
60
+ // 4px of padding at an 8px offset. The old 12/7 pair came to nearly the
61
+ // same 26dp outer size but filled only 46% of the circle with the glyph
62
+ // against web's 71%, so it read as a heavy black disc with a tiny cross
63
+ // in it.
64
+ top: 8,
65
+ right: 8,
66
+ padding: 4,
62
67
  backgroundColor: 'rgba(0, 0, 0, 0.4)',
63
68
  borderRadius: 72,
64
69
  zIndex: 10
@@ -1 +1 @@
1
- {"version":3,"names":["useWindowDimensions","StyleSheet","useStyles","width","create","container","flex","height","margin","image3XContainer","carouselContainer","image","resizeMode","borderRadius","position","overlay","absoluteFillObject","justifyContent","alignItems","failedOverlay","backgroundColor","errorOverlay","top","left","right","progressBar","marginVertical","loadingImage","opacity","loadedImage","closeButton","padding","zIndex"],"sourceRoot":"../../../../../src","sources":["social/components/LoadingImage/styles.ts"],"mappings":"AAAA,SAASA,mBAAmB,EAAEC,UAAU,QAAQ,cAAc;AAE9D,OAAO,MAAMC,SAAS,GAAGA,CAAA,KAAM;EAC7B,MAAM;IAAEC;EAAM,CAAC,GAAGH,mBAAmB,CAAC,CAAC;EACvC,OAAOC,UAAU,CAACG,MAAM,CAAC;IACvBC,SAAS,EAAE;MACTC,IAAI,EAAE,CAAC;MACPC,MAAM,EAAEJ,KAAK,GAAG,EAAE;MAClBK,MAAM,EAAE;IACV,CAAC;IACDC,gBAAgB,EAAE;MAChBN,KAAK,EAAEA,KAAK,GAAG,CAAC,GAAG,EAAE;MACrBI,MAAM,EAAEJ,KAAK,GAAG,CAAC,GAAG,EAAE;MACtBK,MAAM,EAAE;IACV,CAAC;IACDE,iBAAiB,EAAE;MACjBP,KAAK,EAAE,MAAM;MACbI,MAAM,EAAE;IACV,CAAC;IACDI,KAAK,EAAE;MACLR,KAAK,EAAE,MAAM;MACbI,MAAM,EAAE,MAAM;MACdK,UAAU,EAAE,OAAO;MACnBC,YAAY,EAAE,CAAC;MACfC,QAAQ,EAAE;IACZ,CAAC;IACDC,OAAO,EAAE;MACP,GAAGd,UAAU,CAACe,kBAAkB;MAChCC,cAAc,EAAE,QAAQ;MACxBC,UAAU,EAAE;IACd,CAAC;IACDC,aAAa,EAAE;MACb,GAAGlB,UAAU,CAACe,kBAAkB;MAChCC,cAAc,EAAE,QAAQ;MACxBC,UAAU,EAAE,QAAQ;MACpBE,eAAe,EAAE,oBAAoB;MACrCP,YAAY,EAAE;IAChB,CAAC;IACDQ,YAAY,EAAE;MACZP,QAAQ,EAAE,UAAU;MACpBQ,GAAG,EAAE,KAAK;MACVC,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,CAAC;MACRN,UAAU,EAAE,QAAQ;MACpBD,cAAc,EAAE;IAClB,CAAC;IACDQ,WAAW,EAAE;MACXC,cAAc,EAAE;IAClB,CAAC;IACDC,YAAY,EAAE;MACZC,OAAO,EAAE;IACX,CAAC;IACDC,WAAW,EAAE;MACXD,OAAO,EAAE;IACX,CAAC;IACDE,WAAW,EAAE;MACXhB,QAAQ,EAAE,UAAU;MACpBQ,GAAG,EAAE,CAAC;MACNE,KAAK,EAAE,CAAC;MACRO,OAAO,EAAE,CAAC;MACVX,eAAe,EAAE,oBAAoB;MACrCP,YAAY,EAAE,EAAE;MAChBmB,MAAM,EAAE;IACV;EACF,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useWindowDimensions","StyleSheet","useStyles","width","create","container","flex","height","margin","image3XContainer","carouselContainer","image","resizeMode","borderRadius","position","overlay","absoluteFillObject","justifyContent","alignItems","failedOverlay","backgroundColor","errorOverlay","top","left","right","progressBar","marginVertical","loadingImage","opacity","loadedImage","closeButton","padding","zIndex"],"sourceRoot":"../../../../../src","sources":["social/components/LoadingImage/styles.ts"],"mappings":"AAAA,SAASA,mBAAmB,EAAEC,UAAU,QAAQ,cAAc;AAE9D,OAAO,MAAMC,SAAS,GAAGA,CAAA,KAAM;EAC7B,MAAM;IAAEC;EAAM,CAAC,GAAGH,mBAAmB,CAAC,CAAC;EACvC,OAAOC,UAAU,CAACG,MAAM,CAAC;IACvBC,SAAS,EAAE;MACTC,IAAI,EAAE,CAAC;MACPC,MAAM,EAAEJ,KAAK,GAAG,EAAE;MAClBK,MAAM,EAAE;IACV,CAAC;IACDC,gBAAgB,EAAE;MAChBN,KAAK,EAAEA,KAAK,GAAG,CAAC,GAAG,EAAE;MACrBI,MAAM,EAAEJ,KAAK,GAAG,CAAC,GAAG,EAAE;MACtBK,MAAM,EAAE;IACV,CAAC;IACDE,iBAAiB,EAAE;MACjBP,KAAK,EAAE,MAAM;MACbI,MAAM,EAAE;IACV,CAAC;IACDI,KAAK,EAAE;MACLR,KAAK,EAAE,MAAM;MACbI,MAAM,EAAE,MAAM;MACdK,UAAU,EAAE,OAAO;MACnBC,YAAY,EAAE,CAAC;MACfC,QAAQ,EAAE;IACZ,CAAC;IACDC,OAAO,EAAE;MACP,GAAGd,UAAU,CAACe,kBAAkB;MAChCC,cAAc,EAAE,QAAQ;MACxBC,UAAU,EAAE;IACd,CAAC;IACDC,aAAa,EAAE;MACb,GAAGlB,UAAU,CAACe,kBAAkB;MAChCC,cAAc,EAAE,QAAQ;MACxBC,UAAU,EAAE,QAAQ;MACpBE,eAAe,EAAE,oBAAoB;MACrCP,YAAY,EAAE;IAChB,CAAC;IACDQ,YAAY,EAAE;MACZP,QAAQ,EAAE,UAAU;MACpBQ,GAAG,EAAE,KAAK;MACVC,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,CAAC;MACRN,UAAU,EAAE,QAAQ;MACpBD,cAAc,EAAE;IAClB,CAAC;IACDQ,WAAW,EAAE;MACXC,cAAc,EAAE;IAClB,CAAC;IACDC,YAAY,EAAE;MACZC,OAAO,EAAE;IACX,CAAC;IACDC,WAAW,EAAE;MACXD,OAAO,EAAE;IACX,CAAC;IACDE,WAAW,EAAE;MACXhB,QAAQ,EAAE,UAAU;MACpB;MACA;MACA;MACA;MACA;MACAQ,GAAG,EAAE,CAAC;MACNE,KAAK,EAAE,CAAC;MACRO,OAAO,EAAE,CAAC;MACVX,eAAe,EAAE,oBAAoB;MACrCP,YAAY,EAAE,EAAE;MAChBmB,MAAM,EAAE;IACV;EACF,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}
@@ -1,9 +1,10 @@
1
- import { useCallback, useEffect, useState } from 'react';
1
+ import { useCallback, useEffect, useRef, useState } from 'react';
2
+ import NetInfo from '@react-native-community/netinfo';
2
3
  import { View, TouchableOpacity, Platform, Image } from 'react-native';
3
4
  import * as Progress from 'react-native-progress';
4
5
  import { SvgXml } from 'react-native-svg';
5
6
  import { deleteAmityFile, uploadVideoFile } from '../../../core/legacy/file';
6
- import { closeIcon, playBtn, toastIcon, videoControlIcon } from '../../../core/assets/icons/xml';
7
+ import { mediaRemoveIcon, playBtn, toastIcon, videoControlIcon } from '../../../core/assets/icons/xml';
7
8
  import { useStyles } from './styles';
8
9
  import Video from 'react-native-video';
9
10
  import { useNavigation } from '@react-navigation/native';
@@ -17,13 +18,14 @@ const LoadingVideo = ({
17
18
  onLoadFinish,
18
19
  onUploadError,
19
20
  isUploaded = false,
21
+ displayUri,
20
22
  thumbNail,
21
23
  onPlay,
22
24
  fileId,
23
25
  isEditMode = false,
24
26
  fileCount,
25
27
  postId,
26
- setIsUploading,
28
+ onUploadingChange,
27
29
  carousel = false
28
30
  }) => {
29
31
  const dispatch = useUIKitDispatch();
@@ -35,6 +37,10 @@ const LoadingVideo = ({
35
37
  const [isProcess, setIsProcess] = useState(false);
36
38
  const [isUploadError, setIsUploadError] = useState(false);
37
39
  const [thumbNailImage, setThumbNailImage] = useState(thumbNail ?? '');
40
+ // `uploadFileToAmity` is memoised on [source] only, so reading the state
41
+ // there would capture the empty first-render value. Mirror it into a ref so
42
+ // the upload callback always sees the frame that was actually decoded.
43
+ const thumbNailImageRef = useRef(thumbNail ?? '');
38
44
  const styles = useStyles();
39
45
  const [playingUri, setPlayingUri] = useState('');
40
46
  const [isPause, setIsPause] = useState(true);
@@ -55,10 +61,11 @@ const LoadingVideo = ({
55
61
  };
56
62
  const handleLoadEnd = () => {
57
63
  setLoading(false);
58
- setIsUploading(false);
64
+ onUploadingChange === null || onUploadingChange === void 0 || onUploadingChange(false, source);
59
65
  };
60
66
  const processThumbNail = async () => {
61
- const generatedThumbNail = await createVideoThumbnail(source);
67
+ const generatedThumbNail = await createVideoThumbnail(displayUri ?? source);
68
+ thumbNailImageRef.current = generatedThumbNail.path;
62
69
  setThumbNailImage(generatedThumbNail.path);
63
70
  };
64
71
  useEffect(() => {
@@ -70,8 +77,25 @@ const LoadingVideo = ({
70
77
  }
71
78
  }, [progress]);
72
79
  const uploadFileToAmity = useCallback(async () => {
73
- setIsUploading(true);
80
+ onUploadingChange === null || onUploadingChange === void 0 || onUploadingChange(true, source);
74
81
  setIsUploadError(false);
82
+ // A retry re-enters this function with `loading` already false — the failed
83
+ // attempt's `handleLoadEnd` cleared it and nothing ever set it back, so
84
+ // `setLoading` only ever ran downwards in this component. The frame then
85
+ // re-uploaded with no spinner at all, which reads as "finished instantly"
86
+ // while Post stays disabled for the length of the upload.
87
+ // Progress and the processing flag are stale from the failed attempt too,
88
+ // so reset the whole visual upload state here rather than only in the
89
+ // mount effect, which does not re-run on a retry.
90
+ setLoading(true);
91
+ setProgress(0);
92
+ setIsProcess(false);
93
+ // Clearing the local flag alone left this source inside the parent's
94
+ // `videoErrors` set, and that set is otherwise only cleared by the
95
+ // mount effect below — which does not re-run on a retry, since none of
96
+ // `fileId`/`isUploaded`/`source` changed. Post stayed disabled even after
97
+ // the retry uploaded fine, so tell the parent the error is gone up front.
98
+ onUploadError === null || onUploadError === void 0 || onUploadError(false, source);
75
99
  try {
76
100
  const file = await uploadVideoFile(source, percent => {
77
101
  setProgress(percent);
@@ -80,7 +104,13 @@ const LoadingVideo = ({
80
104
  var _file$, _file$2, _file$3;
81
105
  setIsProcess(false);
82
106
  handleLoadEnd();
83
- onLoadFinish && onLoadFinish((_file$ = file[0]) === null || _file$ === void 0 ? void 0 : _file$.fileId, (_file$2 = file[0]) === null || _file$2 === void 0 ? void 0 : _file$2.fileUrl, (_file$3 = file[0]) === null || _file$3 === void 0 ? void 0 : _file$3.attributes.name, index, source, thumbNail);
107
+ onLoadFinish && onLoadFinish((_file$ = file[0]) === null || _file$ === void 0 ? void 0 : _file$.fileId, (_file$2 = file[0]) === null || _file$2 === void 0 ? void 0 : _file$2.fileUrl, (_file$3 = file[0]) === null || _file$3 === void 0 ? void 0 : _file$3.attributes.name, index, source,
108
+ // Hand back the frame this component decoded, not the incoming
109
+ // prop — for a newly picked video that prop is empty, so the
110
+ // generated thumbnail used to be dropped on the floor. The
111
+ // composer stores it so the feed can show it while the server is
112
+ // still transcoding (PDT-4904).
113
+ thumbNailImageRef.current || thumbNail);
84
114
  } else {
85
115
  handleLoadEnd();
86
116
  dispatch(showToastMessage({
@@ -100,6 +130,30 @@ const LoadingVideo = ({
100
130
  onUploadError === null || onUploadError === void 0 || onUploadError(true, source);
101
131
  }
102
132
  }, [source]);
133
+
134
+ // The frame is expected to end up uploaded, and Post enabled, once
135
+ // connectivity returns. Nothing retried on its own —
136
+ // the error key only cleared on a manual tap on that specific frame, and the
137
+ // peek carousel can leave a failed frame off-screen entirely, so Post stayed
138
+ // disabled with no visible cause. Retry when the device regains a
139
+ // connection, using the same NetInfo listener idiom as post Detail and the
140
+ // livestream screens.
141
+ //
142
+ // Gated on a disconnected -> connected transition, not merely on being
143
+ // connected: addEventListener fires immediately with the current state, so a
144
+ // failure that happened while online (a server error, say) would otherwise
145
+ // re-fire on every resubscribe and spin.
146
+ const wasDisconnectedRef = useRef(false);
147
+ useEffect(() => {
148
+ const unsubscribe = NetInfo.addEventListener(state => {
149
+ const isConnected = !!state.isConnected;
150
+ if (isConnected && wasDisconnectedRef.current && isUploadError) {
151
+ uploadFileToAmity();
152
+ }
153
+ wasDisconnectedRef.current = !isConnected;
154
+ });
155
+ return () => unsubscribe();
156
+ }, [isUploadError, uploadFileToAmity]);
103
157
  const handleDelete = async () => {
104
158
  if (fileId && !isEditMode) {
105
159
  await deleteAmityFile(fileId);
@@ -118,15 +172,29 @@ const LoadingVideo = ({
118
172
  }
119
173
  }, [fileId, isUploaded, source]);
120
174
  const handleOnPlay = () => {
121
- setIsPause(!isPause);
122
- // In carousel mode the parent (onPlay) opens the full-screen media viewer,
123
- // so skip the default single-video route navigation.
175
+ // In carousel mode the parent (onPlay) owns the full-screen media viewer,
176
+ // so this component never mounts the inline <Video> and never receives a
177
+ // dismiss callback to unpause with. Leaving `isPause` alone keeps the play
178
+ // icon rendered, which is what the frame shows once the viewer closes
179
+ // (PDT-4904); toggling it here hid the icon for the rest of the session.
124
180
  if (onPlay) {
125
181
  onPlay(source);
126
182
  return;
127
183
  }
184
+ setIsPause(!isPause);
128
185
  playVideoFullScreen(source);
129
186
  };
187
+
188
+ // A frame can be removed (or its source swapped) while its upload is still
189
+ // in flight, in which case `handleLoadEnd` never runs and the composer would
190
+ // keep waiting on an entry no mounted child owns any more — leaving Post
191
+ // disabled forever. Clearing it from this cleanup keeps the
192
+ // bookkeeping in the same component that added it.
193
+ useEffect(() => {
194
+ return () => {
195
+ onUploadingChange === null || onUploadingChange === void 0 || onUploadingChange(false, source);
196
+ };
197
+ }, [onUploadingChange, source]);
130
198
  const onRetryUpload = () => {
131
199
  uploadFileToAmity();
132
200
  };
@@ -155,7 +223,7 @@ const LoadingVideo = ({
155
223
  style: [styles.image, loading ? styles.loadingImage : styles.loadedImage]
156
224
  }) : /*#__PURE__*/React.createElement(View, {
157
225
  style: styles.image
158
- }), loading ? /*#__PURE__*/React.createElement(View, {
226
+ }), loading && /*#__PURE__*/React.createElement(View, {
159
227
  style: styles.overlay
160
228
  }, isProcess ? /*#__PURE__*/React.createElement(Progress.CircleSnail, {
161
229
  size: 24,
@@ -167,21 +235,27 @@ const LoadingVideo = ({
167
235
  borderColor: "transparent",
168
236
  unfilledColor: "#ffffff",
169
237
  thickness: 2
170
- })) : isUploadError ? /*#__PURE__*/React.createElement(TouchableOpacity, {
238
+ })), !loading && isUploadError && /*#__PURE__*/React.createElement(TouchableOpacity, {
171
239
  style: styles.overlay,
172
240
  onPress: onRetryUpload
173
241
  }, /*#__PURE__*/React.createElement(SvgXml, {
174
242
  xml: toastIcon(),
175
243
  width: "24",
176
244
  height: "24"
177
- })) : /*#__PURE__*/React.createElement(TouchableOpacity, {
178
- style: styles.closeButton,
245
+ })), /*#__PURE__*/React.createElement(TouchableOpacity, {
246
+ style: styles.closeButton
247
+ // The button matches web at 28dp, which is still under Apple's 44pt
248
+ // minimum touch target. Grow the touch area rather than the black
249
+ // disc, so the visual stays in parity while the frame stays tappable:
250
+ // 28 + 8 on each side lands exactly on 44.
251
+ ,
252
+ hitSlop: 8,
179
253
  disabled: (loading || isProcess) && !isUploadError,
180
254
  onPress: handleDelete
181
255
  }, /*#__PURE__*/React.createElement(SvgXml, {
182
- xml: closeIcon('white'),
183
- width: "12",
184
- height: "12"
256
+ xml: mediaRemoveIcon(),
257
+ width: "20",
258
+ height: "20"
185
259
  })));
186
260
  };
187
261
  export default LoadingVideo;
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useState","View","TouchableOpacity","Platform","Image","Progress","SvgXml","deleteAmityFile","uploadVideoFile","closeIcon","playBtn","toastIcon","videoControlIcon","useStyles","Video","useNavigation","uiSlice","createVideoThumbnail","useUIKitDispatch","LoadingVideo","source","onClose","index","onLoadFinish","onUploadError","isUploaded","thumbNail","onPlay","fileId","isEditMode","fileCount","postId","setIsUploading","carousel","dispatch","showToastMessage","actions","loading","setLoading","progress","setProgress","isProcess","setIsProcess","isUploadError","setIsUploadError","thumbNailImage","setThumbNailImage","styles","playingUri","setPlayingUri","isPause","setIsPause","navigation","playVideoFullScreen","fileUrl","OS","navigate","onClosePlayer","handleLoadEnd","processThumbNail","generatedThumbNail","path","uploadFileToAmity","file","percent","_file$","_file$2","_file$3","attributes","name","toastMessage","error","handleDelete","handleOnPlay","onRetryUpload","React","createElement","style","carouselContainer","image3XContainer","container","playButton","onPress","xml","width","height","controls","image","uri","onFullscreenPlayerWillDismiss","paused","resizeMode","loadingImage","loadedImage","overlay","CircleSnail","size","borderColor","thickness","Circle","unfilledColor","closeButton","disabled"],"sourceRoot":"../../../../../src","sources":["social/components/LoadingVideo/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","NetInfo","View","TouchableOpacity","Platform","Image","Progress","SvgXml","deleteAmityFile","uploadVideoFile","mediaRemoveIcon","playBtn","toastIcon","videoControlIcon","useStyles","Video","useNavigation","uiSlice","createVideoThumbnail","useUIKitDispatch","LoadingVideo","source","onClose","index","onLoadFinish","onUploadError","isUploaded","displayUri","thumbNail","onPlay","fileId","isEditMode","fileCount","postId","onUploadingChange","carousel","dispatch","showToastMessage","actions","loading","setLoading","progress","setProgress","isProcess","setIsProcess","isUploadError","setIsUploadError","thumbNailImage","setThumbNailImage","thumbNailImageRef","styles","playingUri","setPlayingUri","isPause","setIsPause","navigation","playVideoFullScreen","fileUrl","OS","navigate","onClosePlayer","handleLoadEnd","processThumbNail","generatedThumbNail","current","path","uploadFileToAmity","file","percent","_file$","_file$2","_file$3","attributes","name","toastMessage","error","wasDisconnectedRef","unsubscribe","addEventListener","state","isConnected","handleDelete","handleOnPlay","onRetryUpload","React","createElement","style","carouselContainer","image3XContainer","container","playButton","onPress","xml","width","height","controls","image","uri","onFullscreenPlayerWillDismiss","paused","resizeMode","loadingImage","loadedImage","overlay","CircleSnail","size","borderColor","thickness","Circle","unfilledColor","closeButton","hitSlop","disabled"],"sourceRoot":"../../../../../src","sources":["social/components/LoadingVideo/index.tsx"],"mappings":"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","ignoreList":[]}