@oxyhq/services 22.9.0 → 22.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (584) hide show
  1. package/lib/commonjs/index.js +24 -5
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/ui/components/AvatarCameraBadge.js +42 -0
  4. package/lib/commonjs/ui/components/AvatarCameraBadge.js.map +1 -0
  5. package/lib/commonjs/ui/components/{OxyAccountDialog.js → OxyAccountDialogScreen.js} +55 -133
  6. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js.map +1 -0
  7. package/lib/commonjs/ui/components/OxyAuthChooser.js +657 -88
  8. package/lib/commonjs/ui/components/OxyAuthChooser.js.map +1 -1
  9. package/lib/commonjs/ui/components/OxyConsentScreen.js +1 -1
  10. package/lib/commonjs/ui/components/ProfileButton.js +15 -1
  11. package/lib/commonjs/ui/components/ProfileButton.js.map +1 -1
  12. package/lib/commonjs/ui/components/ProfileSummaryCard.js +3 -23
  13. package/lib/commonjs/ui/components/ProfileSummaryCard.js.map +1 -1
  14. package/lib/commonjs/ui/components/RequireOxyAuth.js +1 -1
  15. package/lib/commonjs/ui/components/SurfaceHeaderAction.js +63 -0
  16. package/lib/commonjs/ui/components/SurfaceHeaderAction.js.map +1 -0
  17. package/lib/commonjs/ui/components/SurfaceScreen.js +91 -8
  18. package/lib/commonjs/ui/components/SurfaceScreen.js.map +1 -1
  19. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js +46 -29
  20. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  21. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +47 -23
  22. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -1
  23. package/lib/commonjs/ui/components/oxyAuthChooserStyles.js +81 -19
  24. package/lib/commonjs/ui/components/oxyAuthChooserStyles.js.map +1 -1
  25. package/lib/commonjs/ui/components/photogrid/JustifiedPhotoGrid.js +83 -23
  26. package/lib/commonjs/ui/components/photogrid/JustifiedPhotoGrid.js.map +1 -1
  27. package/lib/commonjs/ui/components/surfaces/ActionSheetSurface.js +83 -0
  28. package/lib/commonjs/ui/components/surfaces/ActionSheetSurface.js.map +1 -0
  29. package/lib/commonjs/ui/context/OxyContext.js +79 -29
  30. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  31. package/lib/commonjs/ui/hooks/queries/queryKeys.js +18 -1
  32. package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -1
  33. package/lib/commonjs/ui/hooks/queries/useFileQueries.js +129 -0
  34. package/lib/commonjs/ui/hooks/queries/useFileQueries.js.map +1 -0
  35. package/lib/commonjs/ui/hooks/useAvatarPicker.js +38 -55
  36. package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +1 -1
  37. package/lib/commonjs/ui/hooks/useReduceMotion.js +57 -0
  38. package/lib/commonjs/ui/hooks/useReduceMotion.js.map +1 -0
  39. package/lib/commonjs/ui/hooks/useSurfaceHeader.js +46 -0
  40. package/lib/commonjs/ui/hooks/useSurfaceHeader.js.map +1 -0
  41. package/lib/commonjs/ui/hooks/useSwitchableAccounts.js +1 -1
  42. package/lib/commonjs/ui/navigation/accountDialogManager.js +36 -2
  43. package/lib/commonjs/ui/navigation/accountDialogManager.js.map +1 -1
  44. package/lib/commonjs/ui/navigation/bottomSheetManager.js +5 -6
  45. package/lib/commonjs/ui/navigation/bottomSheetManager.js.map +1 -1
  46. package/lib/commonjs/ui/navigation/routes.js +4 -3
  47. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  48. package/lib/commonjs/ui/navigation/surfaceBackBridge.js +68 -0
  49. package/lib/commonjs/ui/navigation/surfaceBackBridge.js.map +1 -0
  50. package/lib/commonjs/ui/navigation/surfaceNavStack.js +62 -15
  51. package/lib/commonjs/ui/navigation/surfaceNavStack.js.map +1 -1
  52. package/lib/commonjs/ui/navigation/surfaceRegistry.js +84 -19
  53. package/lib/commonjs/ui/navigation/surfaceRegistry.js.map +1 -1
  54. package/lib/commonjs/ui/navigation/surfaces.js +139 -25
  55. package/lib/commonjs/ui/navigation/surfaces.js.map +1 -1
  56. package/lib/commonjs/ui/screens/AccountMembersScreen.js +214 -283
  57. package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
  58. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +88 -118
  59. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  60. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +22 -36
  61. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  62. package/lib/commonjs/ui/screens/AppInfoScreen.js +219 -226
  63. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
  64. package/lib/commonjs/ui/screens/AvatarCropScreen.js +287 -289
  65. package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
  66. package/lib/commonjs/ui/screens/ChangeAvatarScreen.js +301 -0
  67. package/lib/commonjs/ui/screens/ChangeAvatarScreen.js.map +1 -0
  68. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js +24 -39
  69. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js.map +1 -1
  70. package/lib/commonjs/ui/screens/CreateAccountScreen.js +136 -158
  71. package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
  72. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +29 -36
  73. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
  74. package/lib/commonjs/ui/screens/EditProfileScreen.js +101 -109
  75. package/lib/commonjs/ui/screens/EditProfileScreen.js.map +1 -1
  76. package/lib/commonjs/ui/screens/FAQScreen.js +10 -15
  77. package/lib/commonjs/ui/screens/FAQScreen.js.map +1 -1
  78. package/lib/commonjs/ui/screens/FeedbackScreen.js +8 -16
  79. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  80. package/lib/commonjs/ui/screens/FileManagementScreen.js +403 -627
  81. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  82. package/lib/commonjs/ui/screens/HelpSupportScreen.js +62 -69
  83. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
  84. package/lib/commonjs/ui/screens/HistoryViewScreen.js +63 -79
  85. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
  86. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +69 -98
  87. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
  88. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js +8 -14
  89. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
  90. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +77 -94
  91. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
  92. package/lib/commonjs/ui/screens/ManageAccountScreen.js +99 -134
  93. package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
  94. package/lib/commonjs/ui/screens/NotificationsScreen.js +69 -76
  95. package/lib/commonjs/ui/screens/NotificationsScreen.js.map +1 -1
  96. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +3 -8
  97. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  98. package/lib/commonjs/ui/screens/PreferencesScreen.js +67 -74
  99. package/lib/commonjs/ui/screens/PreferencesScreen.js.map +1 -1
  100. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +55 -91
  101. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  102. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +291 -304
  103. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  104. package/lib/commonjs/ui/screens/ProfileScreen.js +100 -114
  105. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  106. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +38 -45
  107. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
  108. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +44 -57
  109. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  110. package/lib/commonjs/ui/screens/UserLinksScreen.js +24 -31
  111. package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -1
  112. package/lib/commonjs/ui/screens/UserListScreen.js +14 -24
  113. package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
  114. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +16 -48
  115. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  116. package/lib/commonjs/ui/screens/fileManagement/FileLibraryError.js +63 -0
  117. package/lib/commonjs/ui/screens/fileManagement/FileLibraryError.js.map +1 -0
  118. package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js +54 -41
  119. package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
  120. package/lib/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.js +44 -81
  121. package/lib/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.js.map +1 -1
  122. package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js +66 -75
  123. package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js.map +1 -1
  124. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +111 -139
  125. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  126. package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js +13 -20
  127. package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js.map +1 -1
  128. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +14 -27
  129. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  130. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js +68 -85
  131. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  132. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +28 -36
  133. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  134. package/lib/commonjs/ui/stores/resetSessionScopedStores.js +8 -3
  135. package/lib/commonjs/ui/stores/resetSessionScopedStores.js.map +1 -1
  136. package/lib/commonjs/ui/utils/avatarUtils.js +11 -2
  137. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  138. package/lib/commonjs/ui/utils/fileManagement.js +0 -79
  139. package/lib/commonjs/ui/utils/fileManagement.js.map +1 -1
  140. package/lib/module/index.js +12 -5
  141. package/lib/module/index.js.map +1 -1
  142. package/lib/module/ui/components/AvatarCameraBadge.js +40 -0
  143. package/lib/module/ui/components/AvatarCameraBadge.js.map +1 -0
  144. package/lib/module/ui/components/{OxyAccountDialog.js → OxyAccountDialogScreen.js} +57 -135
  145. package/lib/module/ui/components/OxyAccountDialogScreen.js.map +1 -0
  146. package/lib/module/ui/components/OxyAuthChooser.js +659 -91
  147. package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
  148. package/lib/module/ui/components/OxyConsentScreen.js +1 -1
  149. package/lib/module/ui/components/ProfileButton.js +16 -2
  150. package/lib/module/ui/components/ProfileButton.js.map +1 -1
  151. package/lib/module/ui/components/ProfileSummaryCard.js +2 -23
  152. package/lib/module/ui/components/ProfileSummaryCard.js.map +1 -1
  153. package/lib/module/ui/components/RequireOxyAuth.js +1 -1
  154. package/lib/module/ui/components/SurfaceHeaderAction.js +58 -0
  155. package/lib/module/ui/components/SurfaceHeaderAction.js.map +1 -0
  156. package/lib/module/ui/components/SurfaceScreen.js +93 -10
  157. package/lib/module/ui/components/SurfaceScreen.js.map +1 -1
  158. package/lib/module/ui/components/fileManagement/FileDetailsModal.js +46 -29
  159. package/lib/module/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  160. package/lib/module/ui/components/modals/DeleteAccountModal.js +46 -23
  161. package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -1
  162. package/lib/module/ui/components/oxyAuthChooserStyles.js +81 -19
  163. package/lib/module/ui/components/oxyAuthChooserStyles.js.map +1 -1
  164. package/lib/module/ui/components/photogrid/JustifiedPhotoGrid.js +83 -25
  165. package/lib/module/ui/components/photogrid/JustifiedPhotoGrid.js.map +1 -1
  166. package/lib/module/ui/components/surfaces/ActionSheetSurface.js +78 -0
  167. package/lib/module/ui/components/surfaces/ActionSheetSurface.js.map +1 -0
  168. package/lib/module/ui/context/OxyContext.js +80 -30
  169. package/lib/module/ui/context/OxyContext.js.map +1 -1
  170. package/lib/module/ui/hooks/queries/queryKeys.js +16 -0
  171. package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -1
  172. package/lib/module/ui/hooks/queries/useFileQueries.js +120 -0
  173. package/lib/module/ui/hooks/queries/useFileQueries.js.map +1 -0
  174. package/lib/module/ui/hooks/useAvatarPicker.js +38 -55
  175. package/lib/module/ui/hooks/useAvatarPicker.js.map +1 -1
  176. package/lib/module/ui/hooks/useReduceMotion.js +53 -0
  177. package/lib/module/ui/hooks/useReduceMotion.js.map +1 -0
  178. package/lib/module/ui/hooks/useSurfaceHeader.js +42 -0
  179. package/lib/module/ui/hooks/useSurfaceHeader.js.map +1 -0
  180. package/lib/module/ui/hooks/useSwitchableAccounts.js +1 -1
  181. package/lib/module/ui/navigation/accountDialogManager.js +34 -2
  182. package/lib/module/ui/navigation/accountDialogManager.js.map +1 -1
  183. package/lib/module/ui/navigation/bottomSheetManager.js +6 -7
  184. package/lib/module/ui/navigation/bottomSheetManager.js.map +1 -1
  185. package/lib/module/ui/navigation/routes.js +4 -3
  186. package/lib/module/ui/navigation/routes.js.map +1 -1
  187. package/lib/module/ui/navigation/surfaceBackBridge.js +63 -0
  188. package/lib/module/ui/navigation/surfaceBackBridge.js.map +1 -0
  189. package/lib/module/ui/navigation/surfaceNavStack.js +62 -15
  190. package/lib/module/ui/navigation/surfaceNavStack.js.map +1 -1
  191. package/lib/module/ui/navigation/surfaceRegistry.js +84 -19
  192. package/lib/module/ui/navigation/surfaceRegistry.js.map +1 -1
  193. package/lib/module/ui/navigation/surfaces.js +138 -26
  194. package/lib/module/ui/navigation/surfaces.js.map +1 -1
  195. package/lib/module/ui/screens/AccountMembersScreen.js +218 -286
  196. package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
  197. package/lib/module/ui/screens/AccountSettingsScreen.js +92 -121
  198. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  199. package/lib/module/ui/screens/AccountVerificationScreen.js +25 -38
  200. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  201. package/lib/module/ui/screens/AppInfoScreen.js +220 -227
  202. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  203. package/lib/module/ui/screens/AvatarCropScreen.js +289 -291
  204. package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
  205. package/lib/module/ui/screens/ChangeAvatarScreen.js +298 -0
  206. package/lib/module/ui/screens/ChangeAvatarScreen.js.map +1 -0
  207. package/lib/module/ui/screens/ConnectedAppsScreen.js +26 -40
  208. package/lib/module/ui/screens/ConnectedAppsScreen.js.map +1 -1
  209. package/lib/module/ui/screens/CreateAccountScreen.js +139 -160
  210. package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
  211. package/lib/module/ui/screens/EditProfileFieldScreen.js +32 -38
  212. package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
  213. package/lib/module/ui/screens/EditProfileScreen.js +102 -110
  214. package/lib/module/ui/screens/EditProfileScreen.js.map +1 -1
  215. package/lib/module/ui/screens/FAQScreen.js +11 -15
  216. package/lib/module/ui/screens/FAQScreen.js.map +1 -1
  217. package/lib/module/ui/screens/FeedbackScreen.js +10 -17
  218. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  219. package/lib/module/ui/screens/FileManagementScreen.js +408 -631
  220. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  221. package/lib/module/ui/screens/HelpSupportScreen.js +64 -70
  222. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
  223. package/lib/module/ui/screens/HistoryViewScreen.js +65 -81
  224. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  225. package/lib/module/ui/screens/LanguageSelectorScreen.js +71 -99
  226. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  227. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js +10 -15
  228. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
  229. package/lib/module/ui/screens/LegalDocumentsScreen.js +78 -94
  230. package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
  231. package/lib/module/ui/screens/ManageAccountScreen.js +102 -137
  232. package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
  233. package/lib/module/ui/screens/NotificationsScreen.js +71 -77
  234. package/lib/module/ui/screens/NotificationsScreen.js.map +1 -1
  235. package/lib/module/ui/screens/PaymentGatewayScreen.js +4 -9
  236. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  237. package/lib/module/ui/screens/PreferencesScreen.js +69 -75
  238. package/lib/module/ui/screens/PreferencesScreen.js.map +1 -1
  239. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +58 -93
  240. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  241. package/lib/module/ui/screens/PrivacySettingsScreen.js +293 -305
  242. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  243. package/lib/module/ui/screens/ProfileScreen.js +102 -116
  244. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  245. package/lib/module/ui/screens/SavesCollectionsScreen.js +40 -46
  246. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
  247. package/lib/module/ui/screens/SearchSettingsScreen.js +46 -58
  248. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  249. package/lib/module/ui/screens/UserLinksScreen.js +26 -32
  250. package/lib/module/ui/screens/UserLinksScreen.js.map +1 -1
  251. package/lib/module/ui/screens/UserListScreen.js +14 -24
  252. package/lib/module/ui/screens/UserListScreen.js.map +1 -1
  253. package/lib/module/ui/screens/WelcomeNewUserScreen.js +17 -49
  254. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  255. package/lib/module/ui/screens/fileManagement/FileLibraryError.js +59 -0
  256. package/lib/module/ui/screens/fileManagement/FileLibraryError.js.map +1 -0
  257. package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js +54 -42
  258. package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
  259. package/lib/module/ui/screens/fileManagement/hooks/useFileUploadState.js +45 -81
  260. package/lib/module/ui/screens/fileManagement/hooks/useFileUploadState.js.map +1 -1
  261. package/lib/module/ui/screens/trust/TrustAboutScreen.js +67 -75
  262. package/lib/module/ui/screens/trust/TrustAboutScreen.js.map +1 -1
  263. package/lib/module/ui/screens/trust/TrustCenterScreen.js +112 -139
  264. package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  265. package/lib/module/ui/screens/trust/TrustFAQScreen.js +15 -21
  266. package/lib/module/ui/screens/trust/TrustFAQScreen.js.map +1 -1
  267. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +14 -26
  268. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  269. package/lib/module/ui/screens/trust/TrustRewardsScreen.js +69 -85
  270. package/lib/module/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  271. package/lib/module/ui/screens/trust/TrustRulesScreen.js +30 -37
  272. package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  273. package/lib/module/ui/stores/resetSessionScopedStores.js +8 -3
  274. package/lib/module/ui/stores/resetSessionScopedStores.js.map +1 -1
  275. package/lib/module/ui/utils/avatarUtils.js +11 -2
  276. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  277. package/lib/module/ui/utils/fileManagement.js +0 -78
  278. package/lib/module/ui/utils/fileManagement.js.map +1 -1
  279. package/lib/typescript/commonjs/index.d.ts +2 -0
  280. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  281. package/lib/typescript/commonjs/ui/components/AvatarCameraBadge.d.ts +4 -0
  282. package/lib/typescript/commonjs/ui/components/AvatarCameraBadge.d.ts.map +1 -0
  283. package/lib/typescript/{module/ui/components/OxyAccountDialog.d.ts → commonjs/ui/components/OxyAccountDialogScreen.d.ts} +5 -4
  284. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts.map +1 -0
  285. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts +3 -3
  286. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -1
  287. package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts +2 -2
  288. package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts.map +1 -1
  289. package/lib/typescript/commonjs/ui/components/ProfileSummaryCard.d.ts.map +1 -1
  290. package/lib/typescript/commonjs/ui/components/RequireOxyAuth.d.ts +1 -1
  291. package/lib/typescript/commonjs/ui/components/SurfaceHeaderAction.d.ts +16 -0
  292. package/lib/typescript/commonjs/ui/components/SurfaceHeaderAction.d.ts.map +1 -0
  293. package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts +3 -4
  294. package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts.map +1 -1
  295. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts +14 -4
  296. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  297. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts +17 -2
  298. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  299. package/lib/typescript/commonjs/ui/components/oxyAuthChooserStyles.d.ts +75 -13
  300. package/lib/typescript/commonjs/ui/components/oxyAuthChooserStyles.d.ts.map +1 -1
  301. package/lib/typescript/commonjs/ui/components/photogrid/JustifiedPhotoGrid.d.ts +10 -8
  302. package/lib/typescript/commonjs/ui/components/photogrid/JustifiedPhotoGrid.d.ts.map +1 -1
  303. package/lib/typescript/commonjs/ui/components/surfaces/ActionSheetSurface.d.ts +38 -0
  304. package/lib/typescript/commonjs/ui/components/surfaces/ActionSheetSurface.d.ts.map +1 -0
  305. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  306. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts +9 -0
  307. package/lib/typescript/commonjs/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  308. package/lib/typescript/commonjs/ui/hooks/queries/useFileQueries.d.ts +50 -0
  309. package/lib/typescript/commonjs/ui/hooks/queries/useFileQueries.d.ts.map +1 -0
  310. package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts +17 -16
  311. package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts.map +1 -1
  312. package/lib/typescript/commonjs/ui/hooks/useReduceMotion.d.ts +14 -0
  313. package/lib/typescript/commonjs/ui/hooks/useReduceMotion.d.ts.map +1 -0
  314. package/lib/typescript/commonjs/ui/hooks/useSurfaceHeader.d.ts +31 -0
  315. package/lib/typescript/commonjs/ui/hooks/useSurfaceHeader.d.ts.map +1 -0
  316. package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts +1 -1
  317. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts +27 -2
  318. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts.map +1 -1
  319. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts +4 -5
  320. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  321. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +1 -1
  322. package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
  323. package/lib/typescript/commonjs/ui/navigation/surfaceBackBridge.d.ts +16 -0
  324. package/lib/typescript/commonjs/ui/navigation/surfaceBackBridge.d.ts.map +1 -0
  325. package/lib/typescript/commonjs/ui/navigation/surfaceNavStack.d.ts +21 -0
  326. package/lib/typescript/commonjs/ui/navigation/surfaceNavStack.d.ts.map +1 -1
  327. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts +101 -23
  328. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts.map +1 -1
  329. package/lib/typescript/commonjs/ui/navigation/surfaces.d.ts +42 -11
  330. package/lib/typescript/commonjs/ui/navigation/surfaces.d.ts.map +1 -1
  331. package/lib/typescript/commonjs/ui/screens/AccountMembersScreen.d.ts.map +1 -1
  332. package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  333. package/lib/typescript/commonjs/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  334. package/lib/typescript/commonjs/ui/screens/AppInfoScreen.d.ts.map +1 -1
  335. package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts +18 -9
  336. package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  337. package/lib/typescript/commonjs/ui/screens/ChangeAvatarScreen.d.ts +34 -0
  338. package/lib/typescript/commonjs/ui/screens/ChangeAvatarScreen.d.ts.map +1 -0
  339. package/lib/typescript/commonjs/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
  340. package/lib/typescript/commonjs/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  341. package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  342. package/lib/typescript/commonjs/ui/screens/EditProfileScreen.d.ts.map +1 -1
  343. package/lib/typescript/commonjs/ui/screens/FAQScreen.d.ts.map +1 -1
  344. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts.map +1 -1
  345. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  346. package/lib/typescript/commonjs/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  347. package/lib/typescript/commonjs/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  348. package/lib/typescript/commonjs/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  349. package/lib/typescript/commonjs/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -1
  350. package/lib/typescript/commonjs/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  351. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts +1 -1
  352. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  353. package/lib/typescript/commonjs/ui/screens/NotificationsScreen.d.ts.map +1 -1
  354. package/lib/typescript/commonjs/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  355. package/lib/typescript/commonjs/ui/screens/PreferencesScreen.d.ts.map +1 -1
  356. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  357. package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  358. package/lib/typescript/commonjs/ui/screens/ProfileScreen.d.ts.map +1 -1
  359. package/lib/typescript/commonjs/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  360. package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  361. package/lib/typescript/commonjs/ui/screens/UserLinksScreen.d.ts.map +1 -1
  362. package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts.map +1 -1
  363. package/lib/typescript/commonjs/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  364. package/lib/typescript/commonjs/ui/screens/fileManagement/FileLibraryError.d.ts +23 -0
  365. package/lib/typescript/commonjs/ui/screens/fileManagement/FileLibraryError.d.ts.map +1 -0
  366. package/lib/typescript/commonjs/ui/screens/fileManagement/PhotoPickerSection.d.ts +4 -0
  367. package/lib/typescript/commonjs/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
  368. package/lib/typescript/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.d.ts +10 -2
  369. package/lib/typescript/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.d.ts.map +1 -1
  370. package/lib/typescript/commonjs/ui/screens/trust/TrustAboutScreen.d.ts.map +1 -1
  371. package/lib/typescript/commonjs/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  372. package/lib/typescript/commonjs/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -1
  373. package/lib/typescript/commonjs/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  374. package/lib/typescript/commonjs/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  375. package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  376. package/lib/typescript/commonjs/ui/stores/resetSessionScopedStores.d.ts +8 -1
  377. package/lib/typescript/commonjs/ui/stores/resetSessionScopedStores.d.ts.map +1 -1
  378. package/lib/typescript/commonjs/ui/types/navigation.d.ts +10 -0
  379. package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
  380. package/lib/typescript/commonjs/ui/utils/avatarUtils.d.ts.map +1 -1
  381. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts +0 -48
  382. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts.map +1 -1
  383. package/lib/typescript/module/index.d.ts +2 -0
  384. package/lib/typescript/module/index.d.ts.map +1 -1
  385. package/lib/typescript/module/ui/components/AvatarCameraBadge.d.ts +4 -0
  386. package/lib/typescript/module/ui/components/AvatarCameraBadge.d.ts.map +1 -0
  387. package/lib/typescript/{commonjs/ui/components/OxyAccountDialog.d.ts → module/ui/components/OxyAccountDialogScreen.d.ts} +5 -4
  388. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts.map +1 -0
  389. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts +3 -3
  390. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
  391. package/lib/typescript/module/ui/components/ProfileButton.d.ts +2 -2
  392. package/lib/typescript/module/ui/components/ProfileButton.d.ts.map +1 -1
  393. package/lib/typescript/module/ui/components/ProfileSummaryCard.d.ts.map +1 -1
  394. package/lib/typescript/module/ui/components/RequireOxyAuth.d.ts +1 -1
  395. package/lib/typescript/module/ui/components/SurfaceHeaderAction.d.ts +16 -0
  396. package/lib/typescript/module/ui/components/SurfaceHeaderAction.d.ts.map +1 -0
  397. package/lib/typescript/module/ui/components/SurfaceScreen.d.ts +3 -4
  398. package/lib/typescript/module/ui/components/SurfaceScreen.d.ts.map +1 -1
  399. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts +14 -4
  400. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  401. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts +17 -2
  402. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  403. package/lib/typescript/module/ui/components/oxyAuthChooserStyles.d.ts +75 -13
  404. package/lib/typescript/module/ui/components/oxyAuthChooserStyles.d.ts.map +1 -1
  405. package/lib/typescript/module/ui/components/photogrid/JustifiedPhotoGrid.d.ts +10 -8
  406. package/lib/typescript/module/ui/components/photogrid/JustifiedPhotoGrid.d.ts.map +1 -1
  407. package/lib/typescript/module/ui/components/surfaces/ActionSheetSurface.d.ts +38 -0
  408. package/lib/typescript/module/ui/components/surfaces/ActionSheetSurface.d.ts.map +1 -0
  409. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  410. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts +9 -0
  411. package/lib/typescript/module/ui/hooks/queries/queryKeys.d.ts.map +1 -1
  412. package/lib/typescript/module/ui/hooks/queries/useFileQueries.d.ts +50 -0
  413. package/lib/typescript/module/ui/hooks/queries/useFileQueries.d.ts.map +1 -0
  414. package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts +17 -16
  415. package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts.map +1 -1
  416. package/lib/typescript/module/ui/hooks/useReduceMotion.d.ts +14 -0
  417. package/lib/typescript/module/ui/hooks/useReduceMotion.d.ts.map +1 -0
  418. package/lib/typescript/module/ui/hooks/useSurfaceHeader.d.ts +31 -0
  419. package/lib/typescript/module/ui/hooks/useSurfaceHeader.d.ts.map +1 -0
  420. package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts +1 -1
  421. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts +27 -2
  422. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts.map +1 -1
  423. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts +4 -5
  424. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  425. package/lib/typescript/module/ui/navigation/routes.d.ts +1 -1
  426. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  427. package/lib/typescript/module/ui/navigation/surfaceBackBridge.d.ts +16 -0
  428. package/lib/typescript/module/ui/navigation/surfaceBackBridge.d.ts.map +1 -0
  429. package/lib/typescript/module/ui/navigation/surfaceNavStack.d.ts +21 -0
  430. package/lib/typescript/module/ui/navigation/surfaceNavStack.d.ts.map +1 -1
  431. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts +101 -23
  432. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts.map +1 -1
  433. package/lib/typescript/module/ui/navigation/surfaces.d.ts +42 -11
  434. package/lib/typescript/module/ui/navigation/surfaces.d.ts.map +1 -1
  435. package/lib/typescript/module/ui/screens/AccountMembersScreen.d.ts.map +1 -1
  436. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  437. package/lib/typescript/module/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  438. package/lib/typescript/module/ui/screens/AppInfoScreen.d.ts.map +1 -1
  439. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts +18 -9
  440. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  441. package/lib/typescript/module/ui/screens/ChangeAvatarScreen.d.ts +34 -0
  442. package/lib/typescript/module/ui/screens/ChangeAvatarScreen.d.ts.map +1 -0
  443. package/lib/typescript/module/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
  444. package/lib/typescript/module/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  445. package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  446. package/lib/typescript/module/ui/screens/EditProfileScreen.d.ts.map +1 -1
  447. package/lib/typescript/module/ui/screens/FAQScreen.d.ts.map +1 -1
  448. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts.map +1 -1
  449. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  450. package/lib/typescript/module/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  451. package/lib/typescript/module/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  452. package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  453. package/lib/typescript/module/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -1
  454. package/lib/typescript/module/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  455. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts +1 -1
  456. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  457. package/lib/typescript/module/ui/screens/NotificationsScreen.d.ts.map +1 -1
  458. package/lib/typescript/module/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  459. package/lib/typescript/module/ui/screens/PreferencesScreen.d.ts.map +1 -1
  460. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  461. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  462. package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
  463. package/lib/typescript/module/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  464. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  465. package/lib/typescript/module/ui/screens/UserLinksScreen.d.ts.map +1 -1
  466. package/lib/typescript/module/ui/screens/UserListScreen.d.ts.map +1 -1
  467. package/lib/typescript/module/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  468. package/lib/typescript/module/ui/screens/fileManagement/FileLibraryError.d.ts +23 -0
  469. package/lib/typescript/module/ui/screens/fileManagement/FileLibraryError.d.ts.map +1 -0
  470. package/lib/typescript/module/ui/screens/fileManagement/PhotoPickerSection.d.ts +4 -0
  471. package/lib/typescript/module/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
  472. package/lib/typescript/module/ui/screens/fileManagement/hooks/useFileUploadState.d.ts +10 -2
  473. package/lib/typescript/module/ui/screens/fileManagement/hooks/useFileUploadState.d.ts.map +1 -1
  474. package/lib/typescript/module/ui/screens/trust/TrustAboutScreen.d.ts.map +1 -1
  475. package/lib/typescript/module/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  476. package/lib/typescript/module/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -1
  477. package/lib/typescript/module/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  478. package/lib/typescript/module/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  479. package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  480. package/lib/typescript/module/ui/stores/resetSessionScopedStores.d.ts +8 -1
  481. package/lib/typescript/module/ui/stores/resetSessionScopedStores.d.ts.map +1 -1
  482. package/lib/typescript/module/ui/types/navigation.d.ts +10 -0
  483. package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
  484. package/lib/typescript/module/ui/utils/avatarUtils.d.ts.map +1 -1
  485. package/lib/typescript/module/ui/utils/fileManagement.d.ts +0 -48
  486. package/lib/typescript/module/ui/utils/fileManagement.d.ts.map +1 -1
  487. package/package.json +9 -5
  488. package/src/index.ts +12 -5
  489. package/src/ui/components/AvatarCameraBadge.tsx +35 -0
  490. package/src/ui/components/{OxyAccountDialog.tsx → OxyAccountDialogScreen.tsx} +50 -116
  491. package/src/ui/components/OxyAuthChooser.tsx +743 -86
  492. package/src/ui/components/OxyConsentScreen.tsx +1 -1
  493. package/src/ui/components/ProfileButton.tsx +18 -3
  494. package/src/ui/components/ProfileSummaryCard.tsx +2 -25
  495. package/src/ui/components/RequireOxyAuth.tsx +1 -1
  496. package/src/ui/components/SurfaceHeaderAction.tsx +60 -0
  497. package/src/ui/components/SurfaceScreen.tsx +108 -14
  498. package/src/ui/components/fileManagement/FileDetailsModal.tsx +50 -36
  499. package/src/ui/components/modals/DeleteAccountModal.tsx +47 -26
  500. package/src/ui/components/oxyAuthChooserStyles.ts +78 -16
  501. package/src/ui/components/photogrid/JustifiedPhotoGrid.tsx +158 -84
  502. package/src/ui/components/photogrid/__tests__/chunkPhotos.test.ts +51 -0
  503. package/src/ui/components/surfaces/ActionSheetSurface.tsx +98 -0
  504. package/src/ui/context/OxyContext.tsx +79 -25
  505. package/src/ui/hooks/queries/queryKeys.ts +15 -0
  506. package/src/ui/hooks/queries/useFileQueries.ts +162 -0
  507. package/src/ui/hooks/useAvatarPicker.ts +46 -74
  508. package/src/ui/hooks/useReduceMotion.ts +58 -0
  509. package/src/ui/hooks/useSurfaceHeader.ts +57 -0
  510. package/src/ui/hooks/useSwitchableAccounts.ts +1 -1
  511. package/src/ui/navigation/__tests__/getSurfaceConfig.test.ts +55 -7
  512. package/src/ui/navigation/__tests__/surfaceNavStack.test.ts +149 -0
  513. package/src/ui/navigation/accountDialogManager.ts +42 -2
  514. package/src/ui/navigation/bottomSheetManager.ts +6 -7
  515. package/src/ui/navigation/routes.ts +6 -4
  516. package/src/ui/navigation/surfaceBackBridge.ts +69 -0
  517. package/src/ui/navigation/surfaceNavStack.ts +72 -9
  518. package/src/ui/navigation/surfaceRegistry.ts +164 -24
  519. package/src/ui/navigation/surfaces.ts +137 -30
  520. package/src/ui/screens/AccountMembersScreen.tsx +39 -100
  521. package/src/ui/screens/AccountSettingsScreen.tsx +32 -54
  522. package/src/ui/screens/AccountVerificationScreen.tsx +23 -51
  523. package/src/ui/screens/AppInfoScreen.tsx +6 -13
  524. package/src/ui/screens/AvatarCropScreen.tsx +340 -311
  525. package/src/ui/screens/ChangeAvatarScreen.tsx +359 -0
  526. package/src/ui/screens/ConnectedAppsScreen.tsx +39 -60
  527. package/src/ui/screens/CreateAccountScreen.tsx +13 -39
  528. package/src/ui/screens/EditProfileFieldScreen.tsx +30 -48
  529. package/src/ui/screens/EditProfileScreen.tsx +7 -16
  530. package/src/ui/screens/FAQScreen.tsx +9 -13
  531. package/src/ui/screens/FeedbackScreen.tsx +8 -22
  532. package/src/ui/screens/FileManagementScreen.tsx +370 -610
  533. package/src/ui/screens/HelpSupportScreen.tsx +7 -13
  534. package/src/ui/screens/HistoryViewScreen.tsx +26 -31
  535. package/src/ui/screens/LanguageSelectorScreen.tsx +12 -46
  536. package/src/ui/screens/LearnMoreUsernamesScreen.tsx +8 -16
  537. package/src/ui/screens/LegalDocumentsScreen.tsx +7 -22
  538. package/src/ui/screens/ManageAccountScreen.tsx +96 -165
  539. package/src/ui/screens/NotificationsScreen.tsx +7 -13
  540. package/src/ui/screens/PaymentGatewayScreen.tsx +3 -10
  541. package/src/ui/screens/PreferencesScreen.tsx +7 -13
  542. package/src/ui/screens/PremiumSubscriptionScreen.tsx +52 -90
  543. package/src/ui/screens/PrivacySettingsScreen.tsx +9 -21
  544. package/src/ui/screens/ProfileScreen.tsx +9 -11
  545. package/src/ui/screens/SavesCollectionsScreen.tsx +7 -13
  546. package/src/ui/screens/SearchSettingsScreen.tsx +9 -21
  547. package/src/ui/screens/UserLinksScreen.tsx +7 -14
  548. package/src/ui/screens/UserListScreen.tsx +2 -5
  549. package/src/ui/screens/WelcomeNewUserScreen.tsx +18 -48
  550. package/src/ui/screens/fileManagement/FileLibraryError.tsx +56 -0
  551. package/src/ui/screens/fileManagement/PhotoPickerSection.tsx +56 -46
  552. package/src/ui/screens/fileManagement/hooks/useFileUploadState.ts +55 -71
  553. package/src/ui/screens/trust/TrustAboutScreen.tsx +10 -17
  554. package/src/ui/screens/trust/TrustCenterScreen.tsx +9 -28
  555. package/src/ui/screens/trust/TrustFAQScreen.tsx +15 -18
  556. package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +3 -5
  557. package/src/ui/screens/trust/TrustRewardsScreen.tsx +11 -26
  558. package/src/ui/screens/trust/TrustRulesScreen.tsx +10 -13
  559. package/src/ui/stores/resetSessionScopedStores.ts +8 -3
  560. package/src/ui/types/navigation.ts +10 -0
  561. package/src/ui/utils/avatarUtils.ts +11 -2
  562. package/src/ui/utils/fileManagement.ts +1 -101
  563. package/lib/commonjs/ui/components/Header.js +0 -305
  564. package/lib/commonjs/ui/components/Header.js.map +0 -1
  565. package/lib/commonjs/ui/components/OxyAccountDialog.js.map +0 -1
  566. package/lib/commonjs/ui/stores/fileStore.js +0 -153
  567. package/lib/commonjs/ui/stores/fileStore.js.map +0 -1
  568. package/lib/module/ui/components/Header.js +0 -299
  569. package/lib/module/ui/components/Header.js.map +0 -1
  570. package/lib/module/ui/components/OxyAccountDialog.js.map +0 -1
  571. package/lib/module/ui/stores/fileStore.js +0 -145
  572. package/lib/module/ui/stores/fileStore.js.map +0 -1
  573. package/lib/typescript/commonjs/ui/components/Header.d.ts +0 -33
  574. package/lib/typescript/commonjs/ui/components/Header.d.ts.map +0 -1
  575. package/lib/typescript/commonjs/ui/components/OxyAccountDialog.d.ts.map +0 -1
  576. package/lib/typescript/commonjs/ui/stores/fileStore.d.ts +0 -31
  577. package/lib/typescript/commonjs/ui/stores/fileStore.d.ts.map +0 -1
  578. package/lib/typescript/module/ui/components/Header.d.ts +0 -33
  579. package/lib/typescript/module/ui/components/Header.d.ts.map +0 -1
  580. package/lib/typescript/module/ui/components/OxyAccountDialog.d.ts.map +0 -1
  581. package/lib/typescript/module/ui/stores/fileStore.d.ts +0 -31
  582. package/lib/typescript/module/ui/stores/fileStore.d.ts.map +0 -1
  583. package/src/ui/components/Header.tsx +0 -224
  584. package/src/ui/stores/fileStore.ts +0 -118
