@oxyhq/services 6.9.44 → 6.9.46

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 (342) hide show
  1. package/lib/commonjs/ui/components/OxyPayButton.js +4 -2
  2. package/lib/commonjs/ui/components/OxyPayButton.js.map +1 -1
  3. package/lib/commonjs/ui/components/OxyProvider.js +6 -5
  4. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  5. package/lib/commonjs/ui/components/OxySignInButton.js +83 -82
  6. package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
  7. package/lib/commonjs/ui/components/SignInModal.js +271 -102
  8. package/lib/commonjs/ui/components/SignInModal.js.map +1 -1
  9. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js +76 -121
  10. package/lib/commonjs/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  11. package/lib/commonjs/ui/components/fileManagement/FileViewer.js +24 -15
  12. package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -1
  13. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js +32 -18
  14. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js.map +1 -1
  15. package/lib/commonjs/ui/components/icon/OxyIcon.js +5 -4
  16. package/lib/commonjs/ui/components/icon/OxyIcon.js.map +1 -1
  17. package/lib/commonjs/ui/components/index.js +0 -35
  18. package/lib/commonjs/ui/components/index.js.map +1 -1
  19. package/lib/commonjs/ui/components/internal/PinInput.js +3 -2
  20. package/lib/commonjs/ui/components/internal/PinInput.js.map +1 -1
  21. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +83 -219
  22. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -1
  23. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js +26 -13
  24. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js.map +1 -1
  25. package/lib/commonjs/ui/components/payment/PaymentMethodStep.js +50 -28
  26. package/lib/commonjs/ui/components/payment/PaymentMethodStep.js.map +1 -1
  27. package/lib/commonjs/ui/components/payment/PaymentReviewStep.js +83 -48
  28. package/lib/commonjs/ui/components/payment/PaymentReviewStep.js.map +1 -1
  29. package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js +11 -10
  30. package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js.map +1 -1
  31. package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js +38 -23
  32. package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js.map +1 -1
  33. package/lib/commonjs/ui/constants/theme.js +2 -2
  34. package/lib/commonjs/ui/constants/theme.js.map +1 -1
  35. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +4 -3
  36. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  37. package/lib/commonjs/ui/screens/AccountCenterScreen.js +13 -13
  38. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  39. package/lib/commonjs/ui/screens/AccountOverviewScreen.js +117 -142
  40. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
  41. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +112 -78
  42. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  43. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +213 -144
  44. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  45. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +26 -14
  46. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  47. package/lib/commonjs/ui/screens/FeedbackScreen.js +57 -51
  48. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  49. package/lib/commonjs/ui/screens/FileManagementScreen.js +108 -86
  50. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  51. package/lib/commonjs/ui/screens/HistoryViewScreen.js +109 -130
  52. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
  53. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +15 -8
  54. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
  55. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +60 -54
  56. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
  57. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +12 -9
  58. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  59. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js +66 -93
  60. package/lib/commonjs/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  61. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +159 -190
  62. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  63. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +20 -22
  64. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
  65. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +16 -17
  66. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  67. package/lib/commonjs/ui/screens/SessionManagementScreen.js +127 -70
  68. package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -1
  69. package/lib/commonjs/ui/screens/UserLinksScreen.js +13 -29
  70. package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -1
  71. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +110 -52
  72. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  73. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js +3 -5
  74. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
  75. package/lib/commonjs/ui/utils/fileManagement.js +0 -21
  76. package/lib/commonjs/ui/utils/fileManagement.js.map +1 -1
  77. package/lib/module/ui/components/OxyPayButton.js +4 -2
  78. package/lib/module/ui/components/OxyPayButton.js.map +1 -1
  79. package/lib/module/ui/components/OxyProvider.js +6 -5
  80. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  81. package/lib/module/ui/components/OxySignInButton.js +84 -83
  82. package/lib/module/ui/components/OxySignInButton.js.map +1 -1
  83. package/lib/module/ui/components/SignInModal.js +271 -100
  84. package/lib/module/ui/components/SignInModal.js.map +1 -1
  85. package/lib/module/ui/components/fileManagement/FileDetailsModal.js +76 -122
  86. package/lib/module/ui/components/fileManagement/FileDetailsModal.js.map +1 -1
  87. package/lib/module/ui/components/fileManagement/FileViewer.js +24 -15
  88. package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -1
  89. package/lib/module/ui/components/fileManagement/UploadPreview.js +32 -19
  90. package/lib/module/ui/components/fileManagement/UploadPreview.js.map +1 -1
  91. package/lib/module/ui/components/icon/OxyIcon.js +5 -4
  92. package/lib/module/ui/components/icon/OxyIcon.js.map +1 -1
  93. package/lib/module/ui/components/index.js +0 -5
  94. package/lib/module/ui/components/index.js.map +1 -1
  95. package/lib/module/ui/components/internal/PinInput.js +3 -2
  96. package/lib/module/ui/components/internal/PinInput.js.map +1 -1
  97. package/lib/module/ui/components/modals/DeleteAccountModal.js +83 -220
  98. package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -1
  99. package/lib/module/ui/components/payment/PaymentDetailsStep.js +26 -13
  100. package/lib/module/ui/components/payment/PaymentDetailsStep.js.map +1 -1
  101. package/lib/module/ui/components/payment/PaymentMethodStep.js +49 -26
  102. package/lib/module/ui/components/payment/PaymentMethodStep.js.map +1 -1
  103. package/lib/module/ui/components/payment/PaymentReviewStep.js +84 -48
  104. package/lib/module/ui/components/payment/PaymentReviewStep.js.map +1 -1
  105. package/lib/module/ui/components/payment/PaymentSuccessStep.js +11 -9
  106. package/lib/module/ui/components/payment/PaymentSuccessStep.js.map +1 -1
  107. package/lib/module/ui/components/payment/PaymentSummaryStep.js +38 -22
  108. package/lib/module/ui/components/payment/PaymentSummaryStep.js.map +1 -1
  109. package/lib/module/ui/constants/theme.js +2 -2
  110. package/lib/module/ui/constants/theme.js.map +1 -1
  111. package/lib/module/ui/context/hooks/useAuthOperations.js +4 -3
  112. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  113. package/lib/module/ui/screens/AccountCenterScreen.js +12 -13
  114. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  115. package/lib/module/ui/screens/AccountOverviewScreen.js +117 -142
  116. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
  117. package/lib/module/ui/screens/AccountSettingsScreen.js +112 -78
  118. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  119. package/lib/module/ui/screens/AccountSwitcherScreen.js +213 -145
  120. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  121. package/lib/module/ui/screens/AccountVerificationScreen.js +28 -16
  122. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  123. package/lib/module/ui/screens/FeedbackScreen.js +48 -42
  124. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  125. package/lib/module/ui/screens/FileManagementScreen.js +110 -88
  126. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  127. package/lib/module/ui/screens/HistoryViewScreen.js +110 -131
  128. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  129. package/lib/module/ui/screens/LanguageSelectorScreen.js +16 -9
  130. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  131. package/lib/module/ui/screens/LegalDocumentsScreen.js +61 -55
  132. package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
  133. package/lib/module/ui/screens/PaymentGatewayScreen.js +12 -9
  134. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  135. package/lib/module/ui/screens/PremiumSubscriptionScreen.js +66 -94
  136. package/lib/module/ui/screens/PremiumSubscriptionScreen.js.map +1 -1
  137. package/lib/module/ui/screens/PrivacySettingsScreen.js +161 -192
  138. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  139. package/lib/module/ui/screens/SavesCollectionsScreen.js +21 -23
  140. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
  141. package/lib/module/ui/screens/SearchSettingsScreen.js +17 -18
  142. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  143. package/lib/module/ui/screens/SessionManagementScreen.js +128 -72
  144. package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
  145. package/lib/module/ui/screens/UserLinksScreen.js +15 -31
  146. package/lib/module/ui/screens/UserLinksScreen.js.map +1 -1
  147. package/lib/module/ui/screens/WelcomeNewUserScreen.js +110 -52
  148. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  149. package/lib/module/ui/screens/karma/KarmaFAQScreen.js +4 -6
  150. package/lib/module/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
  151. package/lib/module/ui/utils/fileManagement.js +0 -20
  152. package/lib/module/ui/utils/fileManagement.js.map +1 -1
  153. package/lib/typescript/commonjs/ui/components/OxyPayButton.d.ts.map +1 -1
  154. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  155. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts +0 -1
  156. package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
  157. package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +1 -1
  158. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts +3 -4
  159. package/lib/typescript/commonjs/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  160. package/lib/typescript/commonjs/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
  161. package/lib/typescript/commonjs/ui/components/fileManagement/UploadPreview.d.ts +2 -3
  162. package/lib/typescript/commonjs/ui/components/fileManagement/UploadPreview.d.ts.map +1 -1
  163. package/lib/typescript/commonjs/ui/components/icon/OxyIcon.d.ts.map +1 -1
  164. package/lib/typescript/commonjs/ui/components/index.d.ts +0 -5
  165. package/lib/typescript/commonjs/ui/components/index.d.ts.map +1 -1
  166. package/lib/typescript/commonjs/ui/components/internal/PinInput.d.ts.map +1 -1
  167. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts +2 -2
  168. package/lib/typescript/commonjs/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  169. package/lib/typescript/commonjs/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -1
  170. package/lib/typescript/commonjs/ui/components/payment/PaymentMethodStep.d.ts.map +1 -1
  171. package/lib/typescript/commonjs/ui/components/payment/PaymentReviewStep.d.ts.map +1 -1
  172. package/lib/typescript/commonjs/ui/components/payment/PaymentSuccessStep.d.ts.map +1 -1
  173. package/lib/typescript/commonjs/ui/components/payment/PaymentSummaryStep.d.ts.map +1 -1
  174. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  175. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts +1 -1
  176. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  177. package/lib/typescript/commonjs/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  178. package/lib/typescript/commonjs/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  179. package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  180. package/lib/typescript/commonjs/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
  181. package/lib/typescript/commonjs/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  182. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts.map +1 -1
  183. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  184. package/lib/typescript/commonjs/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  185. package/lib/typescript/commonjs/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  186. package/lib/typescript/commonjs/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  187. package/lib/typescript/commonjs/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  188. package/lib/typescript/commonjs/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  189. package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  190. package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  191. package/lib/typescript/commonjs/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  192. package/lib/typescript/commonjs/ui/screens/UserLinksScreen.d.ts.map +1 -1
  193. package/lib/typescript/commonjs/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  194. package/lib/typescript/commonjs/ui/screens/karma/KarmaFAQScreen.d.ts.map +1 -1
  195. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts +0 -4
  196. package/lib/typescript/commonjs/ui/utils/fileManagement.d.ts.map +1 -1
  197. package/lib/typescript/module/ui/components/OxyPayButton.d.ts.map +1 -1
  198. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  199. package/lib/typescript/module/ui/components/OxySignInButton.d.ts +0 -1
  200. package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
  201. package/lib/typescript/module/ui/components/SignInModal.d.ts.map +1 -1
  202. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts +3 -4
  203. package/lib/typescript/module/ui/components/fileManagement/FileDetailsModal.d.ts.map +1 -1
  204. package/lib/typescript/module/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
  205. package/lib/typescript/module/ui/components/fileManagement/UploadPreview.d.ts +2 -3
  206. package/lib/typescript/module/ui/components/fileManagement/UploadPreview.d.ts.map +1 -1
  207. package/lib/typescript/module/ui/components/icon/OxyIcon.d.ts.map +1 -1
  208. package/lib/typescript/module/ui/components/index.d.ts +0 -5
  209. package/lib/typescript/module/ui/components/index.d.ts.map +1 -1
  210. package/lib/typescript/module/ui/components/internal/PinInput.d.ts.map +1 -1
  211. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts +2 -2
  212. package/lib/typescript/module/ui/components/modals/DeleteAccountModal.d.ts.map +1 -1
  213. package/lib/typescript/module/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -1
  214. package/lib/typescript/module/ui/components/payment/PaymentMethodStep.d.ts.map +1 -1
  215. package/lib/typescript/module/ui/components/payment/PaymentReviewStep.d.ts.map +1 -1
  216. package/lib/typescript/module/ui/components/payment/PaymentSuccessStep.d.ts.map +1 -1
  217. package/lib/typescript/module/ui/components/payment/PaymentSummaryStep.d.ts.map +1 -1
  218. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  219. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts +1 -1
  220. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  221. package/lib/typescript/module/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  222. package/lib/typescript/module/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  223. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  224. package/lib/typescript/module/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
  225. package/lib/typescript/module/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  226. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts.map +1 -1
  227. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  228. package/lib/typescript/module/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  229. package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  230. package/lib/typescript/module/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  231. package/lib/typescript/module/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  232. package/lib/typescript/module/ui/screens/PremiumSubscriptionScreen.d.ts.map +1 -1
  233. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  234. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  235. package/lib/typescript/module/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  236. package/lib/typescript/module/ui/screens/UserLinksScreen.d.ts.map +1 -1
  237. package/lib/typescript/module/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  238. package/lib/typescript/module/ui/screens/karma/KarmaFAQScreen.d.ts.map +1 -1
  239. package/lib/typescript/module/ui/utils/fileManagement.d.ts +0 -4
  240. package/lib/typescript/module/ui/utils/fileManagement.d.ts.map +1 -1
  241. package/package.json +3 -3
  242. package/src/ui/components/OxyPayButton.tsx +5 -3
  243. package/src/ui/components/OxyProvider.tsx +6 -5
  244. package/src/ui/components/OxySignInButton.tsx +82 -81
  245. package/src/ui/components/SignInModal.tsx +186 -42
  246. package/src/ui/components/fileManagement/FileDetailsModal.tsx +69 -99
  247. package/src/ui/components/fileManagement/FileViewer.tsx +25 -15
  248. package/src/ui/components/fileManagement/UploadPreview.tsx +58 -46
  249. package/src/ui/components/icon/OxyIcon.tsx +5 -4
  250. package/src/ui/components/index.ts +0 -5
  251. package/src/ui/components/internal/PinInput.tsx +4 -3
  252. package/src/ui/components/modals/DeleteAccountModal.tsx +79 -221
  253. package/src/ui/components/payment/PaymentDetailsStep.tsx +16 -19
  254. package/src/ui/components/payment/PaymentMethodStep.tsx +33 -35
  255. package/src/ui/components/payment/PaymentReviewStep.tsx +63 -67
  256. package/src/ui/components/payment/PaymentSuccessStep.tsx +4 -12
  257. package/src/ui/components/payment/PaymentSummaryStep.tsx +26 -33
  258. package/src/ui/constants/theme.ts +2 -2
  259. package/src/ui/context/hooks/useAuthOperations.ts +4 -3
  260. package/src/ui/screens/AccountCenterScreen.tsx +36 -139
  261. package/src/ui/screens/AccountOverviewScreen.tsx +107 -163
  262. package/src/ui/screens/AccountSettingsScreen.tsx +142 -156
  263. package/src/ui/screens/AccountSwitcherScreen.tsx +226 -199
  264. package/src/ui/screens/AccountVerificationScreen.tsx +34 -25
  265. package/src/ui/screens/FeedbackScreen.tsx +50 -38
  266. package/src/ui/screens/FileManagementScreen.tsx +88 -88
  267. package/src/ui/screens/HistoryViewScreen.tsx +79 -207
  268. package/src/ui/screens/LanguageSelectorScreen.tsx +19 -7
  269. package/src/ui/screens/LegalDocumentsScreen.tsx +46 -63
  270. package/src/ui/screens/PaymentGatewayScreen.tsx +11 -12
  271. package/src/ui/screens/PremiumSubscriptionScreen.tsx +73 -93
  272. package/src/ui/screens/PrivacySettingsScreen.tsx +81 -193
  273. package/src/ui/screens/SavesCollectionsScreen.tsx +23 -23
  274. package/src/ui/screens/SearchSettingsScreen.tsx +11 -19
  275. package/src/ui/screens/SessionManagementScreen.tsx +130 -76
  276. package/src/ui/screens/UserLinksScreen.tsx +15 -32
  277. package/src/ui/screens/WelcomeNewUserScreen.tsx +46 -20
  278. package/src/ui/screens/karma/KarmaFAQScreen.tsx +4 -6
  279. package/src/ui/utils/fileManagement.ts +0 -30
  280. package/lib/commonjs/ui/components/GroupedItem.js +0 -138
  281. package/lib/commonjs/ui/components/GroupedItem.js.map +0 -1
  282. package/lib/commonjs/ui/components/GroupedSection.js +0 -41
  283. package/lib/commonjs/ui/components/GroupedSection.js.map +0 -1
  284. package/lib/commonjs/ui/components/Section.js +0 -39
  285. package/lib/commonjs/ui/components/Section.js.map +0 -1
  286. package/lib/commonjs/ui/components/SectionTitle.js +0 -29
  287. package/lib/commonjs/ui/components/SectionTitle.js.map +0 -1
  288. package/lib/commonjs/ui/components/SettingRow.js +0 -90
  289. package/lib/commonjs/ui/components/SettingRow.js.map +0 -1
  290. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js +0 -206
  291. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js.map +0 -1
  292. package/lib/commonjs/ui/utils/confirmAction.js +0 -28
  293. package/lib/commonjs/ui/utils/confirmAction.js.map +0 -1
  294. package/lib/module/ui/components/GroupedItem.js +0 -135
  295. package/lib/module/ui/components/GroupedItem.js.map +0 -1
  296. package/lib/module/ui/components/GroupedSection.js +0 -37
  297. package/lib/module/ui/components/GroupedSection.js.map +0 -1
  298. package/lib/module/ui/components/Section.js +0 -34
  299. package/lib/module/ui/components/Section.js.map +0 -1
  300. package/lib/module/ui/components/SectionTitle.js +0 -25
  301. package/lib/module/ui/components/SectionTitle.js.map +0 -1
  302. package/lib/module/ui/components/SettingRow.js +0 -85
  303. package/lib/module/ui/components/SettingRow.js.map +0 -1
  304. package/lib/module/ui/components/internal/GroupedPillButtons.js +0 -202
  305. package/lib/module/ui/components/internal/GroupedPillButtons.js.map +0 -1
  306. package/lib/module/ui/utils/confirmAction.js +0 -25
  307. package/lib/module/ui/utils/confirmAction.js.map +0 -1
  308. package/lib/typescript/commonjs/ui/components/GroupedItem.d.ts +0 -24
  309. package/lib/typescript/commonjs/ui/components/GroupedItem.d.ts.map +0 -1
  310. package/lib/typescript/commonjs/ui/components/GroupedSection.d.ts +0 -30
  311. package/lib/typescript/commonjs/ui/components/GroupedSection.d.ts.map +0 -1
  312. package/lib/typescript/commonjs/ui/components/Section.d.ts +0 -12
  313. package/lib/typescript/commonjs/ui/components/Section.d.ts.map +0 -1
  314. package/lib/typescript/commonjs/ui/components/SectionTitle.d.ts +0 -10
  315. package/lib/typescript/commonjs/ui/components/SectionTitle.d.ts.map +0 -1
  316. package/lib/typescript/commonjs/ui/components/SettingRow.d.ts +0 -20
  317. package/lib/typescript/commonjs/ui/components/SettingRow.d.ts.map +0 -1
  318. package/lib/typescript/commonjs/ui/components/internal/GroupedPillButtons.d.ts +0 -24
  319. package/lib/typescript/commonjs/ui/components/internal/GroupedPillButtons.d.ts.map +0 -1
  320. package/lib/typescript/commonjs/ui/utils/confirmAction.d.ts +0 -7
  321. package/lib/typescript/commonjs/ui/utils/confirmAction.d.ts.map +0 -1
  322. package/lib/typescript/module/ui/components/GroupedItem.d.ts +0 -24
  323. package/lib/typescript/module/ui/components/GroupedItem.d.ts.map +0 -1
  324. package/lib/typescript/module/ui/components/GroupedSection.d.ts +0 -30
  325. package/lib/typescript/module/ui/components/GroupedSection.d.ts.map +0 -1
  326. package/lib/typescript/module/ui/components/Section.d.ts +0 -12
  327. package/lib/typescript/module/ui/components/Section.d.ts.map +0 -1
  328. package/lib/typescript/module/ui/components/SectionTitle.d.ts +0 -10
  329. package/lib/typescript/module/ui/components/SectionTitle.d.ts.map +0 -1
  330. package/lib/typescript/module/ui/components/SettingRow.d.ts +0 -20
  331. package/lib/typescript/module/ui/components/SettingRow.d.ts.map +0 -1
  332. package/lib/typescript/module/ui/components/internal/GroupedPillButtons.d.ts +0 -24
  333. package/lib/typescript/module/ui/components/internal/GroupedPillButtons.d.ts.map +0 -1
  334. package/lib/typescript/module/ui/utils/confirmAction.d.ts +0 -7
  335. package/lib/typescript/module/ui/utils/confirmAction.d.ts.map +0 -1
  336. package/src/ui/components/GroupedItem.tsx +0 -161
  337. package/src/ui/components/GroupedSection.tsx +0 -60
  338. package/src/ui/components/Section.tsx +0 -42
  339. package/src/ui/components/SectionTitle.tsx +0 -27
  340. package/src/ui/components/SettingRow.tsx +0 -98
  341. package/src/ui/components/internal/GroupedPillButtons.tsx +0 -250
  342. package/src/ui/utils/confirmAction.ts +0 -23
