@oxyhq/services 6.9.45 → 6.10.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 (916) hide show
  1. package/lib/commonjs/index.js +36 -13
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/ui/client.js +0 -20
  4. package/lib/commonjs/ui/client.js.map +1 -1
  5. package/lib/commonjs/ui/components/ActingAsBanner.js +0 -4
  6. package/lib/commonjs/ui/components/ActingAsBanner.js.map +1 -1
  7. package/lib/commonjs/ui/components/ActivityIndicator.js +1 -1
  8. package/lib/commonjs/ui/components/ActivityIndicator.js.map +1 -1
  9. package/lib/commonjs/ui/components/Avatar.js +0 -2
  10. package/lib/commonjs/ui/components/Avatar.js.map +1 -1
  11. package/lib/commonjs/ui/components/BottomSheet.js +33 -398
  12. package/lib/commonjs/ui/components/BottomSheet.js.map +1 -1
  13. package/lib/commonjs/ui/components/BottomSheetRouter.js +8 -0
  14. package/lib/commonjs/ui/components/BottomSheetRouter.js.map +1 -1
  15. package/lib/commonjs/ui/components/FollowButton.js +3 -5
  16. package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
  17. package/lib/commonjs/ui/components/Header.js +0 -5
  18. package/lib/commonjs/ui/components/Header.js.map +1 -1
  19. package/lib/commonjs/ui/components/Icon.js +6 -7
  20. package/lib/commonjs/ui/components/Icon.js.map +1 -1
  21. package/lib/commonjs/ui/components/IconButton/IconButton.js +1 -5
  22. package/lib/commonjs/ui/components/IconButton/IconButton.js.map +1 -1
  23. package/lib/commonjs/ui/components/OxyPayButton.js +0 -2
  24. package/lib/commonjs/ui/components/OxyPayButton.js.map +1 -1
  25. package/lib/commonjs/ui/components/OxyProvider.js +102 -38
  26. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  27. package/lib/commonjs/ui/components/OxySignInButton.js +23 -9
  28. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
  29. package/lib/commonjs/ui/components/ProfileCard.js +11 -8
  30. package/lib/commonjs/ui/components/ProfileCard.js.map +1 -1
  31. package/lib/commonjs/ui/components/QuickActions.js +2 -2
  32. package/lib/commonjs/ui/components/QuickActions.js.map +1 -1
  33. package/lib/commonjs/ui/components/SignInModal.js +37 -13
  34. package/lib/commonjs/ui/components/SignInModal.js.map +1 -1
  35. package/lib/commonjs/ui/components/StepBasedScreen.js +0 -2
  36. package/lib/commonjs/ui/components/StepBasedScreen.js.map +1 -1
  37. package/lib/commonjs/ui/components/TextField.js +0 -1
  38. package/lib/commonjs/ui/components/TextField.js.map +1 -1
  39. package/lib/commonjs/ui/components/TouchableRipple/TouchableRipple.native.js +1 -1
  40. package/lib/commonjs/ui/components/TouchableRipple/TouchableRipple.native.js.map +1 -1
  41. package/lib/commonjs/ui/components/feedback/feedbackStyles.js +0 -2
  42. package/lib/commonjs/ui/components/feedback/feedbackStyles.js.map +1 -1
  43. package/lib/commonjs/ui/components/fileManagement/AnimatedButton.js +0 -2
  44. package/lib/commonjs/ui/components/fileManagement/AnimatedButton.js.map +1 -1
  45. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js +80 -76
  46. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  47. package/lib/commonjs/ui/components/fileManagement/FileViewer.js +30 -23
  48. package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -1
  49. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js +18 -23
  50. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js.map +1 -1
  51. package/lib/commonjs/ui/components/fileManagement/styles.js +213 -25
  52. package/lib/commonjs/ui/components/fileManagement/styles.js.map +1 -1
  53. package/lib/commonjs/ui/components/index.js +0 -35
  54. package/lib/commonjs/ui/components/index.js.map +1 -1
  55. package/lib/commonjs/ui/components/logo/LogoIcon.js +63 -0
  56. package/lib/commonjs/ui/components/logo/LogoIcon.js.map +1 -0
  57. package/lib/commonjs/ui/components/logo/LogoText.js +50 -0
  58. package/lib/commonjs/ui/components/logo/LogoText.js.map +1 -0
  59. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +54 -88
  60. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -1
  61. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js +28 -15
  62. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js.map +1 -1
  63. package/lib/commonjs/ui/components/payment/PaymentMethodStep.js +50 -28
  64. package/lib/commonjs/ui/components/payment/PaymentMethodStep.js.map +1 -1
  65. package/lib/commonjs/ui/components/payment/PaymentReviewStep.js +83 -48
  66. package/lib/commonjs/ui/components/payment/PaymentReviewStep.js.map +1 -1
  67. package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js +12 -11
  68. package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js.map +1 -1
  69. package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js +38 -23
  70. package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js.map +1 -1
  71. package/lib/commonjs/ui/components/payment/paymentStyles.js +2 -10
  72. package/lib/commonjs/ui/components/payment/paymentStyles.js.map +1 -1
  73. package/lib/commonjs/ui/components/styles/overlay.js +7 -9
  74. package/lib/commonjs/ui/components/styles/overlay.js.map +1 -1
  75. package/lib/commonjs/ui/components/theming.js +0 -1
  76. package/lib/commonjs/ui/components/theming.js.map +1 -1
  77. package/lib/commonjs/ui/context/OxyContext.js +34 -21
  78. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  79. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +1 -2
  80. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  81. package/lib/commonjs/ui/hooks/index.js +32 -12
  82. package/lib/commonjs/ui/hooks/index.js.map +1 -1
  83. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js +10 -5
  84. package/lib/commonjs/ui/hooks/mutations/mutationFactory.js.map +1 -1
  85. package/lib/commonjs/ui/hooks/mutations/mutationKeys.js +34 -0
  86. package/lib/commonjs/ui/hooks/mutations/mutationKeys.js.map +1 -0
  87. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +235 -57
  88. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  89. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js +17 -13
  90. package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  91. package/lib/commonjs/ui/hooks/queries/index.js +6 -0
  92. package/lib/commonjs/ui/hooks/queries/index.js.map +1 -1
  93. package/lib/commonjs/ui/hooks/queries/queryKeys.js +2 -1
  94. package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -1
  95. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +80 -3
  96. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  97. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js +36 -1
  98. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js.map +1 -1
  99. package/lib/commonjs/ui/hooks/queryClient.js +168 -70
  100. package/lib/commonjs/ui/hooks/queryClient.js.map +1 -1
  101. package/lib/commonjs/ui/hooks/useAsyncAction.js +7 -7
  102. package/lib/commonjs/ui/hooks/useAsyncAction.js.map +1 -1
  103. package/lib/commonjs/ui/hooks/useAuth.js +0 -8
  104. package/lib/commonjs/ui/hooks/useAuth.js.map +1 -1
  105. package/lib/commonjs/ui/hooks/useAvatarPicker.js +71 -20
  106. package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +1 -1
  107. package/lib/commonjs/ui/hooks/useFileDownloadUrl.js +12 -41
  108. package/lib/commonjs/ui/hooks/useFileDownloadUrl.js.map +1 -1
  109. package/lib/commonjs/ui/hooks/useMutationStatus.js +86 -0
  110. package/lib/commonjs/ui/hooks/useMutationStatus.js.map +1 -0
  111. package/lib/commonjs/ui/hooks/useOnlineStatus.js +33 -0
  112. package/lib/commonjs/ui/hooks/useOnlineStatus.js.map +1 -0
  113. package/lib/commonjs/ui/hooks/useSessionSocket.js +101 -130
  114. package/lib/commonjs/ui/hooks/useSessionSocket.js.map +1 -1
  115. package/lib/commonjs/ui/hooks/useSettingToggle.js +4 -4
  116. package/lib/commonjs/ui/hooks/useSettingToggle.js.map +1 -1
  117. package/lib/commonjs/ui/index.js +1 -11
  118. package/lib/commonjs/ui/index.js.map +1 -1
  119. package/lib/commonjs/ui/navigation/routes.js +55 -3
  120. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  121. package/lib/commonjs/ui/screens/AccountCenterScreen.js +17 -19
  122. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  123. package/lib/commonjs/ui/screens/AccountOverviewScreen.js +131 -162
  124. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
  125. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +110 -87
  126. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  127. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +268 -216
  128. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  129. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +23 -23
  130. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  131. package/lib/commonjs/ui/screens/AppInfoScreen.js +22 -23
  132. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
  133. package/lib/commonjs/ui/screens/AvatarCropScreen.js +939 -0
  134. package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -0
  135. package/lib/commonjs/ui/screens/CreateManagedAccountScreen.js +13 -20
  136. package/lib/commonjs/ui/screens/CreateManagedAccountScreen.js.map +1 -1
  137. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +10 -13
  138. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
  139. package/lib/commonjs/ui/screens/FAQScreen.js +4 -4
  140. package/lib/commonjs/ui/screens/FAQScreen.js.map +1 -1
  141. package/lib/commonjs/ui/screens/FeedbackScreen.js +74 -66
  142. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  143. package/lib/commonjs/ui/screens/FileManagementScreen.js +822 -195
  144. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  145. package/lib/commonjs/ui/screens/HelpSupportScreen.js +8 -9
  146. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
  147. package/lib/commonjs/ui/screens/HistoryViewScreen.js +58 -50
  148. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
  149. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +18 -13
  150. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
  151. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +63 -57
  152. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
  153. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +14 -11
  154. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  155. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +75 -73
  156. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  157. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +185 -205
  158. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  159. package/lib/commonjs/ui/screens/ProfileScreen.js +4 -3
  160. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  161. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +23 -25
  162. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
  163. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +16 -17
  164. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  165. package/lib/commonjs/ui/screens/SessionManagementScreen.js +83 -60
  166. package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -1
  167. package/lib/commonjs/ui/screens/UserLinksScreen.js +14 -31
  168. package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -1
  169. package/lib/commonjs/ui/screens/UserListScreen.js +39 -22
  170. package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
  171. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +128 -73
  172. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  173. package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js +0 -3
  174. package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
  175. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js +6 -10
  176. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  177. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js +4 -6
  178. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
  179. package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js +6 -6
  180. package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
  181. package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js +13 -19
  182. package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
  183. package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js +5 -5
  184. package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
  185. package/lib/commonjs/ui/server.js +0 -5
  186. package/lib/commonjs/ui/server.js.map +1 -1
  187. package/lib/commonjs/ui/styles/authStyles.js +0 -5
  188. package/lib/commonjs/ui/styles/authStyles.js.map +1 -1
  189. package/lib/commonjs/ui/styles/index.js +0 -11
  190. package/lib/commonjs/ui/styles/index.js.map +1 -1
  191. package/lib/commonjs/ui/styles/spacing.js +1 -42
  192. package/lib/commonjs/ui/styles/spacing.js.map +1 -1
  193. package/lib/commonjs/ui/styles/theme.js +0 -4
  194. package/lib/commonjs/ui/styles/theme.js.map +1 -1
  195. package/lib/commonjs/ui/utils/fileManagement.js +58 -39
  196. package/lib/commonjs/ui/utils/fileManagement.js.map +1 -1
  197. package/lib/commonjs/ui/utils/sessionHelpers.js +3 -1
  198. package/lib/commonjs/ui/utils/sessionHelpers.js.map +1 -1
  199. package/lib/commonjs/ui/utils/userUtils.js +33 -16
  200. package/lib/commonjs/ui/utils/userUtils.js.map +1 -1
  201. package/lib/module/index.js +9 -5
  202. package/lib/module/index.js.map +1 -1
  203. package/lib/module/ui/client.js +0 -6
  204. package/lib/module/ui/client.js.map +1 -1
  205. package/lib/module/ui/components/ActingAsBanner.js +0 -4
  206. package/lib/module/ui/components/ActingAsBanner.js.map +1 -1
  207. package/lib/module/ui/components/ActivityIndicator.js +1 -1
  208. package/lib/module/ui/components/ActivityIndicator.js.map +1 -1
  209. package/lib/module/ui/components/Avatar.js +0 -2
  210. package/lib/module/ui/components/Avatar.js.map +1 -1
  211. package/lib/module/ui/components/BottomSheet.js +35 -400
  212. package/lib/module/ui/components/BottomSheet.js.map +1 -1
  213. package/lib/module/ui/components/BottomSheetRouter.js +9 -1
  214. package/lib/module/ui/components/BottomSheetRouter.js.map +1 -1
  215. package/lib/module/ui/components/FollowButton.js +2 -4
  216. package/lib/module/ui/components/FollowButton.js.map +1 -1
  217. package/lib/module/ui/components/Header.js +0 -5
  218. package/lib/module/ui/components/Header.js.map +1 -1
  219. package/lib/module/ui/components/Icon.js +6 -7
  220. package/lib/module/ui/components/Icon.js.map +1 -1
  221. package/lib/module/ui/components/IconButton/IconButton.js +1 -5
  222. package/lib/module/ui/components/IconButton/IconButton.js.map +1 -1
  223. package/lib/module/ui/components/OxyPayButton.js +0 -2
  224. package/lib/module/ui/components/OxyPayButton.js.map +1 -1
  225. package/lib/module/ui/components/OxyProvider.js +105 -41
  226. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  227. package/lib/module/ui/components/OxySignInButton.js +23 -9
  228. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  229. package/lib/module/ui/components/ProfileCard.js +11 -8
  230. package/lib/module/ui/components/ProfileCard.js.map +1 -1
  231. package/lib/module/ui/components/QuickActions.js +2 -2
  232. package/lib/module/ui/components/QuickActions.js.map +1 -1
  233. package/lib/module/ui/components/SignInModal.js +37 -13
  234. package/lib/module/ui/components/SignInModal.js.map +1 -1
  235. package/lib/module/ui/components/StepBasedScreen.js +0 -2
  236. package/lib/module/ui/components/StepBasedScreen.js.map +1 -1
  237. package/lib/module/ui/components/TextField.js +0 -1
  238. package/lib/module/ui/components/TextField.js.map +1 -1
  239. package/lib/module/ui/components/TouchableRipple/TouchableRipple.native.js +1 -1
  240. package/lib/module/ui/components/TouchableRipple/TouchableRipple.native.js.map +1 -1
  241. package/lib/module/ui/components/feedback/feedbackStyles.js +0 -2
  242. package/lib/module/ui/components/feedback/feedbackStyles.js.map +1 -1
  243. package/lib/module/ui/components/fileManagement/AnimatedButton.js +0 -1
  244. package/lib/module/ui/components/fileManagement/AnimatedButton.js.map +1 -1
  245. package/lib/module/ui/components/fileManagement/FileDetailsModal.js +80 -75
  246. package/lib/module/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  247. package/lib/module/ui/components/fileManagement/FileViewer.js +30 -22
  248. package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -1
  249. package/lib/module/ui/components/fileManagement/UploadPreview.js +18 -22
  250. package/lib/module/ui/components/fileManagement/UploadPreview.js.map +1 -1
  251. package/lib/module/ui/components/fileManagement/styles.js +212 -24
  252. package/lib/module/ui/components/fileManagement/styles.js.map +1 -1
  253. package/lib/module/ui/components/index.js +0 -5
  254. package/lib/module/ui/components/index.js.map +1 -1
  255. package/lib/module/ui/components/logo/LogoIcon.js +56 -0
  256. package/lib/module/ui/components/logo/LogoIcon.js.map +1 -0
  257. package/lib/module/ui/components/logo/LogoText.js +43 -0
  258. package/lib/module/ui/components/logo/LogoText.js.map +1 -0
  259. package/lib/module/ui/components/modals/DeleteAccountModal.js +55 -88
  260. package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -1
  261. package/lib/module/ui/components/payment/PaymentDetailsStep.js +27 -14
  262. package/lib/module/ui/components/payment/PaymentDetailsStep.js.map +1 -1
  263. package/lib/module/ui/components/payment/PaymentMethodStep.js +49 -26
  264. package/lib/module/ui/components/payment/PaymentMethodStep.js.map +1 -1
  265. package/lib/module/ui/components/payment/PaymentReviewStep.js +84 -48
  266. package/lib/module/ui/components/payment/PaymentReviewStep.js.map +1 -1
  267. package/lib/module/ui/components/payment/PaymentSuccessStep.js +12 -10
  268. package/lib/module/ui/components/payment/PaymentSuccessStep.js.map +1 -1
  269. package/lib/module/ui/components/payment/PaymentSummaryStep.js +38 -22
  270. package/lib/module/ui/components/payment/PaymentSummaryStep.js.map +1 -1
  271. package/lib/module/ui/components/payment/paymentStyles.js +2 -10
  272. package/lib/module/ui/components/payment/paymentStyles.js.map +1 -1
  273. package/lib/module/ui/components/styles/overlay.js +8 -8
  274. package/lib/module/ui/components/styles/overlay.js.map +1 -1
  275. package/lib/module/ui/components/theming.js +0 -1
  276. package/lib/module/ui/components/theming.js.map +1 -1
  277. package/lib/module/ui/context/OxyContext.js +32 -19
  278. package/lib/module/ui/context/OxyContext.js.map +1 -1
  279. package/lib/module/ui/context/hooks/useAuthOperations.js +1 -2
  280. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  281. package/lib/module/ui/hooks/index.js +5 -3
  282. package/lib/module/ui/hooks/index.js.map +1 -1
  283. package/lib/module/ui/hooks/mutations/mutationFactory.js +6 -1
  284. package/lib/module/ui/hooks/mutations/mutationFactory.js.map +1 -1
  285. package/lib/module/ui/hooks/mutations/mutationKeys.js +30 -0
  286. package/lib/module/ui/hooks/mutations/mutationKeys.js.map +1 -0
  287. package/lib/module/ui/hooks/mutations/useAccountMutations.js +231 -52
  288. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  289. package/lib/module/ui/hooks/mutations/useServicesMutations.js +9 -5
  290. package/lib/module/ui/hooks/mutations/useServicesMutations.js.map +1 -1
  291. package/lib/module/ui/hooks/queries/index.js +1 -1
  292. package/lib/module/ui/hooks/queries/index.js.map +1 -1
  293. package/lib/module/ui/hooks/queries/queryKeys.js +2 -1
  294. package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -1
  295. package/lib/module/ui/hooks/queries/useAccountQueries.js +80 -3
  296. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  297. package/lib/module/ui/hooks/queries/useSecurityQueries.js +35 -1
  298. package/lib/module/ui/hooks/queries/useSecurityQueries.js.map +1 -1
  299. package/lib/module/ui/hooks/queryClient.js +166 -68
  300. package/lib/module/ui/hooks/queryClient.js.map +1 -1
  301. package/lib/module/ui/hooks/useAsyncAction.js +3 -3
  302. package/lib/module/ui/hooks/useAsyncAction.js.map +1 -1
  303. package/lib/module/ui/hooks/useAuth.js +0 -3
  304. package/lib/module/ui/hooks/useAuth.js.map +1 -1
  305. package/lib/module/ui/hooks/useAvatarPicker.js +73 -22
  306. package/lib/module/ui/hooks/useAvatarPicker.js.map +1 -1
  307. package/lib/module/ui/hooks/useFileDownloadUrl.js +11 -39
  308. package/lib/module/ui/hooks/useFileDownloadUrl.js.map +1 -1
  309. package/lib/module/ui/hooks/useMutationStatus.js +82 -0
  310. package/lib/module/ui/hooks/useMutationStatus.js.map +1 -0
  311. package/lib/module/ui/hooks/useOnlineStatus.js +29 -0
  312. package/lib/module/ui/hooks/useOnlineStatus.js.map +1 -0
  313. package/lib/module/ui/hooks/useSessionSocket.js +101 -130
  314. package/lib/module/ui/hooks/useSessionSocket.js.map +1 -1
  315. package/lib/module/ui/hooks/useSettingToggle.js +1 -1
  316. package/lib/module/ui/hooks/useSettingToggle.js.map +1 -1
  317. package/lib/module/ui/index.js +1 -10
  318. package/lib/module/ui/index.js.map +1 -1
  319. package/lib/module/ui/navigation/routes.js +54 -2
  320. package/lib/module/ui/navigation/routes.js.map +1 -1
  321. package/lib/module/ui/screens/AccountCenterScreen.js +16 -17
  322. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  323. package/lib/module/ui/screens/AccountOverviewScreen.js +117 -148
  324. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
  325. package/lib/module/ui/screens/AccountSettingsScreen.js +109 -86
  326. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  327. package/lib/module/ui/screens/AccountSwitcherScreen.js +254 -201
  328. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  329. package/lib/module/ui/screens/AccountVerificationScreen.js +21 -21
  330. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  331. package/lib/module/ui/screens/AppInfoScreen.js +14 -15
  332. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  333. package/lib/module/ui/screens/AvatarCropScreen.js +936 -0
  334. package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -0
  335. package/lib/module/ui/screens/CreateManagedAccountScreen.js +11 -18
  336. package/lib/module/ui/screens/CreateManagedAccountScreen.js.map +1 -1
  337. package/lib/module/ui/screens/EditProfileFieldScreen.js +8 -11
  338. package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
  339. package/lib/module/ui/screens/FAQScreen.js +3 -3
  340. package/lib/module/ui/screens/FAQScreen.js.map +1 -1
  341. package/lib/module/ui/screens/FeedbackScreen.js +62 -54
  342. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  343. package/lib/module/ui/screens/FileManagementScreen.js +789 -161
  344. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  345. package/lib/module/ui/screens/HelpSupportScreen.js +2 -3
  346. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
  347. package/lib/module/ui/screens/HistoryViewScreen.js +56 -47
  348. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  349. package/lib/module/ui/screens/LanguageSelectorScreen.js +17 -12
  350. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  351. package/lib/module/ui/screens/LegalDocumentsScreen.js +62 -56
  352. package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
  353. package/lib/module/ui/screens/PaymentGatewayScreen.js +14 -11
  354. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  355. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +60 -57
  356. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  357. package/lib/module/ui/screens/PrivacySettingsScreen.js +182 -202
  358. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  359. package/lib/module/ui/screens/ProfileScreen.js +4 -3
  360. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  361. package/lib/module/ui/screens/SavesCollectionsScreen.js +23 -25
  362. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
  363. package/lib/module/ui/screens/SearchSettingsScreen.js +17 -18
  364. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  365. package/lib/module/ui/screens/SessionManagementScreen.js +75 -52
  366. package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
  367. package/lib/module/ui/screens/UserLinksScreen.js +16 -33
  368. package/lib/module/ui/screens/UserLinksScreen.js.map +1 -1
  369. package/lib/module/ui/screens/UserListScreen.js +40 -23
  370. package/lib/module/ui/screens/UserListScreen.js.map +1 -1
  371. package/lib/module/ui/screens/WelcomeNewUserScreen.js +126 -71
  372. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  373. package/lib/module/ui/screens/karma/KarmaAboutScreen.js +0 -3
  374. package/lib/module/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
  375. package/lib/module/ui/screens/karma/KarmaCenterScreen.js +6 -10
  376. package/lib/module/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  377. package/lib/module/ui/screens/karma/KarmaFAQScreen.js +5 -7
  378. package/lib/module/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
  379. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js +6 -6
  380. package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
  381. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js +13 -19
  382. package/lib/module/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
  383. package/lib/module/ui/screens/karma/KarmaRulesScreen.js +5 -5
  384. package/lib/module/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
  385. package/lib/module/ui/server.js +0 -4
  386. package/lib/module/ui/server.js.map +1 -1
  387. package/lib/module/ui/styles/authStyles.js +0 -5
  388. package/lib/module/ui/styles/authStyles.js.map +1 -1
  389. package/lib/module/ui/styles/index.js +0 -1
  390. package/lib/module/ui/styles/index.js.map +1 -1
  391. package/lib/module/ui/styles/spacing.js +0 -42
  392. package/lib/module/ui/styles/spacing.js.map +1 -1
  393. package/lib/module/ui/styles/theme.js +0 -4
  394. package/lib/module/ui/styles/theme.js.map +1 -1
  395. package/lib/module/ui/utils/fileManagement.js +54 -36
  396. package/lib/module/ui/utils/fileManagement.js.map +1 -1
  397. package/lib/module/ui/utils/sessionHelpers.js +3 -1
  398. package/lib/module/ui/utils/sessionHelpers.js.map +1 -1
  399. package/lib/module/ui/utils/userUtils.js +34 -16
  400. package/lib/module/ui/utils/userUtils.js.map +1 -1
  401. package/lib/typescript/commonjs/index.d.ts +7 -3
  402. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  403. package/lib/typescript/commonjs/ui/client.d.ts +0 -2
  404. package/lib/typescript/commonjs/ui/client.d.ts.map +1 -1
  405. package/lib/typescript/commonjs/ui/components/ActingAsBanner.d.ts.map +1 -1
  406. package/lib/typescript/commonjs/ui/components/Avatar.d.ts.map +1 -1
  407. package/lib/typescript/commonjs/ui/components/BottomSheet.d.ts +27 -27
  408. package/lib/typescript/commonjs/ui/components/BottomSheet.d.ts.map +1 -1
  409. package/lib/typescript/commonjs/ui/components/BottomSheetRouter.d.ts.map +1 -1
  410. package/lib/typescript/commonjs/ui/components/FollowButton.d.ts.map +1 -1
  411. package/lib/typescript/commonjs/ui/components/Header.d.ts.map +1 -1
  412. package/lib/typescript/commonjs/ui/components/Icon.d.ts +3 -2
  413. package/lib/typescript/commonjs/ui/components/Icon.d.ts.map +1 -1
  414. package/lib/typescript/commonjs/ui/components/IconButton/IconButton.d.ts.map +1 -1
  415. package/lib/typescript/commonjs/ui/components/OxyPayButton.d.ts.map +1 -1
  416. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  417. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
  418. package/lib/typescript/commonjs/ui/components/ProfileCard.d.ts +4 -1
  419. package/lib/typescript/commonjs/ui/components/ProfileCard.d.ts.map +1 -1
  420. package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +1 -1
  421. package/lib/typescript/commonjs/ui/components/StepBasedScreen.d.ts.map +1 -1
  422. package/lib/typescript/commonjs/ui/components/TextField/Addons/Outline.d.ts +2 -2
  423. package/lib/typescript/commonjs/ui/components/TextField/helpers.d.ts +2 -2
  424. package/lib/typescript/commonjs/ui/components/TextField/types.d.ts +0 -1
  425. package/lib/typescript/commonjs/ui/components/TextField/types.d.ts.map +1 -1
  426. package/lib/typescript/commonjs/ui/components/TextField.d.ts +1 -1
  427. package/lib/typescript/commonjs/ui/components/TextField.d.ts.map +1 -1
  428. package/lib/typescript/commonjs/ui/components/feedback/feedbackStyles.d.ts +0 -1
  429. package/lib/typescript/commonjs/ui/components/feedback/feedbackStyles.d.ts.map +1 -1
  430. package/lib/typescript/commonjs/ui/components/fileManagement/AnimatedButton.d.ts.map +1 -1
  431. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts +1 -1
  432. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  433. package/lib/typescript/commonjs/ui/components/fileManagement/FileViewer.d.ts +0 -2
  434. package/lib/typescript/commonjs/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
  435. package/lib/typescript/commonjs/ui/components/fileManagement/UploadPreview.d.ts +3 -2
  436. package/lib/typescript/commonjs/ui/components/fileManagement/UploadPreview.d.ts.map +1 -1
  437. package/lib/typescript/commonjs/ui/components/fileManagement/styles.d.ts +200 -17
  438. package/lib/typescript/commonjs/ui/components/fileManagement/styles.d.ts.map +1 -1
  439. package/lib/typescript/commonjs/ui/components/index.d.ts +0 -5
  440. package/lib/typescript/commonjs/ui/components/index.d.ts.map +1 -1
  441. package/lib/typescript/commonjs/ui/components/logo/LogoIcon.d.ts +22 -0
  442. package/lib/typescript/commonjs/ui/components/logo/LogoIcon.d.ts.map +1 -0
  443. package/lib/typescript/commonjs/ui/components/logo/LogoText.d.ts +22 -0
  444. package/lib/typescript/commonjs/ui/components/logo/LogoText.d.ts.map +1 -0
  445. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts +2 -2
  446. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  447. package/lib/typescript/commonjs/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -1
  448. package/lib/typescript/commonjs/ui/components/payment/PaymentMethodStep.d.ts.map +1 -1
  449. package/lib/typescript/commonjs/ui/components/payment/PaymentReviewStep.d.ts.map +1 -1
  450. package/lib/typescript/commonjs/ui/components/payment/PaymentSuccessStep.d.ts.map +1 -1
  451. package/lib/typescript/commonjs/ui/components/payment/PaymentSummaryStep.d.ts.map +1 -1
  452. package/lib/typescript/commonjs/ui/components/payment/paymentStyles.d.ts +0 -7
  453. package/lib/typescript/commonjs/ui/components/payment/paymentStyles.d.ts.map +1 -1
  454. package/lib/typescript/commonjs/ui/components/styles/overlay.d.ts +3 -1
  455. package/lib/typescript/commonjs/ui/components/styles/overlay.d.ts.map +1 -1
  456. package/lib/typescript/commonjs/ui/components/theming.d.ts.map +1 -1
  457. package/lib/typescript/commonjs/ui/components/types.d.ts.map +1 -1
  458. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  459. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  460. package/lib/typescript/commonjs/ui/hooks/index.d.ts +5 -3
  461. package/lib/typescript/commonjs/ui/hooks/index.d.ts.map +1 -1
  462. package/lib/typescript/commonjs/ui/hooks/mutations/mutationFactory.d.ts +11 -0
  463. package/lib/typescript/commonjs/ui/hooks/mutations/mutationFactory.d.ts.map +1 -1
  464. package/lib/typescript/commonjs/ui/hooks/mutations/mutationKeys.d.ts +25 -0
  465. package/lib/typescript/commonjs/ui/hooks/mutations/mutationKeys.d.ts.map +1 -0
  466. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +161 -9
  467. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  468. package/lib/typescript/commonjs/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -1
  469. package/lib/typescript/commonjs/ui/hooks/queries/index.d.ts +1 -1
  470. package/lib/typescript/commonjs/ui/hooks/queries/index.d.ts.map +1 -1
  471. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts +1 -0
  472. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  473. package/lib/typescript/commonjs/ui/hooks/queries/useAccountQueries.d.ts +22 -8
  474. package/lib/typescript/commonjs/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  475. package/lib/typescript/commonjs/ui/hooks/queries/useSecurityQueries.d.ts +13 -3
  476. package/lib/typescript/commonjs/ui/hooks/queries/useSecurityQueries.d.ts.map +1 -1
  477. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts +7 -5
  478. package/lib/typescript/commonjs/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  479. package/lib/typescript/commonjs/ui/hooks/queryClient.d.ts +57 -9
  480. package/lib/typescript/commonjs/ui/hooks/queryClient.d.ts.map +1 -1
  481. package/lib/typescript/commonjs/ui/hooks/useAssets.d.ts +1 -1
  482. package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts +0 -1
  483. package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts.map +1 -1
  484. package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts +10 -2
  485. package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts.map +1 -1
  486. package/lib/typescript/commonjs/ui/hooks/useFileDownloadUrl.d.ts +2 -6
  487. package/lib/typescript/commonjs/ui/hooks/useFileDownloadUrl.d.ts.map +1 -1
  488. package/lib/typescript/commonjs/ui/hooks/useMutationStatus.d.ts +23 -0
  489. package/lib/typescript/commonjs/ui/hooks/useMutationStatus.d.ts.map +1 -0
  490. package/lib/typescript/commonjs/ui/hooks/useOnlineStatus.d.ts +13 -0
  491. package/lib/typescript/commonjs/ui/hooks/useOnlineStatus.d.ts.map +1 -0
  492. package/lib/typescript/commonjs/ui/hooks/useSessionSocket.d.ts +1 -2
  493. package/lib/typescript/commonjs/ui/hooks/useSessionSocket.d.ts.map +1 -1
  494. package/lib/typescript/commonjs/ui/index.d.ts +1 -4
  495. package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
  496. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts +1 -1
  497. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  498. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +48 -2
  499. package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
  500. package/lib/typescript/commonjs/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  501. package/lib/typescript/commonjs/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  502. package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  503. package/lib/typescript/commonjs/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
  504. package/lib/typescript/commonjs/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  505. package/lib/typescript/commonjs/ui/screens/AppInfoScreen.d.ts.map +1 -1
  506. package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts +49 -0
  507. package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts.map +1 -0
  508. package/lib/typescript/commonjs/ui/screens/CreateManagedAccountScreen.d.ts.map +1 -1
  509. package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  510. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts.map +1 -1
  511. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  512. package/lib/typescript/commonjs/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  513. package/lib/typescript/commonjs/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  514. package/lib/typescript/commonjs/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  515. package/lib/typescript/commonjs/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  516. package/lib/typescript/commonjs/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  517. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  518. package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  519. package/lib/typescript/commonjs/ui/screens/ProfileScreen.d.ts.map +1 -1
  520. package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  521. package/lib/typescript/commonjs/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  522. package/lib/typescript/commonjs/ui/screens/UserLinksScreen.d.ts.map +1 -1
  523. package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts.map +1 -1
  524. package/lib/typescript/commonjs/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  525. package/lib/typescript/commonjs/ui/screens/karma/KarmaAboutScreen.d.ts.map +1 -1
  526. package/lib/typescript/commonjs/ui/screens/karma/KarmaCenterScreen.d.ts.map +1 -1
  527. package/lib/typescript/commonjs/ui/screens/karma/KarmaFAQScreen.d.ts.map +1 -1
  528. package/lib/typescript/commonjs/ui/screens/karma/KarmaLeaderboardScreen.d.ts.map +1 -1
  529. package/lib/typescript/commonjs/ui/screens/karma/KarmaRewardsScreen.d.ts.map +1 -1
  530. package/lib/typescript/commonjs/ui/screens/karma/KarmaRulesScreen.d.ts.map +1 -1
  531. package/lib/typescript/commonjs/ui/server.d.ts +0 -2
  532. package/lib/typescript/commonjs/ui/server.d.ts.map +1 -1
  533. package/lib/typescript/commonjs/ui/styles/authStyles.d.ts +0 -4
  534. package/lib/typescript/commonjs/ui/styles/authStyles.d.ts.map +1 -1
  535. package/lib/typescript/commonjs/ui/styles/index.d.ts +0 -1
  536. package/lib/typescript/commonjs/ui/styles/index.d.ts.map +1 -1
  537. package/lib/typescript/commonjs/ui/styles/spacing.d.ts +0 -36
  538. package/lib/typescript/commonjs/ui/styles/spacing.d.ts.map +1 -1
  539. package/lib/typescript/commonjs/ui/styles/theme.d.ts +0 -1
  540. package/lib/typescript/commonjs/ui/styles/theme.d.ts.map +1 -1
  541. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts +39 -12
  542. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts.map +1 -1
  543. package/lib/typescript/commonjs/ui/utils/sessionHelpers.d.ts +3 -1
  544. package/lib/typescript/commonjs/ui/utils/sessionHelpers.d.ts.map +1 -1
  545. package/lib/typescript/commonjs/ui/utils/userUtils.d.ts +19 -18
  546. package/lib/typescript/commonjs/ui/utils/userUtils.d.ts.map +1 -1
  547. package/lib/typescript/module/index.d.ts +7 -3
  548. package/lib/typescript/module/index.d.ts.map +1 -1
  549. package/lib/typescript/module/ui/client.d.ts +0 -2
  550. package/lib/typescript/module/ui/client.d.ts.map +1 -1
  551. package/lib/typescript/module/ui/components/ActingAsBanner.d.ts.map +1 -1
  552. package/lib/typescript/module/ui/components/Avatar.d.ts.map +1 -1
  553. package/lib/typescript/module/ui/components/BottomSheet.d.ts +27 -27
  554. package/lib/typescript/module/ui/components/BottomSheet.d.ts.map +1 -1
  555. package/lib/typescript/module/ui/components/BottomSheetRouter.d.ts.map +1 -1
  556. package/lib/typescript/module/ui/components/FollowButton.d.ts.map +1 -1
  557. package/lib/typescript/module/ui/components/Header.d.ts.map +1 -1
  558. package/lib/typescript/module/ui/components/Icon.d.ts +3 -2
  559. package/lib/typescript/module/ui/components/Icon.d.ts.map +1 -1
  560. package/lib/typescript/module/ui/components/IconButton/IconButton.d.ts.map +1 -1
  561. package/lib/typescript/module/ui/components/OxyPayButton.d.ts.map +1 -1
  562. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  563. package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
  564. package/lib/typescript/module/ui/components/ProfileCard.d.ts +4 -1
  565. package/lib/typescript/module/ui/components/ProfileCard.d.ts.map +1 -1
  566. package/lib/typescript/module/ui/components/SignInModal.d.ts.map +1 -1
  567. package/lib/typescript/module/ui/components/StepBasedScreen.d.ts.map +1 -1
  568. package/lib/typescript/module/ui/components/TextField/Addons/Outline.d.ts +2 -2
  569. package/lib/typescript/module/ui/components/TextField/helpers.d.ts +2 -2
  570. package/lib/typescript/module/ui/components/TextField/types.d.ts +0 -1
  571. package/lib/typescript/module/ui/components/TextField/types.d.ts.map +1 -1
  572. package/lib/typescript/module/ui/components/TextField.d.ts +1 -1
  573. package/lib/typescript/module/ui/components/TextField.d.ts.map +1 -1
  574. package/lib/typescript/module/ui/components/feedback/feedbackStyles.d.ts +0 -1
  575. package/lib/typescript/module/ui/components/feedback/feedbackStyles.d.ts.map +1 -1
  576. package/lib/typescript/module/ui/components/fileManagement/AnimatedButton.d.ts.map +1 -1
  577. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts +1 -1
  578. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  579. package/lib/typescript/module/ui/components/fileManagement/FileViewer.d.ts +0 -2
  580. package/lib/typescript/module/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
  581. package/lib/typescript/module/ui/components/fileManagement/UploadPreview.d.ts +3 -2
  582. package/lib/typescript/module/ui/components/fileManagement/UploadPreview.d.ts.map +1 -1
  583. package/lib/typescript/module/ui/components/fileManagement/styles.d.ts +200 -17
  584. package/lib/typescript/module/ui/components/fileManagement/styles.d.ts.map +1 -1
  585. package/lib/typescript/module/ui/components/index.d.ts +0 -5
  586. package/lib/typescript/module/ui/components/index.d.ts.map +1 -1
  587. package/lib/typescript/module/ui/components/logo/LogoIcon.d.ts +22 -0
  588. package/lib/typescript/module/ui/components/logo/LogoIcon.d.ts.map +1 -0
  589. package/lib/typescript/module/ui/components/logo/LogoText.d.ts +22 -0
  590. package/lib/typescript/module/ui/components/logo/LogoText.d.ts.map +1 -0
  591. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts +2 -2
  592. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  593. package/lib/typescript/module/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -1
  594. package/lib/typescript/module/ui/components/payment/PaymentMethodStep.d.ts.map +1 -1
  595. package/lib/typescript/module/ui/components/payment/PaymentReviewStep.d.ts.map +1 -1
  596. package/lib/typescript/module/ui/components/payment/PaymentSuccessStep.d.ts.map +1 -1
  597. package/lib/typescript/module/ui/components/payment/PaymentSummaryStep.d.ts.map +1 -1
  598. package/lib/typescript/module/ui/components/payment/paymentStyles.d.ts +0 -7
  599. package/lib/typescript/module/ui/components/payment/paymentStyles.d.ts.map +1 -1
  600. package/lib/typescript/module/ui/components/styles/overlay.d.ts +3 -1
  601. package/lib/typescript/module/ui/components/styles/overlay.d.ts.map +1 -1
  602. package/lib/typescript/module/ui/components/theming.d.ts.map +1 -1
  603. package/lib/typescript/module/ui/components/types.d.ts.map +1 -1
  604. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  605. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  606. package/lib/typescript/module/ui/hooks/index.d.ts +5 -3
  607. package/lib/typescript/module/ui/hooks/index.d.ts.map +1 -1
  608. package/lib/typescript/module/ui/hooks/mutations/mutationFactory.d.ts +11 -0
  609. package/lib/typescript/module/ui/hooks/mutations/mutationFactory.d.ts.map +1 -1
  610. package/lib/typescript/module/ui/hooks/mutations/mutationKeys.d.ts +25 -0
  611. package/lib/typescript/module/ui/hooks/mutations/mutationKeys.d.ts.map +1 -0
  612. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +161 -9
  613. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  614. package/lib/typescript/module/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -1
  615. package/lib/typescript/module/ui/hooks/queries/index.d.ts +1 -1
  616. package/lib/typescript/module/ui/hooks/queries/index.d.ts.map +1 -1
  617. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts +1 -0
  618. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  619. package/lib/typescript/module/ui/hooks/queries/useAccountQueries.d.ts +22 -8
  620. package/lib/typescript/module/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  621. package/lib/typescript/module/ui/hooks/queries/useSecurityQueries.d.ts +13 -3
  622. package/lib/typescript/module/ui/hooks/queries/useSecurityQueries.d.ts.map +1 -1
  623. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts +7 -5
  624. package/lib/typescript/module/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  625. package/lib/typescript/module/ui/hooks/queryClient.d.ts +57 -9
  626. package/lib/typescript/module/ui/hooks/queryClient.d.ts.map +1 -1
  627. package/lib/typescript/module/ui/hooks/useAssets.d.ts +1 -1
  628. package/lib/typescript/module/ui/hooks/useAuth.d.ts +0 -1
  629. package/lib/typescript/module/ui/hooks/useAuth.d.ts.map +1 -1
  630. package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts +10 -2
  631. package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts.map +1 -1
  632. package/lib/typescript/module/ui/hooks/useFileDownloadUrl.d.ts +2 -6
  633. package/lib/typescript/module/ui/hooks/useFileDownloadUrl.d.ts.map +1 -1
  634. package/lib/typescript/module/ui/hooks/useMutationStatus.d.ts +23 -0
  635. package/lib/typescript/module/ui/hooks/useMutationStatus.d.ts.map +1 -0
  636. package/lib/typescript/module/ui/hooks/useOnlineStatus.d.ts +13 -0
  637. package/lib/typescript/module/ui/hooks/useOnlineStatus.d.ts.map +1 -0
  638. package/lib/typescript/module/ui/hooks/useSessionSocket.d.ts +1 -2
  639. package/lib/typescript/module/ui/hooks/useSessionSocket.d.ts.map +1 -1
  640. package/lib/typescript/module/ui/index.d.ts +1 -4
  641. package/lib/typescript/module/ui/index.d.ts.map +1 -1
  642. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts +1 -1
  643. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  644. package/lib/typescript/module/ui/navigation/routes.d.ts +48 -2
  645. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  646. package/lib/typescript/module/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  647. package/lib/typescript/module/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  648. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  649. package/lib/typescript/module/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
  650. package/lib/typescript/module/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  651. package/lib/typescript/module/ui/screens/AppInfoScreen.d.ts.map +1 -1
  652. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts +49 -0
  653. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts.map +1 -0
  654. package/lib/typescript/module/ui/screens/CreateManagedAccountScreen.d.ts.map +1 -1
  655. package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  656. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts.map +1 -1
  657. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  658. package/lib/typescript/module/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  659. package/lib/typescript/module/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  660. package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  661. package/lib/typescript/module/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  662. package/lib/typescript/module/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  663. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  664. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  665. package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
  666. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  667. package/lib/typescript/module/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  668. package/lib/typescript/module/ui/screens/UserLinksScreen.d.ts.map +1 -1
  669. package/lib/typescript/module/ui/screens/UserListScreen.d.ts.map +1 -1
  670. package/lib/typescript/module/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  671. package/lib/typescript/module/ui/screens/karma/KarmaAboutScreen.d.ts.map +1 -1
  672. package/lib/typescript/module/ui/screens/karma/KarmaCenterScreen.d.ts.map +1 -1
  673. package/lib/typescript/module/ui/screens/karma/KarmaFAQScreen.d.ts.map +1 -1
  674. package/lib/typescript/module/ui/screens/karma/KarmaLeaderboardScreen.d.ts.map +1 -1
  675. package/lib/typescript/module/ui/screens/karma/KarmaRewardsScreen.d.ts.map +1 -1
  676. package/lib/typescript/module/ui/screens/karma/KarmaRulesScreen.d.ts.map +1 -1
  677. package/lib/typescript/module/ui/server.d.ts +0 -2
  678. package/lib/typescript/module/ui/server.d.ts.map +1 -1
  679. package/lib/typescript/module/ui/styles/authStyles.d.ts +0 -4
  680. package/lib/typescript/module/ui/styles/authStyles.d.ts.map +1 -1
  681. package/lib/typescript/module/ui/styles/index.d.ts +0 -1
  682. package/lib/typescript/module/ui/styles/index.d.ts.map +1 -1
  683. package/lib/typescript/module/ui/styles/spacing.d.ts +0 -36
  684. package/lib/typescript/module/ui/styles/spacing.d.ts.map +1 -1
  685. package/lib/typescript/module/ui/styles/theme.d.ts +0 -1
  686. package/lib/typescript/module/ui/styles/theme.d.ts.map +1 -1
  687. package/lib/typescript/module/ui/utils/fileManagement.d.ts +39 -12
  688. package/lib/typescript/module/ui/utils/fileManagement.d.ts.map +1 -1
  689. package/lib/typescript/module/ui/utils/sessionHelpers.d.ts +3 -1
  690. package/lib/typescript/module/ui/utils/sessionHelpers.d.ts.map +1 -1
  691. package/lib/typescript/module/ui/utils/userUtils.d.ts +19 -18
  692. package/lib/typescript/module/ui/utils/userUtils.d.ts.map +1 -1
  693. package/lib/typescript/types/expo-vector-icons.d.ts +7 -4
  694. package/package.json +64 -31
  695. package/src/index.ts +11 -4
  696. package/src/types/expo-vector-icons.d.ts +7 -4
  697. package/src/ui/client.ts +0 -6
  698. package/src/ui/components/ActingAsBanner.tsx +0 -4
  699. package/src/ui/components/ActivityIndicator.tsx +1 -1
  700. package/src/ui/components/Avatar.tsx +0 -2
  701. package/src/ui/components/BottomSheet.tsx +41 -440
  702. package/src/ui/components/BottomSheetRouter.tsx +12 -1
  703. package/src/ui/components/FollowButton.tsx +2 -4
  704. package/src/ui/components/Header.tsx +0 -5
  705. package/src/ui/components/Icon.tsx +12 -6
  706. package/src/ui/components/IconButton/IconButton.tsx +0 -3
  707. package/src/ui/components/OxyPayButton.tsx +0 -2
  708. package/src/ui/components/OxyProvider.tsx +129 -49
  709. package/src/ui/components/OxySignInButton.tsx +21 -9
  710. package/src/ui/components/ProfileCard.tsx +13 -10
  711. package/src/ui/components/QuickActions.tsx +2 -2
  712. package/src/ui/components/SignInModal.tsx +38 -13
  713. package/src/ui/components/StepBasedScreen.tsx +0 -2
  714. package/src/ui/components/TextField/Addons/Outline.tsx +2 -2
  715. package/src/ui/components/TextField/helpers.tsx +2 -2
  716. package/src/ui/components/TextField/types.tsx +0 -1
  717. package/src/ui/components/TextField.tsx +1 -2
  718. package/src/ui/components/TouchableRipple/TouchableRipple.native.tsx +1 -1
  719. package/src/ui/components/feedback/feedbackStyles.ts +0 -2
  720. package/src/ui/components/fileManagement/AnimatedButton.tsx +0 -1
  721. package/src/ui/components/fileManagement/FileDetailsModal.tsx +71 -65
  722. package/src/ui/components/fileManagement/FileViewer.tsx +31 -24
  723. package/src/ui/components/fileManagement/UploadPreview.tsx +21 -25
  724. package/src/ui/components/fileManagement/styles.ts +206 -18
  725. package/src/ui/components/index.ts +0 -5
  726. package/src/ui/components/logo/LogoIcon.tsx +70 -0
  727. package/src/ui/components/logo/LogoText.tsx +70 -0
  728. package/src/ui/components/modals/DeleteAccountModal.tsx +56 -91
  729. package/src/ui/components/payment/PaymentDetailsStep.tsx +17 -20
  730. package/src/ui/components/payment/PaymentMethodStep.tsx +33 -35
  731. package/src/ui/components/payment/PaymentReviewStep.tsx +63 -67
  732. package/src/ui/components/payment/PaymentSuccessStep.tsx +5 -13
  733. package/src/ui/components/payment/PaymentSummaryStep.tsx +26 -33
  734. package/src/ui/components/payment/paymentStyles.ts +0 -8
  735. package/src/ui/components/styles/overlay.tsx +17 -8
  736. package/src/ui/components/theming.tsx +0 -1
  737. package/src/ui/components/types.tsx +3 -2
  738. package/src/ui/context/OxyContext.tsx +34 -19
  739. package/src/ui/context/hooks/useAuthOperations.ts +1 -2
  740. package/src/ui/hooks/index.ts +11 -4
  741. package/src/ui/hooks/mutations/mutationFactory.ts +16 -1
  742. package/src/ui/hooks/mutations/mutationKeys.ts +28 -0
  743. package/src/ui/hooks/mutations/useAccountMutations.ts +251 -59
  744. package/src/ui/hooks/mutations/useServicesMutations.ts +10 -4
  745. package/src/ui/hooks/queries/index.ts +1 -0
  746. package/src/ui/hooks/queries/queryKeys.ts +2 -0
  747. package/src/ui/hooks/queries/useAccountQueries.ts +83 -3
  748. package/src/ui/hooks/queries/useSecurityQueries.ts +42 -2
  749. package/src/ui/hooks/queryClient.ts +194 -69
  750. package/src/ui/hooks/useAsyncAction.ts +3 -3
  751. package/src/ui/hooks/useAuth.ts +0 -2
  752. package/src/ui/hooks/useAvatarPicker.ts +108 -27
  753. package/src/ui/hooks/useFileDownloadUrl.ts +15 -39
  754. package/src/ui/hooks/useMutationStatus.ts +111 -0
  755. package/src/ui/hooks/useOnlineStatus.ts +29 -0
  756. package/src/ui/hooks/useSessionSocket.ts +136 -126
  757. package/src/ui/hooks/useSettingToggle.ts +1 -1
  758. package/src/ui/index.ts +0 -12
  759. package/src/ui/navigation/routes.ts +93 -2
  760. package/src/ui/screens/AccountCenterScreen.tsx +17 -16
  761. package/src/ui/screens/AccountOverviewScreen.tsx +98 -129
  762. package/src/ui/screens/AccountSettingsScreen.tsx +138 -165
  763. package/src/ui/screens/AccountSwitcherScreen.tsx +414 -402
  764. package/src/ui/screens/AccountVerificationScreen.tsx +25 -24
  765. package/src/ui/screens/AppInfoScreen.tsx +8 -13
  766. package/src/ui/screens/AvatarCropScreen.tsx +1073 -0
  767. package/src/ui/screens/CreateManagedAccountScreen.tsx +5 -16
  768. package/src/ui/screens/EditProfileFieldScreen.tsx +5 -10
  769. package/src/ui/screens/FAQScreen.tsx +3 -3
  770. package/src/ui/screens/FeedbackScreen.tsx +64 -50
  771. package/src/ui/screens/FileManagementScreen.tsx +911 -158
  772. package/src/ui/screens/HelpSupportScreen.tsx +2 -3
  773. package/src/ui/screens/HistoryViewScreen.tsx +51 -17
  774. package/src/ui/screens/LanguageSelectorScreen.tsx +20 -10
  775. package/src/ui/screens/LegalDocumentsScreen.tsx +47 -64
  776. package/src/ui/screens/PaymentGatewayScreen.tsx +13 -14
  777. package/src/ui/screens/PremiumSubscriptionScreen.tsx +51 -56
  778. package/src/ui/screens/PrivacySettingsScreen.tsx +97 -207
  779. package/src/ui/screens/ProfileScreen.tsx +1 -2
  780. package/src/ui/screens/SavesCollectionsScreen.tsx +25 -25
  781. package/src/ui/screens/SearchSettingsScreen.tsx +11 -19
  782. package/src/ui/screens/SessionManagementScreen.tsx +64 -50
  783. package/src/ui/screens/UserLinksScreen.tsx +15 -33
  784. package/src/ui/screens/UserListScreen.tsx +30 -19
  785. package/src/ui/screens/WelcomeNewUserScreen.tsx +60 -38
  786. package/src/ui/screens/karma/KarmaAboutScreen.tsx +0 -3
  787. package/src/ui/screens/karma/KarmaCenterScreen.tsx +4 -8
  788. package/src/ui/screens/karma/KarmaFAQScreen.tsx +5 -7
  789. package/src/ui/screens/karma/KarmaLeaderboardScreen.tsx +3 -4
  790. package/src/ui/screens/karma/KarmaRewardsScreen.tsx +13 -18
  791. package/src/ui/screens/karma/KarmaRulesScreen.tsx +3 -4
  792. package/src/ui/server.ts +0 -4
  793. package/src/ui/styles/authStyles.ts +0 -5
  794. package/src/ui/styles/index.ts +0 -1
  795. package/src/ui/styles/spacing.ts +0 -43
  796. package/src/ui/styles/theme.ts +0 -4
  797. package/src/ui/utils/fileManagement.ts +66 -38
  798. package/src/ui/utils/sessionHelpers.ts +3 -1
  799. package/src/ui/utils/userUtils.ts +45 -29
  800. package/lib/commonjs/lib/sonner-safe.js +0 -32
  801. package/lib/commonjs/lib/sonner-safe.js.map +0 -1
  802. package/lib/commonjs/lib/sonner.js +0 -19
  803. package/lib/commonjs/lib/sonner.js.map +0 -1
  804. package/lib/commonjs/lib/sonner.native.js +0 -24
  805. package/lib/commonjs/lib/sonner.native.js.map +0 -1
  806. package/lib/commonjs/lib/sonner.web.js +0 -24
  807. package/lib/commonjs/lib/sonner.web.js.map +0 -1
  808. package/lib/commonjs/ui/components/GroupedItem.js +0 -138
  809. package/lib/commonjs/ui/components/GroupedItem.js.map +0 -1
  810. package/lib/commonjs/ui/components/GroupedSection.js +0 -41
  811. package/lib/commonjs/ui/components/GroupedSection.js.map +0 -1
  812. package/lib/commonjs/ui/components/Section.js +0 -39
  813. package/lib/commonjs/ui/components/Section.js.map +0 -1
  814. package/lib/commonjs/ui/components/SectionTitle.js +0 -29
  815. package/lib/commonjs/ui/components/SectionTitle.js.map +0 -1
  816. package/lib/commonjs/ui/components/SettingRow.js +0 -96
  817. package/lib/commonjs/ui/components/SettingRow.js.map +0 -1
  818. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js +0 -208
  819. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js.map +0 -1
  820. package/lib/commonjs/ui/hooks/useThemeColors.js +0 -33
  821. package/lib/commonjs/ui/hooks/useThemeColors.js.map +0 -1
  822. package/lib/commonjs/ui/hooks/useThemeStyles.js +0 -38
  823. package/lib/commonjs/ui/hooks/useThemeStyles.js.map +0 -1
  824. package/lib/commonjs/ui/styles/fonts.js +0 -84
  825. package/lib/commonjs/ui/styles/fonts.js.map +0 -1
  826. package/lib/module/lib/sonner-safe.js +0 -29
  827. package/lib/module/lib/sonner-safe.js.map +0 -1
  828. package/lib/module/lib/sonner.js +0 -14
  829. package/lib/module/lib/sonner.js.map +0 -1
  830. package/lib/module/lib/sonner.native.js +0 -19
  831. package/lib/module/lib/sonner.native.js.map +0 -1
  832. package/lib/module/lib/sonner.web.js +0 -19
  833. package/lib/module/lib/sonner.web.js.map +0 -1
  834. package/lib/module/ui/components/GroupedItem.js +0 -135
  835. package/lib/module/ui/components/GroupedItem.js.map +0 -1
  836. package/lib/module/ui/components/GroupedSection.js +0 -37
  837. package/lib/module/ui/components/GroupedSection.js.map +0 -1
  838. package/lib/module/ui/components/Section.js +0 -34
  839. package/lib/module/ui/components/Section.js.map +0 -1
  840. package/lib/module/ui/components/SectionTitle.js +0 -25
  841. package/lib/module/ui/components/SectionTitle.js.map +0 -1
  842. package/lib/module/ui/components/SettingRow.js +0 -91
  843. package/lib/module/ui/components/SettingRow.js.map +0 -1
  844. package/lib/module/ui/components/internal/GroupedPillButtons.js +0 -204
  845. package/lib/module/ui/components/internal/GroupedPillButtons.js.map +0 -1
  846. package/lib/module/ui/hooks/useThemeColors.js +0 -29
  847. package/lib/module/ui/hooks/useThemeColors.js.map +0 -1
  848. package/lib/module/ui/hooks/useThemeStyles.js +0 -33
  849. package/lib/module/ui/hooks/useThemeStyles.js.map +0 -1
  850. package/lib/module/ui/styles/fonts.js +0 -81
  851. package/lib/module/ui/styles/fonts.js.map +0 -1
  852. package/lib/typescript/commonjs/lib/sonner-safe.d.ts +0 -9
  853. package/lib/typescript/commonjs/lib/sonner-safe.d.ts.map +0 -1
  854. package/lib/typescript/commonjs/lib/sonner.d.ts +0 -12
  855. package/lib/typescript/commonjs/lib/sonner.d.ts.map +0 -1
  856. package/lib/typescript/commonjs/lib/sonner.native.d.ts +0 -15
  857. package/lib/typescript/commonjs/lib/sonner.native.d.ts.map +0 -1
  858. package/lib/typescript/commonjs/lib/sonner.web.d.ts +0 -15
  859. package/lib/typescript/commonjs/lib/sonner.web.d.ts.map +0 -1
  860. package/lib/typescript/commonjs/ui/components/GroupedItem.d.ts +0 -24
  861. package/lib/typescript/commonjs/ui/components/GroupedItem.d.ts.map +0 -1
  862. package/lib/typescript/commonjs/ui/components/GroupedSection.d.ts +0 -30
  863. package/lib/typescript/commonjs/ui/components/GroupedSection.d.ts.map +0 -1
  864. package/lib/typescript/commonjs/ui/components/Section.d.ts +0 -12
  865. package/lib/typescript/commonjs/ui/components/Section.d.ts.map +0 -1
  866. package/lib/typescript/commonjs/ui/components/SectionTitle.d.ts +0 -10
  867. package/lib/typescript/commonjs/ui/components/SectionTitle.d.ts.map +0 -1
  868. package/lib/typescript/commonjs/ui/components/SettingRow.d.ts +0 -20
  869. package/lib/typescript/commonjs/ui/components/SettingRow.d.ts.map +0 -1
  870. package/lib/typescript/commonjs/ui/components/internal/GroupedPillButtons.d.ts +0 -24
  871. package/lib/typescript/commonjs/ui/components/internal/GroupedPillButtons.d.ts.map +0 -1
  872. package/lib/typescript/commonjs/ui/hooks/useThemeColors.d.ts +0 -87
  873. package/lib/typescript/commonjs/ui/hooks/useThemeColors.d.ts.map +0 -1
  874. package/lib/typescript/commonjs/ui/hooks/useThemeStyles.d.ts +0 -22
  875. package/lib/typescript/commonjs/ui/hooks/useThemeStyles.d.ts.map +0 -1
  876. package/lib/typescript/commonjs/ui/styles/fonts.d.ts +0 -21
  877. package/lib/typescript/commonjs/ui/styles/fonts.d.ts.map +0 -1
  878. package/lib/typescript/module/lib/sonner-safe.d.ts +0 -9
  879. package/lib/typescript/module/lib/sonner-safe.d.ts.map +0 -1
  880. package/lib/typescript/module/lib/sonner.d.ts +0 -12
  881. package/lib/typescript/module/lib/sonner.d.ts.map +0 -1
  882. package/lib/typescript/module/lib/sonner.native.d.ts +0 -15
  883. package/lib/typescript/module/lib/sonner.native.d.ts.map +0 -1
  884. package/lib/typescript/module/lib/sonner.web.d.ts +0 -15
  885. package/lib/typescript/module/lib/sonner.web.d.ts.map +0 -1
  886. package/lib/typescript/module/ui/components/GroupedItem.d.ts +0 -24
  887. package/lib/typescript/module/ui/components/GroupedItem.d.ts.map +0 -1
  888. package/lib/typescript/module/ui/components/GroupedSection.d.ts +0 -30
  889. package/lib/typescript/module/ui/components/GroupedSection.d.ts.map +0 -1
  890. package/lib/typescript/module/ui/components/Section.d.ts +0 -12
  891. package/lib/typescript/module/ui/components/Section.d.ts.map +0 -1
  892. package/lib/typescript/module/ui/components/SectionTitle.d.ts +0 -10
  893. package/lib/typescript/module/ui/components/SectionTitle.d.ts.map +0 -1
  894. package/lib/typescript/module/ui/components/SettingRow.d.ts +0 -20
  895. package/lib/typescript/module/ui/components/SettingRow.d.ts.map +0 -1
  896. package/lib/typescript/module/ui/components/internal/GroupedPillButtons.d.ts +0 -24
  897. package/lib/typescript/module/ui/components/internal/GroupedPillButtons.d.ts.map +0 -1
  898. package/lib/typescript/module/ui/hooks/useThemeColors.d.ts +0 -87
  899. package/lib/typescript/module/ui/hooks/useThemeColors.d.ts.map +0 -1
  900. package/lib/typescript/module/ui/hooks/useThemeStyles.d.ts +0 -22
  901. package/lib/typescript/module/ui/hooks/useThemeStyles.d.ts.map +0 -1
  902. package/lib/typescript/module/ui/styles/fonts.d.ts +0 -21
  903. package/lib/typescript/module/ui/styles/fonts.d.ts.map +0 -1
  904. package/src/lib/sonner-safe.ts +0 -31
  905. package/src/lib/sonner.native.ts +0 -28
  906. package/src/lib/sonner.ts +0 -11
  907. package/src/lib/sonner.web.ts +0 -28
  908. package/src/ui/components/GroupedItem.tsx +0 -161
  909. package/src/ui/components/GroupedSection.tsx +0 -60
  910. package/src/ui/components/Section.tsx +0 -42
  911. package/src/ui/components/SectionTitle.tsx +0 -27
  912. package/src/ui/components/SettingRow.tsx +0 -105
  913. package/src/ui/components/internal/GroupedPillButtons.tsx +0 -253
  914. package/src/ui/hooks/useThemeColors.ts +0 -27
  915. package/src/ui/hooks/useThemeStyles.ts +0 -50
  916. package/src/ui/styles/fonts.ts +0 -77