@@ -2,14 +2,13 @@ import type React from 'react';
2
2
  import { useCallback, useMemo, useState } from 'react';
3
3
  import {
4
4
  View,
5
- ScrollView,
6
5
  StyleSheet,
7
6
  ActivityIndicator,
8
- RefreshControl,
9
7
  Platform,
10
8
  } from 'react-native';
11
9
  import { Ionicons } from '@expo/vector-icons';
12
- import { Dialog, toast, useDialogControl } from '@oxyhq/bloom';
10
+ import { toast } from '@oxyhq/bloom';
11
+ import { surfaces } from '@oxyhq/bloom/surfaces';
13
12
  import { useTheme } from '@oxyhq/bloom/theme';
14
13
  import { Text } from '@oxyhq/bloom/typography';
15
14
  import { SettingsListGroup, SettingsListItem } from '@oxyhq/bloom/settings-list';
@@ -20,12 +19,13 @@ import {
20
19
  packageInfo,
21
20
  } from '@oxyhq/core';
22
21
  import type { BaseScreenProps } from '../types/navigation';
23
- import Header from '../components/Header';
24
22
  import ProfileSummaryCard from '../components/ProfileSummaryCard';
25
23
  import { SettingsIcon } from '../components/SettingsIcon';
26
- import DeleteAccountModal from '../components/modals/DeleteAccountModal';
24
+ import { presentDeleteAccount } from '../components/modals/DeleteAccountModal';
25
+ import { presentActionSheet } from '../components/surfaces/ActionSheetSurface';
27
26
  import { useOxy } from '../context/OxyContext';