@@ -1,31 +1,23 @@
1
1
  import type React from 'react';
2
2
  import { useState, useCallback } from 'react';
3
- import {
4
- View,
5
- Text,
6
- TextInput,
7
- TouchableOpacity,
8
- StyleSheet,
9
- Modal,
10
- KeyboardAvoidingView,
11
- Platform,
12
- } from 'react-native';
3
+ import { View, Text, TextInput, TouchableOpacity } from 'react-native';
4
+ import * as Dialog from '@oxyhq/bloom/dialog';
5
+ import type { DialogControlProps } from '@oxyhq/bloom/dialog';
6
+ import * as Prompt from '@oxyhq/bloom/prompt';
13
7
  import OxyIcon from '../icon/OxyIcon';
14
8
  import { useTheme } from '@oxyhq/bloom/theme';
15
9
  import { Loading } from '@oxyhq/bloom/loading';
16
10
 
17
11
  interface DeleteAccountModalProps {
18
- visible: boolean;
12
+ control: DialogControlProps;
19
13
  username: string;
20
- onClose: () => void;
21
14
  onDelete: (password: string) => Promise<void>;
22
15
  t: (key: string, params?: Record<string, string>) => string | undefined;
23
16
  }
24
17
 
25
18
  const DeleteAccountModal: React.FC<DeleteAccountModalProps> = ({
26
- visible,
19
+ control,
27
20
  username,
28
- onClose,
29
21
  onDelete,
30
22
  t,
31
23
  }) => {
@@ -46,7 +38,7 @@ const DeleteAccountModal: React.FC<DeleteAccountModalProps> = ({
46
38
 
47
39
  try {
48
40
  await onDelete(password);
49
- // Modal will be closed by parent on success
41
+ // Dialog will be closed by parent on success
50
42
  } catch (err: unknown) {
51
43
  setError((err instanceof Error ? err.message : null) || t('deleteAccount.error') || 'Failed to delete account');
52
44
  } finally {
@@ -54,234 +46,100 @@ const DeleteAccountModal: React.FC<DeleteAccountModalProps> = ({
54
46
  }
55
47
  }, [isValid, password, onDelete, t]);
56
48
 
57
- const handleClose = useCallback(() => {
49
+ const handleCleanup = useCallback(() => {
58
50
  if (isDeleting) return;
59
51
  setPassword('');
60
52
  setConfirmUsername('');
61
53
  setError(null);
62
- onClose();
63
- }, [isDeleting, onClose]);
54
+ setShowPassword(false);
55
+ }, [isDeleting]);
64
56
 
65
57
  return (
66
- <Modal
67
- visible={visible}
68
- transparent
69
- animationType="fade"
70
- onRequestClose={handleClose}
71
- >
72
- <KeyboardAvoidingView
73
- behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
74
- style={styles.overlay}
75
- >
76
- <TouchableOpacity
77
- style={[styles.backdrop, { backgroundColor: theme.colors.overlay }]}
78
- activeOpacity={1}
79
- onPress={handleClose}
80
- />
81
- <View style={[styles.modal, { backgroundColor: theme.colors.background }]}>
82
- <View style={styles.header}>
83
- <OxyIcon name="alert" size={32} color={theme.colors.error} />
84
- <Text className="text-destructive" style={styles.title}>
85
- {t('deleteAccount.title') || 'Delete Account'}
86
- </Text>
87
- </View>
88
-
89
- <Text className="text-foreground" style={styles.warning}>
90
- {t('deleteAccount.warning') || 'This action cannot be undone. Your account and all associated data will be permanently deleted.'}
58
+ <Dialog.Outer control={control} onClose={handleCleanup}>
59
+ <Dialog.Handle />
60
+ <Dialog.ScrollableInner label="Delete Account">
61
+ <View className="flex-row items-center mb-4 gap-3">
62
+ <OxyIcon name="alert" size={32} color={theme.colors.error} />
63
+ <Text className="text-destructive text-xl font-bold">
64
+ {t('deleteAccount.title') || 'Delete Account'}
91
65
  </Text>
66
+ </View>
92
67
 
93
- {error && (
94
- <View style={[styles.errorContainer, { backgroundColor: `${theme.colors.error}20` }]}>
95
- <Text className="text-destructive" style={styles.errorText}>
96
- {error}
97
- </Text>
98
- </View>
99
- )}
100
-
101
- <View style={styles.inputGroup}>
102
- <Text className="text-muted-foreground" style={styles.label}>
103
- {t('deleteAccount.passwordLabel') || 'Enter your password'}
68
+ <Text className="text-foreground text-sm leading-5 mb-5">
69
+ {t('deleteAccount.warning') || 'This action cannot be undone. Your account and all associated data will be permanently deleted.'}
70
+ </Text>
71
+
72
+ {error && (
73
+ <View
74
+ className="p-3 rounded-lg mb-4"
75
+ style={{ backgroundColor: `${theme.colors.error}20` }}
76
+ >
77
+ <Text className="text-destructive text-sm text-center">
78
+ {error}
104
79
  </Text>
105
- <View className="border-border bg-background" style={styles.inputContainer}>
106
- <TextInput
107
- className="text-foreground"
108
- style={styles.input}
109
- value={password}
110
- onChangeText={setPassword}
111
- placeholder={t('deleteAccount.passwordPlaceholder') || 'Password'}
112
- placeholderTextColor={theme.colors.textSecondary}
113
- secureTextEntry={!showPassword}
114
- autoCapitalize="none"
115
- editable={!isDeleting}
116
- />
117
- <TouchableOpacity
118
- onPress={() => setShowPassword(!showPassword)}
119
- style={styles.eyeButton}
120
- >
121
- <OxyIcon
122
- name={showPassword ? 'eye-off' : 'eye'}
123
- size={20}
124
- color={theme.colors.textSecondary}
125
- />
126
- </TouchableOpacity>
127
- </View>
128
80
  </View>
81
+ )}
129
82
 
130
- <View style={styles.inputGroup}>
131
- <Text className="text-muted-foreground" style={styles.label}>
132
- {t('deleteAccount.confirmLabel', { username }) || `Type "${username}" to confirm`}
133
- </Text>
83
+ <View className="mb-4">
84
+ <Text className="text-muted-foreground text-[13px] mb-2">
85
+ {t('deleteAccount.passwordLabel') || 'Enter your password'}
86
+ </Text>
87
+ <View className="flex-row items-center border border-border bg-background rounded-lg">
134
88
  <TextInput
135
- className="text-foreground bg-background"
136
- style={[
137
- styles.input,
138
- styles.confirmInput,
139
- {
140
- borderColor: confirmUsername === username ? theme.colors.success : theme.colors.border,
141
- },
142
- ]}
143
- value={confirmUsername}
144
- onChangeText={setConfirmUsername}
145
- placeholder={username}
89
+ className="text-foreground flex-1 text-base py-3 px-4"
90
+ value={password}
91
+ onChangeText={setPassword}
92
+ placeholder={t('deleteAccount.passwordPlaceholder') || 'Password'}
146
93
  placeholderTextColor={theme.colors.textSecondary}
94
+ secureTextEntry={!showPassword}
147
95
  autoCapitalize="none"
148
- autoCorrect={false}
149
96
  editable={!isDeleting}
150
97
  />
151
- </View>
152
-
153
- <View style={styles.buttons}>
154
98
  <TouchableOpacity
155
- className="border-border"
156
- style={[styles.button, styles.cancelButton]}
157
- onPress={handleClose}
158
- disabled={isDeleting}
99
+ onPress={() => setShowPassword(!showPassword)}
100
+ className="p-3"
159
101
  >
160
- <Text className="text-foreground" style={styles.buttonText}>
161
- {t('common.cancel') || 'Cancel'}
162
- </Text>
163
- </TouchableOpacity>
164
-
165
- <TouchableOpacity
166
- style={[
167
- styles.button,
168
- styles.deleteButton,
169
- { backgroundColor: isValid ? theme.colors.error : `${theme.colors.error}50` },
170
- ]}
171
- onPress={handleDelete}
172
- disabled={!isValid || isDeleting}
173
- >
174
- {isDeleting ? (
175
- <Loading size="small" />
176
- ) : (
177
- <Text style={[styles.deleteButtonText, { color: theme.colors.card }]}>
178
- {t('deleteAccount.confirm') || 'Delete Forever'}
179
- </Text>
180
- )}
102
+ <OxyIcon
103
+ name={showPassword ? 'eye-off' : 'eye'}
104
+ size={20}
105
+ color={theme.colors.textSecondary}
106
+ />
181
107
  </TouchableOpacity>
182
108
  </View>
183
109
  </View>
184
- </KeyboardAvoidingView>
185
- </Modal>
110
+
111
+ <View className="mb-4">
112
+ <Text className="text-muted-foreground text-[13px] mb-2">
113
+ {t('deleteAccount.confirmLabel', { username }) || `Type "${username}" to confirm`}
114
+ </Text>
115
+ <TextInput
116
+ className="text-foreground bg-background text-base py-3 px-4 border rounded-lg"
117
+ style={{
118
+ borderColor: confirmUsername === username ? theme.colors.success : theme.colors.border,
119
+ }}
120
+ value={confirmUsername}
121
+ onChangeText={setConfirmUsername}
122
+ placeholder={username}
123
+ placeholderTextColor={theme.colors.textSecondary}
124
+ autoCapitalize="none"
125
+ autoCorrect={false}
126
+ editable={!isDeleting}
127
+ />
128
+ </View>
129
+
130
+ <Prompt.Actions>
131
+ <Prompt.Action
132
+ onPress={handleDelete}
133
+ color="negative"
134
+ cta={isDeleting ? undefined : (t('deleteAccount.confirm') || 'Delete Forever')}
135
+ disabled={!isValid || isDeleting}
136
+ shouldCloseOnPress={false}
137
+ />
138
+ <Prompt.Cancel cta={t('common.cancel') || 'Cancel'} />
139
+ </Prompt.Actions>
140
+ </Dialog.ScrollableInner>
141
+ </Dialog.Outer>
186
142
  );
187
143
  };
188
144
 
189
- const styles = StyleSheet.create({
190
- overlay: {
191
- flex: 1,
192
- justifyContent: 'center',
193
- alignItems: 'center',
194
- },
195
- backdrop: {
196
- ...StyleSheet.absoluteFillObject,
197
- },
198
- modal: {
199
- width: '90%',
200
- maxWidth: 400,
201
- borderRadius: 16,
202
- padding: 24,
203
- shadowColor: '#000',
204
- shadowOffset: { width: 0, height: 4 },
205
- shadowOpacity: 0.3,
206
- shadowRadius: 8,
207
- elevation: 8,
208
- },
209
- header: {
210
- flexDirection: 'row',
211
- alignItems: 'center',
212
- marginBottom: 16,
213
- gap: 12,
214
- },
215
- title: {
216
- fontSize: 20,
217
- fontWeight: '700',
218
- },
219
- warning: {
220
- fontSize: 14,
221
- lineHeight: 20,
222
- marginBottom: 20,
223
- },
224
- errorContainer: {
225
- padding: 12,
226
- borderRadius: 8,
227
- marginBottom: 16,
228
- },
229
- errorText: {
230
- fontSize: 14,
231
- textAlign: 'center',
232
- },
233
- inputGroup: {
234
- marginBottom: 16,
235
- },
236
- label: {
237
- fontSize: 13,
238
- marginBottom: 8,
239
- },
240
- inputContainer: {
241
- flexDirection: 'row',
242
- alignItems: 'center',
243
- borderWidth: 1,
244
- borderRadius: 8,
245
- },
246
- input: {
247
- flex: 1,
248
- fontSize: 16,
249
- paddingVertical: 12,
250
- paddingHorizontal: 16,
251
- },
252
- confirmInput: {
253
- borderWidth: 1,
254
- borderRadius: 8,
255
- },
256
- eyeButton: {
257
- padding: 12,
258
- },
259
- buttons: {
260
- flexDirection: 'row',
261
- gap: 12,
262
- marginTop: 8,
263
- },
264
- button: {
265
- flex: 1,
266
- paddingVertical: 14,
267
- borderRadius: 8,
268
- alignItems: 'center',
269
- justifyContent: 'center',
270
- },
271
- cancelButton: {
272
- borderWidth: 1,
273
- },
274
- deleteButton: {
275
- minHeight: 48,
276
- },
277
- buttonText: {
278
- fontSize: 16,
279
- fontWeight: '600',
280
- },
281
- deleteButtonText: {
282
- fontSize: 16,
283
- fontWeight: '600',
284
- },
285
- });
286
-
287
145
  export default DeleteAccountModal;
@@ -2,7 +2,7 @@ import type React from 'react';
2
2
  import { useMemo } from 'react';
3
3
  import { View, Text, Animated, TouchableOpacity, Clipboard, Linking } from 'react-native';
4
4
  import { Ionicons } from '@expo/vector-icons';
5
- import GroupedPillButtons from '../internal/GroupedPillButtons';
5
+ import { Button } from '@oxyhq/bloom/button';
6
6
  import TextField from '../TextField';
7
7
  import { FAIRWalletIcon } from '../icon';
8
8
  import { createPaymentStyles } from './paymentStyles';
@@ -200,24 +200,21 @@ const PaymentDetailsStep: React.FC<PaymentDetailsStepProps> = ({
200
200
  )}
201
201
  </View>
202
202
 
203
- <GroupedPillButtons
204
- buttons={[
205
- {
206
- text: t('payment.actions.back'),
207
- onPress: onBack,
208
- icon: 'arrow-back',
209
- variant: 'transparent',
210
- },
211
- {
212
- text: t('payment.actions.continue'),
213
- onPress: onNext,
214
- icon: 'arrow-forward',
215
- variant: 'primary',
216
- disabled: paymentMethod === 'card' && !isCardValid,
217
- },
218
- ]}
219
- colors={colors}
220
- />
203
+ <View style={{ flexDirection: 'row', gap: 8, justifyContent: 'flex-end' }}>
204
+ <Button variant="secondary" onPress={onBack} size="small" icon={<Ionicons name="arrow-back" size={16} />}>
205
+ {t('payment.actions.back')}
206
+ </Button>
207
+ <Button
208
+ variant="primary"
209
+ onPress={onNext}
210
+ size="small"
211
+ icon={<Ionicons name="arrow-forward" size={16} />}
212
+ iconPosition="right"
213
+ disabled={paymentMethod === 'card' && !isCardValid}
214
+ >
215
+ {t('payment.actions.continue')}
216
+ </Button>
217
+ </View>
221
218
  </Animated.View>
222
219
  );
223
220
  };
