@oxyhq/services 22.10.0 → 22.11.1

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 +71 -39
  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 +71 -40
  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 +11 -7
  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 +73 -44
  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,54 @@ 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.
151
+ //
152
+ // CRITICAL: `Animated.View` rebuilds its merged ref on every render, so React
153
+ // re-invokes this callback on EVERY commit (not just mount) — and re-running
154
+ // `Animated.timing().start()`/`setValue` each time drives a web re-render that
155
+ // re-fires the ref → "Maximum update depth exceeded" once the grid has cells.
156
+ // The `startedRef` latch makes it genuinely run-once per mount, breaking the
157
+ // loop. (jest/react-test-renderer never exercises the Animated merged-ref path,
158
+ // so this only reproduces in a real browser.)
150
159
  const opacity = useRef(new Animated.Value(reduceMotion ? 1 : 0)).current;
151
- useEffect(() => {
160
+ const startedRef = useRef(false);
161
+ const startEntrance = useCallback(node => {
162
+ if (!node) return; // unmount
163
+ if (startedRef.current) return; // ref re-fired on a later commit — already ran
164
+ startedRef.current = true;
152
165
  if (reduceMotion) {
153
166
  opacity.setValue(1);
154
167
  return;
155
168
  }
156
- const entrance = Animated.timing(opacity, {
169
+ opacity.setValue(0);
170
+ Animated.timing(opacity, {
157
171
  toValue: 1,
158
172
  duration: ENTRANCE_DURATION_MS,
159
173
  delay,
160
174
  useNativeDriver: Platform.OS !== 'web'
161
- });
162
- entrance.start();
163
- return () => entrance.stop();
175
+ }).start();
164
176
  }, [opacity, delay, reduceMotion]);
165
177
 
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).
178
+ // Selection-ring pulse: a quick scale bump that springs back to rest. The ring
179
+ // renders ONLY while selected, so its own mount IS the "became selected"
180
+ // signal driven from the ring's ref callback, not an effect. Reduce-motion
181
+ // holds the ring at rest scale. Same run-once latch as the entrance (the ring's
182
+ // `Animated.View` re-fires this ref every commit too) — reset on unmount so a
183
+ // later re-selection pulses again.
170
184
  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);
