@oxyhq/services 22.10.0 → 22.11.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 (274) hide show
  1. package/lib/commonjs/ui/components/AvatarCameraBadge.js +42 -0
  2. package/lib/commonjs/ui/components/AvatarCameraBadge.js.map +1 -0
  3. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js +41 -19
  4. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js.map +1 -1
  5. package/lib/commonjs/ui/components/OxyAuthChooser.js +640 -168
  6. package/lib/commonjs/ui/components/OxyAuthChooser.js.map +1 -1
  7. package/lib/commonjs/ui/components/ProfileButton.js +14 -0
  8. package/lib/commonjs/ui/components/ProfileButton.js.map +1 -1
  9. package/lib/commonjs/ui/components/ProfileSummaryCard.js +3 -23
  10. package/lib/commonjs/ui/components/ProfileSummaryCard.js.map +1 -1
  11. package/lib/commonjs/ui/components/SurfaceScreen.js +41 -5
  12. package/lib/commonjs/ui/components/SurfaceScreen.js.map +1 -1
  13. package/lib/commonjs/ui/components/oxyAuthChooserStyles.js +78 -26
  14. package/lib/commonjs/ui/components/oxyAuthChooserStyles.js.map +1 -1
  15. package/lib/commonjs/ui/components/photogrid/JustifiedPhotoGrid.js +83 -23
  16. package/lib/commonjs/ui/components/photogrid/JustifiedPhotoGrid.js.map +1 -1
  17. package/lib/commonjs/ui/context/OxyContext.js +73 -37
  18. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  19. package/lib/commonjs/ui/hooks/queries/queryKeys.js +18 -1
  20. package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -1
  21. package/lib/commonjs/ui/hooks/queries/useFileQueries.js +129 -0
  22. package/lib/commonjs/ui/hooks/queries/useFileQueries.js.map +1 -0
  23. package/lib/commonjs/ui/hooks/useAvatarPicker.js +36 -48
  24. package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +1 -1
  25. package/lib/commonjs/ui/hooks/useReduceMotion.js +57 -0
  26. package/lib/commonjs/ui/hooks/useReduceMotion.js.map +1 -0
  27. package/lib/commonjs/ui/hooks/useSurfaceHeader.js +1 -1
  28. package/lib/commonjs/ui/hooks/useSurfaceHeader.js.map +1 -1
  29. package/lib/commonjs/ui/navigation/accountDialogManager.js +22 -0
  30. package/lib/commonjs/ui/navigation/accountDialogManager.js.map +1 -1
  31. package/lib/commonjs/ui/navigation/bottomSheetManager.js +5 -6
  32. package/lib/commonjs/ui/navigation/bottomSheetManager.js.map +1 -1
  33. package/lib/commonjs/ui/navigation/routes.js +1 -0
  34. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  35. package/lib/commonjs/ui/navigation/surfaceNavStack.js +62 -15
  36. package/lib/commonjs/ui/navigation/surfaceNavStack.js.map +1 -1
  37. package/lib/commonjs/ui/navigation/surfaceRegistry.js +38 -17
  38. package/lib/commonjs/ui/navigation/surfaceRegistry.js.map +1 -1
  39. package/lib/commonjs/ui/navigation/surfaces.js +98 -21
  40. package/lib/commonjs/ui/navigation/surfaces.js.map +1 -1
  41. package/lib/commonjs/ui/screens/AvatarCropScreen.js +281 -279
  42. package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
  43. package/lib/commonjs/ui/screens/ChangeAvatarScreen.js +301 -0
  44. package/lib/commonjs/ui/screens/ChangeAvatarScreen.js.map +1 -0
  45. package/lib/commonjs/ui/screens/FileManagementScreen.js +194 -431
  46. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  47. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +16 -48
  48. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  49. package/lib/commonjs/ui/screens/fileManagement/FileLibraryError.js +63 -0
  50. package/lib/commonjs/ui/screens/fileManagement/FileLibraryError.js.map +1 -0
  51. package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js +54 -41
  52. package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
  53. package/lib/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.js +44 -81
  54. package/lib/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.js.map +1 -1
  55. package/lib/commonjs/ui/stores/resetSessionScopedStores.js +8 -3
  56. package/lib/commonjs/ui/stores/resetSessionScopedStores.js.map +1 -1
  57. package/lib/commonjs/ui/utils/avatarUtils.js +11 -2
  58. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  59. package/lib/commonjs/ui/utils/fileManagement.js +0 -79
  60. package/lib/commonjs/ui/utils/fileManagement.js.map +1 -1
  61. package/lib/module/ui/components/AvatarCameraBadge.js +40 -0
  62. package/lib/module/ui/components/AvatarCameraBadge.js.map +1 -0
  63. package/lib/module/ui/components/OxyAccountDialogScreen.js +41 -19
  64. package/lib/module/ui/components/OxyAccountDialogScreen.js.map +1 -1
  65. package/lib/module/ui/components/OxyAuthChooser.js +642 -171
  66. package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
  67. package/lib/module/ui/components/ProfileButton.js +15 -1
  68. package/lib/module/ui/components/ProfileButton.js.map +1 -1
  69. package/lib/module/ui/components/ProfileSummaryCard.js +2 -23
  70. package/lib/module/ui/components/ProfileSummaryCard.js.map +1 -1
  71. package/lib/module/ui/components/SurfaceScreen.js +43 -7
  72. package/lib/module/ui/components/SurfaceScreen.js.map +1 -1
  73. package/lib/module/ui/components/oxyAuthChooserStyles.js +78 -26
  74. package/lib/module/ui/components/oxyAuthChooserStyles.js.map +1 -1
  75. package/lib/module/ui/components/photogrid/JustifiedPhotoGrid.js +83 -25
  76. package/lib/module/ui/components/photogrid/JustifiedPhotoGrid.js.map +1 -1
  77. package/lib/module/ui/context/OxyContext.js +74 -38
  78. package/lib/module/ui/context/OxyContext.js.map +1 -1
  79. package/lib/module/ui/hooks/queries/queryKeys.js +16 -0
  80. package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -1
  81. package/lib/module/ui/hooks/queries/useFileQueries.js +120 -0
  82. package/lib/module/ui/hooks/queries/useFileQueries.js.map +1 -0
  83. package/lib/module/ui/hooks/useAvatarPicker.js +37 -49
  84. package/lib/module/ui/hooks/useAvatarPicker.js.map +1 -1
  85. package/lib/module/ui/hooks/useReduceMotion.js +53 -0
  86. package/lib/module/ui/hooks/useReduceMotion.js.map +1 -0
  87. package/lib/module/ui/hooks/useSurfaceHeader.js +1 -1
  88. package/lib/module/ui/hooks/useSurfaceHeader.js.map +1 -1
  89. package/lib/module/ui/navigation/accountDialogManager.js +20 -0
  90. package/lib/module/ui/navigation/accountDialogManager.js.map +1 -1
  91. package/lib/module/ui/navigation/bottomSheetManager.js +6 -7
  92. package/lib/module/ui/navigation/bottomSheetManager.js.map +1 -1
  93. package/lib/module/ui/navigation/routes.js +1 -0
  94. package/lib/module/ui/navigation/routes.js.map +1 -1
  95. package/lib/module/ui/navigation/surfaceNavStack.js +62 -15
  96. package/lib/module/ui/navigation/surfaceNavStack.js.map +1 -1
  97. package/lib/module/ui/navigation/surfaceRegistry.js +38 -17
  98. package/lib/module/ui/navigation/surfaceRegistry.js.map +1 -1
  99. package/lib/module/ui/navigation/surfaces.js +97 -22
  100. package/lib/module/ui/navigation/surfaces.js.map +1 -1
  101. package/lib/module/ui/screens/AvatarCropScreen.js +283 -281
  102. package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
  103. package/lib/module/ui/screens/ChangeAvatarScreen.js +298 -0
  104. package/lib/module/ui/screens/ChangeAvatarScreen.js.map +1 -0
  105. package/lib/module/ui/screens/FileManagementScreen.js +196 -433
  106. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  107. package/lib/module/ui/screens/WelcomeNewUserScreen.js +17 -49
  108. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  109. package/lib/module/ui/screens/fileManagement/FileLibraryError.js +59 -0
  110. package/lib/module/ui/screens/fileManagement/FileLibraryError.js.map +1 -0
  111. package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js +54 -42
  112. package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
  113. package/lib/module/ui/screens/fileManagement/hooks/useFileUploadState.js +45 -81
  114. package/lib/module/ui/screens/fileManagement/hooks/useFileUploadState.js.map +1 -1
  115. package/lib/module/ui/stores/resetSessionScopedStores.js +8 -3
  116. package/lib/module/ui/stores/resetSessionScopedStores.js.map +1 -1
  117. package/lib/module/ui/utils/avatarUtils.js +11 -2
  118. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  119. package/lib/module/ui/utils/fileManagement.js +0 -78
  120. package/lib/module/ui/utils/fileManagement.js.map +1 -1
  121. package/lib/typescript/commonjs/ui/components/AvatarCameraBadge.d.ts +4 -0
  122. package/lib/typescript/commonjs/ui/components/AvatarCameraBadge.d.ts.map +1 -0
  123. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts +2 -1
  124. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  125. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -1
  126. package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts.map +1 -1
  127. package/lib/typescript/commonjs/ui/components/ProfileSummaryCard.d.ts.map +1 -1
  128. package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts +1 -4
  129. package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts.map +1 -1
  130. package/lib/typescript/commonjs/ui/components/oxyAuthChooserStyles.d.ts +71 -19
  131. package/lib/typescript/commonjs/ui/components/oxyAuthChooserStyles.d.ts.map +1 -1
  132. package/lib/typescript/commonjs/ui/components/photogrid/JustifiedPhotoGrid.d.ts +10 -8
  133. package/lib/typescript/commonjs/ui/components/photogrid/JustifiedPhotoGrid.d.ts.map +1 -1
  134. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  135. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts +9 -0
  136. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  137. package/lib/typescript/commonjs/ui/hooks/queries/useFileQueries.d.ts +50 -0
  138. package/lib/typescript/commonjs/ui/hooks/queries/useFileQueries.d.ts.map +1 -0
  139. package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts +15 -10
  140. package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts.map +1 -1
  141. package/lib/typescript/commonjs/ui/hooks/useReduceMotion.d.ts +14 -0
  142. package/lib/typescript/commonjs/ui/hooks/useReduceMotion.d.ts.map +1 -0
  143. package/lib/typescript/commonjs/ui/hooks/useSurfaceHeader.d.ts +1 -1
  144. package/lib/typescript/commonjs/ui/hooks/useSurfaceHeader.d.ts.map +1 -1
  145. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts +13 -0
  146. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts.map +1 -1
  147. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts +4 -5
  148. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  149. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +1 -1
  150. package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
  151. package/lib/typescript/commonjs/ui/navigation/surfaceNavStack.d.ts +21 -0
  152. package/lib/typescript/commonjs/ui/navigation/surfaceNavStack.d.ts.map +1 -1
  153. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts +73 -13
  154. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts.map +1 -1
  155. package/lib/typescript/commonjs/ui/navigation/surfaces.d.ts +42 -11
  156. package/lib/typescript/commonjs/ui/navigation/surfaces.d.ts.map +1 -1
  157. package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts +18 -5
  158. package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  159. package/lib/typescript/commonjs/ui/screens/ChangeAvatarScreen.d.ts +34 -0
  160. package/lib/typescript/commonjs/ui/screens/ChangeAvatarScreen.d.ts.map +1 -0
  161. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  162. package/lib/typescript/commonjs/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  163. package/lib/typescript/commonjs/ui/screens/fileManagement/FileLibraryError.d.ts +23 -0
  164. package/lib/typescript/commonjs/ui/screens/fileManagement/FileLibraryError.d.ts.map +1 -0
  165. package/lib/typescript/commonjs/ui/screens/fileManagement/PhotoPickerSection.d.ts +4 -0
  166. package/lib/typescript/commonjs/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
  167. package/lib/typescript/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.d.ts +10 -2
  168. package/lib/typescript/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.d.ts.map +1 -1
  169. package/lib/typescript/commonjs/ui/stores/resetSessionScopedStores.d.ts +8 -1
  170. package/lib/typescript/commonjs/ui/stores/resetSessionScopedStores.d.ts.map +1 -1
  171. package/lib/typescript/commonjs/ui/types/navigation.d.ts +2 -0
  172. package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
  173. package/lib/typescript/commonjs/ui/utils/avatarUtils.d.ts.map +1 -1
  174. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts +0 -48
  175. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts.map +1 -1
  176. package/lib/typescript/module/ui/components/AvatarCameraBadge.d.ts +4 -0
  177. package/lib/typescript/module/ui/components/AvatarCameraBadge.d.ts.map +1 -0
  178. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts +2 -1
  179. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
  180. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
  181. package/lib/typescript/module/ui/components/ProfileButton.d.ts.map +1 -1
  182. package/lib/typescript/module/ui/components/ProfileSummaryCard.d.ts.map +1 -1
  183. package/lib/typescript/module/ui/components/SurfaceScreen.d.ts +1 -4
  184. package/lib/typescript/module/ui/components/SurfaceScreen.d.ts.map +1 -1
  185. package/lib/typescript/module/ui/components/oxyAuthChooserStyles.d.ts +71 -19
  186. package/lib/typescript/module/ui/components/oxyAuthChooserStyles.d.ts.map +1 -1
  187. package/lib/typescript/module/ui/components/photogrid/JustifiedPhotoGrid.d.ts +10 -8
  188. package/lib/typescript/module/ui/components/photogrid/JustifiedPhotoGrid.d.ts.map +1 -1
  189. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  190. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts +9 -0
  191. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  192. package/lib/typescript/module/ui/hooks/queries/useFileQueries.d.ts +50 -0
  193. package/lib/typescript/module/ui/hooks/queries/useFileQueries.d.ts.map +1 -0
  194. package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts +15 -10
  195. package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts.map +1 -1
  196. package/lib/typescript/module/ui/hooks/useReduceMotion.d.ts +14 -0
  197. package/lib/typescript/module/ui/hooks/useReduceMotion.d.ts.map +1 -0
  198. package/lib/typescript/module/ui/hooks/useSurfaceHeader.d.ts +1 -1
  199. package/lib/typescript/module/ui/hooks/useSurfaceHeader.d.ts.map +1 -1
  200. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts +13 -0
  201. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts.map +1 -1
  202. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts +4 -5
  203. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  204. package/lib/typescript/module/ui/navigation/routes.d.ts +1 -1
  205. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  206. package/lib/typescript/module/ui/navigation/surfaceNavStack.d.ts +21 -0
  207. package/lib/typescript/module/ui/navigation/surfaceNavStack.d.ts.map +1 -1
  208. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts +73 -13
  209. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts.map +1 -1
  210. package/lib/typescript/module/ui/navigation/surfaces.d.ts +42 -11
  211. package/lib/typescript/module/ui/navigation/surfaces.d.ts.map +1 -1
  212. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts +18 -5
  213. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  214. package/lib/typescript/module/ui/screens/ChangeAvatarScreen.d.ts +34 -0
  215. package/lib/typescript/module/ui/screens/ChangeAvatarScreen.d.ts.map +1 -0
  216. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  217. package/lib/typescript/module/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  218. package/lib/typescript/module/ui/screens/fileManagement/FileLibraryError.d.ts +23 -0
  219. package/lib/typescript/module/ui/screens/fileManagement/FileLibraryError.d.ts.map +1 -0
  220. package/lib/typescript/module/ui/screens/fileManagement/PhotoPickerSection.d.ts +4 -0
  221. package/lib/typescript/module/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
  222. package/lib/typescript/module/ui/screens/fileManagement/hooks/useFileUploadState.d.ts +10 -2
  223. package/lib/typescript/module/ui/screens/fileManagement/hooks/useFileUploadState.d.ts.map +1 -1
  224. package/lib/typescript/module/ui/stores/resetSessionScopedStores.d.ts +8 -1
  225. package/lib/typescript/module/ui/stores/resetSessionScopedStores.d.ts.map +1 -1
  226. package/lib/typescript/module/ui/types/navigation.d.ts +2 -0
  227. package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
  228. package/lib/typescript/module/ui/utils/avatarUtils.d.ts.map +1 -1
  229. package/lib/typescript/module/ui/utils/fileManagement.d.ts +0 -48
  230. package/lib/typescript/module/ui/utils/fileManagement.d.ts.map +1 -1
  231. package/package.json +8 -4
  232. package/src/ui/components/AvatarCameraBadge.tsx +35 -0
  233. package/src/ui/components/OxyAccountDialogScreen.tsx +38 -15
  234. package/src/ui/components/OxyAuthChooser.tsx +722 -185
  235. package/src/ui/components/ProfileButton.tsx +16 -1
  236. package/src/ui/components/ProfileSummaryCard.tsx +2 -25
  237. package/src/ui/components/SurfaceScreen.tsx +48 -14
  238. package/src/ui/components/oxyAuthChooserStyles.ts +75 -23
  239. package/src/ui/components/photogrid/JustifiedPhotoGrid.tsx +158 -84
  240. package/src/ui/components/photogrid/__tests__/chunkPhotos.test.ts +51 -0
  241. package/src/ui/context/OxyContext.tsx +74 -34
  242. package/src/ui/hooks/queries/queryKeys.ts +15 -0
  243. package/src/ui/hooks/queries/useFileQueries.ts +162 -0
  244. package/src/ui/hooks/useAvatarPicker.ts +38 -53
  245. package/src/ui/hooks/useReduceMotion.ts +58 -0
  246. package/src/ui/hooks/useSurfaceHeader.ts +2 -1
  247. package/src/ui/navigation/__tests__/getSurfaceConfig.test.ts +55 -7
  248. package/src/ui/navigation/__tests__/surfaceNavStack.test.ts +81 -0
  249. package/src/ui/navigation/accountDialogManager.ts +28 -0
  250. package/src/ui/navigation/bottomSheetManager.ts +6 -7
  251. package/src/ui/navigation/routes.ts +3 -1
  252. package/src/ui/navigation/surfaceNavStack.ts +72 -9
  253. package/src/ui/navigation/surfaceRegistry.ts +91 -17
  254. package/src/ui/navigation/surfaces.ts +108 -29
  255. package/src/ui/screens/AvatarCropScreen.tsx +336 -298
  256. package/src/ui/screens/ChangeAvatarScreen.tsx +359 -0
  257. package/src/ui/screens/FileManagementScreen.tsx +189 -432
  258. package/src/ui/screens/WelcomeNewUserScreen.tsx +18 -48
  259. package/src/ui/screens/fileManagement/FileLibraryError.tsx +56 -0
  260. package/src/ui/screens/fileManagement/PhotoPickerSection.tsx +56 -46
  261. package/src/ui/screens/fileManagement/hooks/useFileUploadState.ts +55 -71
  262. package/src/ui/stores/resetSessionScopedStores.ts +8 -3
  263. package/src/ui/types/navigation.ts +2 -0
  264. package/src/ui/utils/avatarUtils.ts +11 -2
  265. package/src/ui/utils/fileManagement.ts +1 -101
  266. package/lib/commonjs/ui/stores/fileStore.js +0 -153
  267. package/lib/commonjs/ui/stores/fileStore.js.map +0 -1
  268. package/lib/module/ui/stores/fileStore.js +0 -145
  269. package/lib/module/ui/stores/fileStore.js.map +0 -1
  270. package/lib/typescript/commonjs/ui/stores/fileStore.d.ts +0 -31
  271. package/lib/typescript/commonjs/ui/stores/fileStore.d.ts.map +0 -1
  272. package/lib/typescript/module/ui/stores/fileStore.d.ts +0 -31
  273. package/lib/typescript/module/ui/stores/fileStore.d.ts.map +0 -1
  274. package/src/ui/stores/fileStore.ts +0 -118
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
 