28
27
  import { useI18n } from '../hooks/useI18n';
28
+ import { useSurfaceHeader } from '../hooks/useSurfaceHeader';
29
29
  import { useCurrentUser } from '../hooks/queries/useAccountQueries';
30
30
  import { useUserSubscription } from '../hooks/queries/usePaymentQueries';
31
31
  import { useDeviceSessions } from '../hooks/queries/useServicesQueries';
@@ -77,7 +77,7 @@ const formatRelative = (dateString?: string): string => {
77
77
  * Replaces AccountOverview + AccountSettings + the per-account half of
78
78
  * SessionManagement. Lists ONLY the active user's profile, sessions on this
79
79
  * device, and security/destructive actions for THIS account. Multi-account
80
- * surface lives in the unified `OxyAccountDialog` — keep these concerns separate.
80
+ * surface lives in the unified `OxyAccountDialogScreen` — keep these concerns separate.
81
81
  */
82
82
  const ManageAccountScreen: React.FC<BaseScreenProps> = ({
83
83
  onClose,
@@ -86,6 +86,8 @@ const ManageAccountScreen: React.FC<BaseScreenProps> = ({
86
86
  }) => {
87
87
  const bloomTheme = useTheme();
88
88
  const { t, locale } = useI18n();
89
+
90
+ useSurfaceHeader({ title: t('manageAccount.title') || 'Manage your Oxy Account' });
89
91
  const {
90
92
  user: contextUser,
91
93
  isAuthenticated,
@@ -112,16 +114,8 @@ const ManageAccountScreen: React.FC<BaseScreenProps> = ({
112
114
  data: deviceSessions,
113
115
  isLoading: deviceSessionsLoading,
114
116
  refetch: refetchDeviceSessions,
115
- isRefetching: deviceSessionsRefetching,
116
117
  } = useDeviceSessions({ enabled: isAuthenticated && !!activeSessionId });
117
118
 
118
- const signOutDialog = useDialogControl();
119
- const signOutAllDevicesDialog = useDialogControl();
120
- const removeDeviceDialog = useDialogControl();
121
- const downloadDataDialog = useDialogControl();
122
- const deleteAccountDialog = useDialogControl();
123
-
124
- const [pendingRemoveDevice, setPendingRemoveDevice] = useState<DeviceSessionRow | null>(null);
125
119
  const [removingDeviceId, setRemovingDeviceId] = useState<string | null>(null);
126
120
  const [signingOutAllDevices, setSigningOutAllDevices] = useState(false);
127
121
  const [signingOut, setSigningOut] = useState(false);
@@ -138,6 +132,16 @@ const ManageAccountScreen: React.FC<BaseScreenProps> = ({
138
132
  if (signingOut) {
139
133
  return;
140
134
  }
135
+ const confirmed = await surfaces.confirm({
136
+ title: t('common.actions.signOut') || 'Sign out',
137
+ message: t('common.confirms.signOut') || 'Are you sure you want to sign out?',
138
+ confirmLabel: t('common.actions.signOut') || 'Sign out',
139
+ cancelLabel: t('common.cancel') || 'Cancel',
140
+ destructive: true,
141
+ });
142
+ if (!confirmed) {
143
+ return;
144
+ }
141
145
  setSigningOut(true);
142
146
  try {
143
147
  await logout();
@@ -151,37 +155,57 @@ const ManageAccountScreen: React.FC<BaseScreenProps> = ({
151
155
  }
152
156
  }, [signingOut, logout, t, onClose]);
153
157
 
154
- const confirmRemoveDevice = useCallback((device: DeviceSessionRow) => {
155
- setPendingRemoveDevice(device);
156
- removeDeviceDialog.open();
157
- }, [removeDeviceDialog]);
158
-
159
- const handleRemoveDevice = useCallback(async () => {
160
- if (!pendingRemoveDevice || !activeSessionId) {
158
+ const confirmRemoveDevice = useCallback(async (device: DeviceSessionRow) => {
159
+ if (!activeSessionId) {
160
+ return;
161
+ }
162
+ const confirmed = await surfaces.confirm({
163
+ title: t('manageAccount.confirms.removeDeviceTitle') || 'Remove device',
164
+ message:
165
+ t('manageAccount.confirms.removeDevice', { name: device.deviceName })
166
+ || `Sign out from "${device.deviceName}"?`,
167
+ confirmLabel: t('common.remove') || 'Remove',
168
+ cancelLabel: t('common.cancel') || 'Cancel',
169
+ destructive: true,
170
+ });
171
+ if (!confirmed) {
161
172
  return;
162
173
  }
163
- const target = pendingRemoveDevice;
164
- setRemovingDeviceId(target.sessionId);
174
+ setRemovingDeviceId(device.sessionId);
165
175
  try {
166
- await oxyServices.logoutSession(activeSessionId, target.sessionId);
176
+ await oxyServices.logoutSession(activeSessionId, device.sessionId);
167
177
  await refetchDeviceSessions();
168
178
  toast.success(
169
- t('manageAccount.toasts.deviceRemoved', { name: target.deviceName })
170
- || `Signed out from ${target.deviceName}`,
179
+ t('manageAccount.toasts.deviceRemoved', { name: device.deviceName })
180
+ || `Signed out from ${device.deviceName}`,
171
181
  );
172
182
  } catch (error) {
173
183
  loggerUtil.warn('Remove device failed', { component: 'ManageAccountScreen' }, error as unknown);
174
184
  toast.error(t('manageAccount.toasts.deviceRemoveFailed') || 'Failed to remove device');
175
185
  } finally {
176
186
  setRemovingDeviceId(null);
177
- setPendingRemoveDevice(null);
178
187
  }
179
- }, [pendingRemoveDevice, activeSessionId, oxyServices, refetchDeviceSessions, t]);
188
+ }, [activeSessionId, oxyServices, refetchDeviceSessions, t]);
180
189
 
181
190
  const handleSignOutAllDevices = useCallback(async () => {
182
191
  if (!activeSessionId || signingOutAllDevices) {
183
192
  return;
184
193
  }
194
+ const otherDeviceCount = ((deviceSessions ?? []) as DeviceSessionRow[]).filter(
195
+ (device) => !device.isCurrent,
196
+ ).length;
197
+ const confirmed = await surfaces.confirm({
198
+ title: t('manageAccount.confirms.signOutAllDevicesTitle') || 'Sign out of all other devices',
199
+ message:
200
+ t('manageAccount.confirms.signOutAllDevices', { count: otherDeviceCount })
201
+ || `End ${otherDeviceCount} other device session(s)? This won't sign you out here.`,
202
+ confirmLabel: t('common.actions.signOut') || 'Sign out',
203
+ cancelLabel: t('common.cancel') || 'Cancel',
204
+ destructive: true,
205
+ });
206
+ if (!confirmed) {
207
+ return;
208
+ }
185
209
  setSigningOutAllDevices(true);
186
210
  try {
187
211
  await oxyServices.logoutAllDeviceSessions(activeSessionId);
@@ -199,7 +223,7 @@ const ManageAccountScreen: React.FC<BaseScreenProps> = ({
199
223
  } finally {
200
224
  setSigningOutAllDevices(false);
201
225
  }
202
- }, [activeSessionId, signingOutAllDevices, oxyServices, refetchDeviceSessions, t]);
226
+ }, [activeSessionId, signingOutAllDevices, deviceSessions, oxyServices, refetchDeviceSessions, t]);
203
227
 
204
228
  const performDownload = useCallback(
205
229
  async (format: 'json' | 'csv') => {
@@ -245,6 +269,9 @@ const ManageAccountScreen: React.FC<BaseScreenProps> = ({
245
269
  [oxyServices, user, t],
246
270
  );
247
271
 
272
+ // Runs the actual deletion from inside the delete-account surface; it throws
273
+ // on failure so the surface can surface the error and stay open. Sign-out +
274
+ // close happen in `handleDeleteAccount` once the surface resolves `true`.
248
275
  const handleConfirmDelete = useCallback(
249
276
  async (confirmText: string) => {
250
277
  if (!user) {
@@ -258,62 +285,70 @@ const ManageAccountScreen: React.FC<BaseScreenProps> = ({
258
285
  t('accountOverview.items.deleteAccount.success')
259
286
  || 'Account deleted successfully',
260
287
  );
261
- deleteAccountDialog.close();
262
- await logout();
263
- onClose?.();
264
288
  },
265
- [oxyServices, user, logout, onClose, t, deleteAccountDialog],
289
+ [oxyServices, user, t],
266
290
  );
267
291
 
268
- const handleDownloadData = useCallback(() => {
292
+ const handleDownloadData = useCallback(async () => {
269
293
  if (!user) {
270
294
  toast.error(
271
295
  t('accountOverview.items.downloadData.error') || 'Service not available',
272
296
  );
273
297
  return;
274
298
  }
275
- downloadDataDialog.open();
276
- }, [user, t, downloadDataDialog]);
299
+ const format = await presentActionSheet<'json' | 'csv'>({
300
+ title: t('accountOverview.items.downloadData.confirmTitle') || 'Download account data',
301
+ message:
302
+ t('accountOverview.items.downloadData.confirmMessage')
303
+ || 'Choose the format for your account data export:',
304
+ options: [
305
+ { label: 'JSON', value: 'json' },
306
+ { label: 'CSV', value: 'csv' },
307
+ ],
308
+ cancelLabel: t('common.cancel') || 'Cancel',
309
+ });
310
+ if (format) {
311
+ await performDownload(format);
312
+ }
313
+ }, [user, t, performDownload]);
277
314
 
278
- const handleDeleteAccount = useCallback(() => {
315
+ const handleDeleteAccount = useCallback(async () => {
279
316
  if (!user) {
280
317
  toast.error(
281
318
  t('accountOverview.items.deleteAccount.error') || 'User not available',
282
319
  );
283
320
  return;
284
321
  }
285
- deleteAccountDialog.open();
286
- }, [user, t, deleteAccountDialog]);
322
+ const deleted = await presentDeleteAccount({
323
+ username: user.username || '',
324
+ onDelete: handleConfirmDelete,
325
+ t,
326
+ });
327
+ if (deleted) {
328
+ await logout();
329
+ onClose?.();
330
+ }
331
+ }, [user, t, handleConfirmDelete, logout, onClose]);
287
332
 
288
333
  if (!isAuthenticated) {
289
334
  return (
290
- <View className="flex-1 bg-bg">
291
- <Header
292
- title={t('manageAccount.title') || 'Manage your Oxy Account'}
293
- onBack={goBack || onClose}
294
- elevation="subtle"
295
- />
296
- <View style={styles.center}>
335
+ <>
336
+ <View className="items-center py-space-40">
297
337
  <Text className="text-text font-medium text-base">
298
338
  {t('common.status.notSignedIn') || 'Not signed in'}
299
339
  </Text>
300
340
  </View>
301
- </View>
341
+ </>
302
342
  );
303
343
  }
304
344
 
305
345
  if (userLoading && !user) {
306
346
  return (
307
- <View className="flex-1 bg-bg">
308
- <Header
309
- title={t('manageAccount.title') || 'Manage your Oxy Account'}
310
- onBack={goBack || onClose}
311
- elevation="subtle"
312
- />
313
- <View style={styles.center}>
347
+ <>
348
+ <View className="items-center py-space-40">
314
349
  <ActivityIndicator color={bloomTheme.colors.primary} size="large" />
315
350
  </View>
316
- </View>
351
+ </>
317
352
  );
318
353
  }
319
354
 
@@ -321,23 +356,8 @@ const ManageAccountScreen: React.FC<BaseScreenProps> = ({
321
356
  const otherDevices = deviceRows.filter((d) => !d.isCurrent);
322
357
 
323
358
  return (
324
- <View className="flex-1 bg-bg">
325
- <Header
326
- title={t('manageAccount.title') || 'Manage your Oxy Account'}
327
- onBack={goBack || onClose}
328
- elevation="subtle"
329
- />
330
- <ScrollView
331
- className="flex-1"
332
- contentContainerClassName="px-screen-margin pb-space-24"
333
- refreshControl={
334
- <RefreshControl
335
- refreshing={deviceSessionsRefetching}
336
- onRefresh={refetchDeviceSessions}
337
- tintColor={bloomTheme.colors.primary}
338
- />
339
- }
340
- >
359
+ <>
360
+ <View className="px-screen-margin pb-space-24">
341
361
  {/* Profile card */}
342
362
  <ProfileSummaryCard
343
363
  displayName={displayName}
@@ -517,7 +537,7 @@ const ManageAccountScreen: React.FC<BaseScreenProps> = ({
517
537
  })
518
538
  || `End ${otherDevices.length} other device session(s)`
519
539
  }
520
- onPress={() => signOutAllDevicesDialog.open()}
540
+ onPress={handleSignOutAllDevices}
521
541
  destructive
522
542
  showChevron={false}
523
543
  disabled={signingOutAllDevices}
@@ -875,7 +895,7 @@ const ManageAccountScreen: React.FC<BaseScreenProps> = ({
875
895
  t('manageAccount.signOutOfThisAccount')
876
896
  || 'Sign out of this account'
877
897
  }
878
- onPress={() => signOutDialog.open()}
898
+ onPress={handleSignOut}
879
899
  destructive
880
900
  showChevron={false}
881
901
  disabled={signingOut}
@@ -898,92 +918,8 @@ const ManageAccountScreen: React.FC<BaseScreenProps> = ({
898
918
  </View>
899
919
 
900
920
  <View style={styles.footerSpacer} />
901
- </ScrollView>
902
-
903
- <Dialog
904
- control={signOutDialog}
905
- title={t('common.actions.signOut') || 'Sign out'}
906
- description={
907
- t('common.confirms.signOut')
908
- || 'Are you sure you want to sign out?'
909
- }
910
- actions={[
911
- {
912
- label: t('common.actions.signOut') || 'Sign out',
913
- color: 'destructive',
914
- onPress: handleSignOut,
915
- },
916
- { label: t('common.cancel') || 'Cancel', color: 'cancel' },
917
- ]}
918
- />
919
- <Dialog
920
- control={signOutAllDevicesDialog}
921
- title={
922
- t('manageAccount.confirms.signOutAllDevicesTitle')
923
- || 'Sign out of all other devices'
924
- }
925
- description={
926
- t('manageAccount.confirms.signOutAllDevices', {
927
- count: otherDevices.length,
928
- })
929
- || `End ${otherDevices.length} other device session(s)? This won't sign you out here.`
930
- }
931
- actions={[
932
- {
933
- label: t('common.actions.signOut') || 'Sign out',
934
- color: 'destructive',
935
- onPress: handleSignOutAllDevices,
936
- },
937
- { label: t('common.cancel') || 'Cancel', color: 'cancel' },
938
- ]}
939
- />
940
- <Dialog
941
- control={removeDeviceDialog}
942
- title={
943
- t('manageAccount.confirms.removeDeviceTitle') || 'Remove device'
944
- }
945
- description={
946
- pendingRemoveDevice
947
- ? (t('manageAccount.confirms.removeDevice', {
948
- name: pendingRemoveDevice.deviceName,
949
- })
950
- || `Sign out from "${pendingRemoveDevice.deviceName}"?`)
951
- : ''
952
- }
953
- actions={[
954
- {
955
- label: t('common.remove') || 'Remove',
956
- color: 'destructive',
957
- onPress: handleRemoveDevice,
958
- },
959
- { label: t('common.cancel') || 'Cancel', color: 'cancel' },
960
- ]}
961
- />
962
- <Dialog
963
- control={downloadDataDialog}
964
- title={
965
- t('accountOverview.items.downloadData.confirmTitle')
966
- || 'Download account data'
967
- }
968
- description={
969
- t('accountOverview.items.downloadData.confirmMessage')
970
- || 'Choose the format for your account data export:'
971
- }
972
- actions={[
973
- { label: 'JSON', onPress: () => performDownload('json') },
974
- { label: 'CSV', onPress: () => performDownload('csv') },
975
- { label: t('common.cancel') || 'Cancel', color: 'cancel' },
976
- ]}
977
- />
978
- {user ? (
979
- <DeleteAccountModal
980
- control={deleteAccountDialog}
981
- username={user.username || ''}
982
- onDelete={handleConfirmDelete}
983
- t={t}
984
- />
985
- ) : null}
986
- </View>
921
+ </View>
922
+ </>
987
923
  );
988
924
  };
989
925
 
@@ -992,11 +928,6 @@ const ManageAccountScreen: React.FC<BaseScreenProps> = ({
992
928
  // spacing, radius, and typography roles live on Bloom components + NativeWind
993
929
  // token classes.
994
930
  const styles = StyleSheet.create({
995
- center: {
996
- flex: 1,
997
- alignItems: 'center',
998
- justifyContent: 'center',
999
- },
1000
931
  footerSpacer: {
1001
932
  height: 24,
1002
933
  },
@@ -1,13 +1,13 @@
1
1
  import React, { useCallback, useMemo } from 'react';
2
- import { View, ScrollView } from 'react-native';
2
+ import { View } from 'react-native';
3
3
  import { SettingsListGroup, SettingsListItem } from '@oxyhq/bloom/settings-list';
4
4
  import { Switch } from '@oxyhq/bloom/switch';
5
5
  import { useTheme } from '@oxyhq/bloom/theme';
6
6
  import type { NotificationPreferences } from '@oxyhq/core';
7
7
  import type { BaseScreenProps } from '../types/navigation';
8
- import Header from '../components/Header';
9
8
  import { SettingsIcon } from '../components/SettingsIcon';
10
9
  import { useI18n } from '../hooks/useI18n';
10
+ import { useSurfaceHeader } from '../hooks/useSurfaceHeader';
11
11
  import { useOxy } from '../context/OxyContext';
12
12
  import { useCurrentUser } from '../hooks/queries/useAccountQueries';
13
13
  import { useUpdateNotificationPreferences } from '../hooks/mutations/useAccountMutations';
@@ -38,6 +38,8 @@ const DEFAULT_VALUES: NotificationToggleValues = {
38
38
  const NotificationsScreen: React.FC<BaseScreenProps> = ({ onClose, goBack }) => {
39
39
  const bloomTheme = useTheme();
40
40
  const { t } = useI18n();
41
+
42
+ useSurfaceHeader({ title: t('notifications.title') || 'Notifications' });
41
43
  const { isAuthenticated } = useOxy();
42
44
  const { data: user } = useCurrentUser({ enabled: isAuthenticated });
43
45
  const updateMutation = useUpdateNotificationPreferences();
@@ -69,15 +71,8 @@ const NotificationsScreen: React.FC<BaseScreenProps> = ({ onClose, goBack }) =>
69
71
  const isSaving = savingKeys.size > 0;
70
72
 
71
73
  return (
72
- <View className="flex-1 bg-bg">
73
- <Header
74
- title={t('notifications.title') || 'Notifications'}
75
- onBack={goBack || onClose}
76
- variant="minimal"
77
- elevation="subtle"
78
- />
79
- <ScrollView className="flex-1">
80
- <View className="px-screen-margin pb-space-24">
74
+ <>
75
+ <View className="px-screen-margin pb-space-24">
81
76
  <SettingsListGroup
82
77
  title={t('notifications.sections.channels') || 'Channels'}
83
78
  >
@@ -182,8 +177,7 @@ const NotificationsScreen: React.FC<BaseScreenProps> = ({ onClose, goBack }) =>
182
177
  />
183
178
  </SettingsListGroup>
184
179
  </View>
185
- </ScrollView>
186
- </View>
180
+ </>
187
181
  );
188
182
  };
189
183
 
@@ -2,7 +2,6 @@ import type React from 'react';
2
2
  import { useState, useRef, useMemo, useCallback } from 'react';
3
3
  import {
4
4
  View,
5
- ScrollView,
6
5
  Animated,
7
6
  Platform,
8
7
  useWindowDimensions,
@@ -179,7 +178,7 @@ const PaymentGatewayScreen: React.FC<PaymentGatewayScreenProps> = (props) => {
179
178
  // Validate amount
180
179
  if (!amount || Number.isNaN(Number(amount)) || Number(amount) <= 0) {
181
180
  return (
182
- <View className="flex-1 bg-bg items-center justify-center px-screen-margin gap-space-24">
181
+ <View className="items-center justify-center px-screen-margin gap-space-24 py-space-40">
183
182
  <Ionicons name="alert-circle-outline" size={48} color={bloomTheme.colors.error} />
184
183
  <H4 className="text-text text-center">
185
184
  {t('payment.errors.invalidAmount')}
@@ -278,14 +277,8 @@ const PaymentGatewayScreen: React.FC<PaymentGatewayScreenProps> = (props) => {
278
277
  };
279
278
 
280
279
  return (
281
- <View className="flex-1 bg-bg">
282
- <ScrollView
283
- className="flex-1"
284
- contentContainerClassName="p-space-16"
285
- showsVerticalScrollIndicator={false}
286
- >
287
- {renderCurrentStep()}
288
- </ScrollView>
280
+ <View className="p-space-16">
281
+ {renderCurrentStep()}
289
282
  </View>
290
283
  );
291
284
  };
@@ -1,14 +1,14 @@
1
1
  import React, { useCallback, useEffect, useMemo, useState } from 'react';
2
- import { AccessibilityInfo, Platform, View, ScrollView } from 'react-native';
2
+ import { AccessibilityInfo, Platform, View } from 'react-native';
3
3
  import { SettingsListGroup, SettingsListItem } from '@oxyhq/bloom/settings-list';
4
4
  import { Switch } from '@oxyhq/bloom/switch';
5
5
  import { useTheme } from '@oxyhq/bloom/theme';
6
6
  import type { UserPreferences } from '@oxyhq/core';
7
7
  import { getNativeLanguageName } from '@oxyhq/core';
8
8
  import type { BaseScreenProps } from '../types/navigation';
9
- import Header from '../components/Header';
10
9
  import { SettingsIcon } from '../components/SettingsIcon';
11
10
  import { useI18n } from '../hooks/useI18n';
11
+ import { useSurfaceHeader } from '../hooks/useSurfaceHeader';
12
12
  import { useOxy } from '../context/OxyContext';
13
13
  import { useCurrentUser } from '../hooks/queries/useAccountQueries';
14
14
  import { useUpdateUserPreferences } from '../hooks/mutations/useAccountMutations';
@@ -44,6 +44,8 @@ const PreferencesScreen: React.FC<BaseScreenProps> = ({
44
44
  }) => {
45
45
  const bloomTheme = useTheme();
46
46
  const { t, locale } = useI18n();
47
+
48
+ useSurfaceHeader({ title: t('preferences.title') || 'Preferences' });
47
49
  const { isAuthenticated } = useOxy();
48
50
  const { data: user } = useCurrentUser({ enabled: isAuthenticated });
49
51
  const updateMutation = useUpdateUserPreferences();
@@ -120,15 +122,8 @@ const PreferencesScreen: React.FC<BaseScreenProps> = ({
120
122
  const isSaving = updateMutation.isPending;
121
123
 
122
124
  return (
123
- <View className="flex-1 bg-bg">
124
- <Header
125
- title={t('preferences.title') || 'Preferences'}
126
- onBack={goBack || onClose}
127
- variant="minimal"
128
- elevation="subtle"
129
- />
130
- <ScrollView className="flex-1">
131
- <View className="px-screen-margin pb-space-24">
125
+ <>
126
+ <View className="px-screen-margin pb-space-24">
132
127
  <SettingsListGroup
133
128
  title={t('preferences.sections.appearance') || 'Appearance'}
134
129
  >
@@ -233,8 +228,7 @@ const PreferencesScreen: React.FC<BaseScreenProps> = ({
233
228
  </SettingsListGroup>
234
229
  )}
235
230
  </View>
236
- </ScrollView>
237
- </View>
231
+ </>
238
232
  );
239
233
  };
240
234