185
+ const pulsedRef = useRef(false);
186
+ const startRingPulse = useCallback(node => {
187
+ if (!node) {
188
+ pulsedRef.current = false; // ring unmounted (deselected) — arm the next pulse
177
189
  return;
178
190
  }
179
- const pulse = Animated.sequence([Animated.timing(ringScale, {
191
+ if (pulsedRef.current) return; // ref re-fired on a later commit — already pulsed
192
+ pulsedRef.current = true;
193
+ ringScale.setValue(1);
194
+ if (reduceMotion) return;
195
+ Animated.sequence([Animated.timing(ringScale, {
180
196
  toValue: RING_PULSE_PEAK,
181
197
  duration: RING_PULSE_UP_MS,
182
198
  useNativeDriver: Platform.OS !== 'web'
@@ -185,10 +201,8 @@ const PhotoPickerCell = /*#__PURE__*/React.memo(function PhotoPickerCell(props)
185
201
  friction: RING_SPRING_FRICTION,
186
202
  tension: RING_SPRING_TENSION,
187
203
  useNativeDriver: Platform.OS !== 'web'
188
- })]);
189
- pulse.start();
190
- return () => pulse.stop();
191
- }, [isSelected, ringScale, reduceMotion]);
204
+ })]).start();
205
+ }, [ringScale, reduceMotion]);
192
206
  return (
193
207
  /*#__PURE__*/
194
208
  // The animated wrapper carries the entrance opacity + the layout box as
@@ -196,6 +210,7 @@ const PhotoPickerCell = /*#__PURE__*/React.memo(function PhotoPickerCell(props)
196
210
  // size/margins are runtime pixels className cannot express. `className`
197
211
  // drives the static chrome below (`flex-1` fills this fixed-size box).
198
212
  _jsx(Animated.View, {
213
+ ref: startEntrance,
199
214
  style: {
200
215
  width: size,
201
216
  height: size,
@@ -230,6 +245,7 @@ const PhotoPickerCell = /*#__PURE__*/React.memo(function PhotoPickerCell(props)
230
245
  accessibilityLabel: photo.filename
231
246
  })
232
247
  }), isSelected && /*#__PURE__*/_jsx(Animated.View, {
248
+ ref: startRingPulse,
233
249
  pointerEvents: "none",
234
250
  style: {
235
251
  position: 'absolute',
@@ -272,6 +288,8 @@ const PhotoPickerView = ({
272
288
  hasMore,
273
289
  loadingMore,
274
290
  loading,
291
+ loadError,
292
+ onRetry,
275
293
  reduceMotion,
276
294
  getThumbUrl,
277
295
  primaryColor,
@@ -305,21 +323,17 @@ const PhotoPickerView = ({
305
323
  setGridWidth(prev => prev === w ? prev : w);
306
324
  }, []);
307
325
 
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]);
326
+ // The picker FILLS its panel: the surface morphs the container UP to an
327
+ // explicit large target (`frameSize.heightRatio: 0.9` in `surfaceRegistry`),
328
+ // and this root takes that SAME 0.9-of-viewport height so the grid uses the
329
+ // whole grown card (a `flex: 1` root can't fill no definite bound propagates
330
+ // through the sheet's flex chain, and the panel is pinned, not measured). The
331
+ // FlatList then scrolls within this fixed height. Keep the 0.9 ratio in sync
332
+ // with the picker's `frameSize` in `surfaceRegistry.ts`.
333
+ const panelHeight = useMemo(() => Math.round(windowHeight * 0.9), [windowHeight]);
320
334
  const rootStyle = useMemo(() => ({
321
- maxHeight: maxPanelHeight
322
- }), [maxPanelHeight]);
335
+ height: panelHeight
336
+ }), [panelHeight]);
323
337
  const effectiveWidth = gridWidth > 0 ? gridWidth : windowWidth;
324
338
  const {
325
339
  columns,
@@ -334,10 +348,10 @@ const PhotoPickerView = ({
334
348
  const skeletonTileCount = useMemo(() => {
335
349
  const rowHeight = cellSize + gutter;
336
350
  if (rowHeight <= 0) return columns * SKELETON_MIN_ROWS;
337
- const available = Math.max(0, maxPanelHeight - GRID_CONTENT_PADDING_TOP);
351
+ const available = Math.max(0, panelHeight - GRID_CONTENT_PADDING_TOP);
338
352
  const rows = Math.max(SKELETON_MIN_ROWS, Math.floor(available / rowHeight));
339
353
  return rows * columns;
340
- }, [cellSize, gutter, columns, maxPanelHeight]);
354
+ }, [cellSize, gutter, columns, panelHeight]);
341
355
 
342
356
  // Map selectedIds → 1-based selection order for the badge. We freeze a
343
357
  // stable order at the time of selection: the order is the insertion
@@ -442,7 +456,24 @@ const PhotoPickerView = ({
442
456
  onLayout: onRootLayout,
443
457
  children: /*#__PURE__*/_jsxs(View, {
444
458
  className: "flex-1 min-h-0 bg-black",
445
- children: [isEmpty && loading ?
459
+ children: [isEmpty && loadError ?
460
+ /*#__PURE__*/
461
+ /* Terminal load failure — a DISTINCT error surface (not the
462
+ empty state), pushed below the translucent header so Cancel
463
+ stays reachable. Retry re-runs the list query. */
464
+ _jsx(View, {
465
+ className: "flex-1 items-center justify-center pt-[60px]",
466
+ children: /*#__PURE__*/_jsx(FileLibraryError, {
467
+ title: t('fileManagement.loadError.title'),
468
+ description: t('fileManagement.loadError.description'),
469
+ retryLabel: t('fileManagement.retry'),
470
+ onRetry: onRetry,
471
+ iconColor: "#FF6B6B",
472
+ titleColor: "#FFFFFF",
473
+ descriptionColor: "rgba(255,255,255,0.7)",
474
+ buttonColor: primaryColor
475
+ })
476
+ }) : isEmpty && loading ?
446
477
  /*#__PURE__*/
447
478
  /* Loading skeleton — the picker's OWN shape: shimmer tiles laid
448
479
  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","startedRef","startEntrance","node","setValue","timing","toValue","duration","useNativeDriver","start","ringScale","pulsedRef","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":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACrE,SACIC,IAAI,EACJC,IAAI,EACJC,gBAAgB,EAChBC,iBAAiB,EACjBC,cAAc,EACdC,QAAQ,EACRC,QAAQ,EACRC,QAAQ,EACRC,mBAAmB,QAEhB,cAAc;AACrB,SAASC,KAAK,IAAIC,SAAS,QAAQ,YAAY;AAC/C,SAASC,QAAQ,EAAEC,sBAAsB,QAAQ,oBAAoB;AACrE,OAAO,KAAKC,QAAQ,MAAM,uBAAuB;AAEjD,SAASC,sBAAsB,QAAQ,sBAAmB;AAC1D,OAAOC,gBAAgB,MAAM,uBAAoB;;AAEjD;AACA;AACA;AACA;AACA;AACA;AALA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAgBA,IAAIC,oBAA0D,GAAG,IAAI;AACrE,MAAMC,UAAU,GAAGA,CAAA,KAAqC;EACpD,IAAIjB,QAAQ,CAACkB,EAAE,KAAK,KAAK,EAAE,OAAOC,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;EACvD,IAAIJ,oBAAoB,EAAE,OAAOA,oBAAoB;EACrDA,oBAAoB,GAAG,CAAC,YAAY;IAChC,IAAI;MACA,MAAMK,GAAG,GAAI,MAAM,MAAM,CAAC,cAAc,CAA8B;MACtE,IAAI,CAACA,GAAG,IAAI,OAAOA,GAAG,CAACC,WAAW,KAAK,UAAU,EAAE,OAAO,IAAI;MAC9D,OAAOD,GAAG;IACd,CAAC,CAAC,MAAM;MACJ,OAAO,IAAI;IACf;EACJ,CAAC,EAAE,CAAC;EACJ,OAAOL,oBAAoB;AAC/B,CAAC;AAED,MAAMO,YAAY,GAAG,MAAOC,KAAmB,IAAoB;EAC/D,MAAMC,CAAC,GAAG,MAAMR,UAAU,CAAC,CAAC;EAC5B,IAAI,CAACQ,CAAC,EAAE;EACR,MAAMC,SAAS,GACXF,KAAK,KAAK,OAAO,GACXC,CAAC,CAACE,mBAAmB,CAACC,KAAK,GAC3BJ,KAAK,KAAK,QAAQ,GACdC,CAAC,CAACE,mBAAmB,CAACE,MAAM,GAC5BJ,CAAC,CAACE,mBAAmB,CAACG,KAAK;EACzC,IAAI;IACA,MAAML,CAAC,CAACH,WAAW,CAACI,SAAS,CAAC;EAClC,CAAC,CAAC,MAAM;IACJ;EAAA;AAER,CAAC;AAED,MAAMK,eAAe,GAAG,MAAAA,CAAA,KAA2B;EAC/C,MAAMN,CAAC,GAAG,MAAMR,UAAU,CAAC,CAAC;EAC5B,IAAI,CAACQ,CAAC,EAAE;EACR,IAAI;IACA,MAAMA,CAAC,CAACO,cAAc,CAAC,CAAC;EAC5B,CAAC,CAAC,MAAM;IACJ;EAAA;AAER,CAAC;AAED,MAAMC,kBAAkB,GAAG,MAAOC,IAAwB,IAAoB;EAC1E,MAAMT,CAAC,GAAG,MAAMR,UAAU,CAAC,CAAC;EAC5B,IAAI,CAACQ,CAAC,EAAE;EACR,MAAMU,QAAQ,GACVD,IAAI,KAAK,OAAO,GACVT,CAAC,CAACW,wBAAwB,CAACC,KAAK,GAChCH,IAAI,KAAK,SAAS,GACdT,CAAC,CAACW,wBAAwB,CAACE,OAAO,GAClCb,CAAC,CAACW,wBAAwB,CAACG,OAAO;EAChD,IAAI;IACA,MAAMd,CAAC,CAACe,iBAAiB,CAACL,QAAQ,CAAC;EACvC,CAAC,CAAC,MAAM;IACJ;EAAA;AAER,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMM,cAAc,GAAG,EAAE;AACzB,MAAMC,aAAa,GAAGD,cAAc,CAAC,CAAC;AACtC,MAAME,wBAAwB,GAAGD,aAAa,GAAG,CAAC,CAAC,CAAC;;AAEpD;AACA;AACA;AACA;AACA;;AAsCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,mBAAmB,GAAG,EAAE;AAC9B,MAAMC,oBAAoB,GAAG,GAAG;AAChC,MAAMC,oBAAoB,GAAG,GAAG;AAChC;AACA,MAAMC,eAAe,GAAG,IAAI;AAC5B,MAAMC,gBAAgB,GAAG,GAAG;AAC5B,MAAMC,oBAAoB,GAAG,CAAC;AAC9B,MAAMC,mBAAmB,GAAG,GAAG;AAC/B;AACA;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GAAG,CAAC,CAAC,CAAC;AAC9B,MAAMC,oBAAoB,GAAG,CAAC,CAAC,CAAC;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,mBAAmB,GAAG,SAAS;AACrC;AACA,MAAMC,iBAAiB,GAAG,CAAC;AAmB3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,eAAe,gBAAGlE,KAAK,CAACmE,IAAI,CAAC,SAASD,eAAeA,CAACE,KAA2B,EAAE;EACrF,MAAM;IACFC,KAAK;IAAEC,IAAI;IAAEC,WAAW;IAAEC,YAAY;IAAEC,UAAU;IAAEC,cAAc;IAClEC,GAAG;IAAEC,YAAY;IAAEC,QAAQ;IAAEC,UAAU;IAAEC,YAAY;IACrDC,OAAO;IAAEC,WAAW;IAAEC;EAC1B,CAAC,GAAGd,KAAK;EAET,MAAMe,KAAK,GAAGC,IAAI,CAACC,GAAG,CAACP,UAAU,GAAGvB,mBAAmB,EAAEC,oBAAoB,CAAC;;EAE9E;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAM8B,OAAO,GAAGnF,MAAM,CAAC,IAAIS,QAAQ,CAAC2E,KAAK,CAACR,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAACS,OAAO;EACxE,MAAMC,UAAU,GAAGtF,MAAM,CAAC,KAAK,CAAC;EAChC,MAAMuF,aAAa,GAAGzF,WAAW,CAAE0F,IAAa,IAAK;IACjD,IAAI,CAACA,IAAI,EAAE,OAAO,CAAC;IACnB,IAAIF,UAAU,CAACD,OAAO,EAAE,OAAO,CAAC;IAChCC,UAAU,CAACD,OAAO,GAAG,IAAI;IACzB,IAAIT,YAAY,EAAE;MACdO,OAAO,CAACM,QAAQ,CAAC,CAAC,CAAC;MACnB;IACJ;IACAN,OAAO,CAACM,QAAQ,CAAC,CAAC,CAAC;IACnBhF,QAAQ,CAACiF,MAAM,CAACP,OAAO,EAAE;MACrBQ,OAAO,EAAE,CAAC;MACVC,QAAQ,EAAEtC,oBAAoB;MAC9B0B,KAAK;MACLa,eAAe,EAAErF,QAAQ,CAACkB,EAAE,KAAK;IACrC,CAAC,CAAC,CAACoE,KAAK,CAAC,CAAC;EACd,CAAC,EAAE,CAACX,OAAO,EAAEH,KAAK,EAAEJ,YAAY,CAAC,CAAC;;EAElC;EACA;EACA;EACA;EACA;EACA;EACA,MAAMmB,SAAS,GAAG/F,MAAM,CAAC,IAAIS,QAAQ,CAAC2E,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EACvD,MAAMW,SAAS,GAAGhG,MAAM,CAAC,KAAK,CAAC;EAC/B,MAAMiG,cAAc,GAAGnG,WAAW,CAAE0F,IAAa,IAAK;IAClD,IAAI,CAACA,IAAI,EAAE;MACPQ,SAAS,CAACX,OAAO,GAAG,KAAK,CAAC,CAAC;MAC3B;IACJ;IACA,IAAIW,SAAS,CAACX,OAAO,EAAE,OAAO,CAAC;IAC/BW,SAAS,CAACX,OAAO,GAAG,IAAI;IACxBU,SAAS,CAACN,QAAQ,CAAC,CAAC,CAAC;IACrB,IAAIb,YAAY,EAAE;IAClBnE,QAAQ,CAACyF,QAAQ,CAAC,CACdzF,QAAQ,CAACiF,MAAM,CAACK,SAAS,EAAE;MACvBJ,OAAO,EAAEpC,eAAe;MACxBqC,QAAQ,EAAEpC,gBAAgB;MAC1BqC,eAAe,EAAErF,QAAQ,CAACkB,EAAE,KAAK;IACrC,CAAC,CAAC,EACFjB,QAAQ,CAAC0F,MAAM,CAACJ,SAAS,EAAE;MACvBJ,OAAO,EAAE,CAAC;MACVS,QAAQ,EAAE3C,oBAAoB;MAC9B4C,OAAO,EAAE3C,mBAAmB;MAC5BmC,eAAe,EAAErF,QAAQ,CAACkB,EAAE,KAAK;IACrC,CAAC,CAAC,CACL,CAAC,CAACoE,KAAK,CAAC,CAAC;EACd,CAAC,EAAE,CAACC,SAAS,EAAEnB,YAAY,CAAC,CAAC;EAE7B;IAAA;IACI;IACA;IACA;IACA;IACAzD,IAAA,CAACV,QAAQ,CAACP,IAAI;MACVoG,GAAG,EAAEf,aAAc;MACnBvD,KAAK,EAAE;QACHuE,KAAK,EAAEpC,IAAI;QACXqC,MAAM,EAAErC,IAAI;QACZC,WAAW;QACXC,YAAY;QACZoC,QAAQ,EAAE,UAAU;QACpBtB;MACJ,CAAE;MAAAuB,QAAA,eAEFrF,KAAA,CAACjB,gBAAgB;QACbuG,aAAa,EAAE,IAAK;QACpB9B,OAAO,EAAEA,OAAQ;QACjBC,WAAW,EAAEA,WAAY;QACzB8B,SAAS,EAAC,QAAQ;QAClBC,iBAAiB,EAAC,QAAQ;QAC1BC,kBAAkB,EAAE/B,SAAU;QAC9BgC,kBAAkB,EAAE;UAAEC,QAAQ,EAAE1C;QAAW,CAAE;QAAAoC,QAAA,gBAE7CvF,IAAA,CAACjB,IAAI;UACD0G,SAAS,EAAE,uDAAuDpC,GAAG,GAAG,aAAa,GAAG,EAAE,EAAG;UAAAkC,QAAA,eAE7FvF,IAAA,CAACP,SAAS;YACNqG,MAAM,EAAE;cAAEC,GAAG,EAAExC;YAAS,CAAE;YAC1B1C,KAAK,EAAE;cAAEuE,KAAK,EAAE,MAAM;cAAEC,MAAM,EAAE;YAAO,CAAE;YACzCW,UAAU,EAAC,OAAO;YAClBC,UAAU,EAAE,GAAI;YAChBC,WAAW,EAAC,aAAa;YACzBP,kBAAkB,EAAE5C,KAAK,CAACoD;UAAS,CACtC;QAAC,CACA,CAAC,EACNhD,UAAU,iBACPnD,IAAA,CAACV,QAAQ,CAACP,IAAI;UACVoG,GAAG,EAAEL,cAAe;UACpBsB,aAAa,EAAC,MAAM;UACpBvF,KAAK,EAAE;YACHyE,QAAQ,EAAE,UAAU;YACpBe,GAAG,EAAE,CAAC;YACNC,KAAK,EAAE,CAAC;YACRC,MAAM,EAAE,CAAC;YACTC,IAAI,EAAE,CAAC;YACPC,YAAY,EAAEjE,kBAAkB;YAChCkE,WAAW,EAAEjE,oBAAoB;YACjCkE,WAAW,EAAErD,YAAY;YACzBsD,SAAS,EAAE,CAAC;cAAEC,KAAK,EAAEjC;YAAU,CAAC;UACpC;QAAE,CACL,CACJ,EACAzB,UAAU,iBACPnD,IAAA,CAACjB,IAAI;UACDqH,aAAa,EAAC,MAAM;UACpBX,SAAS,EAAC,kGAAkG;UAC5G5E,KAAK,EAAE;YAAEiG,eAAe,EAAExD;UAAa,CAAE;UAAAiC,QAAA,eAEzCvF,IAAA,CAAChB,IAAI;YAACyG,SAAS,EAAC,iDAAiD;YAAAF,QAAA,EAC5DnC,cAAc,GAAG,CAAC,GAAG2D,MAAM,CAAC3D,cAAc,CAAC,GAAG;UAAE,CAC/C;QAAC,CACL,CACT;MAAA,CACa;IAAC,CACR;EAAC;AAExB,CAAC,CAAC;AAEF,MAAM4D,eAA+C,GAAGA,CAAC;EACrDC,MAAM;EACNC,WAAW;EACXC,WAAW;EACXC,YAAY;EACZC,WAAW;EACXC,UAAU;EACVC,SAAS;EACTC,iBAAiB;EACjBC,cAAc;EACdC,OAAO;EACPC,WAAW;EACXC,OAAO;EACPC,SAAS;EACTC,OAAO;EACPrE,YAAY;EACZsE,WAAW;EACXzE,YAAY;EACZ0E,OAAO;EACPC,aAAa;EACbC,cAAc;EACdC,QAAQ;EACRC,SAAS;EACTC,UAAU;EACVC,QAAQ;EACRC,SAAS;EACTC;AACJ,CAAC,KAAK;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAM;IAAEpD,KAAK,EAAEqD,WAAW;IAAEpD,MAAM,EAAEqD;EAAa,CAAC,GAAGnJ,mBAAmB,CAAC,CAAC;EAC1E,MAAM,CAACoJ,SAAS,EAAEC,YAAY,CAAC,GAAG9J,QAAQ,CAAC,CAAC,CAAC;EAC7C,MAAM+J,YAAY,GAAGlK,WAAW,CAAEmK,CAAoB,IAAK;IACvD,MAAMC,CAAC,GAAGjF,IAAI,CAACkF,KAAK,CAACF,CAAC,CAACG,WAAW,CAACC,MAAM,CAAC9D,KAAK,CAAC;IAChDwD,YAAY,CAAEO,IAAI,IAAMA,IAAI,KAAKJ,CAAC,GAAGI,IAAI,GAAGJ,CAAE,CAAC;EACnD,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMK,WAAW,GAAGxK,OAAO,CAAC,MAAMkF,IAAI,CAACkF,KAAK,CAACN,YAAY,GAAG,GAAG,CAAC,EAAE,CAACA,YAAY,CAAC,CAAC;EACjF,MAAMW,SAAS,GAAGzK,OAAO,CAAC,OAAO;IAAEyG,MAAM,EAAE+D;EAAY,CAAC,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EAEzE,MAAME,cAAc,GAAGX,SAAS,GAAG,CAAC,GAAGA,SAAS,GAAGF,WAAW;EAC9D,MAAM;IAAEc,OAAO;IAAEC,QAAQ;IAAEC;EAAO,CAAC,GAAG7K,OAAO,CACzC,MAAMiB,sBAAsB,CAACyJ,cAAc,CAAC,EAC5C,CAACA,cAAc,CACnB,CAAC;;EAED;EACA;EACA;EACA;EACA,MAAMI,iBAAiB,GAAG9K,OAAO,CAAC,MAAM;IACpC,MAAM+K,SAAS,GAAGH,QAAQ,GAAGC,MAAM;IACnC,IAAIE,SAAS,IAAI,CAAC,EAAE,OAAOJ,OAAO,GAAG5G,iBAAiB;IACtD,MAAMiH,SAAS,GAAG9F,IAAI,CAAC+F,GAAG,CAAC,CAAC,EAAET,WAAW,GAAGpH,wBAAwB,CAAC;IACrE,MAAM8H,IAAI,GAAGhG,IAAI,CAAC+F,GAAG,CAAClH,iBAAiB,EAAEmB,IAAI,CAACiG,KAAK,CAACH,SAAS,GAAGD,SAAS,CAAC,CAAC;IAC3E,OAAOG,IAAI,GAAGP,OAAO;EACzB,CAAC,EAAE,CAACC,QAAQ,EAAEC,MAAM,EAAEF,OAAO,EAAEH,WAAW,CAAC,CAAC;;EAE5C;EACA;EACA;EACA,MAAMY,cAAc,GAAGpL,OAAO,CAAC,MAAM;IACjC,MAAMqL,GAAG,GAAG,IAAIC,GAAG,CAAiB,CAAC;IACrC,IAAIC,CAAC,GAAG,CAAC;IACT,KAAK,MAAMC,EAAE,IAAIlD,WAAW,EAAE;MAC1B+C,GAAG,CAACI,GAAG,CAACD,EAAE,EAAED,CAAC,EAAE,CAAC;IACpB;IACA,OAAOF,GAAG;EACd,CAAC,EAAE,CAAC/C,WAAW,CAAC,CAAC;EAEjB,MAAMoD,eAAe,GAAGpD,WAAW,CAAClE,IAAI,GAAG,CAAC;;EAE5C;EACA,MAAMuH,eAAe,GAAGjB,cAAc,IAAI,GAAG;EAE7C,MAAMkB,OAAO,GAAGvD,MAAM,CAACwD,MAAM,KAAK,CAAC;EACnC,MAAMC,gBAAgB,GAClBvD,WAAW,IAAIC,YAAY,IAAI,IAAI,IAAIF,WAAW,CAAClE,IAAI,IAAIoE,YAAY;EAE3E,MAAMuD,eAAe,GAAGhM,WAAW,CAC9BoE,KAAmB,IAAK;IACrB,IAAI1D,QAAQ,CAACkB,EAAE,KAAK,KAAK,EAAE;MACvB,KAAKK,YAAY,CAAC,OAAO,CAAC;IAC9B;IACAqH,aAAa,CAAClF,KAAK,CAAC;EACxB,CAAC,EACD,CAACkF,aAAa,CAClB,CAAC;EAED,MAAM2C,mBAAmB,GAAGjM,WAAW,CAClCoE,KAAmB,IAAK;IACrB,IAAI1D,QAAQ,CAACkB,EAAE,KAAK,KAAK,EAAE;MACvB,KAAKa,eAAe,CAAC,CAAC;IAC1B;IACA8G,cAAc,CAACnF,KAAK,CAAC;EACzB,CAAC,EACD,CAACmF,cAAc,CACnB,CAAC;EAED,MAAM2C,aAAa,GAAGlM,WAAW,CAAC,MAAM;IACpC,IAAIwI,WAAW,EAAE;MACb,IAAID,WAAW,CAAClE,IAAI,KAAK,CAAC,EAAE;MAC5B,IAAI3D,QAAQ,CAACkB,EAAE,KAAK,KAAK,EAAE;QACvB,KAAKe,kBAAkB,CAAC,SAAS,CAAC;MACtC;IACJ;IACAiH,SAAS,CAAC,CAAC;EACf,CAAC,EAAE,CAACpB,WAAW,EAAED,WAAW,CAAClE,IAAI,EAAEuF,SAAS,CAAC,CAAC;;EAE9C;EACA,MAAMuC,UAAU,GAAGnM,WAAW,CAC1B,CAAC;IAAEoM,IAAI;IAAEC;EAA6C,CAAC,KAAK;IACxD,MAAM7H,UAAU,GAAG+D,WAAW,CAAC+D,GAAG,CAACF,IAAI,CAACX,EAAE,CAAC;IAC3C,MAAMc,QAAQ,GAAG/H,UAAU,GAAI6G,cAAc,CAACmB,GAAG,CAACJ,IAAI,CAACX,EAAE,CAAC,IAAI,CAAC,GAAI,CAAC;IACpE;IACA;IACA,MAAMgB,WAAW,GAAG,CAACJ,KAAK,GAAG,CAAC,IAAIzB,OAAO,KAAK,CAAC;IAC/C,MAAM3F,SAAS,GAAG4E,CAAC,CACfrF,UAAU,GACJ,uCAAuC,GACvC,yCAAyC,EAC/C;MAAEkI,IAAI,EAAEN,IAAI,CAAC5E,QAAQ,IAAI;IAAQ,CACrC,CAAC;IACD,oBACInG,IAAA,CAAC4C,eAAe;MACZG,KAAK,EAAEgI,IAAK;MACZ/H,IAAI,EAAEwG,QAAS;MACfvG,WAAW,EAAEmI,WAAW,GAAG,CAAC,GAAG3B,MAAO;MACtCvG,YAAY,EAAEuG,MAAO;MACrBtG,UAAU,EAAEA,UAAW;MACvBC,cAAc,EAAE8H,QAAS;MACzB7H,GAAG,EACC8D,WAAW,IACR,CAAChE,UAAU,KACVmH,eAAe,IAAII,gBAAgB,CAC1C;MACDpH,YAAY,EAAEA,YAAa;MAC3BC,QAAQ,EAAEwE,WAAW,CAACgD,IAAI,CAAE;MAC5BvH,UAAU,EAAEwH,KAAM;MAClBvH,YAAY,EAAEA,YAAa;MAC3BC,OAAO,EAAEA,CAAA,KAAMiH,eAAe,CAACI,IAAI,CAAE;MACrCpH,WAAW,EAAEA,CAAA,KAAMiH,mBAAmB,CAACG,IAAI,CAAE;MAC7CnH,SAAS,EAAEA;IAAU,CACxB,CAAC;EAEV,CAAC,EACD,CACIsD,WAAW,EAAE8C,cAAc,EAAET,OAAO,EAAEC,QAAQ,EAAEC,MAAM,EAAEtC,WAAW,EAAEmD,eAAe,EACpFI,gBAAgB,EAAEpH,YAAY,EAAEyE,WAAW,EAAEtE,YAAY,EAAEkH,eAAe,EAC1EC,mBAAmB,EAAEpC,CAAC,CAE9B,CAAC;EAED,MAAM8C,YAAY,GAAG3M,WAAW,CAAEoM,IAAkB,IAAKA,IAAI,CAACX,EAAE,EAAE,EAAE,CAAC;EAErE,MAAMmB,UAAU,GAAG3M,OAAO,CAAC,MAAM;IAC7B,IAAI,CAAC+I,WAAW,EAAE,OAAO,IAAI;IAC7B,oBACI3H,IAAA,CAACjB,IAAI;MAAC0G,SAAS,EAAC,0BAA0B;MAAAF,QAAA,eACtCvF,IAAA,CAACd,iBAAiB;QAAC8D,IAAI,EAAC,OAAO;QAACwI,KAAK,EAAC;MAAS,CAAE;IAAC,CAChD,CAAC;EAEf,CAAC,EAAE,CAAC7D,WAAW,CAAC,CAAC;EAEjB,MAAM8D,gBAAgB,GAAG9M,WAAW,CAAC,MAAM;IACvC,IAAIgJ,WAAW,IAAI,CAACD,OAAO,EAAE;IAC7BW,UAAU,CAAC,CAAC;EAChB,CAAC,EAAE,CAACV,WAAW,EAAED,OAAO,EAAEW,UAAU,CAAC,CAAC;EAEtC,MAAMqD,eAAe,GAAGvE,WAAW,IAAID,WAAW,CAAClE,IAAI,KAAK,CAAC;EAC7D,MAAM2I,YAAY,GAAGxE,WAAW,GAC1BqB,CAAC,CAAC,8BAA8B,EAAE;IAAEoD,KAAK,EAAE1E,WAAW,CAAClE;EAAK,CAAC,CAAC,GAC9DwF,CAAC,CAAC,qBAAqB,CAAC;;EAE9B;EACA,MAAMqD,gBAAgB,GAAGpE,cAAc,IAAIA,cAAc,CAACqE,KAAK,GAAG,CAAC,GAC7DhI,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAAC+F,GAAG,CAAC,CAAC,EAAEpC,cAAc,CAACvD,OAAO,GAAGuD,cAAc,CAACqE,KAAK,CAAC,CAAC,GACvE,CAAC;EAEP;IAAA;IACI;IACA;IACA;IACA;IACA;IACA9L,IAAA,CAACjB,IAAI;MAAC8B,KAAK,EAAEwI,SAAU;MAAC0C,QAAQ,EAAElD,YAAa;MAAAtD,QAAA,eAK3CrF,KAAA,CAACnB,IAAI;QAAC0G,SAAS,EAAC,yBAAyB;QAAAF,QAAA,GAEpCiF,OAAO,IAAI3C,SAAS;QAAA;QACjB;AACpB;AACA;QACoB7H,IAAA,CAACjB,IAAI;UAAC0G,SAAS,EAAC,8CAA8C;UAAAF,QAAA,eAC1DvF,IAAA,CAACF,gBAAgB;YACbkM,KAAK,EAAExD,CAAC,CAAC,gCAAgC,CAAE;YAC3CyD,WAAW,EAAEzD,CAAC,CAAC,sCAAsC,CAAE;YACvD0D,UAAU,EAAE1D,CAAC,CAAC,sBAAsB,CAAE;YACtCV,OAAO,EAAEA,OAAQ;YACjBqE,SAAS,EAAC,SAAS;YACnBC,UAAU,EAAC,SAAS;YACpBC,gBAAgB,EAAC,uBAAuB;YACxCC,WAAW,EAAEhJ;UAAa,CAC7B;QAAC,CACA,CAAC,GACPkH,OAAO,IAAI5C,OAAO;QAAA;QAClB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;QACoB5H,IAAA,CAACjB,IAAI;UACD0G,SAAS,EAAC,WAAW;UACrB5E,KAAK,EAAE;YAAE0L,aAAa,EAAE,KAAK;YAAEC,QAAQ,EAAE;UAAO,CAAE;UAClDpG,aAAa,EAAC,MAAM;UACpBqG,2BAA2B;UAC3BC,yBAAyB,EAAC,qBAAqB;UAAAnH,QAAA,EAE9CoH,KAAK,CAACC,IAAI,CAAC;YAAEnC,MAAM,EAAEf;UAAkB,CAAC,EAAE,CAACmD,CAAC,EAAE7B,KAAK,kBAChDhL,IAAA,CAACJ,QAAQ,CAACkN,GAAG;YAET1H,KAAK,EAAEoE,QAAS;YAChBnE,MAAM,EAAEmE,QAAS;YACjB/C,YAAY,EAAEjE,kBAAmB;YACjC3B,KAAK,EAAE;cACHoC,WAAW,EAAE,CAAC+H,KAAK,GAAG,CAAC,IAAIzB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAGE,MAAM;cACrDvG,YAAY,EAAEuG,MAAM;cACpB3C,eAAe,EAAEpE;YACrB;UAAE,GARGsI,KASR,CACJ;QAAC,CACA,CAAC,GACPR,OAAO,gBACPtK,KAAA,CAACnB,IAAI;UAAC0G,SAAS,EAAC,0DAA0D;UAAAF,QAAA,gBACtEvF,IAAA,CAACjB,IAAI;YAAC0G,SAAS,EAAC,wBAAwB;YAAAF,QAAA,eACpCvF,IAAA,CAACL,sBAAsB;cAAC0L,IAAI,EAAC,eAAe;cAACrI,IAAI,EAAE,EAAG;cAACwI,KAAK,EAAC;YAAS,CAAE;UAAC,CACvE,CAAC,eACPxL,IAAA,CAAChB,IAAI;YAACyG,SAAS,EAAC,yDAAyD;YAAAF,QAAA,EACpEiD,CAAC,CAAC,uCAAuC;UAAC,CACzC,CAAC,eACPxI,IAAA,CAAChB,IAAI;YAACyG,SAAS,EAAC,uEAAuE;YAAAF,QAAA,EAClFiD,CAAC,CAAC,0CAA0C;UAAC,CAC5C,CAAC,EACNR,OAAO,IAAIX,WAAW,iBACnBrH,IAAA,CAACf,gBAAgB;YACbwG,SAAS,EAAC,sEAAsE;YAChF5E,KAAK,EAAE;cAAEiG,eAAe,EAAExD;YAAa,CAAE;YACzCI,OAAO,EAAEyE,QAAS;YAClB4E,QAAQ,EAAExF,SAAS,IAAIC,iBAAkB;YACzC9B,iBAAiB,EAAC,QAAQ;YAC1BC,kBAAkB,EAAE6C,CAAC,CAAC,4BAA4B,CAAE;YACpD5C,kBAAkB,EAAE;cAAEoH,IAAI,EAAEzF,SAAS,IAAIC;YAAkB,CAAE;YAAAjC,QAAA,EAE3DgC,SAAS,IAAIC,iBAAiB,gBAC5BxH,IAAA,CAACd,iBAAiB;cAAC8D,IAAI,EAAC,OAAO;cAACwI,KAAK,EAAC;YAAS,CAAE,CAAC,gBAElDtL,KAAA,CAAAE,SAAA;cAAAmF,QAAA,gBACIvF,IAAA,CAACN,QAAQ;gBAAC2L,IAAI,EAAC,cAAc;gBAACrI,IAAI,EAAE,EAAG;gBAACwI,KAAK,EAAC;cAAS,CAAE,CAAC,eAC1DxL,IAAA,CAAChB,IAAI;gBAACyG,SAAS,EAAC,sCAAsC;gBAAAF,QAAA,EACjDiD,CAAC,CAAC,4BAA4B;cAAC,CAC9B,CAAC;YAAA,CACT;UACL,CACa,CACrB;QAAA,CACC,CAAC,gBAEHxI,IAAA,CAACZ,QAAQ;UAEL6N,IAAI,EAAEhG,MAAO;UACb6D,UAAU,EAAEA,UAAW;UACvBQ,YAAY,EAAEA,YAAa;UAC3B4B,UAAU,EAAE3D,OAAQ;UACpB9D,SAAS,EAAC,gBAAgB;UAC1B0H,yBAAyB,EAAC,uBAAuB;UACjDC,4BAA4B,EAAE,KAAM;UACpCC,cAAc,eACVrN,IAAA,CAACb,cAAc;YACXmI,UAAU,EAAEA,UAAW;YACvBc,SAAS,EAAEA,SAAU;YACrBkF,SAAS,EAAC,SAAS;YACnBC,MAAM,EAAE,CAACjK,YAAY,CAAE;YACvBkK,kBAAkB,EAAExL;UAAyB,CAChD,CACJ;UACDyL,YAAY,EAAEhC,gBAAiB;UAC/BiC,qBAAqB,EAAE,GAAI;UAC3BC,mBAAmB,EAAEpC,UAAW;UAChCqC,qBAAqB,EAAEvO,QAAQ,CAACkB,EAAE,KAAK,KAAM;UAC7CsN,kBAAkB,EAAE/J,IAAI,CAAC+F,GAAG,CAAC,EAAE,EAAEN,OAAO,GAAG,CAAC,CAAE;UAC9CuE,UAAU,EAAE;QAAE,GAtBT,QAAQvE,OAAO,EAuBvB,CACR,eAODrJ,KAAA,CAACnB,IAAI;UAAC0G,SAAS,EAAC,kHAAkH;UAAAF,QAAA,gBAC9HrF,KAAA,CAACnB,IAAI;YAAC0G,SAAS,EAAC,mDAAmD;YAAAF,QAAA,gBAC/DvF,IAAA,CAACjB,IAAI;cAAC0G,SAAS,EAAC,kDAAkD;cAAAF,QAAA,eAC9DvF,IAAA,CAACf,gBAAgB;gBACbyE,OAAO,EAAE4E,QAAS;gBAClB7C,SAAS,EAAC,mDAAmD;gBAC7DC,iBAAiB,EAAC,QAAQ;gBAC1BC,kBAAkB,EAAE6C,CAAC,CAAC,kCAAkC,CAAE;gBAC1DuF,OAAO,EAAE;kBAAE1H,GAAG,EAAE,CAAC;kBAAEE,MAAM,EAAE,CAAC;kBAAEC,IAAI,EAAE,CAAC;kBAAEF,KAAK,EAAE;gBAAE,CAAE;gBAAAf,QAAA,eAElDvF,IAAA,CAAChB,IAAI;kBAACyG,SAAS,EAAC,oCAAoC;kBAAAF,QAAA,EAC/CiD,CAAC,CAAC,uBAAuB;gBAAC,CACzB;cAAC,CACO;YAAC,CACjB,CAAC,eACPxI,IAAA,CAACjB,IAAI;cAACqH,aAAa,EAAC,MAAM;cAAAb,QAAA,eACtBvF,IAAA,CAAChB,IAAI;gBACDyG,SAAS,EAAC,kDAAkD;gBAC5D5E,KAAK,EAAE;kBAAEmN,aAAa,EAAE,CAAC;gBAAI,CAAE;gBAC/BC,aAAa,EAAE,CAAE;gBAAA1I,QAAA,EAEhBiD,CAAC,CAAC,4BAA4B;cAAC,CAC9B;YAAC,CACL,CAAC,eACPxI,IAAA,CAACjB,IAAI;cAAC0G,SAAS,EAAC,gDAAgD;cAAAF,QAAA,EAC3D4B,WAAW,gBACRnH,IAAA,CAACf,gBAAgB;gBACbyE,OAAO,EAAEmH,aAAc;gBACvBkC,QAAQ,EAAErB,eAAgB;gBAC1BjG,SAAS,EAAC,sEAAsE;gBAChF5E,KAAK,EAAE;kBACHiG,eAAe,EAAE4E,eAAe,GAC1B,wBAAwB,GACxBpI,YAAY;kBAClBU,OAAO,EAAE0H,eAAe,GAAG,GAAG,GAAG;gBACrC,CAAE;gBACFhG,iBAAiB,EAAC,QAAQ;gBAC1BC,kBAAkB,EAAE6C,CAAC,CAAC,sCAAsC,CAAE;gBAC9D5C,kBAAkB,EAAE;kBAAEmH,QAAQ,EAAErB;gBAAgB,CAAE;gBAAAnG,QAAA,eAElDvF,IAAA,CAAChB,IAAI;kBAACyG,SAAS,EAAC,sCAAsC;kBAAAF,QAAA,EACjDoG;gBAAY,CACX;cAAC,CACO,CAAC,GAEnB3D,OAAO,IAAIX,WAAW,iBAClBrH,IAAA,CAACf,gBAAgB;gBACbyE,OAAO,EAAEyE,QAAS;gBAClB4E,QAAQ,EAAExF,SAAS,IAAIC,iBAAkB;gBACzC/B,SAAS,EAAE,gEAAgE8E,eAAe,GAAG,SAAS,GAAG,gCAAgC,EAAG;gBAC5I1J,KAAK,EAAE;kBAAEiG,eAAe,EAAExD;gBAAa,CAAE;gBACzCoC,iBAAiB,EAAC,QAAQ;gBAC1BC,kBAAkB,EAAE6C,CAAC,CAAC,sCAAsC,CAAE;gBAC9D5C,kBAAkB,EAAE;kBAAEoH,IAAI,EAAEzF,SAAS,IAAIC;gBAAkB,CAAE;gBAAAjC,QAAA,EAE3DgC,SAAS,IAAIC,iBAAiB,gBAC5BxH,IAAA,CAACd,iBAAiB;kBAAC8D,IAAI,EAAC,OAAO;kBAACwI,KAAK,EAAC;gBAAS,CAAE,CAAC,gBAElDtL,KAAA,CAAAE,SAAA;kBAAAmF,QAAA,gBACIvF,IAAA,CAACN,QAAQ;oBAAC2L,IAAI,EAAC,cAAc;oBAACrI,IAAI,EAAE,EAAG;oBAACwI,KAAK,EAAC;kBAAS,CAAE,CAAC,EACzDjB,eAAe,iBACZvK,IAAA,CAAChB,IAAI;oBAACyG,SAAS,EAAC,sCAAsC;oBAAAF,QAAA,EACjDiD,CAAC,CAAC,uBAAuB;kBAAC,CACzB,CACT;gBAAA,CACH;cACL,CACa;YAEzB,CACC,CAAC;UAAA,CACL,CAAC,EAENjB,SAAS,iBACNvH,IAAA,CAACjB,IAAI;YAAC0G,SAAS,EAAC,uDAAuD;YAAAF,QAAA,eACnEvF,IAAA,CAACjB,IAAI;cACD0G,SAAS,EAAC,QAAQ;cAClB5E,KAAK,EAAE;gBACHuE,KAAK,EAAE,GAAGtB,IAAI,CAACkF,KAAK,CAAC6C,gBAAgB,GAAG,GAAG,CAAC,GAAG;gBAC/C/E,eAAe,EAAExD;cACrB;YAAE,CACL;UAAC,CACA,CACT;QAAA,CACC,CAAC;MAAA,CACL;IAAC,CACL;EAAC;AAEf,CAAC;AAED,eAAe0D,eAAe","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,