@@ -1,7 +1,7 @@
1
- import { useQuery } from '@tanstack/react-query';
1
+ import { useQuery, useInfiniteQuery } from '@tanstack/react-query';
2
2
  import { queryKeys } from './queryKeys';
3
3
  import { useOxy } from '../../context/OxyContext';
4
- import type { SecurityActivity, SecurityEventType } from '@oxyhq/core';
4
+ import type { SecurityActivity, SecurityActivityResponse, SecurityEventType } from '@oxyhq/core';
5
5
 
6
6
  /**
7
7
  * Get user's security activity with pagination
@@ -62,3 +62,43 @@ export const useRecentSecurityActivity = (limit = 10) => {
62
62
  });
63
63
  };
64
64
 
65
+ /**
66
+ * Get user's security activity with infinite pagination.
67
+ * Each page returns up to `limit` events; `getNextPageParam` walks the
68
+ * `offset` cursor until the API reports `hasMore: false`.
69
+ */
70
+ export const useInfiniteSecurityActivity = (
71
+ options?: {
72
+ limit?: number;
73
+ eventType?: SecurityEventType;
74
+ enabled?: boolean;
75
+ }
76
+ ) => {
77
+ const { oxyServices, activeSessionId } = useOxy();
78
+ const limit = options?.limit ?? 30;
79
+
80
+ return useInfiniteQuery<SecurityActivityResponse, Error>({
81
+ queryKey: queryKeys.security.infinite(limit, options?.eventType),
82
+ queryFn: async ({ pageParam }) => {
83
+ if (!activeSessionId) {
84
+ throw new Error('No active session');
85
+ }
86
+
87
+ const offset = typeof pageParam === 'number' ? pageParam : 0;
88
+ return await oxyServices.getSecurityActivity(
89
+ limit,
90
+ offset,
91
+ options?.eventType
92
+ );
93
+ },
94
+ initialPageParam: 0,
95
+ getNextPageParam: (lastPage) => {
96
+ if (!lastPage.hasMore) return undefined;
97
+ return lastPage.offset + lastPage.limit;
98
+ },
99
+ enabled: (options?.enabled !== false) && !!activeSessionId,
100
+ staleTime: 5 * 60 * 1000, // 5 minutes
101
+ gcTime: 10 * 60 * 1000, // 10 minutes
102
+ });
103
+ };
104
+
@@ -1,74 +1,115 @@
1
- import { QueryClient } from '@tanstack/react-query';
1
+ /**
2
+ * Offline-first QueryClient with cross-restart persistence.
3
+ *
4
+ * Wires together:
5
+ * - TanStack Query with `networkMode: 'offlineFirst'` for queries and mutations
6
+ * so cached data is served immediately and mutations are queued (paused) while
7
+ * the browser/device reports offline.
8
+ * - `persistQueryClient(...)` from `@tanstack/react-query-persist-client` so that
9
+ * query results AND paused mutations survive a cold restart (kill-and-relaunch).
10
+ * - `onlineManager` resume hook so paused mutations replay the moment the
11
+ * network is reported back, even if the host app swapped in a custom
12
+ * onlineManager implementation.
13
+ *
14
+ * Storage layer:
15
+ * - React Native -> AsyncStorage via `createAsyncStoragePersister`.
16
+ * - Web -> localStorage via `createSyncStoragePersister` (wrapped in the
17
+ * async persister API for a single call site).
18
+ * - Both adapters are content-shape compatible with our `StorageInterface`.
19
+ *
20
+ * Whitelist policy:
21
+ * - Persist every account/user/session/privacy query and every queued mutation.
22
+ * - DO NOT persist large list queries (e.g. activity feeds) — they go stale
23
+ * fast and would balloon storage. Add new keys to `PERSISTED_QUERY_PREFIXES`
24
+ * when introducing reads that should survive restart.
25
+ */
26
+
27
+ import { QueryClient, onlineManager, type Query, type Mutation } from '@tanstack/react-query';
28
+ import {
29
+ persistQueryClient,
30
+ type PersistedClient,
31
+ } from '@tanstack/react-query-persist-client';
32
+ import { createAsyncStoragePersister } from '@tanstack/query-async-storage-persister';
2
33
  import { isDev } from '@oxyhq/core';