3
- import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
3
+ import React, { useCallback, useMemo, useRef, useState } from 'react';
4
4
  import { View, Text, TouchableOpacity, ActivityIndicator, RefreshControl, FlatList, Platform, Animated, useWindowDimensions } from 'react-native';
5
5
  import { Image as ExpoImage } from 'expo-image';
6
6
  import { Ionicons, MaterialCommunityIcons } from '@expo/vector-icons';
7
- import { BREAKPOINTS } from '@oxyhq/bloom/styles';
8
7
  import * as Skeleton from '@oxyhq/bloom/skeleton';
9
8
  import { computePhotoGridLayout } from "./photoGridLayout.js";
9
+ import FileLibraryError from "./FileLibraryError.js";
10
10
 
11
11
  /**
12
12
  * Haptic feedback wrapper. `expo-haptics` is an optional dependency — when not
@@ -145,38 +145,35 @@ const PhotoPickerCell = /*#__PURE__*/React.memo(function PhotoPickerCell(props)
145
145
  } = props;
146
146
  const delay = Math.min(enterIndex * STAGGER_PER_CELL_MS, MAX_TOTAL_STAGGER_MS);
147
147
 
148
- // Entrance fade, staggered by the cell's grid index. Reduce-motion pins
148
+ // Entrance fade, staggered by the cell's grid index. Started from the wrapper's
149
+ // ref callback (fires on mount) rather than an effect. Reduce-motion pins
149
150
  // opacity at 1 and never animates.