@@ -1,8 +1,9 @@
1
1
  import type React from 'react';
2
2
  import { useMemo } from 'react';
3
3
  import { View, Text, Animated } from 'react-native';
4
- import { GroupedSection } from '../index';
5
- import GroupedPillButtons from '../internal/GroupedPillButtons';
4
+ import { Ionicons } from '@expo/vector-icons';
5
+ import { SettingsListGroup, SettingsListItem } from '@oxyhq/bloom/settings-list';
6
+ import { Button } from '@oxyhq/bloom/button';
6
7
  import { FAIRWalletIcon } from '../icon';
7
8
  import { createPaymentStyles } from './paymentStyles';
8
9
  import type { PaymentMethod, PaymentColors, PaymentStepAnimations } from './types';
@@ -49,42 +50,39 @@ const PaymentMethodStep: React.FC<PaymentMethodStepProps> = ({
49
50
  <View style={styles.section}>
50
51
  <Text style={styles.sectionTitle}>{t('payment.method.title')}</Text>
51
52
 
52
- <GroupedSection
53
- items={availablePaymentMethods.map(method => ({
54
- id: method.key,
55
- icon: method.key === 'faircoin' ? undefined : method.icon,
56
- iconColor: method.key === 'card' ? '#007AFF' :
53
+ <SettingsListGroup>
54
+ {availablePaymentMethods.map(method => {
55
+ const iconColor = method.key === 'card' ? '#007AFF' :
57
56
  method.key === 'oxy' ? '#32D74B' :
58
- method.key === 'faircoin' ? '#9ffb50' : colors.primary,
59
- title: t(`payment.methods.${method.key}.label`),
60
- subtitle: t(`payment.methods.${method.key}.description`),
61
- onPress: () => onSelectMethod(method.key),
62
- selected: selectedMethod === method.key,
63
- showChevron: false,
64
- customIcon: method.key === 'faircoin' ? (
65
- <FAIRWalletIcon size={20} />
66
- ) : undefined,
67
- }))}
68
- />
57
+ method.key === 'faircoin' ? '#9ffb50' : colors.primary;
58
+ const iconElement = method.key === 'faircoin'
59
+ ? <FAIRWalletIcon size={20} />
60
+ : <Ionicons name={method.icon} size={20} color={iconColor} />;
61
+ return (
62
+ <SettingsListItem
63
+ key={method.key}
64
+ icon={iconElement}
65
+ title={t(`payment.methods.${method.key}.label`)}
66
+ description={t(`payment.methods.${method.key}.description`)}
67
+ onPress={() => onSelectMethod(method.key)}
68
+ showChevron={false}
69
+ rightElement={selectedMethod === method.key ? (
70
+ <Ionicons name="checkmark-circle" size={20} color={colors.primary} />
71
+ ) : undefined}
72
+ />
73
+ );
74
+ })}
75
+ </SettingsListGroup>
69
76
  </View>
70
77
 
71
- <GroupedPillButtons
72
- buttons={[
73
- {
74
- text: t('payment.actions.back'),
75
- onPress: onBack,
76
- icon: 'arrow-back',
77
- variant: 'transparent',
78
- },
79
- {
80
- text: t('payment.actions.continue'),
81
- onPress: onNext,
82
- icon: 'arrow-forward',
83
- variant: 'primary',
84
- },
85
- ]}
86
- colors={colors}
87
- />
78
+ <View style={{ flexDirection: 'row', gap: 8, justifyContent: 'flex-end' }}>
79
+ <Button variant="secondary" onPress={onBack} size="small" icon={<Ionicons name="arrow-back" size={16} />}>
80
+ {t('payment.actions.back')}
81
+ </Button>
82
+ <Button variant="primary" onPress={onNext} size="small" icon={<Ionicons name="arrow-forward" size={16} />} iconPosition="right">
83
+ {t('payment.actions.continue')}
84
+ </Button>
85
+ </View>
88
86
  </Animated.View>
89
87
  );
90
88
  };