3
34
  import type { StorageInterface } from '../utils/storageHelpers';
4
35
 
5
- const QUERY_CACHE_KEY = 'oxy_query_cache';
6
- const QUERY_CACHE_VERSION = '1';
36
+ const QUERY_CACHE_KEY = 'oxy_query_cache_v2';
37
+ const QUERY_CACHE_MAX_AGE = 30 * 24 * 60 * 60 * 1000; // 30 days
38
+ const QUERY_PERSIST_THROTTLE_MS = 1_000;
39
+
40
+ /**
41
+ * Query-key prefixes that should survive cold restart. Anything not listed
42
+ * is dropped during dehydration so the persisted blob stays small.
43
+ *
44
+ * Mutations are persisted independently (always) so the offline write queue
45
+ * works regardless of the read whitelist.
46
+ */
47
+ const PERSISTED_QUERY_PREFIXES: ReadonlyArray<string> = [
48
+ 'accounts',
49
+ 'users',
50
+ 'sessions',
51
+ 'devices',
52
+ 'privacy',
53
+ ];
7
54
 
8
55
  /**
9
- * Custom persistence adapter for TanStack Query using our StorageInterface
56
+ * Adapt our `StorageInterface` (which always returns `null` for missing keys)
57
+ * to TanStack's `AsyncStorage` shape. The two are structurally identical
58
+ * apart from naming; this also gives us a single place to add error
59
+ * suppression if a host platform's storage throws.
10
60
  */