150
151
  const opacity = useRef(new Animated.Value(reduceMotion ? 1 : 0)).current;
151
- useEffect(() => {
152
+ const startEntrance = useCallback(node => {
153
+ if (!node) return; // unmount
152
154
  if (reduceMotion) {
153
155
  opacity.setValue(1);
154
156
  return;
155
157
  }
156
- const entrance = Animated.timing(opacity, {
158
+ opacity.setValue(0);
159
+ Animated.timing(opacity, {
157
160
  toValue: 1,
158
161
  duration: ENTRANCE_DURATION_MS,
159
162
  delay,
160
163
  useNativeDriver: Platform.OS !== 'web'
161
- });
162
- entrance.start();
163
- return () => entrance.stop();
164
+ }).start();
164
165
  }, [opacity, delay, reduceMotion]);
165
166
 
166
- // Selection-ring pulse: a quick scale bump each time the cell transitions
167
- // INTO the selected state, springing back to rest. Reduce-motion holds the
168
- // ring at rest scale (still tracks selection state so a later un-reduce does
169
- // not fire a stale pulse).
167
+ // Selection-ring pulse: a quick scale bump that springs back to rest. The ring
168
+ // renders ONLY while selected, so its own mount IS the "became selected"
169
+ // signal driven from the ring's ref callback, not an effect. Reduce-motion
170
+ // holds the ring at rest scale.
170
171
  const ringScale = useRef(new Animated.Value(1)).current;
171
- const prevSelected = useRef(isSelected);
172
- useEffect(() => {
173
- if (prevSelected.current === isSelected) return;
174
- prevSelected.current = isSelected;
175
- if (reduceMotion || !isSelected) {
176
- ringScale.setValue(1);
177
- return;
178
- }
179
- const pulse = Animated.sequence([Animated.timing(ringScale, {
172
+ const startRingPulse = useCallback(node => {
173
+ if (!node) return; // ring unmounting (deselected)
174
+ ringScale.setValue(1);
175
+ if (reduceMotion) return;
176
+ Animated.sequence([Animated.timing(ringScale, {
180
177
  toValue: RING_PULSE_PEAK,
181
178
  duration: RING_PULSE_UP_MS,
182
179
  useNativeDriver: Platform.OS !== 'web'
@@ -185,10 +182,8 @@ const PhotoPickerCell = /*#__PURE__*/React.memo(function PhotoPickerCell(props)
185
182
  friction: RING_SPRING_FRICTION,
186
183
  tension: RING_SPRING_TENSION,
187
184
  useNativeDriver: Platform.OS !== 'web'
188
- })]);
189
- pulse.start();
190
- return () => pulse.stop();
191
- }, [isSelected, ringScale, reduceMotion]);
185
+ })]).start();
186
+ }, [ringScale, reduceMotion]);
192
187
  return (
193
188
  /*#__PURE__*/
194
189
  // The animated wrapper carries the entrance opacity + the layout box as
@@ -196,6 +191,7 @@ const PhotoPickerCell = /*#__PURE__*/React.memo(function PhotoPickerCell(props)
196
191
  // size/margins are runtime pixels className cannot express. `className`
197
192
  // drives the static chrome below (`flex-1` fills this fixed-size box).
198
193
  _jsx(Animated.View, {
194
+ ref: startEntrance,
199
195
  style: {
200
196
  width: size,
201
197
  height: size,
@@ -230,6 +226,7 @@ const PhotoPickerCell = /*#__PURE__*/React.memo(function PhotoPickerCell(props)
230
226
  accessibilityLabel: photo.filename
231
227
  })
232
228
  }), isSelected && /*#__PURE__*/_jsx(Animated.View, {
229
+ ref: startRingPulse,
233
230
  pointerEvents: "none",
234
231
  style: {
235
232
  position: 'absolute',
@@ -272,6 +269,8 @@ const PhotoPickerView = ({
272
269
  hasMore,
273
270
  loadingMore,
274
271
  loading,
272
+ loadError,
273
+ onRetry,
275
274
  reduceMotion,
276
275
  getThumbUrl,
277
276
  primaryColor,
@@ -305,21 +304,17 @@ const PhotoPickerView = ({
305
304
  setGridWidth(prev => prev === w ? prev : w);
306
305
  }, []);
307
306
 
308
- // The hosting Dialog uses `{ base: 'bottom', md: 'center' }`. In BOTH
309
- // placements the panel/sheet has no intrinsic height that a `flex: 1` root
310
- // could fill down to the FlatList: the centered card hugs its content, and
311
- // the bottom sheet's own `maxHeight` (several flex levels above this root)
312
- // does not propagate a definite bound through the chain. So the root owns a
313
- // `maxHeight` DIRECTLY — the FlatList then scrolls within it when the grid is
314
- // long, and the panel hugs its content when the grid is short (no huge empty
315
- // panel). The cap is tighter for the centered card (a floating modal reads
316
- // better below full height); the bottom sheet may run taller. Keep this
317
- // breakpoint in sync with `SHEET_PLACEMENT` in surfaces.ts.
318
- const isCenteredPanel = windowWidth >= BREAKPOINTS.md;
319
- const maxPanelHeight = useMemo(() => isCenteredPanel ? Math.min(Math.round(windowHeight * 0.85), 720) : Math.round(windowHeight * 0.9), [isCenteredPanel, windowHeight]);
307
+ // The picker FILLS its panel: the surface morphs the container UP to an
308
+ // explicit large target (`frameSize.heightRatio: 0.9` in `surfaceRegistry`),
309
+ // and this root takes that SAME 0.9-of-viewport height so the grid uses the
310
+ // whole grown card (a `flex: 1` root can't fill no definite bound propagates
311
+ // through the sheet's flex chain, and the panel is pinned, not measured). The
312
+ // FlatList then scrolls within this fixed height. Keep the 0.9 ratio in sync
313
+ // with the picker's `frameSize` in `surfaceRegistry.ts`.
314
+ const panelHeight = useMemo(() => Math.round(windowHeight * 0.9), [windowHeight]);
320
315
  const rootStyle = useMemo(() => ({
321
- maxHeight: maxPanelHeight
322
- }), [maxPanelHeight]);
316
+ height: panelHeight
317
+ }), [panelHeight]);
323
318
  const effectiveWidth = gridWidth > 0 ? gridWidth : windowWidth;
324
319
  const {
325
320
  columns,
@@ -334,10 +329,10 @@ const PhotoPickerView = ({
334
329
  const skeletonTileCount = useMemo(() => {
335
330
  const rowHeight = cellSize + gutter;
336
331
  if (rowHeight <= 0) return columns * SKELETON_MIN_ROWS;
337
- const available = Math.max(0, maxPanelHeight - GRID_CONTENT_PADDING_TOP);
332
+ const available = Math.max(0, panelHeight - GRID_CONTENT_PADDING_TOP);
338
333
  const rows = Math.max(SKELETON_MIN_ROWS, Math.floor(available / rowHeight));
339
334
  return rows * columns;
340
- }, [cellSize, gutter, columns, maxPanelHeight]);
335
+ }, [cellSize, gutter, columns, panelHeight]);
341
336
 
342
337
  // Map selectedIds → 1-based selection order for the badge. We freeze a
343
338
  // stable order at the time of selection: the order is the insertion
@@ -442,7 +437,24 @@ const PhotoPickerView = ({
442
437
  onLayout: onRootLayout,
443
438
  children: /*#__PURE__*/_jsxs(View, {
444
439
  className: "flex-1 min-h-0 bg-black",
445
- children: [isEmpty && loading ?
440
+ children: [isEmpty && loadError ?
441
+ /*#__PURE__*/
442
+ /* Terminal load failure — a DISTINCT error surface (not the
443
+ empty state), pushed below the translucent header so Cancel
444
+ stays reachable. Retry re-runs the list query. */
445
+ _jsx(View, {
446
+ className: "flex-1 items-center justify-center pt-[60px]",
447
+ children: /*#__PURE__*/_jsx(FileLibraryError, {
448
+ title: t('fileManagement.loadError.title'),
449
+ description: t('fileManagement.loadError.description'),
450
+ retryLabel: t('fileManagement.retry'),
451
+ onRetry: onRetry,
452
+ iconColor: "#FF6B6B",
453
+ titleColor: "#FFFFFF",
454
+ descriptionColor: "rgba(255,255,255,0.7)",
455
+ buttonColor: primaryColor
456
+ })
457
+ }) : isEmpty && loading ?
446
458
  /*#__PURE__*/
447
459
  /* Loading skeleton — the picker's OWN shape: shimmer tiles laid
448
460
  out with the SAME placement-aware geometry the real grid uses
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","View","Text","TouchableOpacity","ActivityIndicator","RefreshControl","FlatList","Platform","Animated","useWindowDimensions","Image","ExpoImage","Ionicons","MaterialCommunityIcons","BREAKPOINTS","Skeleton","computePhotoGridLayout","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","hapticsModulePromise","getHaptics","OS","Promise","resolve","mod","impactAsync","hapticImpact","style","h","styleEnum","ImpactFeedbackStyle","Heavy","Medium","Light","hapticSelection","selectionAsync","hapticNotification","type","typeEnum","NotificationFeedbackType","Error","Warning","Success","notificationAsync","APP_BAR_HEIGHT","HEADER_HEIGHT","GRID_CONTENT_PADDING_TOP","STAGGER_PER_CELL_MS","MAX_TOTAL_STAGGER_MS","ENTRANCE_DURATION_MS","RING_PULSE_PEAK","RING_PULSE_UP_MS","RING_SPRING_FRICTION","RING_SPRING_TENSION","CELL_CORNER_RADIUS","SELECTION_RING_WIDTH","SKELETON_TILE_COLOR","SKELETON_MIN_ROWS","PhotoPickerCell","memo","props","photo","size","marginRight","marginBottom","isSelected","selectionIndex","dim","primaryColor","thumbUrl","enterIndex","reduceMotion","onPress","onLongPress","a11yLabel","delay","Math","min","opacity","Value","current","setValue","entrance","timing","toValue","duration","useNativeDriver","start","stop","ringScale","prevSelected","pulse","sequence","spring","friction","tension","width","height","position","children","activeOpacity","className","accessibilityRole","accessibilityLabel","accessibilityState","selected","source","uri","contentFit","transition","cachePolicy","filename","pointerEvents","top","right","bottom","left","borderRadius","borderWidth","borderColor","transform","scale","backgroundColor","String","PhotoPickerView","photos","selectedIds","multiSelect","maxSelection","allowUpload","refreshing","uploading","isPickingDocument","uploadProgress","hasMore","loadingMore","loading","getThumbUrl","isOwner","onTogglePhoto","onPreviewPhoto","onUpload","onRefresh","onLoadMore","onCancel","onConfirm","t","windowWidth","windowHeight","gridWidth","setGridWidth","onRootLayout","e","w","round","nativeEvent","layout","prev","isCenteredPanel","md","maxPanelHeight","rootStyle","maxHeight","effectiveWidth","columns","cellSize","gutter","skeletonTileCount","rowHeight","available","max","rows","floor","selectionOrder","map","Map","i","id","set","hasAnySelection","showUploadLabel","isEmpty","length","atSelectionLimit","handleCellPress","handleCellLongPress","handleConfirm","renderItem","item","index","has","selIndex","get","isLastInRow","name","keyExtractor","listFooter","color","handleEndReached","confirmDisabled","confirmLabel","count","progressFraction","total","onLayout","flexDirection","flexWrap","accessibilityElementsHidden","importantForAccessibility","Array","from","_","Box","disabled","busy","data","numColumns","contentContainerClassName","showsVerticalScrollIndicator","refreshControl","tintColor","colors","progressViewOffset","onEndReached","onEndReachedThreshold","ListFooterComponent","removeClippedSubviews","initialNumToRender","windowSize","hitSlop","letterSpacing","numberOfLines"],"sourceRoot":"../../../../../src","sources":["ui/screens/fileManagement/PhotoPickerSection.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useMemo","useRef","useState","View","Text","TouchableOpacity","ActivityIndicator","RefreshControl","FlatList","Platform","Animated","useWindowDimensions","Image","ExpoImage","Ionicons","MaterialCommunityIcons","Skeleton","computePhotoGridLayout","FileLibraryError","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","hapticsModulePromise","getHaptics","OS","Promise","resolve","mod","impactAsync","hapticImpact","style","h","styleEnum","ImpactFeedbackStyle","Heavy","Medium","Light","hapticSelection","selectionAsync","hapticNotification","type","typeEnum","NotificationFeedbackType","Error","Warning","Success","notificationAsync","APP_BAR_HEIGHT","HEADER_HEIGHT","GRID_CONTENT_PADDING_TOP","STAGGER_PER_CELL_MS","MAX_TOTAL_STAGGER_MS","ENTRANCE_DURATION_MS","RING_PULSE_PEAK","RING_PULSE_UP_MS","RING_SPRING_FRICTION","RING_SPRING_TENSION","CELL_CORNER_RADIUS","SELECTION_RING_WIDTH","SKELETON_TILE_COLOR","SKELETON_MIN_ROWS","PhotoPickerCell","memo","props","photo","size","marginRight","marginBottom","isSelected","selectionIndex","dim","primaryColor","thumbUrl","enterIndex","reduceMotion","onPress","onLongPress","a11yLabel","delay","Math","min","opacity","Value","current","startEntrance","node","setValue","timing","toValue","duration","useNativeDriver","start","ringScale","startRingPulse","sequence","spring","friction","tension","ref","width","height","position","children","activeOpacity","className","accessibilityRole","accessibilityLabel","accessibilityState","selected","source","uri","contentFit","transition","cachePolicy","filename","pointerEvents","top","right","bottom","left","borderRadius","borderWidth","borderColor","transform","scale","backgroundColor","String","PhotoPickerView","photos","selectedIds","multiSelect","maxSelection","allowUpload","refreshing","uploading","isPickingDocument","uploadProgress","hasMore","loadingMore","loading","loadError","onRetry","getThumbUrl","isOwner","onTogglePhoto","onPreviewPhoto","onUpload","onRefresh","onLoadMore","onCancel","onConfirm","t","windowWidth","windowHeight","gridWidth","setGridWidth","onRootLayout","e","w","round","nativeEvent","layout","prev","panelHeight","rootStyle","effectiveWidth","columns","cellSize","gutter","skeletonTileCount","rowHeight","available","max","rows","floor","selectionOrder","map","Map","i","id","set","hasAnySelection","showUploadLabel","isEmpty","length","atSelectionLimit","handleCellPress","handleCellLongPress","handleConfirm","renderItem","item","index","has","selIndex","get","isLastInRow","name","keyExtractor","listFooter","color","handleEndReached","confirmDisabled","confirmLabel","count","progressFraction","total","onLayout","title","description","retryLabel","iconColor","titleColor","descriptionColor","buttonColor","flexDirection","flexWrap","accessibilityElementsHidden","importantForAccessibility","Array","from","_","Box","disabled","busy","data","numColumns","contentContainerClassName","showsVerticalScrollIndicator","refreshControl","tintColor","colors","progressViewOffset","onEndReached","onEndReachedThreshold","ListFooterComponent","removeClippedSubviews","initialNumToRender","windowSize","hitSlop","letterSpacing","numberOfLines"],"sourceRoot":"../../../../../src","sources":["ui/screens/fileManagement/PhotoPickerSection.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,17 @@
1
1
  "use strict";
2
2
 
3
3
  import { useCallback, useRef, useState } from 'react';
4
+ import { useQueryClient } from '@tanstack/react-query';
4
5
  import { toast } from '@oxyhq/bloom';
5
- import { useFileStore } from "../../../stores/fileStore.js";
6
+ import { queryKeys } from "../../../hooks/queries/queryKeys.js";
7
+ import { prependFileToCache, removeFileFromCache, replaceFileInCache } from "../../../hooks/queries/useFileQueries.js";
6
8
  import { convertDocumentPickerAssetToFile, formatFileSize } from "../../../utils/fileManagement.js";
7
9
  import { createPendingUploadFile, candidateName, candidateSize, candidateType, candidateUri, getErrorMessage, loadDocumentPicker } from "../shared.js";
10
+
11
+ /** Aggregate progress across a multi-file upload. */
12
+
13
+ /** Minimum time the "Uploading…" indicator stays visible (anti-flash). */
14
+ const MIN_BANNER_MS = 600;
8
15
  function revokePreviewUrl(preview) {
9
16
  if (preview?.startsWith('blob:')) {
10
17
  URL.revokeObjectURL(preview);
@@ -40,22 +47,21 @@ export const useFileUploadState = ({
40
47
  onClose,
41
48
  selectedIds,
42
49
  setSelectedIds,
43
- loadFiles,
44
50
  t
45
51
  }) => {
46
52
  const [isPickingDocument, setIsPickingDocument] = useState(false);
47
53
  const [pendingFiles, setPendingFiles] = useState([]);
48
54
  const [showUploadPreview, setShowUploadPreview] = useState(false);
55
+ const [uploading, setUploading] = useState(false);
56
+ const [uploadProgress, setUploadProgress] = useState(null);
57
+ const queryClient = useQueryClient();
49
58
  const uploadStartRef = useRef(null);
50
- const MIN_BANNER_MS = 600;
51
- const storeSetUploading = useFileStore(s => s.setUploading);
52
- const storeSetUploadProgress = useFileStore(s => s.setUploadProgress);
53
59
  const endUpload = useCallback(() => {
54
60
  const started = uploadStartRef.current;
55
61
  const elapsed = started ? Date.now() - started : MIN_BANNER_MS;
56
62
  const remaining = elapsed < MIN_BANNER_MS ? MIN_BANNER_MS - elapsed : 0;
57
63
  setTimeout(() => {
58
- useFileStore.getState().setUploading(false);
64
+ setUploading(false);
59
65
  uploadStartRef.current = null;
60
66
  }, remaining);
61
67
  }, []);
@@ -64,7 +70,7 @@ export const useFileUploadState = ({
64
70
  if (!targetUserId) return []; // Guard clause to ensure userId is defined
65
71
  const uploadedFiles = [];
66
72
  try {
67
- storeSetUploadProgress({
73
+ setUploadProgress({
68
74
  current: 0,
69
75
  total: selectedFiles.length
70
76
  });
@@ -81,7 +87,7 @@ export const useFileUploadState = ({
81
87
  let failureCount = 0;
82
88
  const errors = [];
83
89
  for (let i = 0; i < selectedFiles.length; i++) {
84
- storeSetUploadProgress({
90
+ setUploadProgress({
85
91
  current: i + 1,
86
92
  total: selectedFiles.length
87
93
  });
@@ -89,18 +95,11 @@ export const useFileUploadState = ({
89
95
  const fileName = candidateName(raw, `file-${i + 1}`);
90
96
  const fileSize = candidateSize(raw);
91
97
  const fileType = candidateType(raw);
92
- const optimisticId = `temp-${Date.now()}-${i}-${Math.random().toString(36).substr(2, 9)}`; // Unique ID per file
98
+ const optimisticId = `temp-${Date.now()}-${i}-${Math.random().toString(36).slice(2, 11)}`; // Unique ID per file
93
99
 
94
100
  try {
95
101
  // Validate file before upload
96
102
  if (!raw || !fileName || fileSize <= 0) {
97
- const errorMsg = `Invalid file: ${fileName}`;
98
- if (__DEV__) {
99
- console.error('Upload validation failed:', {
100
- file: raw,
101
- error: errorMsg
102
- });
103
- }
104
103
  failureCount++;
105
104
  errors.push(`${fileName}: Invalid file (missing name or size)`);
106
105
  continue;
@@ -127,9 +126,7 @@ export const useFileUploadState = ({
127
126
  metadata: optimisticMetadata,
128
127
  variants: []
129
128
  };
130
- useFileStore.getState().addFile(optimisticFile, {
131
- prepend: true
132
- });
129
+ prependFileToCache(queryClient, targetUserId, optimisticFile);
133
130
 
134
131
  // Use the mutation hook with authentication handling
135
132
  const result = await uploadFileMutation.mutateAsync({
@@ -150,46 +147,26 @@ export const useFileUploadState = ({
150
147
  metadata: f.metadata || {},
151
148
  variants: f.variants || []
152
149
  };
153
- // Remove optimistic then add real
154
- useFileStore.getState().removeFile(optimisticId);
155
- useFileStore.getState().addFile(merged, {
156
- prepend: true
157
- });
150
+ // Swap the optimistic temp entry for the persisted record.
151
+ replaceFileInCache(queryClient, targetUserId, optimisticId, merged);
158
152
  uploadedFiles.push(merged);
159
153
  successCount++;
160
154
  } else {
161
155
  // Upload succeeded but the API returned no file payload,
162
156
  // so we cannot build a real entry. Drop the optimistic
163
157
  // placeholder instead of stranding a `temp-…` id (which
164
- // would leak into asset URLs); the scheduled silent
165
- // reconcile below re-fetches the persisted record.
166
- useFileStore.getState().removeFile(optimisticId);
167
- if (__DEV__) {
168
- console.warn('Upload completed but no file data returned:', {
169
- fileName,
170
- result
171
- });
172
- }
158
+ // would leak into asset URLs); the reconcile invalidation
159
+ // below re-fetches the persisted record.
160
+ removeFileFromCache(queryClient, targetUserId, optimisticId);
173
161
  // Still count as success if upload didn't throw
174
162
  successCount++;
175
163
  }
176
164
  } catch (error) {
177
165
  failureCount++;
178
166
  const errorMessage = getErrorMessage(error) || 'Upload failed';
179
- const fullError = `${fileName}: ${errorMessage}`;
180
- errors.push(fullError);
181
- if (__DEV__) {
182
- console.error('File upload failed:', {
183
- fileName,
184
- fileSize,
185
- fileType,
186
- error: errorMessage,
187
- stack: error instanceof Error ? error.stack : undefined
188
- });
189
- }
190
-
167
+ errors.push(`${fileName}: ${errorMessage}`);
191
168
  // Remove optimistic file on error (use the same optimisticId from above)
192
- useFileStore.getState().removeFile(optimisticId);
169
+ removeFileFromCache(queryClient, targetUserId, optimisticId);
193
170
  }
194
171
  }
195
172
 
@@ -206,14 +183,17 @@ export const useFileUploadState = ({
206
183
  count: failureCount
207
184
  })}${errorDetails}`);
208
185
  }
209
- // Silent background refresh to ensure metadata/variants updated
210
- setTimeout(() => {
211
- loadFiles('silent');
212
- }, 1200);
186
+ // Reconcile against the server (picks up generated variants / metadata)
187
+ // replaces the old silent-reload timer.
188
+ if (successCount > 0) {
189
+ queryClient.invalidateQueries({
190
+ queryKey: queryKeys.files.list(targetUserId)
191
+ });
192
+ }
213
193
  } catch (error) {
214
194
  toast.error(getErrorMessage(error) || t('fileManagement.toasts.uploadError'));
215
195
  } finally {
216
- storeSetUploadProgress(null);
196
+ setUploadProgress(null);
217
197
  }
218
198
  return uploadedFiles;
219
199
  };
@@ -223,34 +203,22 @@ export const useFileUploadState = ({
223
203
  for (const file of selectedFiles) {
224
204
  // Validate file has required properties
225
205
  if (!file) {
226
- if (__DEV__) {
227
- console.error('Invalid file: file is null or undefined');
228
- }
229
206
  toast.error(t('fileManagement.toasts.invalidFileMissing'));
230
207
  continue;
231
208
  }
232
209
  const name = candidateName(file, '');
233
210
  if (!name) {
234
- if (__DEV__) {
235
- console.error('Invalid file: missing or invalid name property', file);
236
- }
237
211
  toast.error(t('fileManagement.toasts.invalidFileName'));
238
212
  continue;
239
213
  }
240
214
  const size = file.size;
241
215
  if (size === undefined || size === null || Number.isNaN(size)) {
242
- if (__DEV__) {
243
- console.error('Invalid file: missing or invalid size property', file);
244
- }
245
216
  toast.error(t('fileManagement.toasts.invalidFileSize', {
246
217
  name
247
218
  }));
248
219
  continue;
249
220
  }
250
221
  if (size <= 0) {
251
- if (__DEV__) {
252
- console.error('Invalid file: file size is zero or negative', file);
253
- }
254
222
  toast.error(t('fileManagement.toasts.fileEmpty', {
255
223
  name
256
224
  }));
@@ -280,11 +248,8 @@ export const useFileUploadState = ({
280
248
  if (typeof File !== 'undefined' && file instanceof File || typeof Blob !== 'undefined' && file instanceof Blob) {
281
249
  preview = URL.createObjectURL(file);
282
250
  }
283
- } catch (error) {
284
- if (__DEV__) {
285
- console.warn('Failed to create preview URL:', error);
286
- }
287
- // Preview is optional, continue without it
251
+ } catch {
252
+ // Preview is optional — continue without it.
288
253
  }
289
254
  }
290
255
  }
@@ -303,25 +268,25 @@ export const useFileUploadState = ({
303
268
  if (pendingFiles.length === 0) return;
304
269
  setShowUploadPreview(false);
305
270
  uploadStartRef.current = Date.now();
306
- storeSetUploading(true);
307
- storeSetUploadProgress(null);
271
+ setUploading(true);
272
+ setUploadProgress(null);
308
273
  try {
309
274
  const filesToUpload = pendingFiles.map(pf => pf.file);
310
- storeSetUploadProgress({
275
+ setUploadProgress({
311
276
  current: 0,
312
277
  total: filesToUpload.length
313
278
  });
314
279
  const uploadedFiles = await processFileUploads(filesToUpload);
315
280
 
316
281
  // Cleanup preview URLs
317
- pendingFiles.forEach(pf => {
282
+ for (const pf of pendingFiles) {
318
283
  revokePreviewUrl(pf.preview);
319
- });
284
+ }
320
285
  setPendingFiles([]);
321
286
 
322
287
  // If in selectMode, automatically select the uploaded file(s)
323
288
  if (selectMode && uploadedFiles.length > 0) {
324
- // Wait a bit for the file store to update and ensure file is available
289
+ // Defer one tick so the query cache has settled before selecting.
325
290
  setTimeout(() => {
326
291
  const fileToSelect = uploadedFiles[0];
327
292
  if (!multiSelect && fileToSelect) {
@@ -334,11 +299,11 @@ export const useFileUploadState = ({
334
299
  }
335
300
  } else if (multiSelect) {
336
301
  // Multi-select mode - add all uploaded files to selection
337
- uploadedFiles.forEach(file => {
302
+ for (const file of uploadedFiles) {
338
303
  if (!selectedIds.has(file.id)) {
339
304
  setSelectedIds(prev => new Set(prev).add(file.id));
340
305
  }
341
- });
306
+ }
342
307
  }
343
308
  }, 500);
344
309
  }
@@ -350,9 +315,9 @@ export const useFileUploadState = ({
350
315
  };
351
316
  const handleCancelUpload = () => {
352
317
  // Cleanup preview URLs
353
- pendingFiles.forEach(pf => {
318
+ for (const pf of pendingFiles) {
354
319
  revokePreviewUrl(pf.preview);
355
- });
320
+ }
356
321
  setPendingFiles([]);
357
322
  setShowUploadPreview(false);
358
323
  };
@@ -453,9 +418,6 @@ export const useFileUploadState = ({
453
418
  toast.error(t('fileManagement.toasts.noFilesProcessed'));
454
419
  }
455
420
  } catch (error) {
456
- if (__DEV__) {
457
- console.error('File upload error:', error);
458
- }
459
421
  if (getErrorMessage(error)?.includes('expo-document-picker') || getErrorMessage(error)?.includes('Different document picking in progress')) {
460
422
  if (getErrorMessage(error)?.includes('Different document picking in progress')) {
461
423
  toast.error(t('fileManagement.toasts.waitForSelection'));
@@ -474,6 +436,8 @@ export const useFileUploadState = ({
474
436
  isPickingDocument,
475
437
  pendingFiles,
476
438
  showUploadPreview,
439
+ uploading,
440
+ uploadProgress,
477
441
  handleFileUpload,
478
442
  handleConfirmUpload,
479
443
  handleCancelUpload,