@oxyhq/services 22.9.0 → 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 (428) 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/{OxyAccountDialog.js → OxyAccountDialogScreen.js} +25 -125
  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/ProfileButton.js +1 -1
  9. package/lib/commonjs/ui/components/RequireOxyAuth.js +1 -1
  10. package/lib/commonjs/ui/components/SurfaceHeaderAction.js +63 -0
  11. package/lib/commonjs/ui/components/SurfaceHeaderAction.js.map +1 -0
  12. package/lib/commonjs/ui/components/SurfaceScreen.js +52 -5
  13. package/lib/commonjs/ui/components/SurfaceScreen.js.map +1 -1
  14. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js +46 -29
  15. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  16. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +47 -23
  17. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -1
  18. package/lib/commonjs/ui/components/oxyAuthChooserStyles.js +22 -12
  19. package/lib/commonjs/ui/components/oxyAuthChooserStyles.js.map +1 -1
  20. package/lib/commonjs/ui/components/surfaces/ActionSheetSurface.js +83 -0
  21. package/lib/commonjs/ui/components/surfaces/ActionSheetSurface.js.map +1 -0
  22. package/lib/commonjs/ui/context/OxyContext.js +23 -9
  23. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  24. package/lib/commonjs/ui/hooks/useAvatarPicker.js +34 -39
  25. package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +1 -1
  26. package/lib/commonjs/ui/hooks/useSurfaceHeader.js +46 -0
  27. package/lib/commonjs/ui/hooks/useSurfaceHeader.js.map +1 -0
  28. package/lib/commonjs/ui/hooks/useSwitchableAccounts.js +1 -1
  29. package/lib/commonjs/ui/navigation/accountDialogManager.js +14 -2
  30. package/lib/commonjs/ui/navigation/accountDialogManager.js.map +1 -1
  31. package/lib/commonjs/ui/navigation/routes.js +3 -3
  32. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  33. package/lib/commonjs/ui/navigation/surfaceBackBridge.js +68 -0
  34. package/lib/commonjs/ui/navigation/surfaceBackBridge.js.map +1 -0
  35. package/lib/commonjs/ui/navigation/surfaceRegistry.js +52 -8
  36. package/lib/commonjs/ui/navigation/surfaceRegistry.js.map +1 -1
  37. package/lib/commonjs/ui/navigation/surfaces.js +42 -5
  38. package/lib/commonjs/ui/navigation/surfaces.js.map +1 -1
  39. package/lib/commonjs/ui/screens/AccountMembersScreen.js +214 -283
  40. package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
  41. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +88 -118
  42. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  43. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +22 -36
  44. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  45. package/lib/commonjs/ui/screens/AppInfoScreen.js +219 -226
  46. package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
  47. package/lib/commonjs/ui/screens/AvatarCropScreen.js +10 -14
  48. package/lib/commonjs/ui/screens/AvatarCropScreen.js.map +1 -1
  49. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js +24 -39
  50. package/lib/commonjs/ui/screens/ConnectedAppsScreen.js.map +1 -1
  51. package/lib/commonjs/ui/screens/CreateAccountScreen.js +136 -158
  52. package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
  53. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js +29 -36
  54. package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
  55. package/lib/commonjs/ui/screens/EditProfileScreen.js +101 -109
  56. package/lib/commonjs/ui/screens/EditProfileScreen.js.map +1 -1
  57. package/lib/commonjs/ui/screens/FAQScreen.js +10 -15
  58. package/lib/commonjs/ui/screens/FAQScreen.js.map +1 -1
  59. package/lib/commonjs/ui/screens/FeedbackScreen.js +8 -16
  60. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  61. package/lib/commonjs/ui/screens/FileManagementScreen.js +219 -206
  62. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  63. package/lib/commonjs/ui/screens/HelpSupportScreen.js +62 -69
  64. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
  65. package/lib/commonjs/ui/screens/HistoryViewScreen.js +63 -79
  66. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
  67. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +69 -98
  68. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
  69. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js +8 -14
  70. package/lib/commonjs/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
  71. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +77 -94
  72. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
  73. package/lib/commonjs/ui/screens/ManageAccountScreen.js +99 -134
  74. package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
  75. package/lib/commonjs/ui/screens/NotificationsScreen.js +69 -76
  76. package/lib/commonjs/ui/screens/NotificationsScreen.js.map +1 -1
  77. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +3 -8
  78. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  79. package/lib/commonjs/ui/screens/PreferencesScreen.js +67 -74
  80. package/lib/commonjs/ui/screens/PreferencesScreen.js.map +1 -1
  81. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +55 -91
  82. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  83. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +291 -304
  84. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  85. package/lib/commonjs/ui/screens/ProfileScreen.js +100 -114
  86. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  87. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +38 -45
  88. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
  89. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +44 -57
  90. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  91. package/lib/commonjs/ui/screens/UserLinksScreen.js +24 -31
  92. package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -1
  93. package/lib/commonjs/ui/screens/UserListScreen.js +14 -24
  94. package/lib/commonjs/ui/screens/UserListScreen.js.map +1 -1
  95. package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js +1 -1
  96. package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js +66 -75
  97. package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js.map +1 -1
  98. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +111 -139
  99. package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  100. package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js +13 -20
  101. package/lib/commonjs/ui/screens/trust/TrustFAQScreen.js.map +1 -1
  102. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +14 -27
  103. package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  104. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js +68 -85
  105. package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  106. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +28 -36
  107. package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  108. package/lib/module/index.js +12 -5
  109. package/lib/module/index.js.map +1 -1
  110. package/lib/module/ui/components/{OxyAccountDialog.js → OxyAccountDialogScreen.js} +27 -127
  111. package/lib/module/ui/components/OxyAccountDialogScreen.js.map +1 -0
  112. package/lib/module/ui/components/OxyAuthChooser.js +137 -40
  113. package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
  114. package/lib/module/ui/components/OxyConsentScreen.js +1 -1
  115. package/lib/module/ui/components/ProfileButton.js +1 -1
  116. package/lib/module/ui/components/RequireOxyAuth.js +1 -1
  117. package/lib/module/ui/components/SurfaceHeaderAction.js +58 -0
  118. package/lib/module/ui/components/SurfaceHeaderAction.js.map +1 -0
  119. package/lib/module/ui/components/SurfaceScreen.js +53 -6
  120. package/lib/module/ui/components/SurfaceScreen.js.map +1 -1
  121. package/lib/module/ui/components/fileManagement/FileDetailsModal.js +46 -29
  122. package/lib/module/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  123. package/lib/module/ui/components/modals/DeleteAccountModal.js +46 -23
  124. package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -1
  125. package/lib/module/ui/components/oxyAuthChooserStyles.js +22 -12
  126. package/lib/module/ui/components/oxyAuthChooserStyles.js.map +1 -1
  127. package/lib/module/ui/components/surfaces/ActionSheetSurface.js +78 -0
  128. package/lib/module/ui/components/surfaces/ActionSheetSurface.js.map +1 -0
  129. package/lib/module/ui/context/OxyContext.js +23 -9
  130. package/lib/module/ui/context/OxyContext.js.map +1 -1
  131. package/lib/module/ui/hooks/useAvatarPicker.js +34 -39
  132. package/lib/module/ui/hooks/useAvatarPicker.js.map +1 -1
  133. package/lib/module/ui/hooks/useSurfaceHeader.js +42 -0
  134. package/lib/module/ui/hooks/useSurfaceHeader.js.map +1 -0
  135. package/lib/module/ui/hooks/useSwitchableAccounts.js +1 -1
  136. package/lib/module/ui/navigation/accountDialogManager.js +14 -2
  137. package/lib/module/ui/navigation/accountDialogManager.js.map +1 -1
  138. package/lib/module/ui/navigation/routes.js +3 -3
  139. package/lib/module/ui/navigation/routes.js.map +1 -1
  140. package/lib/module/ui/navigation/surfaceBackBridge.js +63 -0
  141. package/lib/module/ui/navigation/surfaceBackBridge.js.map +1 -0
  142. package/lib/module/ui/navigation/surfaceRegistry.js +52 -8
  143. package/lib/module/ui/navigation/surfaceRegistry.js.map +1 -1
  144. package/lib/module/ui/navigation/surfaces.js +42 -5
  145. package/lib/module/ui/navigation/surfaces.js.map +1 -1
  146. package/lib/module/ui/screens/AccountMembersScreen.js +218 -286
  147. package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
  148. package/lib/module/ui/screens/AccountSettingsScreen.js +92 -121
  149. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  150. package/lib/module/ui/screens/AccountVerificationScreen.js +25 -38
  151. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  152. package/lib/module/ui/screens/AppInfoScreen.js +220 -227
  153. package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
  154. package/lib/module/ui/screens/AvatarCropScreen.js +10 -14
  155. package/lib/module/ui/screens/AvatarCropScreen.js.map +1 -1
  156. package/lib/module/ui/screens/ConnectedAppsScreen.js +26 -40
  157. package/lib/module/ui/screens/ConnectedAppsScreen.js.map +1 -1
  158. package/lib/module/ui/screens/CreateAccountScreen.js +139 -160
  159. package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
  160. package/lib/module/ui/screens/EditProfileFieldScreen.js +32 -38
  161. package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
  162. package/lib/module/ui/screens/EditProfileScreen.js +102 -110
  163. package/lib/module/ui/screens/EditProfileScreen.js.map +1 -1
  164. package/lib/module/ui/screens/FAQScreen.js +11 -15
  165. package/lib/module/ui/screens/FAQScreen.js.map +1 -1
  166. package/lib/module/ui/screens/FeedbackScreen.js +10 -17
  167. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  168. package/lib/module/ui/screens/FileManagementScreen.js +222 -208
  169. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  170. package/lib/module/ui/screens/HelpSupportScreen.js +64 -70
  171. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
  172. package/lib/module/ui/screens/HistoryViewScreen.js +65 -81
  173. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  174. package/lib/module/ui/screens/LanguageSelectorScreen.js +71 -99
  175. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  176. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js +10 -15
  177. package/lib/module/ui/screens/LearnMoreUsernamesScreen.js.map +1 -1
  178. package/lib/module/ui/screens/LegalDocumentsScreen.js +78 -94
  179. package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
  180. package/lib/module/ui/screens/ManageAccountScreen.js +102 -137
  181. package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
  182. package/lib/module/ui/screens/NotificationsScreen.js +71 -77
  183. package/lib/module/ui/screens/NotificationsScreen.js.map +1 -1
  184. package/lib/module/ui/screens/PaymentGatewayScreen.js +4 -9
  185. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  186. package/lib/module/ui/screens/PreferencesScreen.js +69 -75
  187. package/lib/module/ui/screens/PreferencesScreen.js.map +1 -1
  188. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +58 -93
  189. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  190. package/lib/module/ui/screens/PrivacySettingsScreen.js +293 -305
  191. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  192. package/lib/module/ui/screens/ProfileScreen.js +102 -116
  193. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  194. package/lib/module/ui/screens/SavesCollectionsScreen.js +40 -46
  195. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
  196. package/lib/module/ui/screens/SearchSettingsScreen.js +46 -58
  197. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  198. package/lib/module/ui/screens/UserLinksScreen.js +26 -32
  199. package/lib/module/ui/screens/UserLinksScreen.js.map +1 -1
  200. package/lib/module/ui/screens/UserListScreen.js +14 -24
  201. package/lib/module/ui/screens/UserListScreen.js.map +1 -1
  202. package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js +1 -1
  203. package/lib/module/ui/screens/trust/TrustAboutScreen.js +67 -75
  204. package/lib/module/ui/screens/trust/TrustAboutScreen.js.map +1 -1
  205. package/lib/module/ui/screens/trust/TrustCenterScreen.js +112 -139
  206. package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
  207. package/lib/module/ui/screens/trust/TrustFAQScreen.js +15 -21
  208. package/lib/module/ui/screens/trust/TrustFAQScreen.js.map +1 -1
  209. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +14 -26
  210. package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
  211. package/lib/module/ui/screens/trust/TrustRewardsScreen.js +69 -85
  212. package/lib/module/ui/screens/trust/TrustRewardsScreen.js.map +1 -1
  213. package/lib/module/ui/screens/trust/TrustRulesScreen.js +30 -37
  214. package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
  215. package/lib/typescript/commonjs/index.d.ts +2 -0
  216. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  217. package/lib/typescript/commonjs/ui/components/{OxyAccountDialog.d.ts → OxyAccountDialogScreen.d.ts} +4 -4
  218. package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts.map +1 -0
  219. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts +3 -3
  220. package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -1
  221. package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts +2 -2
  222. package/lib/typescript/commonjs/ui/components/RequireOxyAuth.d.ts +1 -1
  223. package/lib/typescript/commonjs/ui/components/SurfaceHeaderAction.d.ts +16 -0
  224. package/lib/typescript/commonjs/ui/components/SurfaceHeaderAction.d.ts.map +1 -0
  225. package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts +4 -2
  226. package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts.map +1 -1
  227. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts +14 -4
  228. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  229. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts +17 -2
  230. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  231. package/lib/typescript/commonjs/ui/components/oxyAuthChooserStyles.d.ts +19 -9
  232. package/lib/typescript/commonjs/ui/components/oxyAuthChooserStyles.d.ts.map +1 -1
  233. package/lib/typescript/commonjs/ui/components/surfaces/ActionSheetSurface.d.ts +38 -0
  234. package/lib/typescript/commonjs/ui/components/surfaces/ActionSheetSurface.d.ts.map +1 -0
  235. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  236. package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts +7 -11
  237. package/lib/typescript/commonjs/ui/hooks/useAvatarPicker.d.ts.map +1 -1
  238. package/lib/typescript/commonjs/ui/hooks/useSurfaceHeader.d.ts +31 -0
  239. package/lib/typescript/commonjs/ui/hooks/useSurfaceHeader.d.ts.map +1 -0
  240. package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts +1 -1
  241. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts +14 -2
  242. package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts.map +1 -1
  243. package/lib/typescript/commonjs/ui/navigation/surfaceBackBridge.d.ts +16 -0
  244. package/lib/typescript/commonjs/ui/navigation/surfaceBackBridge.d.ts.map +1 -0
  245. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts +31 -13
  246. package/lib/typescript/commonjs/ui/navigation/surfaceRegistry.d.ts.map +1 -1
  247. package/lib/typescript/commonjs/ui/navigation/surfaces.d.ts.map +1 -1
  248. package/lib/typescript/commonjs/ui/screens/AccountMembersScreen.d.ts.map +1 -1
  249. package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  250. package/lib/typescript/commonjs/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  251. package/lib/typescript/commonjs/ui/screens/AppInfoScreen.d.ts.map +1 -1
  252. package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts +0 -4
  253. package/lib/typescript/commonjs/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  254. package/lib/typescript/commonjs/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
  255. package/lib/typescript/commonjs/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  256. package/lib/typescript/commonjs/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  257. package/lib/typescript/commonjs/ui/screens/EditProfileScreen.d.ts.map +1 -1
  258. package/lib/typescript/commonjs/ui/screens/FAQScreen.d.ts.map +1 -1
  259. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts.map +1 -1
  260. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  261. package/lib/typescript/commonjs/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  262. package/lib/typescript/commonjs/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  263. package/lib/typescript/commonjs/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  264. package/lib/typescript/commonjs/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -1
  265. package/lib/typescript/commonjs/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  266. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts +1 -1
  267. package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  268. package/lib/typescript/commonjs/ui/screens/NotificationsScreen.d.ts.map +1 -1
  269. package/lib/typescript/commonjs/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  270. package/lib/typescript/commonjs/ui/screens/PreferencesScreen.d.ts.map +1 -1
  271. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  272. package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  273. package/lib/typescript/commonjs/ui/screens/ProfileScreen.d.ts.map +1 -1
  274. package/lib/typescript/commonjs/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  275. package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  276. package/lib/typescript/commonjs/ui/screens/UserLinksScreen.d.ts.map +1 -1
  277. package/lib/typescript/commonjs/ui/screens/UserListScreen.d.ts.map +1 -1
  278. package/lib/typescript/commonjs/ui/screens/trust/TrustAboutScreen.d.ts.map +1 -1
  279. package/lib/typescript/commonjs/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  280. package/lib/typescript/commonjs/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -1
  281. package/lib/typescript/commonjs/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  282. package/lib/typescript/commonjs/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  283. package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  284. package/lib/typescript/commonjs/ui/types/navigation.d.ts +8 -0
  285. package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
  286. package/lib/typescript/module/index.d.ts +2 -0
  287. package/lib/typescript/module/index.d.ts.map +1 -1
  288. package/lib/typescript/module/ui/components/{OxyAccountDialog.d.ts → OxyAccountDialogScreen.d.ts} +4 -4
  289. package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts.map +1 -0
  290. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts +3 -3
  291. package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
  292. package/lib/typescript/module/ui/components/ProfileButton.d.ts +2 -2
  293. package/lib/typescript/module/ui/components/RequireOxyAuth.d.ts +1 -1
  294. package/lib/typescript/module/ui/components/SurfaceHeaderAction.d.ts +16 -0
  295. package/lib/typescript/module/ui/components/SurfaceHeaderAction.d.ts.map +1 -0
  296. package/lib/typescript/module/ui/components/SurfaceScreen.d.ts +4 -2
  297. package/lib/typescript/module/ui/components/SurfaceScreen.d.ts.map +1 -1
  298. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts +14 -4
  299. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  300. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts +17 -2
  301. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  302. package/lib/typescript/module/ui/components/oxyAuthChooserStyles.d.ts +19 -9
  303. package/lib/typescript/module/ui/components/oxyAuthChooserStyles.d.ts.map +1 -1
  304. package/lib/typescript/module/ui/components/surfaces/ActionSheetSurface.d.ts +38 -0
  305. package/lib/typescript/module/ui/components/surfaces/ActionSheetSurface.d.ts.map +1 -0
  306. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  307. package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts +7 -11
  308. package/lib/typescript/module/ui/hooks/useAvatarPicker.d.ts.map +1 -1
  309. package/lib/typescript/module/ui/hooks/useSurfaceHeader.d.ts +31 -0
  310. package/lib/typescript/module/ui/hooks/useSurfaceHeader.d.ts.map +1 -0
  311. package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts +1 -1
  312. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts +14 -2
  313. package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts.map +1 -1
  314. package/lib/typescript/module/ui/navigation/surfaceBackBridge.d.ts +16 -0
  315. package/lib/typescript/module/ui/navigation/surfaceBackBridge.d.ts.map +1 -0
  316. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts +31 -13
  317. package/lib/typescript/module/ui/navigation/surfaceRegistry.d.ts.map +1 -1
  318. package/lib/typescript/module/ui/navigation/surfaces.d.ts.map +1 -1
  319. package/lib/typescript/module/ui/screens/AccountMembersScreen.d.ts.map +1 -1
  320. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  321. package/lib/typescript/module/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  322. package/lib/typescript/module/ui/screens/AppInfoScreen.d.ts.map +1 -1
  323. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts +0 -4
  324. package/lib/typescript/module/ui/screens/AvatarCropScreen.d.ts.map +1 -1
  325. package/lib/typescript/module/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
  326. package/lib/typescript/module/ui/screens/CreateAccountScreen.d.ts.map +1 -1
  327. package/lib/typescript/module/ui/screens/EditProfileFieldScreen.d.ts.map +1 -1
  328. package/lib/typescript/module/ui/screens/EditProfileScreen.d.ts.map +1 -1
  329. package/lib/typescript/module/ui/screens/FAQScreen.d.ts.map +1 -1
  330. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts.map +1 -1
  331. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  332. package/lib/typescript/module/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  333. package/lib/typescript/module/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  334. package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  335. package/lib/typescript/module/ui/screens/LearnMoreUsernamesScreen.d.ts.map +1 -1
  336. package/lib/typescript/module/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  337. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts +1 -1
  338. package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
  339. package/lib/typescript/module/ui/screens/NotificationsScreen.d.ts.map +1 -1
  340. package/lib/typescript/module/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  341. package/lib/typescript/module/ui/screens/PreferencesScreen.d.ts.map +1 -1
  342. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  343. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  344. package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
  345. package/lib/typescript/module/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  346. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  347. package/lib/typescript/module/ui/screens/UserLinksScreen.d.ts.map +1 -1
  348. package/lib/typescript/module/ui/screens/UserListScreen.d.ts.map +1 -1
  349. package/lib/typescript/module/ui/screens/trust/TrustAboutScreen.d.ts.map +1 -1
  350. package/lib/typescript/module/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -1
  351. package/lib/typescript/module/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -1
  352. package/lib/typescript/module/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
  353. package/lib/typescript/module/ui/screens/trust/TrustRewardsScreen.d.ts.map +1 -1
  354. package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
  355. package/lib/typescript/module/ui/types/navigation.d.ts +8 -0
  356. package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
  357. package/package.json +2 -2
  358. package/src/index.ts +12 -5
  359. package/src/ui/components/{OxyAccountDialog.tsx → OxyAccountDialogScreen.tsx} +21 -110
  360. package/src/ui/components/OxyAuthChooser.tsx +153 -33
  361. package/src/ui/components/OxyConsentScreen.tsx +1 -1
  362. package/src/ui/components/ProfileButton.tsx +2 -2
  363. package/src/ui/components/RequireOxyAuth.tsx +1 -1
  364. package/src/ui/components/SurfaceHeaderAction.tsx +60 -0
  365. package/src/ui/components/SurfaceScreen.tsx +66 -6
  366. package/src/ui/components/fileManagement/FileDetailsModal.tsx +50 -36
  367. package/src/ui/components/modals/DeleteAccountModal.tsx +47 -26
  368. package/src/ui/components/oxyAuthChooserStyles.ts +22 -12
  369. package/src/ui/components/surfaces/ActionSheetSurface.tsx +98 -0
  370. package/src/ui/context/OxyContext.tsx +22 -8
  371. package/src/ui/hooks/useAvatarPicker.ts +53 -66
  372. package/src/ui/hooks/useSurfaceHeader.ts +56 -0
  373. package/src/ui/hooks/useSwitchableAccounts.ts +1 -1
  374. package/src/ui/navigation/__tests__/surfaceNavStack.test.ts +68 -0
  375. package/src/ui/navigation/accountDialogManager.ts +14 -2
  376. package/src/ui/navigation/routes.ts +3 -3
  377. package/src/ui/navigation/surfaceBackBridge.ts +69 -0
  378. package/src/ui/navigation/surfaceRegistry.ts +80 -14
  379. package/src/ui/navigation/surfaces.ts +33 -5
  380. package/src/ui/screens/AccountMembersScreen.tsx +39 -100
  381. package/src/ui/screens/AccountSettingsScreen.tsx +32 -54
  382. package/src/ui/screens/AccountVerificationScreen.tsx +23 -51
  383. package/src/ui/screens/AppInfoScreen.tsx +6 -13
  384. package/src/ui/screens/AvatarCropScreen.tsx +8 -17
  385. package/src/ui/screens/ConnectedAppsScreen.tsx +39 -60
  386. package/src/ui/screens/CreateAccountScreen.tsx +13 -39
  387. package/src/ui/screens/EditProfileFieldScreen.tsx +30 -48
  388. package/src/ui/screens/EditProfileScreen.tsx +7 -16
  389. package/src/ui/screens/FAQScreen.tsx +9 -13
  390. package/src/ui/screens/FeedbackScreen.tsx +8 -22
  391. package/src/ui/screens/FileManagementScreen.tsx +191 -188
  392. package/src/ui/screens/HelpSupportScreen.tsx +7 -13
  393. package/src/ui/screens/HistoryViewScreen.tsx +26 -31
  394. package/src/ui/screens/LanguageSelectorScreen.tsx +12 -46
  395. package/src/ui/screens/LearnMoreUsernamesScreen.tsx +8 -16
  396. package/src/ui/screens/LegalDocumentsScreen.tsx +7 -22
  397. package/src/ui/screens/ManageAccountScreen.tsx +96 -165
  398. package/src/ui/screens/NotificationsScreen.tsx +7 -13
  399. package/src/ui/screens/PaymentGatewayScreen.tsx +3 -10
  400. package/src/ui/screens/PreferencesScreen.tsx +7 -13
  401. package/src/ui/screens/PremiumSubscriptionScreen.tsx +52 -90
  402. package/src/ui/screens/PrivacySettingsScreen.tsx +9 -21
  403. package/src/ui/screens/ProfileScreen.tsx +9 -11
  404. package/src/ui/screens/SavesCollectionsScreen.tsx +7 -13
  405. package/src/ui/screens/SearchSettingsScreen.tsx +9 -21
  406. package/src/ui/screens/UserLinksScreen.tsx +7 -14
  407. package/src/ui/screens/UserListScreen.tsx +2 -5
  408. package/src/ui/screens/fileManagement/PhotoPickerSection.tsx +1 -1
  409. package/src/ui/screens/trust/TrustAboutScreen.tsx +10 -17
  410. package/src/ui/screens/trust/TrustCenterScreen.tsx +9 -28
  411. package/src/ui/screens/trust/TrustFAQScreen.tsx +15 -18
  412. package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +3 -5
  413. package/src/ui/screens/trust/TrustRewardsScreen.tsx +11 -26
  414. package/src/ui/screens/trust/TrustRulesScreen.tsx +10 -13
  415. package/src/ui/types/navigation.ts +8 -0
  416. package/lib/commonjs/ui/components/Header.js +0 -305
  417. package/lib/commonjs/ui/components/Header.js.map +0 -1
  418. package/lib/commonjs/ui/components/OxyAccountDialog.js.map +0 -1
  419. package/lib/module/ui/components/Header.js +0 -299
  420. package/lib/module/ui/components/Header.js.map +0 -1
  421. package/lib/module/ui/components/OxyAccountDialog.js.map +0 -1
  422. package/lib/typescript/commonjs/ui/components/Header.d.ts +0 -33
  423. package/lib/typescript/commonjs/ui/components/Header.d.ts.map +0 -1
  424. package/lib/typescript/commonjs/ui/components/OxyAccountDialog.d.ts.map +0 -1
  425. package/lib/typescript/module/ui/components/Header.d.ts +0 -33
  426. package/lib/typescript/module/ui/components/Header.d.ts.map +0 -1
  427. package/lib/typescript/module/ui/components/OxyAccountDialog.d.ts.map +0 -1
  428. package/src/ui/components/Header.tsx +0 -224