11
- export const createPersistenceAdapter = (storage: StorageInterface) => {
61
+ function adaptStorage(storage: StorageInterface): {
62
+ getItem: (key: string) => Promise<string | null>;
63
+ setItem: (key: string, value: string) => Promise<void>;
64
+ removeItem: (key: string) => Promise<void>;
65
+ } {
12
66
  return {
13
- persistClient: async (client: any) => {
14
- try {
15
- const serialized = JSON.stringify({
16
- clientState: client,
17
- timestamp: Date.now(),
18
- version: QUERY_CACHE_VERSION,
19
- });
20
- await storage.setItem(QUERY_CACHE_KEY, serialized);
21
- } catch (error) {
22
- if (isDev()) {
23
- console.warn('[QueryClient] Failed to persist cache:', error);
24
- }
25
- }
26
- },
27
- restoreClient: async () => {
28
- try {
29
- const cached = await storage.getItem(QUERY_CACHE_KEY);
30
- if (!cached) return undefined;
31
-
32
- const parsed = JSON.parse(cached);
33
-
34
- // Check version compatibility
35
- if (parsed.version !== QUERY_CACHE_VERSION) {
36
- // Clear old cache on version mismatch
37
- await storage.removeItem(QUERY_CACHE_KEY);
38
- return undefined;
39
- }
67
+ getItem: (key) => storage.getItem(key),
68
+ setItem: (key, value) => storage.setItem(key, value),
69
+ removeItem: (key) => storage.removeItem(key),
70
+ };
71
+ }
40
72
 
41
- // Check if cache is too old (30 days)
42
- const maxAge = 30 * 24 * 60 * 60 * 1000;
43
- if (parsed.timestamp && Date.now() - parsed.timestamp > maxAge) {
44
- await storage.removeItem(QUERY_CACHE_KEY);
45
- return undefined;
46
- }
73
+ /**
74
+ * Decide whether a given query should be written to persistent storage.
75
+ *
76
+ * Two gates:
77
+ * 1. The query must be in our prefix whitelist.
78
+ * 2. The query must have completed successfully at least once — there's no
79
+ * point persisting a `pending`/`error` state, and persisting `error` would
80
+ * leak failure objects across restarts.
81
+ */
82
+ function shouldDehydrateQuery(query: Query): boolean {
83
+ if (query.state.status !== 'success') {
84
+ return false;
85
+ }
86
+ const head = query.queryKey[0];
87
+ if (typeof head !== 'string') {
88
+ return false;
89
+ }
90
+ return PERSISTED_QUERY_PREFIXES.includes(head);
91
+ }
47
92
 
48
- return parsed.clientState;
49
- } catch (error) {
50
- if (isDev()) {
51
- console.warn('[QueryClient] Failed to restore cache:', error);
52
- }
53
- return undefined;
54
- }
55
- },
56
- removeClient: async () => {
57
- try {
58
- await storage.removeItem(QUERY_CACHE_KEY);
59
- } catch (error) {
60
- if (isDev()) {
61
- console.warn('[QueryClient] Failed to remove cache:', error);
62
- }
63
- }
64
- },
65
- };
66
- };
93
+ /**
94
+ * Persist every mutation regardless of status — paused mutations are
95
+ * exactly the ones that must survive restart to replay when online.
96
+ */
97
+ function shouldDehydrateMutation(_mutation: Mutation): boolean {
98
+ return true;
99
+ }
67
100
 