@@ -1,8 +1,9 @@
1
1
  import type React from 'react';
2
2
  import { useMemo } from 'react';
3
- import { View, Text, Animated } from 'react-native';
4
- import { GroupedSection } from '../index';
5
- import GroupedPillButtons from '../internal/GroupedPillButtons';
3
+ import { View, Text, Animated, ActivityIndicator } from 'react-native';
4
+ import { Ionicons } from '@expo/vector-icons';
5
+ import { SettingsListGroup, SettingsListItem } from '@oxyhq/bloom/settings-list';
6
+ import { Button } from '@oxyhq/bloom/button';
6
7
  import { createPaymentStyles } from './paymentStyles';
7
8
  import { PAYMENT_METHODS, getCurrencySymbol } from './constants';
8
9
  import type { CardDetails, PaymentColors, PaymentStepAnimations } from './types';
@@ -56,72 +57,67 @@ const PaymentReviewStep: React.FC<PaymentReviewStepProps> = ({
56
57
  <View style={styles.section}>
57
58
  <Text style={styles.sectionTitle}>{t('payment.review.title')}</Text>
58
59
 
59
- <GroupedSection
60
- items={[
61
- {
62
- id: 'secure-payment',
63
- icon: 'shield-check',
64
- iconColor: colors.success || '#4BB543',
65
- title: t('payment.review.securePayment'),
66
- subtitle: t('payment.review.securePaymentDesc'),
67
- },
68
- {
69
- id: 'amount',
70
- icon: 'cash',
71
- iconColor: colors.primary,
72
- title: t('payment.review.amount'),
73
- subtitle: `${currencySymbol} ${amount}`,
74
- },
75
- {
76
- id: 'payment-method',
77
- icon: selectedMethod?.icon,
78
- iconColor: colors.primary,
79
- title: t('payment.review.paymentMethod'),
80
- subtitle: selectedMethod ? t(`payment.methods.${selectedMethod.key}.label`) : undefined,
81
- },
82
- ...(paymentMethod === 'card' ? [{
83
- id: 'card-details',
84
- icon: 'card' as const,
85
- iconColor: colors.primary,
86
- title: t('payment.review.card'),
87
- subtitle: cardDetails.number.replace(/.(?=.{4})/g, '*'),
88
- }] : []),
89
- ...(paymentMethod === 'oxy' ? [{
90
- id: 'oxy-balance',
91
- icon: 'wallet' as const,
92
- iconColor: colors.primary,
93
- title: t('payment.review.oxyPayAccount'),
94
- subtitle: t('payment.details.balance', { balance: '⊜ 123.45' }),
95
- }] : []),
96
- ...(paymentMethod === 'faircoin' ? [{
97
- id: 'faircoin-wallet',
98
- icon: 'qr-code' as const,
99
- iconColor: colors.primary,
100
- title: t('payment.review.faircoinWallet'),
101
- subtitle: t('payment.review.paidViaQR'),
102
- }] : []),
103
- ]}
104
- />
60
+ <SettingsListGroup>
61
+ <SettingsListItem
62
+ icon={<Ionicons name="shield-checkmark" size={20} color={colors.success || '#4BB543'} />}
63
+ title={t('payment.review.securePayment')}
64
+ description={t('payment.review.securePaymentDesc')}
65
+ showChevron={false}
66
+ />
67
+ <SettingsListItem
68
+ icon={<Ionicons name="cash-outline" size={20} color={colors.primary} />}
69
+ title={t('payment.review.amount')}
70
+ description={`${currencySymbol} ${amount}`}
71
+ showChevron={false}
72
+ />
73
+ <SettingsListItem
74
+ icon={selectedMethod ? <Ionicons name={selectedMethod.icon} size={20} color={colors.primary} /> : undefined}
75
+ title={t('payment.review.paymentMethod')}
76
+ description={selectedMethod ? t(`payment.methods.${selectedMethod.key}.label`) : undefined}
77
+ showChevron={false}
78
+ />
79
+ {paymentMethod === 'card' ? (
80
+ <SettingsListItem
81
+ icon={<Ionicons name="card-outline" size={20} color={colors.primary} />}
82
+ title={t('payment.review.card')}
83
+ description={cardDetails.number.replace(/.(?=.{4})/g, '*')}
84
+ showChevron={false}
85
+ />
86
+ ) : null}
87
+ {paymentMethod === 'oxy' ? (
88
+ <SettingsListItem
89
+ icon={<Ionicons name="wallet-outline" size={20} color={colors.primary} />}
90
+ title={t('payment.review.oxyPayAccount')}
91
+ description={t('payment.details.balance', { balance: '⊜ 123.45' })}
92
+ showChevron={false}
93
+ />
94
+ ) : null}
95
+ {paymentMethod === 'faircoin' ? (
96
+ <SettingsListItem
97
+ icon={<Ionicons name="qr-code-outline" size={20} color={colors.primary} />}
98
+ title={t('payment.review.faircoinWallet')}
99
+ description={t('payment.review.paidViaQR')}
100
+ showChevron={false}
101
+ />
102
+ ) : null}
103
+ </SettingsListGroup>
105
104
  </View>
106
105
 
107
- <GroupedPillButtons
108
- buttons={[
109
- {
110
- text: t('payment.actions.back'),
111
- onPress: onBack,
112
- icon: 'arrow-back',
113
- variant: 'transparent',
114
- },
115
- {
116
- text: isPaying ? t('payment.review.processing') : t('payment.review.payNow'),
117
- onPress: onPay,
118
- icon: 'checkmark',
119
- variant: 'primary',
120
- loading: isPaying,
121
- },
122
- ]}
123
- colors={colors}
124
- />
106
+ <View style={{ flexDirection: 'row', gap: 8, justifyContent: 'flex-end' }}>
107
+ <Button variant="secondary" onPress={onBack} size="small" disabled={isPaying} icon={<Ionicons name="arrow-back" size={16} />}>
108
+ {t('payment.actions.back')}
109
+ </Button>
110
+ <Button
111
+ variant="primary"
112
+ onPress={onPay}
113
+ size="small"
114
+ disabled={isPaying}
115
+ icon={isPaying ? <ActivityIndicator size="small" color="#FFFFFF" /> : <Ionicons name="checkmark" size={16} />}
116
+ iconPosition="right"
117
+ >
118
+ {isPaying ? t('payment.review.processing') : t('payment.review.payNow')}
119
+ </Button>
120
+ </View>
125
121
  </Animated.View>
126
122
  );
127
123
  };