@@ -1,32 +1,26 @@
1
1
  import type React from 'react';
2
- import { View, ScrollView } from 'react-native';
2
+ import { View } from 'react-native';
3
3
  import { useTheme } from '@oxyhq/bloom/theme';
4
4
  import { H4, Text } from '@oxyhq/bloom/typography';
5
5
  import { IconCircle } from '@oxyhq/bloom/icon-circle';
6
6
  import { BenefitList, BenefitRow } from '@oxyhq/bloom/benefit-list';
7
7
  import * as Icons from '@oxyhq/bloom/icons';
8
8
  import type { BaseScreenProps } from '../../types/navigation';
9
- import Header from '../../components/Header';
10
9
  import { useI18n } from '../../hooks/useI18n';
10
+ import { useSurfaceHeader } from '../../hooks/useSurfaceHeader';
11
11
 
12
- const TrustAboutScreen: React.FC<BaseScreenProps> = ({ goBack }) => {
12
+ const TrustAboutScreen: React.FC<BaseScreenProps> = () => {
13
13
  const { t } = useI18n();
14
14
  const bloomTheme = useTheme();
15
15
  const iconColor = bloomTheme.colors.primary;
16
16
 
17
+ useSurfaceHeader({
18
+ title: t('trust.about.title') || 'About Oxy Trust',
19
+ subtitle: t('trust.about.subtitle') || 'Learn about the reputation system',
20
+ });
21
+
17
22
  return (
18
- <View className="flex-1 bg-bg">
19
- <Header
20
- title={t('trust.about.title') || 'About Oxy Trust'}
21
- subtitle={t('trust.about.subtitle') || 'Learn about the reputation system'}
22
- onBack={goBack}
23
- elevation="subtle"
24
- />
25
- <ScrollView
26
- className="flex-1 px-screen-margin"
27
- showsVerticalScrollIndicator={false}
28
- contentContainerClassName="pb-space-32"
29
- >
23
+ <View className="px-screen-margin pt-space-16 pb-space-32">
30
24
  <View className="items-center py-space-24 gap-space-12">
31
25
  <IconCircle icon={Icons.ShieldCheck_Stroke2_Corner0_Rounded} />
32
26
  <Text className="font-sans text-body text-text-secondary text-center">
@@ -69,8 +63,7 @@ const TrustAboutScreen: React.FC<BaseScreenProps> = ({ goBack }) => {
69
63
  <Text className="font-sans text-body text-text-secondary">
70
64
  {t('trust.about.why.text') || 'Your reputation and trust tier unlock special features and recognition in the Oxy Ecosystem. The more you contribute, the more you earn!'}
71
65
  </Text>
72
- </ScrollView>
73
- </View>
66
+ </View>
74
67
  );
75
68
  };
76
69
 
@@ -1,6 +1,6 @@
1
1
  import type React from 'react';
2
2
  import { useEffect, useMemo, useState } from 'react';
3
- import { View, ScrollView, StyleSheet } from 'react-native';
3
+ import { View, StyleSheet } from 'react-native';
4
4
  import type { ReputationTransaction, TrustTier } from '@oxyhq/core';
5
5
  import { Ionicons } from '@expo/vector-icons';
6
6
  import { Chip } from '@oxyhq/bloom/chip';
@@ -8,16 +8,14 @@ import { useTheme } from '@oxyhq/bloom/theme';
8
8
  import { H1, Text } from '@oxyhq/bloom/typography';
9
9
  import { SettingsListGroup, SettingsListItem } from '@oxyhq/bloom/settings-list';
10
10
  import type { BaseScreenProps } from '../../types/navigation';
11
- import Header from '../../components/Header';
12
11
  import { SettingsIcon } from '../../components/SettingsIcon';
13
12
  import { Loading } from '@oxyhq/bloom/loading';
14
13
  import { useI18n } from '../../hooks/useI18n';
14
+ import { useSurfaceHeader } from '../../hooks/useSurfaceHeader';
15
15
  import { useOxy } from '../../context/OxyContext';
16
16
  import { getTrustTierLabel } from './trustTier';
17
17
 
18
18
  const TrustCenterScreen: React.FC<BaseScreenProps> = ({
19
- onClose,
20
- goBack,
21
19
  navigate,
22
20
  }) => {
23
21
  // Reputation/trust is the ACTIVE account's standing (the org/project/bot
@@ -61,38 +59,28 @@ const TrustCenterScreen: React.FC<BaseScreenProps> = ({
61
59
  );
62
60
 
63
61
  const title = t('trust.center.title') || 'Trust Center';
62
+ useSurfaceHeader({ title });
64
63
 
65
64
  if (!isAuthenticated) {
66
65
  return (
67
- <View className="flex-1 bg-bg">
68
- <Header title={title} onBack={goBack || onClose} elevation="subtle" />
69
- <View style={styles.center}>
66
+ <View className="items-center py-space-40">
70
67
  <Text className="text-text font-medium text-base">
71
68
  {t('common.status.notSignedIn') || 'Not signed in'}
72
69
  </Text>
73
70
  </View>
74
- </View>
75
71
  );
76
72
  }
77
73
 
78
74
  if (isLoading) {
79
75
  return (
80
- <View className="flex-1 bg-bg">
81
- <Header title={title} onBack={goBack || onClose} elevation="subtle" />
82
- <View style={styles.center}>
76
+ <View className="items-center py-space-40">
83
77
  <Loading size="large" color={primaryColor} />
84
78
  </View>
85
- </View>
86
79
  );
87
80
  }
88
81
 
89
82
  return (
90
- <View className="flex-1 bg-bg">
91
- <Header title={title} onBack={goBack || onClose} elevation="subtle" />
92
- <ScrollView
93
- className="flex-1"
94
- contentContainerClassName="px-screen-margin pb-space-24"
95
- >
83
+ <View className="px-screen-margin pt-space-16 pb-space-24">
96
84
  {/* Balance hero card */}
97
85
  <View className="items-center bg-fill-secondary rounded-radius-20 px-space-20 py-space-24 mb-space-16">
98
86
  <H1 style={{ color: primaryColor }}>{reputationTotal ?? 0}</H1>
@@ -250,20 +238,13 @@ const TrustCenterScreen: React.FC<BaseScreenProps> = ({
250
238
  {error}
251
239
  </Text>
252
240
  ) : null}
253
- </ScrollView>
254
- </View>
241
+ </View>
255
242
  );
256
243
  };
257
244
 
258
- // Layout-only styles: flex centering for the empty/loading branches and the
259
- // info caption's measured max width. No color, spacing, radius, or typography
260
- // roles live here — those use Bloom token classes.
245
+ // Layout-only styles: the info caption's measured max width. No color, spacing,
246
+ // radius, or typography roles live here those use Bloom token classes.
261
247
  const styles = StyleSheet.create({
262
- center: {
263
- flex: 1,
264
- alignItems: 'center',
265
- justifyContent: 'center',
266
- },
267
248
  infoText: {
268
249
  maxWidth: 320,
269
250
  },
@@ -1,8 +1,8 @@
1
1
  import React, { useState, useMemo, useCallback } from 'react';
2
- import { View, ScrollView } from 'react-native';
2
+ import { View } from 'react-native';
3
3
  import type { BaseScreenProps } from '../../types/navigation';
4
- import Header from '../../components/Header';
5
- import { SearchInput } from '@oxyhq/bloom/search-input';
4
+ import { useSurfaceHeader } from '../../hooks/useSurfaceHeader';
5
+ import { Search } from '@oxyhq/bloom/search';
6
6
  import {
7
7
  Accordion,
8
8
  AccordionItem,
@@ -18,13 +18,18 @@ const FAQ_KEYS = ['what', 'earn', 'lose', 'use', 'transfer', 'support'] as const
18
18
  * TrustFAQScreen
19
19
  *
20
20
  * Frequently asked questions about Oxy Trust, rendered with the shared Bloom
21
- * Accordion (single-expand) + SearchInput. Styling is centralized Bloom token
21
+ * Accordion (single-expand) + Search. Styling is centralized Bloom token
22
22
  * classes; the Bloom Accordion owns its own expand/collapse animation, so no
23
23
  * `LayoutAnimation` is used here.
24
24
  */
25
- const TrustFAQScreen: React.FC<BaseScreenProps> = ({ goBack }) => {
25
+ const TrustFAQScreen: React.FC<BaseScreenProps> = () => {
26
26
  const { t } = useI18n();
27
27
 
28
+ useSurfaceHeader({
29
+ title: t('trust.faq.title') || 'Trust FAQ',
30
+ subtitle: t('trust.faq.subtitle') || 'Frequently asked questions about Oxy Trust',
31
+ });
32
+
28
33
  const [search, setSearch] = useState('');
29
34
  const [expanded, setExpanded] = useState<string | undefined>(undefined);
30
35
 
@@ -51,17 +56,9 @@ const TrustFAQScreen: React.FC<BaseScreenProps> = ({ goBack }) => {
51
56
  );
52
57
 
53
58
  return (
54
- <View className="flex-1 bg-bg">
55
- <Header
56
- title={t('trust.faq.title') || 'Trust FAQ'}
57
- subtitle={t('trust.faq.subtitle') || 'Frequently asked questions about Oxy Trust'}
58
- subtitleVariant="muted"
59
- onBack={goBack}
60
- elevation="subtle"
61
- />
62
-
59
+ <>
63
60
  <View className="px-screen-margin pt-space-20 pb-space-12">
64
- <SearchInput
61
+ <Search
65
62
  label={t('trust.faq.search') || 'Search FAQ...'}
66
63
  value={search}
67
64
  onChangeText={setSearch}
@@ -70,7 +67,7 @@ const TrustFAQScreen: React.FC<BaseScreenProps> = ({ goBack }) => {
70
67
  />
71
68
  </View>
72
69
 
73
- <ScrollView className="flex-1 px-screen-margin" showsVerticalScrollIndicator={false}>
70
+ <View className="px-screen-margin">
74
71
  {filteredFaqs.length === 0 ? (
75
72
  <Text className="text-text-secondary text-center p-space-40">
76
73
  {t('trust.faq.noResults', { query: search }) ||
@@ -96,8 +93,8 @@ const TrustFAQScreen: React.FC<BaseScreenProps> = ({ goBack }) => {
96
93
  ))}
97
94
  </Accordion>
98
95
  )}
99
- </ScrollView>
100
- </View>
96
+ </View>
97
+ </>
101
98
  );
102
99
  };
103
100
 
@@ -16,8 +16,8 @@ import { Button } from '@oxyhq/bloom/button';
16
16
  import { Ionicons } from '@expo/vector-icons';
17
17
  import type { BaseScreenProps } from '../../types/navigation';
18
18
  import { Avatar } from '@oxyhq/bloom/avatar';
19
- import Header from '../../components/Header';
20
19
  import { useI18n } from '../../hooks/useI18n';
20
+ import { useSurfaceHeader } from '../../hooks/useSurfaceHeader';
21
21
  import { useOxy } from '../../context/OxyContext';
22
22
  import { getTrustTierLabel } from './trustTier';
23
23
 
@@ -27,7 +27,7 @@ const ERROR_ICON_SIZE = 48;
27
27
  /** Ranks within the podium (1–3) get a highlighted row surface. */
28
28
  const PODIUM_RANK = 3;
29
29
 
30
- const TrustLeaderboardScreen: React.FC<BaseScreenProps> = ({ goBack, navigate }) => {
30
+ const TrustLeaderboardScreen: React.FC<BaseScreenProps> = ({ navigate }) => {
31
31
  const { oxyServices, user: currentUser } = useOxy();
32
32
  const { t, locale } = useI18n();
33
33
  const bloomTheme = useTheme();
@@ -61,6 +61,7 @@ const TrustLeaderboardScreen: React.FC<BaseScreenProps> = ({ goBack, navigate })
61
61
 
62
62
  const title = t('trust.leaderboard.title') || 'Trust Leaderboard';
63
63
  const subtitle = t('trust.leaderboard.subtitle') || 'Top contributors in the community';
64
+ useSurfaceHeader({ title, subtitle });
64
65
 
65
66
  const handleEntryPress = useCallback(
66
67
  (entry: ReputationLeaderboardEntry) => {
@@ -130,7 +131,6 @@ const TrustLeaderboardScreen: React.FC<BaseScreenProps> = ({ goBack, navigate })
130
131
  if (isLoading) {
131
132
  return (
132
133
  <View className="flex-1 bg-bg">
133
- <Header title={title} subtitle={subtitle} onBack={goBack} elevation="subtle" />
134
134
  <View style={styles.center}>
135
135
  <ActivityIndicator size="large" color={bloomTheme.colors.primary} />
136
136
  </View>
@@ -141,7 +141,6 @@ const TrustLeaderboardScreen: React.FC<BaseScreenProps> = ({ goBack, navigate })
141
141
  if (error) {
142
142
  return (
143
143
  <View className="flex-1 bg-bg">
144
- <Header title={title} subtitle={subtitle} onBack={goBack} elevation="subtle" />
145
144
  <View style={styles.center} className="px-space-32 gap-space-16">
146
145
  <Ionicons name="alert-circle" size={ERROR_ICON_SIZE} color={bloomTheme.colors.error} />
147
146
  <Text className="text-text-secondary text-base text-center">
@@ -157,7 +156,6 @@ const TrustLeaderboardScreen: React.FC<BaseScreenProps> = ({ goBack, navigate })
157
156
 
158
157
  return (
159
158
  <View className="flex-1 bg-bg">
160
- <Header title={title} subtitle={subtitle} onBack={goBack} elevation="subtle" />
161
159
  <FlatList
162
160
  data={leaderboard}
163
161
  renderItem={renderEntry}
@@ -1,8 +1,8 @@
1
1
  import type React from 'react';
2
2
  import { useMemo, useState, useEffect } from 'react';
3
- import { View, StyleSheet, ScrollView } from 'react-native';
3
+ import { View, StyleSheet } from 'react-native';
4
4
  import type { BaseScreenProps } from '../../types/navigation';
5
- import Header from '../../components/Header';
5
+ import { useSurfaceHeader } from '../../hooks/useSurfaceHeader';
6
6
  import { Ionicons } from '@expo/vector-icons';
7
7
  import { useTheme } from '@oxyhq/bloom/theme';
8
8
  import { H1, H4, H5, Text } from '@oxyhq/bloom/typography';
@@ -75,11 +75,16 @@ const RARITY_DARKEN = 0.4;
75
75
  const ACCENT_LIGHTEN = 0.1;
76
76
  const LOCKED_OPACITY = 0.5;
77
77
 
78
- const TrustRewardsScreen: React.FC<BaseScreenProps> = ({ goBack }) => {
78
+ const TrustRewardsScreen: React.FC<BaseScreenProps> = () => {
79
79
  const { t } = useI18n();
80
80
  // Reputation/trust is the ACTIVE account's standing (the org/project/bot
81
81
  // when switched, else the personal user).
82
82
  const { user, oxyServices, isAuthenticated } = useOxy();
83
+
84
+ useSurfaceHeader({
85
+ title: t('trust.rewards.title') || 'Trust Rewards',
86
+ subtitle: t('trust.rewards.subtitle') || 'Unlock special features and recognition',
87
+ });
83
88
  const [reputationTotal, setReputationTotal] = useState<number>(0);
84
89
  const [, setIsLoading] = useState(true);
85
90
 
@@ -360,19 +365,11 @@ const TrustRewardsScreen: React.FC<BaseScreenProps> = ({ goBack }) => {
360
365
 
361
366
  if (!isAuthenticated) {
362
367
  return (
363
- <View className="flex-1 bg-bg">
364
- <Header
365
- title={t('trust.rewards.title') || 'Trust Rewards'}
366
- subtitle={t('trust.rewards.subtitle') || 'Unlock special features and recognition'}
367
- onBack={goBack}
368
- elevation="subtle"
369
- />
370
- <View className="flex-1 items-center justify-center px-screen-margin">
368
+ <View className="items-center justify-center px-screen-margin py-space-40">
371
369
  <Text className="text-text text-base text-center">
372
370
  {t('common.status.notSignedIn') || 'Not signed in'}
373
371
  </Text>
374
372
  </View>
375
- </View>
376
373
  );
377
374
  }
378
375
 
@@ -381,18 +378,7 @@ const TrustRewardsScreen: React.FC<BaseScreenProps> = ({ goBack }) => {
381
378
  : 0;
382
379
 
383
380
  return (
384
- <View className="flex-1 bg-bg">
385
- <Header
386
- title={t('trust.rewards.title') || 'Trust Rewards'}
387
- subtitle={t('trust.rewards.subtitle') || 'Unlock special features and recognition'}
388
- onBack={goBack}
389
- elevation="subtle"
390
- />
391
- <ScrollView
392
- className="flex-1"
393
- contentContainerClassName="px-screen-margin pt-space-20 pb-space-40"
394
- showsVerticalScrollIndicator={false}
395
- >
381
+ <View className="px-screen-margin pt-space-20 pb-space-40">
396
382
  {/* Stats Header */}
397
383
  <View className="bg-fill rounded-radius-20 p-space-20 mb-space-24">
398
384
  <View className="flex-row justify-between items-center mb-space-16">
@@ -458,8 +444,7 @@ const TrustRewardsScreen: React.FC<BaseScreenProps> = ({ goBack }) => {
458
444
  </View>
459
445
  </>
460
446
  )}
461
- </ScrollView>
462
- </View>
447
+ </View>
463
448
  );
464
449
  };
465
450
 
@@ -1,12 +1,12 @@
1
1
  import type React from 'react';
2
2
  import { useEffect, useMemo, useState } from 'react';
3
- import { View, Text, ScrollView } from 'react-native';
3
+ import { View, Text } from 'react-native';
4
4
  import { SettingsListGroup, SettingsListItem } from '@oxyhq/bloom/settings-list';
5
5
  import { Chip } from '@oxyhq/bloom/chip';
6
6
  import { useTheme } from '@oxyhq/bloom/theme';
7
7
  import type { ReputationRule, ReputationCategory } from '@oxyhq/core';
8
8
  import type { BaseScreenProps } from '../../types/navigation';
9
- import Header from '../../components/Header';
9
+ import { useSurfaceHeader } from '../../hooks/useSurfaceHeader';
10
10
  import { Loading } from '@oxyhq/bloom/loading';
11
11
  import { useI18n } from '../../hooks/useI18n';
12
12
  import { useOxy } from '../../context/OxyContext';
@@ -22,9 +22,14 @@ const CATEGORY_ORDER: ReputationCategory[] = [
22
22
  'other',
23
23
  ];
24
24
 
25
- const TrustRulesScreen: React.FC<BaseScreenProps> = ({ goBack }) => {
25
+ const TrustRulesScreen: React.FC<BaseScreenProps> = () => {
26
26
  const { oxyServices } = useOxy();
27
27
  const { t } = useI18n();
28
+
29
+ useSurfaceHeader({
30
+ title: t('trust.rules.title') || 'Trust Rules',
31
+ subtitle: t('trust.rules.subtitle') || 'How to earn reputation',
32
+ });
28
33
  const bloomTheme = useTheme();
29
34
 
30
35
  const [rules, setRules] = useState<ReputationRule[]>([]);
@@ -61,13 +66,7 @@ const TrustRulesScreen: React.FC<BaseScreenProps> = ({ goBack }) => {
61
66
  }, [rules]);
62
67
 
63
68
  return (
64
- <View className="flex-1 bg-bg">
65
- <Header
66
- title={t('trust.rules.title') || 'Trust Rules'}
67
- subtitle={t('trust.rules.subtitle') || 'How to earn reputation'}
68
- onBack={goBack}
69
- elevation="subtle"
70
- />
69
+ <>
71
70
  {isLoading ? (
72
71
  <Loading size="large" color={bloomTheme.colors.primary} />
73
72
  ) : error ? (
@@ -79,7 +78,6 @@ const TrustRulesScreen: React.FC<BaseScreenProps> = ({ goBack }) => {
79
78
  {t('trust.rules.empty') || 'No rules found.'}
80
79
  </Text>
81
80
  ) : (
82
- <ScrollView className="flex-1">
83
81
  <View className="px-screen-margin pb-space-24 pt-space-12">
84
82
  {groupedRules.map(({ category, items }) => (
85
83
  <SettingsListGroup
@@ -106,9 +104,8 @@ const TrustRulesScreen: React.FC<BaseScreenProps> = ({ goBack }) => {
106
104
  </SettingsListGroup>
107
105
  ))}
108
106
  </View>
109
- </ScrollView>
110
107
  )}
111
- </View>
108
+ </>
112
109
  );
113
110
  };
114
111
 
@@ -15,6 +15,14 @@ export interface BaseScreenProps {
15
15
  goBack?: () => void;
16
16
  onClose?: () => void;
17
17
  onAuthenticated?: (payload?: unknown) => void;
18
+ /**
19
+ * Dismiss THIS surface, resolving the `present()` promise that opened it
20
+ * with `result`. Injected by the surface host (the P1 surface stack). Picker
21
+ * and crop screens use it to hand a typed result back to the awaiting
22
+ * `surfaces.present(...)` call instead of an untyped `onSelect`/`onConfirm`
23
+ * callback prop.
24
+ */
25
+ dismiss?: (result?: unknown) => void;
18
26
 
19
27
  // Theme props
20
28
  theme?: 'light' | 'dark' | string;