68
101
  /**
69
- * Create a QueryClient with offline-first configuration
102
+ * Create a QueryClient with offline-first defaults.
103
+ *
104
+ * Mutations marked with `networkMode: 'offlineFirst'` are queued by TanStack
105
+ * Query when offline (status "paused") and resumed automatically when
106
+ * `onlineManager` transitions back to online. Network monitoring wiring lives
107
+ * in `OxyProvider.tsx`.
108
+ *
109
+ * Persistence is attached separately via `attachQueryPersistence(...)`.
110
+ * Splitting the steps lets test/SSR callers create a stateless client.
70
111
  */
71
- export const createQueryClient = (storage?: StorageInterface | null): QueryClient => {
112
+ export const createQueryClient = (): QueryClient => {
72
113
  const client = new QueryClient({
73
114
  defaultOptions: {
74
115
  queries: {
@@ -79,35 +120,119 @@ export const createQueryClient = (storage?: StorageInterface | null): QueryClien
79
120
  // Retry 3 times with exponential backoff
80
121
  retry: 3,
81
122
  retryDelay: (attemptIndex) => Math.min(1000 * 2 ** attemptIndex, 30000),
82
- // Refetch on reconnect
123
+ // Refetch on reconnect so stale data is refreshed once online again.
83
124
  refetchOnReconnect: true,
84
125
  // Don't refetch on window focus (better for mobile)
85
126
  refetchOnWindowFocus: false,
86
- // Offline-first: use cache when offline
127
+ // Offline-first: serve cached data immediately, refetch in background.
87
128
  networkMode: 'offlineFirst',
88
129
  },
89
130
  mutations: {
90
131
  // Retry once for mutations
91
132
  retry: 1,
92
- // Offline-first: queue mutations when offline
133
+ // Offline-first: pause and queue mutations when offline.
93
134
  networkMode: 'offlineFirst',
94
135
  },
95
136
  },
96
137
  });
97
138
 
98
- // Note: Persistence is handled by TanStack Query's built-in persistence
99
- // For now, we rely on the query client's default behavior with networkMode: 'offlineFirst'
100
- // The cache will be available in memory and queries will use cached data when offline
101
- // Full persistence to AsyncStorage can be added later with @tanstack/react-query-persist-client if needed
139
+ // Defensive: explicitly resume paused mutations whenever the network
140
+ // transitions back to online. TanStack Query does this internally too,
141
+ // but wiring it here keeps the behaviour robust if a custom onlineManager
142
+ // implementation is swapped in by the host app.
143
+ const unsubscribe = onlineManager.subscribe((isOnline) => {
144
+ if (isOnline) {
145
+ void client.getMutationCache().resumePausedMutations();
146
+ }
147
+ });
148
+
149
+ Object.defineProperty(client, '__oxyOnlineUnsubscribe', {
150
+ value: unsubscribe,
151
+ enumerable: false,
152
+ configurable: true,
153
+ writable: false,
154
+ });
102
155
 
103
156
  return client;
104
157
  };
105
158
 
159
+ export interface AttachPersistenceResult {
160
+ /** Promise that resolves once the persisted cache has been restored. */
161
+ restored: Promise<void>;
162
+ /** Detach the persistence subscription (tests + teardown). */
163
+ unsubscribe: () => void;
164
+ }
165
+
166
+ /**
167
+ * Wire `persistQueryClient` to the supplied storage adapter.
168
+ *
169
+ * Returns once the in-flight restore promise is available so callers can
170
+ * `await result.restored` before rendering UI that depends on cached data.
171
+ *
172
+ * Safe to no-op if `storage` is null/undefined (e.g. server-side render
173
+ * with no host storage).
174
+ */
175
+ export const attachQueryPersistence = (
176
+ queryClient: QueryClient,
177
+ storage: StorageInterface | null | undefined,
178
+ ): AttachPersistenceResult => {
179
+ if (!storage) {
180
+ return {
181
+ restored: Promise.resolve(),
182
+ unsubscribe: () => {},
183
+ };
184
+ }
185
+
186
+ const persister = createAsyncStoragePersister({
187
+ storage: adaptStorage(storage),
188
+ key: QUERY_CACHE_KEY,
189
+ throttleTime: QUERY_PERSIST_THROTTLE_MS,
190
+ });
191
+
192
+ const [unsubscribe, restored] = persistQueryClient({
193
+ queryClient,
194
+ persister,
195
+ maxAge: QUERY_CACHE_MAX_AGE,
196
+ dehydrateOptions: {
197
+ shouldDehydrateQuery,
198
+ shouldDehydrateMutation,
199
+ },
200
+ });
201
+
202
+ restored.catch((error) => {
203
+ if (isDev()) {
204
+ console.warn('[QueryClient] Failed to restore persisted cache', error);
205
+ }
206
+ });
207
+
208
+ return { unsubscribe, restored };
209
+ };
210
+
211
+ // Legacy v1 cache key — kept so we can opportunistically purge stale blobs
212
+ // written by older builds. Safe to drop after a few releases.
213
+ const LEGACY_QUERY_CACHE_KEYS: ReadonlyArray<string> = ['oxy_query_cache'];
214
+
106
215
  /**
107
- * Clear persisted query cache
216
+ * Remove the persisted query+mutation cache (used on full sign-out / data
217
+ * reset). Safe to call even if persistence was never attached. Also clears
218
+ * legacy cache keys from older builds.
108
219
  */
109
220
  export const clearQueryCache = async (storage: StorageInterface): Promise<void> => {
110
- const adapter = createPersistenceAdapter(storage);
111
- await adapter.removeClient();
221
+ const keys = [QUERY_CACHE_KEY, ...LEGACY_QUERY_CACHE_KEYS];
222
+ await Promise.all(
223
+ keys.map(async (key) => {
224
+ try {
225
+ await storage.removeItem(key);
226
+ } catch (error) {
227
+ if (isDev()) {
228
+ console.warn(`[QueryClient] Failed to clear persisted query cache (${key})`, error);
229
+ }
230
+ }
231
+ }),
232
+ );
112
233
  };
113
234
 
235
+ /**
236
+ * Re-export the persisted client shape so callers can type custom persisters.
237
+ */
238
+ export type { PersistedClient };
@@ -1,5 +1,5 @@
1
1
  import { useState, useCallback } from 'react';
2
- import { toast } from '../../lib/sonner';
2
+ import { toast } from '@oxyhq/bloom';
3
3
 
4
4
  interface UseAsyncActionOptions<T> {
5
5
  /** Function to execute */
@@ -63,7 +63,7 @@ export function useAsyncAction<T = void>(
63
63
  setError(null);
64
64
 
65
65
  if (showLoadingToast && loadingMessage) {
66
- toast.loading(loadingMessage);
66
+ toast.info(loadingMessage);
67
67
  }
68
68
 
69
69
  try {
@@ -111,7 +111,7 @@ export async function executeWithToast<T>(
111
111
  const { successMessage, errorMessage, loadingMessage } = options || {};
112
112
 
113
113
  if (loadingMessage) {
114
- toast.loading(loadingMessage);
114
+ toast.info(loadingMessage);
115
115
  }
116
116
 
117
117
  try {
@@ -215,5 +215,3 @@ export function useAuth(): UseAuthReturn {
215
215
  };
216
216
  }
217
217
 
218
- // Re-export useOxy for backward compatibility and advanced usage
219
- export { useOxy } from '../context/OxyContext';
@@ -2,18 +2,26 @@
2
2
  * Avatar Picker Hook
3
3
  *
4
4
  * Extracts avatar selection logic from OxyContext for better modularity.
5
- * Opens the FileManagement bottom sheet in select mode for image files,
6
- * then updates the user's profile avatar.
5
+ *
6
+ * Flow:
7
+ * 1. Open the FileManagement bottom sheet in select mode for image files.
8
+ * 2. After the user picks an image, route to the AvatarCrop screen so they
9
+ * can square-crop + zoom before the avatar is set.
10
+ * 3. The cropped JPEG is uploaded as a NEW file via `oxyServices.assetUpload`
11
+ * and that file becomes the user's avatar.
12
+ *
13
+ * `expo-image-manipulator` is required for the crop step (declared as an
14
+ * optional peer in the consuming app) — see AvatarCropScreen.
7
15
  */
8
16
 
9
17
  import { useCallback } from 'react';
10
- import type { OxyServices } from '@oxyhq/core';
11
- import { translate } from '@oxyhq/core';
18
+ import type { FileMetadata, OxyServices } from '@oxyhq/core';
19
+ import { translate, updateAvatarVisibility } from '@oxyhq/core';
12
20
  import type { QueryClient } from '@tanstack/react-query';
13
- import { toast } from '../../lib/sonner';
21
+ import { toast } from '@oxyhq/bloom';
14
22
  import type { RouteName } from '../navigation/routes';
15
- import { updateAvatarVisibility } from '@oxyhq/core';
16
23
  import { updateProfileWithAvatar } from '../utils/avatarUtils';
24
+ import type { AvatarCropResult } from '../screens/AvatarCropScreen';
17
25
 
18
26
  interface UseAvatarPickerOptions {
19
27
  oxyServices: OxyServices;
@@ -23,6 +31,22 @@ interface UseAvatarPickerOptions {
23
31
  showBottomSheet: (config: { screen: RouteName; props?: Record<string, unknown> }) => void;
24
32
  }
25
33
 
34
+ /** Upload result shape returned by oxyServices.assetUpload (single-file path). */
35
+ interface AssetUploadResult {
36
+ file?: { id?: string };
37
+ files?: Array<{ id?: string }>;
38
+ id?: string;
39
+ }
40
+
41
+ function extractUploadedFileId(result: AssetUploadResult | undefined): string | undefined {
42
+ if (!result) return undefined;
43
+ if (typeof result.id === 'string') return result.id;
44
+ if (result.file?.id) return result.file.id;
45
+ const first = result.files?.[0];
46
+ if (first?.id) return first.id;
47
+ return undefined;
48
+ }
49
+
26
50
  export function useAvatarPicker({
27
51
  oxyServices,
28
52
  currentLanguage,
@@ -30,36 +54,93 @@ export function useAvatarPicker({
30
54
  queryClient,
31
55
  showBottomSheet,
32
56
  }: UseAvatarPickerOptions) {
57
+ /**
58
+ * Final step: take the cropped JPEG, upload it as a new public file, then
59
+ * set it as the user's avatar. Fires success/error toasts.
60
+ */
61
+ const finalizeCroppedAvatar = useCallback(
62
+ async (cropped: AvatarCropResult) => {
63
+ try {
64
+ const uploadResult = (await oxyServices.assetUpload(
65
+ {
66
+ uri: cropped.uri,
67
+ type: cropped.mime,
68
+ name: `avatar-${Date.now()}.jpg`,
69
+ },
70
+ 'public',
71
+ )) as AssetUploadResult;
72
+
73
+ const newFileId = extractUploadedFileId(uploadResult);
74
+ if (!newFileId) {
75
+ throw new Error('Avatar upload succeeded but no file ID was returned');
76
+ }
77
+
78
+ await updateAvatarVisibility(newFileId, oxyServices, 'useAvatarPicker');
79
+ await updateProfileWithAvatar(
80
+ { avatar: newFileId },
81
+ oxyServices,
82
+ activeSessionId,
83
+ queryClient,
84
+ );
85
+
86
+ toast.success(
87
+ translate(currentLanguage ?? undefined, 'editProfile.toasts.avatarUpdated') ||
88
+ 'Avatar updated',
89
+ );
90
+ } catch (e: unknown) {
91
+ const message = e instanceof Error ? e.message : undefined;
92
+ toast.error(
93
+ message ||
94
+ translate(currentLanguage ?? undefined, 'editProfile.toasts.updateAvatarFailed') ||
95
+ 'Failed to update avatar',
96
+ );
97
+ }
98
+ },
99
+ [activeSessionId, currentLanguage, oxyServices, queryClient],
100
+ );
101
+
102
+ /**
103
+ * After the user picks a file in the FileManagement sheet, route to the
104
+ * crop screen with the file's download URL as the source image.
105
+ */
106
+ const handleFilePicked = useCallback(
107
+ (file: FileMetadata) => {
108
+ if (!file.contentType?.startsWith('image/')) {
109
+ toast.error(
110
+ translate(currentLanguage ?? undefined, 'editProfile.toasts.selectImage') ||
111
+ 'Please select an image file',
112
+ );
113
+ return;
114
+ }
115
+
116
+ // Use the public download URL of the picked file as the crop source.
117
+ // The OxyServices file URL endpoints accept image variants, but for
118
+ // cropping we want the original — passing no variant returns it.
119
+ const sourceUri = oxyServices.getFileDownloadUrl(file.id);
120
+
121
+ showBottomSheet({
122
+ screen: 'AvatarCrop',
123
+ props: {
124
+ imageUri: sourceUri,
125
+ onConfirm: finalizeCroppedAvatar,
126
+ },
127
+ });
128
+ },
129
+ [currentLanguage, finalizeCroppedAvatar, oxyServices, showBottomSheet],
130
+ );
131
+
33
132
  const openAvatarPicker = useCallback(() => {
34
133
  showBottomSheet({
35
- screen: 'FileManagement' as RouteName,
134
+ screen: 'FileManagement',
36
135
  props: {
37
136
  selectMode: true,
38
137
  multiSelect: false,
39
138
  disabledMimeTypes: ['video/', 'audio/', 'application/pdf'],
40
139
  afterSelect: 'none',
41
- onSelect: async (file: any) => {
42
- if (!file.contentType.startsWith('image/')) {
43
- toast.error(translate(currentLanguage ?? undefined, 'editProfile.toasts.selectImage') || 'Please select an image file');
44
- return;
45
- }
46
- try {
47
- await updateAvatarVisibility(file.id, oxyServices, 'OxyContext');
48
- await updateProfileWithAvatar(
49
- { avatar: file.id },
50
- oxyServices,
51
- activeSessionId,
52
- queryClient
53
- );
54
- toast.success(translate(currentLanguage ?? undefined, 'editProfile.toasts.avatarUpdated') || 'Avatar updated');
55
- } catch (e: unknown) {
56
- const message = e instanceof Error ? e.message : undefined;
57
- toast.error(message || translate(currentLanguage ?? undefined, 'editProfile.toasts.updateAvatarFailed') || 'Failed to update avatar');
58
- }
59
- },
140
+ onSelect: handleFilePicked,
60
141
  },
61
142
  });
62
- }, [oxyServices, currentLanguage, showBottomSheet, activeSessionId, queryClient]);
143
+ }, [handleFilePicked, showBottomSheet]);
63
144
 
64
145
  return { openAvatarPicker };
65
146
  }
@@ -1,11 +1,5 @@
1
1
  import { useEffect, useState } from 'react';
2
- import { OxyServices } from '@oxyhq/core';
3
-
4
- let oxyInstance: OxyServices | null = null;
5
-
6
- export const setOxyFileUrlInstance = (instance: OxyServices) => {
7
- oxyInstance = instance;
8
- };
2
+ import type { OxyServices } from '@oxyhq/core';
9
3
 
10
4
  export interface UseFileDownloadUrlOptions {
11
5
  variant?: string;
@@ -21,38 +15,21 @@ export interface UseFileDownloadUrlResult {
21
15
  /**
22
16
  * Hook to resolve a file's download URL asynchronously.
23
17
  *
24
- * Prefers the provided `oxyServices` instance, falls back to the module-level
25
- * singleton set via `setOxyFileUrlInstance`.
26
- *
27
18
  * Uses `getFileDownloadUrlAsync` first, falling back to the synchronous
28
19
  * `getFileDownloadUrl` if the async call fails.
29
20
  */
30
21
  export const useFileDownloadUrl = (
31
- fileIdOrServices?: string | OxyServices | null,
32
- fileIdOrOptions?: string | UseFileDownloadUrlOptions | null,
33
- maybeOptions?: UseFileDownloadUrlOptions
22
+ oxyServices: OxyServices | null | undefined,
23
+ fileId: string | null | undefined,
24
+ options?: UseFileDownloadUrlOptions,
34
25
  ): UseFileDownloadUrlResult => {
35
- // Support two call signatures:
36
- // 1. useFileDownloadUrl(oxyServices, fileId, options) — preferred
37
- // 2. useFileDownloadUrl(fileId, options) — legacy (uses singleton)
38
- let services: OxyServices | null;
39
- let fileId: string | null | undefined;
40
- let options: UseFileDownloadUrlOptions | undefined;
41
-
42
- if (fileIdOrServices instanceof OxyServices) {
43
- services = fileIdOrServices;
44
- fileId = typeof fileIdOrOptions === 'string' ? fileIdOrOptions : null;
45
- options = maybeOptions;
46
- } else {
47
- services = oxyInstance;
48
- fileId = typeof fileIdOrServices === 'string' ? fileIdOrServices : null;
49
- options = typeof fileIdOrOptions === 'object' && fileIdOrOptions !== null ? fileIdOrOptions as UseFileDownloadUrlOptions : undefined;
50
- }
51
-
52
26
  const [url, setUrl] = useState<string | null>(null);
53
27
  const [loading, setLoading] = useState(false);
54
28
  const [error, setError] = useState<Error | null>(null);
55
29
 
30
+ const variant = options?.variant;
31
+ const expiresIn = options?.expiresIn;
32
+
56
33
  useEffect(() => {
57
34
  if (!fileId) {
58
35
  setUrl(null);
@@ -61,7 +38,7 @@ export const useFileDownloadUrl = (
61
38
  return;
62
39
  }
63
40
 
64
- if (!services) {
41
+ if (!oxyServices) {
65
42
  setUrl(null);
66
43
  setLoading(false);
67
44
  setError(new Error('OxyServices instance not configured for useFileDownloadUrl'));
@@ -69,22 +46,22 @@ export const useFileDownloadUrl = (
69
46
  }
70
47
 
71
48
  let cancelled = false;
72
- const instance = services;
49
+ const instance = oxyServices;
50
+ const targetFileId = fileId;
73
51
 
74
52
  const load = async () => {
75
53
  setLoading(true);
76
54
  setError(null);
77
55
 
78
56
  try {
79
- const { variant, expiresIn } = options || {};
80
57
  let resolvedUrl: string | null = null;
81
58
 
82
59
  if (typeof instance.getFileDownloadUrlAsync === 'function') {
83
- resolvedUrl = await instance.getFileDownloadUrlAsync(fileId!, variant, expiresIn);
60
+ resolvedUrl = await instance.getFileDownloadUrlAsync(targetFileId, variant, expiresIn);
84
61
  }
85
62
 
86
63
  if (!resolvedUrl && typeof instance.getFileDownloadUrl === 'function') {
87
- resolvedUrl = instance.getFileDownloadUrl(fileId!, variant, expiresIn);
64
+ resolvedUrl = instance.getFileDownloadUrl(targetFileId, variant, expiresIn);
88
65
  }
89
66
 
90
67
  if (!cancelled) {
@@ -94,8 +71,7 @@ export const useFileDownloadUrl = (
94
71
  // Fallback to sync URL on error where possible
95
72
  try {
96
73
  if (typeof instance.getFileDownloadUrl === 'function') {
97
- const { variant, expiresIn } = options || {};
98
- const fallbackUrl = instance.getFileDownloadUrl(fileId!, variant, expiresIn);
74
+ const fallbackUrl = instance.getFileDownloadUrl(targetFileId, variant, expiresIn);
99
75
  if (!cancelled) {
100
76
  setUrl(fallbackUrl || null);
101
77
  setError(err instanceof Error ? err : new Error(String(err)));
@@ -103,7 +79,7 @@ export const useFileDownloadUrl = (
103
79
  return;
104
80
  }
105
81
  } catch {
106
- // ignore secondary failure
82
+ // Secondary failure: surface the original error below.
107
83
  }
108
84
 
109
85
  if (!cancelled) {
@@ -121,7 +97,7 @@ export const useFileDownloadUrl = (
121
97
  return () => {
122
98
  cancelled = true;
123
99
  };
124
- }, [fileId, services, options?.variant, options?.expiresIn]);
100
+ }, [fileId, oxyServices, variant, expiresIn]);
125
101
 
126
102
  return { url, loading, error };
127
103
  };