@oxyhq/services 22.8.7 → 22.10.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 (502) 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/OxyAccountDialogScreen.js +150 -0
  4. package/lib/commonjs/ui/components/OxyAccountDialogScreen.js.map +1 -0
  5. package/lib/commonjs/ui/components/OxyAuthChooser.js +137 -40
  6. package/lib/commonjs/ui/components/OxyAuthChooser.js.map +1 -1
  7. package/lib/commonjs/ui/components/OxyConsentScreen.js +1 -1
  8. package/lib/commonjs/ui/components/OxyProvider.js +9 -29
  9. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  10. package/lib/commonjs/ui/components/ProfileButton.js +1 -1
  11. package/lib/commonjs/ui/components/RequireOxyAuth.js +1 -1
  12. package/lib/commonjs/ui/components/SurfaceHeaderAction.js +63 -0
  13. package/lib/commonjs/ui/components/SurfaceHeaderAction.js.map +1 -0
  14. package/lib/commonjs/ui/components/SurfaceScreen.js +193 -0
  15. package/lib/commonjs/ui/components/SurfaceScreen.js.map +1 -0
  16. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js +46 -29
  17. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  18. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +47 -23
  19. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -1
  20. package/lib/commonjs/ui/components/oxyAuthChooserStyles.js +22 -12
  21. package/lib/commonjs/ui/components/oxyAuthChooserStyles.js.map +1 -1
  22. package/lib/commonjs/ui/components/surfaces/ActionSheetSurface.js +83 -0
  23. package/lib/commonjs/ui/components/surfaces/ActionSheetSurface.js.map +1 -0
  24. package/lib/commonjs/ui/context/OxyContext.js +49 -4
  25. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  26. package/lib/commonjs/ui/hooks/useAvatarPicker.js +34 -39
  27. package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +1 -1
  28. package/lib/commonjs/ui/hooks/useSurfaceHeader.js +46 -0
  29. package/lib/commonjs/ui/hooks/useSurfaceHeader.js.map +1 -0
  30. package/lib/commonjs/ui/hooks/useSwitchableAccounts.js +1 -1
  31. package/lib/commonjs/ui/navigation/accountDialogManager.js +14 -2
  32. package/lib/commonjs/ui/navigation/accountDialogManager.js.map +1 -1
  33. package/lib/commonjs/ui/navigation/bottomSheetManager.js +38 -56
  34. package/lib/commonjs/ui/navigation/bottomSheetManager.js.map +1 -1
  35. package/lib/commonjs/ui/navigation/routes.js +7 -57
  36. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  37. package/lib/commonjs/ui/navigation/surfaceBackBridge.js +68 -0
  38. package/lib/commonjs/ui/navigation/surfaceBackBridge.js.map +1 -0
  39. package/lib/commonjs/ui/navigation/surfaceNavStack.js +98 -0
  40. package/lib/commonjs/ui/navigation/surfaceNavStack.js.map +1 -0
  41. package/lib/commonjs/ui/navigation/surfaceRegistry.js +152 -0
  42. package/lib/commonjs/ui/navigation/surfaceRegistry.js.map +1 -0
  43. package/lib/commonjs/ui/navigation/surfaces.js +256 -0
  44. package/lib/commonjs/ui/navigation/surfaces.js.map +1 -0
  45. package/lib/commonjs/ui/screens/AccountMembersScreen.js +214 -283
  46. package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
  47. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +88 -118
  48. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  49. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +22 -36
  50. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  51. package/lib/commonjs/ui/screens/AppInfoScreen.js +219 -226
  52. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
  53. package/lib/commonjs/ui/screens/AvatarCropScreen.js +10 -14
  54. package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
  55. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js +24 -39
  56. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js.map +1 -1
  57. package/lib/commonjs/ui/screens/CreateAccountScreen.js +136 -158
  58. package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
  59. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +29 -36
  60. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
  61. package/lib/commonjs/ui/screens/EditProfileScreen.js +101 -109
  62. package/lib/commonjs/ui/screens/EditProfileScreen.js.map +1 -1
  63. package/lib/commonjs/ui/screens/FAQScreen.js +10 -15
  64. package/lib/commonjs/ui/screens/FAQScreen.js.map +1 -1
  65. package/lib/commonjs/ui/screens/FeedbackScreen.js +8 -16
  66. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  67. package/lib/commonjs/ui/screens/FileManagementScreen.js +219 -206
  68. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  69. package/lib/commonjs/ui/screens/HelpSupportScreen.js +62 -69
  70. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
  71. package/lib/commonjs/ui/screens/HistoryViewScreen.js +63 -79
  72. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
  73. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +69 -98
  74. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
  75. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js +8 -14
  76. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
  77. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +77 -94
  78. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
  79. package/lib/commonjs/ui/screens/ManageAccountScreen.js +99 -134
  80. package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
  81. package/lib/commonjs/ui/screens/NotificationsScreen.js +69 -76
  82. package/lib/commonjs/ui/screens/NotificationsScreen.js.map +1 -1
  83. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +3 -8
  84. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  85. package/lib/commonjs/ui/screens/PreferencesScreen.js +67 -74
  86. package/lib/commonjs/ui/screens/PreferencesScreen.js.map +1 -1
  87. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +55 -91
  88. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  89. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +291 -304
  90. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  91. package/lib/commonjs/ui/screens/ProfileScreen.js +100 -114
  92. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  93. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +38 -45
  94. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
  95. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +44 -57
  96. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  97. package/lib/commonjs/ui/screens/UserLinksScreen.js +24 -31
  98. package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -1
  99. package/lib/commonjs/ui/screens/UserListScreen.js +14 -24
  100. package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
  101. package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js +1 -1
  102. package/lib/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.js +9 -7
  103. package/lib/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.js.map +1 -1
  104. package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js +66 -75
  105. package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js.map +1 -1
  106. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +111 -139
  107. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  108. package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js +13 -20
  109. package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js.map +1 -1
  110. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +14 -27
  111. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  112. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js +68 -85
  113. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  114. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +28 -36
  115. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  116. package/lib/commonjs/ui/types/surfaceScreen.js +6 -0
  117. package/lib/commonjs/ui/types/surfaceScreen.js.map +1 -0
  118. package/lib/module/index.js +12 -5
  119. package/lib/module/index.js.map +1 -1
  120. package/lib/module/ui/components/OxyAccountDialogScreen.js +145 -0
  121. package/lib/module/ui/components/OxyAccountDialogScreen.js.map +1 -0
  122. package/lib/module/ui/components/OxyAuthChooser.js +137 -40
  123. package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
  124. package/lib/module/ui/components/OxyConsentScreen.js +1 -1
  125. package/lib/module/ui/components/OxyProvider.js +10 -30
  126. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  127. package/lib/module/ui/components/ProfileButton.js +1 -1
  128. package/lib/module/ui/components/RequireOxyAuth.js +1 -1
  129. package/lib/module/ui/components/SurfaceHeaderAction.js +58 -0
  130. package/lib/module/ui/components/SurfaceHeaderAction.js.map +1 -0
  131. package/lib/module/ui/components/SurfaceScreen.js +188 -0
  132. package/lib/module/ui/components/SurfaceScreen.js.map +1 -0
  133. package/lib/module/ui/components/fileManagement/FileDetailsModal.js +46 -29
  134. package/lib/module/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  135. package/lib/module/ui/components/modals/DeleteAccountModal.js +46 -23
  136. package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -1
  137. package/lib/module/ui/components/oxyAuthChooserStyles.js +22 -12
  138. package/lib/module/ui/components/oxyAuthChooserStyles.js.map +1 -1
  139. package/lib/module/ui/components/surfaces/ActionSheetSurface.js +78 -0
  140. package/lib/module/ui/components/surfaces/ActionSheetSurface.js.map +1 -0
  141. package/lib/module/ui/context/OxyContext.js +49 -4
  142. package/lib/module/ui/context/OxyContext.js.map +1 -1
  143. package/lib/module/ui/hooks/useAvatarPicker.js +34 -39
  144. package/lib/module/ui/hooks/useAvatarPicker.js.map +1 -1
  145. package/lib/module/ui/hooks/useSurfaceHeader.js +42 -0
  146. package/lib/module/ui/hooks/useSurfaceHeader.js.map +1 -0
  147. package/lib/module/ui/hooks/useSwitchableAccounts.js +1 -1
  148. package/lib/module/ui/navigation/accountDialogManager.js +14 -2
  149. package/lib/module/ui/navigation/accountDialogManager.js.map +1 -1
  150. package/lib/module/ui/navigation/bottomSheetManager.js +37 -53
  151. package/lib/module/ui/navigation/bottomSheetManager.js.map +1 -1
  152. package/lib/module/ui/navigation/routes.js +6 -56
  153. package/lib/module/ui/navigation/routes.js.map +1 -1
  154. package/lib/module/ui/navigation/surfaceBackBridge.js +63 -0
  155. package/lib/module/ui/navigation/surfaceBackBridge.js.map +1 -0
  156. package/lib/module/ui/navigation/surfaceNavStack.js +95 -0
  157. package/lib/module/ui/navigation/surfaceNavStack.js.map +1 -0
  158. package/lib/module/ui/navigation/surfaceRegistry.js +146 -0
  159. package/lib/module/ui/navigation/surfaceRegistry.js.map +1 -0
  160. package/lib/module/ui/navigation/surfaces.js +244 -0
  161. package/lib/module/ui/navigation/surfaces.js.map +1 -0
  162. package/lib/module/ui/screens/AccountMembersScreen.js +218 -286
  163. package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
  164. package/lib/module/ui/screens/AccountSettingsScreen.js +92 -121
  165. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  166. package/lib/module/ui/screens/AccountVerificationScreen.js +25 -38
  167. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  168. package/lib/module/ui/screens/AppInfoScreen.js +220 -227
  169. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  170. package/lib/module/ui/screens/AvatarCropScreen.js +10 -14
  171. package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
  172. package/lib/module/ui/screens/ConnectedAppsScreen.js +26 -40
  173. package/lib/module/ui/screens/ConnectedAppsScreen.js.map +1 -1
  174. package/lib/module/ui/screens/CreateAccountScreen.js +139 -160
  175. package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
  176. package/lib/module/ui/screens/EditProfileFieldScreen.js +32 -38
  177. package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
  178. package/lib/module/ui/screens/EditProfileScreen.js +102 -110
  179. package/lib/module/ui/screens/EditProfileScreen.js.map +1 -1
  180. package/lib/module/ui/screens/FAQScreen.js +11 -15
  181. package/lib/module/ui/screens/FAQScreen.js.map +1 -1
  182. package/lib/module/ui/screens/FeedbackScreen.js +10 -17
  183. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  184. package/lib/module/ui/screens/FileManagementScreen.js +222 -208
  185. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  186. package/lib/module/ui/screens/HelpSupportScreen.js +64 -70
  187. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
  188. package/lib/module/ui/screens/HistoryViewScreen.js +65 -81
  189. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  190. package/lib/module/ui/screens/LanguageSelectorScreen.js +71 -99
  191. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  192. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js +10 -15
  193. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
  194. package/lib/module/ui/screens/LegalDocumentsScreen.js +78 -94
  195. package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
  196. package/lib/module/ui/screens/ManageAccountScreen.js +102 -137
  197. package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
  198. package/lib/module/ui/screens/NotificationsScreen.js +71 -77
  199. package/lib/module/ui/screens/NotificationsScreen.js.map +1 -1
  200. package/lib/module/ui/screens/PaymentGatewayScreen.js +4 -9
  201. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  202. package/lib/module/ui/screens/PreferencesScreen.js +69 -75
  203. package/lib/module/ui/screens/PreferencesScreen.js.map +1 -1
  204. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +58 -93
  205. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  206. package/lib/module/ui/screens/PrivacySettingsScreen.js +293 -305
  207. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  208. package/lib/module/ui/screens/ProfileScreen.js +102 -116
  209. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  210. package/lib/module/ui/screens/SavesCollectionsScreen.js +40 -46
  211. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
  212. package/lib/module/ui/screens/SearchSettingsScreen.js +46 -58
  213. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  214. package/lib/module/ui/screens/UserLinksScreen.js +26 -32
  215. package/lib/module/ui/screens/UserLinksScreen.js.map +1 -1
  216. package/lib/module/ui/screens/UserListScreen.js +14 -24
  217. package/lib/module/ui/screens/UserListScreen.js.map +1 -1
  218. package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js +1 -1
  219. package/lib/module/ui/screens/fileManagement/hooks/useFileUploadState.js +8 -7
  220. package/lib/module/ui/screens/fileManagement/hooks/useFileUploadState.js.map +1 -1
  221. package/lib/module/ui/screens/trust/TrustAboutScreen.js +67 -75
  222. package/lib/module/ui/screens/trust/TrustAboutScreen.js.map +1 -1
  223. package/lib/module/ui/screens/trust/TrustCenterScreen.js +112 -139
  224. package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  225. package/lib/module/ui/screens/trust/TrustFAQScreen.js +15 -21
  226. package/lib/module/ui/screens/trust/TrustFAQScreen.js.map +1 -1
  227. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +14 -26
  228. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  229. package/lib/module/ui/screens/trust/TrustRewardsScreen.js +69 -85
  230. package/lib/module/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  231. package/lib/module/ui/screens/trust/TrustRulesScreen.js +30 -37
  232. package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  233. package/lib/module/ui/types/surfaceScreen.js +4 -0
  234. package/lib/module/ui/types/surfaceScreen.js.map +1 -0
  235. package/lib/typescript/commonjs/index.d.ts +2 -0
  236. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  237. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts +39 -0
  238. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts.map +1 -0
  239. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts +3 -3
  240. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -1
  241. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts +3 -2
  242. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  243. package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts +2 -2
  244. package/lib/typescript/commonjs/ui/components/RequireOxyAuth.d.ts +1 -1
  245. package/lib/typescript/commonjs/ui/components/SurfaceHeaderAction.d.ts +16 -0
  246. package/lib/typescript/commonjs/ui/components/SurfaceHeaderAction.d.ts.map +1 -0
  247. package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts +26 -0
  248. package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts.map +1 -0
  249. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts +14 -4
  250. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  251. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts +17 -2
  252. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  253. package/lib/typescript/commonjs/ui/components/oxyAuthChooserStyles.d.ts +19 -9
  254. package/lib/typescript/commonjs/ui/components/oxyAuthChooserStyles.d.ts.map +1 -1
  255. package/lib/typescript/commonjs/ui/components/surfaces/ActionSheetSurface.d.ts +38 -0
  256. package/lib/typescript/commonjs/ui/components/surfaces/ActionSheetSurface.d.ts.map +1 -0
  257. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  258. package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts +7 -11
  259. package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts.map +1 -1
  260. package/lib/typescript/commonjs/ui/hooks/useSurfaceHeader.d.ts +31 -0
  261. package/lib/typescript/commonjs/ui/hooks/useSurfaceHeader.d.ts.map +1 -0
  262. package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts +1 -1
  263. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts +14 -2
  264. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts.map +1 -1
  265. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts +24 -16
  266. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  267. package/lib/typescript/commonjs/ui/navigation/routes.d.ts +2 -60
  268. package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
  269. package/lib/typescript/commonjs/ui/navigation/surfaceBackBridge.d.ts +16 -0
  270. package/lib/typescript/commonjs/ui/navigation/surfaceBackBridge.d.ts.map +1 -0
  271. package/lib/typescript/commonjs/ui/navigation/surfaceNavStack.d.ts +51 -0
  272. package/lib/typescript/commonjs/ui/navigation/surfaceNavStack.d.ts.map +1 -0
  273. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts +135 -0
  274. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts.map +1 -0
  275. package/lib/typescript/commonjs/ui/navigation/surfaces.d.ts +79 -0
  276. package/lib/typescript/commonjs/ui/navigation/surfaces.d.ts.map +1 -0
  277. package/lib/typescript/commonjs/ui/screens/AccountMembersScreen.d.ts.map +1 -1
  278. package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  279. package/lib/typescript/commonjs/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  280. package/lib/typescript/commonjs/ui/screens/AppInfoScreen.d.ts.map +1 -1
  281. package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts +0 -4
  282. package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  283. package/lib/typescript/commonjs/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
  284. package/lib/typescript/commonjs/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  285. package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  286. package/lib/typescript/commonjs/ui/screens/EditProfileScreen.d.ts.map +1 -1
  287. package/lib/typescript/commonjs/ui/screens/FAQScreen.d.ts.map +1 -1
  288. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts.map +1 -1
  289. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  290. package/lib/typescript/commonjs/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  291. package/lib/typescript/commonjs/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  292. package/lib/typescript/commonjs/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  293. package/lib/typescript/commonjs/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -1
  294. package/lib/typescript/commonjs/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  295. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts +1 -1
  296. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  297. package/lib/typescript/commonjs/ui/screens/NotificationsScreen.d.ts.map +1 -1
  298. package/lib/typescript/commonjs/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  299. package/lib/typescript/commonjs/ui/screens/PreferencesScreen.d.ts.map +1 -1
  300. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  301. package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  302. package/lib/typescript/commonjs/ui/screens/ProfileScreen.d.ts.map +1 -1
  303. package/lib/typescript/commonjs/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  304. package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  305. package/lib/typescript/commonjs/ui/screens/UserLinksScreen.d.ts.map +1 -1
  306. package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts.map +1 -1
  307. package/lib/typescript/commonjs/ui/screens/fileManagement/hooks/useFileUploadState.d.ts.map +1 -1
  308. package/lib/typescript/commonjs/ui/screens/trust/TrustAboutScreen.d.ts.map +1 -1
  309. package/lib/typescript/commonjs/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  310. package/lib/typescript/commonjs/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -1
  311. package/lib/typescript/commonjs/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  312. package/lib/typescript/commonjs/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  313. package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  314. package/lib/typescript/commonjs/ui/types/navigation.d.ts +8 -0
  315. package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
  316. package/lib/typescript/commonjs/ui/types/surfaceScreen.d.ts +38 -0
  317. package/lib/typescript/commonjs/ui/types/surfaceScreen.d.ts.map +1 -0
  318. package/lib/typescript/module/index.d.ts +2 -0
  319. package/lib/typescript/module/index.d.ts.map +1 -1
  320. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts +39 -0
  321. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts.map +1 -0
  322. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts +3 -3
  323. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
  324. package/lib/typescript/module/ui/components/OxyProvider.d.ts +3 -2
  325. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  326. package/lib/typescript/module/ui/components/ProfileButton.d.ts +2 -2
  327. package/lib/typescript/module/ui/components/RequireOxyAuth.d.ts +1 -1
  328. package/lib/typescript/module/ui/components/SurfaceHeaderAction.d.ts +16 -0
  329. package/lib/typescript/module/ui/components/SurfaceHeaderAction.d.ts.map +1 -0
  330. package/lib/typescript/module/ui/components/SurfaceScreen.d.ts +26 -0
  331. package/lib/typescript/module/ui/components/SurfaceScreen.d.ts.map +1 -0
  332. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts +14 -4
  333. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  334. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts +17 -2
  335. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  336. package/lib/typescript/module/ui/components/oxyAuthChooserStyles.d.ts +19 -9
  337. package/lib/typescript/module/ui/components/oxyAuthChooserStyles.d.ts.map +1 -1
  338. package/lib/typescript/module/ui/components/surfaces/ActionSheetSurface.d.ts +38 -0
  339. package/lib/typescript/module/ui/components/surfaces/ActionSheetSurface.d.ts.map +1 -0
  340. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  341. package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts +7 -11
  342. package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts.map +1 -1
  343. package/lib/typescript/module/ui/hooks/useSurfaceHeader.d.ts +31 -0
  344. package/lib/typescript/module/ui/hooks/useSurfaceHeader.d.ts.map +1 -0
  345. package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts +1 -1
  346. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts +14 -2
  347. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts.map +1 -1
  348. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts +24 -16
  349. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  350. package/lib/typescript/module/ui/navigation/routes.d.ts +2 -60
  351. package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
  352. package/lib/typescript/module/ui/navigation/surfaceBackBridge.d.ts +16 -0
  353. package/lib/typescript/module/ui/navigation/surfaceBackBridge.d.ts.map +1 -0
  354. package/lib/typescript/module/ui/navigation/surfaceNavStack.d.ts +51 -0
  355. package/lib/typescript/module/ui/navigation/surfaceNavStack.d.ts.map +1 -0
  356. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts +135 -0
  357. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts.map +1 -0
  358. package/lib/typescript/module/ui/navigation/surfaces.d.ts +79 -0
  359. package/lib/typescript/module/ui/navigation/surfaces.d.ts.map +1 -0
  360. package/lib/typescript/module/ui/screens/AccountMembersScreen.d.ts.map +1 -1
  361. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  362. package/lib/typescript/module/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  363. package/lib/typescript/module/ui/screens/AppInfoScreen.d.ts.map +1 -1
  364. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts +0 -4
  365. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  366. package/lib/typescript/module/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
  367. package/lib/typescript/module/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  368. package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  369. package/lib/typescript/module/ui/screens/EditProfileScreen.d.ts.map +1 -1
  370. package/lib/typescript/module/ui/screens/FAQScreen.d.ts.map +1 -1
  371. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts.map +1 -1
  372. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  373. package/lib/typescript/module/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  374. package/lib/typescript/module/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  375. package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  376. package/lib/typescript/module/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -1
  377. package/lib/typescript/module/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  378. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts +1 -1
  379. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  380. package/lib/typescript/module/ui/screens/NotificationsScreen.d.ts.map +1 -1
  381. package/lib/typescript/module/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  382. package/lib/typescript/module/ui/screens/PreferencesScreen.d.ts.map +1 -1
  383. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  384. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  385. package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
  386. package/lib/typescript/module/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  387. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  388. package/lib/typescript/module/ui/screens/UserLinksScreen.d.ts.map +1 -1
  389. package/lib/typescript/module/ui/screens/UserListScreen.d.ts.map +1 -1
  390. package/lib/typescript/module/ui/screens/fileManagement/hooks/useFileUploadState.d.ts.map +1 -1
  391. package/lib/typescript/module/ui/screens/trust/TrustAboutScreen.d.ts.map +1 -1
  392. package/lib/typescript/module/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  393. package/lib/typescript/module/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -1
  394. package/lib/typescript/module/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  395. package/lib/typescript/module/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  396. package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  397. package/lib/typescript/module/ui/types/navigation.d.ts +8 -0
  398. package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
  399. package/lib/typescript/module/ui/types/surfaceScreen.d.ts +38 -0
  400. package/lib/typescript/module/ui/types/surfaceScreen.d.ts.map +1 -0
  401. package/package.json +2 -2
  402. package/src/index.ts +12 -5
  403. package/src/ui/components/OxyAccountDialogScreen.tsx +148 -0
  404. package/src/ui/components/OxyAuthChooser.tsx +153 -33
  405. package/src/ui/components/OxyConsentScreen.tsx +1 -1
  406. package/src/ui/components/OxyProvider.tsx +12 -34
  407. package/src/ui/components/ProfileButton.tsx +2 -2
  408. package/src/ui/components/RequireOxyAuth.tsx +1 -1
  409. package/src/ui/components/SurfaceHeaderAction.tsx +60 -0
  410. package/src/ui/components/SurfaceScreen.tsx +226 -0
  411. package/src/ui/components/fileManagement/FileDetailsModal.tsx +50 -36
  412. package/src/ui/components/modals/DeleteAccountModal.tsx +47 -26
  413. package/src/ui/components/oxyAuthChooserStyles.ts +22 -12
  414. package/src/ui/components/surfaces/ActionSheetSurface.tsx +98 -0
  415. package/src/ui/context/OxyContext.tsx +43 -3
  416. package/src/ui/hooks/useAvatarPicker.ts +53 -66
  417. package/src/ui/hooks/useSurfaceHeader.ts +56 -0
  418. package/src/ui/hooks/useSwitchableAccounts.ts +1 -1
  419. package/src/ui/navigation/__tests__/getSurfaceConfig.test.ts +39 -0
  420. package/src/ui/navigation/__tests__/surfaceNavStack.test.ts +68 -0
  421. package/src/ui/navigation/accountDialogManager.ts +14 -2
  422. package/src/ui/navigation/bottomSheetManager.ts +46 -73
  423. package/src/ui/navigation/routes.ts +7 -106
  424. package/src/ui/navigation/surfaceBackBridge.ts +69 -0
  425. package/src/ui/navigation/surfaceNavStack.ts +110 -0
  426. package/src/ui/navigation/surfaceRegistry.ts +240 -0
  427. package/src/ui/navigation/surfaces.ts +272 -0
  428. package/src/ui/screens/AccountMembersScreen.tsx +39 -100
  429. package/src/ui/screens/AccountSettingsScreen.tsx +32 -54
  430. package/src/ui/screens/AccountVerificationScreen.tsx +23 -51
  431. package/src/ui/screens/AppInfoScreen.tsx +6 -13
  432. package/src/ui/screens/AvatarCropScreen.tsx +8 -17
  433. package/src/ui/screens/ConnectedAppsScreen.tsx +39 -60
  434. package/src/ui/screens/CreateAccountScreen.tsx +13 -39
  435. package/src/ui/screens/EditProfileFieldScreen.tsx +30 -48
  436. package/src/ui/screens/EditProfileScreen.tsx +7 -16
  437. package/src/ui/screens/FAQScreen.tsx +9 -13
  438. package/src/ui/screens/FeedbackScreen.tsx +8 -22
  439. package/src/ui/screens/FileManagementScreen.tsx +191 -188
  440. package/src/ui/screens/HelpSupportScreen.tsx +7 -13
  441. package/src/ui/screens/HistoryViewScreen.tsx +26 -31
  442. package/src/ui/screens/LanguageSelectorScreen.tsx +12 -46
  443. package/src/ui/screens/LearnMoreUsernamesScreen.tsx +8 -16
  444. package/src/ui/screens/LegalDocumentsScreen.tsx +7 -22
  445. package/src/ui/screens/ManageAccountScreen.tsx +96 -165
  446. package/src/ui/screens/NotificationsScreen.tsx +7 -13
  447. package/src/ui/screens/PaymentGatewayScreen.tsx +3 -10
  448. package/src/ui/screens/PreferencesScreen.tsx +7 -13
  449. package/src/ui/screens/PremiumSubscriptionScreen.tsx +52 -90
  450. package/src/ui/screens/PrivacySettingsScreen.tsx +9 -21
  451. package/src/ui/screens/ProfileScreen.tsx +9 -11
  452. package/src/ui/screens/SavesCollectionsScreen.tsx +7 -13
  453. package/src/ui/screens/SearchSettingsScreen.tsx +9 -21
  454. package/src/ui/screens/UserLinksScreen.tsx +7 -14
  455. package/src/ui/screens/UserListScreen.tsx +2 -5
  456. package/src/ui/screens/fileManagement/PhotoPickerSection.tsx +1 -1
  457. package/src/ui/screens/fileManagement/hooks/useFileUploadState.ts +9 -7
  458. package/src/ui/screens/trust/TrustAboutScreen.tsx +10 -17
  459. package/src/ui/screens/trust/TrustCenterScreen.tsx +9 -28
  460. package/src/ui/screens/trust/TrustFAQScreen.tsx +15 -18
  461. package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +3 -5
  462. package/src/ui/screens/trust/TrustRewardsScreen.tsx +11 -26
  463. package/src/ui/screens/trust/TrustRulesScreen.tsx +10 -13
  464. package/src/ui/types/navigation.ts +8 -0
  465. package/src/ui/types/surfaceScreen.ts +38 -0
  466. package/lib/commonjs/ui/components/BottomSheet.js +0 -49
  467. package/lib/commonjs/ui/components/BottomSheet.js.map +0 -1
  468. package/lib/commonjs/ui/components/BottomSheetRouter.js +0 -298
  469. package/lib/commonjs/ui/components/BottomSheetRouter.js.map +0 -1
  470. package/lib/commonjs/ui/components/Header.js +0 -305
  471. package/lib/commonjs/ui/components/Header.js.map +0 -1
  472. package/lib/commonjs/ui/components/OxyAccountDialog.js +0 -259
  473. package/lib/commonjs/ui/components/OxyAccountDialog.js.map +0 -1
  474. package/lib/module/ui/components/BottomSheet.js +0 -45
  475. package/lib/module/ui/components/BottomSheet.js.map +0 -1
  476. package/lib/module/ui/components/BottomSheetRouter.js +0 -292
  477. package/lib/module/ui/components/BottomSheetRouter.js.map +0 -1
  478. package/lib/module/ui/components/Header.js +0 -299
  479. package/lib/module/ui/components/Header.js.map +0 -1
  480. package/lib/module/ui/components/OxyAccountDialog.js +0 -254
  481. package/lib/module/ui/components/OxyAccountDialog.js.map +0 -1
  482. package/lib/typescript/commonjs/ui/components/BottomSheet.d.ts +0 -29
  483. package/lib/typescript/commonjs/ui/components/BottomSheet.d.ts.map +0 -1
  484. package/lib/typescript/commonjs/ui/components/BottomSheetRouter.d.ts +0 -9
  485. package/lib/typescript/commonjs/ui/components/BottomSheetRouter.d.ts.map +0 -1
  486. package/lib/typescript/commonjs/ui/components/Header.d.ts +0 -33
  487. package/lib/typescript/commonjs/ui/components/Header.d.ts.map +0 -1
  488. package/lib/typescript/commonjs/ui/components/OxyAccountDialog.d.ts +0 -37
  489. package/lib/typescript/commonjs/ui/components/OxyAccountDialog.d.ts.map +0 -1
  490. package/lib/typescript/module/ui/components/BottomSheet.d.ts +0 -29
  491. package/lib/typescript/module/ui/components/BottomSheet.d.ts.map +0 -1
  492. package/lib/typescript/module/ui/components/BottomSheetRouter.d.ts +0 -9
  493. package/lib/typescript/module/ui/components/BottomSheetRouter.d.ts.map +0 -1
  494. package/lib/typescript/module/ui/components/Header.d.ts +0 -33
  495. package/lib/typescript/module/ui/components/Header.d.ts.map +0 -1
  496. package/lib/typescript/module/ui/components/OxyAccountDialog.d.ts +0 -37
  497. package/lib/typescript/module/ui/components/OxyAccountDialog.d.ts.map +0 -1
  498. package/src/ui/components/BottomSheet.tsx +0 -48
  499. package/src/ui/components/BottomSheetRouter.tsx +0 -310
  500. package/src/ui/components/Header.tsx +0 -224
  501. package/src/ui/components/OxyAccountDialog.tsx +0 -243
  502. package/src/ui/navigation/__tests__/getSheetConfig.test.ts +0 -36
@@ -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