@oxyhq/services 6.9.45 → 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 (255) hide show
  1. package/lib/commonjs/ui/components/OxyProvider.js +6 -5
  2. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  3. package/lib/commonjs/ui/components/SignInModal.js +271 -102
  4. package/lib/commonjs/ui/components/SignInModal.js.map +1 -1
  5. package/lib/commonjs/ui/components/fileManagement/FileViewer.js +24 -15
  6. package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -1
  7. package/lib/commonjs/ui/components/index.js +0 -35
  8. package/lib/commonjs/ui/components/index.js.map +1 -1
  9. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js +26 -13
  10. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js.map +1 -1
  11. package/lib/commonjs/ui/components/payment/PaymentMethodStep.js +50 -28
  12. package/lib/commonjs/ui/components/payment/PaymentMethodStep.js.map +1 -1
  13. package/lib/commonjs/ui/components/payment/PaymentReviewStep.js +83 -48
  14. package/lib/commonjs/ui/components/payment/PaymentReviewStep.js.map +1 -1
  15. package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js +11 -10
  16. package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js.map +1 -1
  17. package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js +38 -23
  18. package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js.map +1 -1
  19. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +4 -3
  20. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  21. package/lib/commonjs/ui/screens/AccountCenterScreen.js +1 -3
  22. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  23. package/lib/commonjs/ui/screens/AccountOverviewScreen.js +47 -63
  24. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
  25. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +90 -68
  26. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  27. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +72 -63
  28. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  29. package/lib/commonjs/ui/screens/AccountVerificationScreen.js +5 -5
  30. package/lib/commonjs/ui/screens/AccountVerificationScreen.js.map +1 -1
  31. package/lib/commonjs/ui/screens/FeedbackScreen.js +57 -51
  32. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  33. package/lib/commonjs/ui/screens/FileManagementScreen.js +25 -36
  34. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  35. package/lib/commonjs/ui/screens/HistoryViewScreen.js +31 -31
  36. package/lib/commonjs/ui/screens/HistoryViewScreen.js.map +1 -1
  37. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js +15 -8
  38. package/lib/commonjs/ui/screens/LanguageSelectorScreen.js.map +1 -1
  39. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js +60 -54
  40. package/lib/commonjs/ui/screens/LegalDocumentsScreen.js.map +1 -1
  41. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +12 -9
  42. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  43. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +159 -190
  44. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  45. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +20 -22
  46. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
  47. package/lib/commonjs/ui/screens/SearchSettingsScreen.js +16 -17
  48. package/lib/commonjs/ui/screens/SearchSettingsScreen.js.map +1 -1
  49. package/lib/commonjs/ui/screens/SessionManagementScreen.js +26 -4
  50. package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -1
  51. package/lib/commonjs/ui/screens/UserLinksScreen.js +13 -29
  52. package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -1
  53. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +110 -52
  54. package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  55. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js +3 -5
  56. package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
  57. package/lib/module/ui/components/OxyProvider.js +6 -5
  58. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  59. package/lib/module/ui/components/SignInModal.js +271 -100
  60. package/lib/module/ui/components/SignInModal.js.map +1 -1
  61. package/lib/module/ui/components/fileManagement/FileViewer.js +24 -15
  62. package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -1
  63. package/lib/module/ui/components/index.js +0 -5
  64. package/lib/module/ui/components/index.js.map +1 -1
  65. package/lib/module/ui/components/payment/PaymentDetailsStep.js +26 -13
  66. package/lib/module/ui/components/payment/PaymentDetailsStep.js.map +1 -1
  67. package/lib/module/ui/components/payment/PaymentMethodStep.js +49 -26
  68. package/lib/module/ui/components/payment/PaymentMethodStep.js.map +1 -1
  69. package/lib/module/ui/components/payment/PaymentReviewStep.js +84 -48
  70. package/lib/module/ui/components/payment/PaymentReviewStep.js.map +1 -1
  71. package/lib/module/ui/components/payment/PaymentSuccessStep.js +11 -9
  72. package/lib/module/ui/components/payment/PaymentSuccessStep.js.map +1 -1
  73. package/lib/module/ui/components/payment/PaymentSummaryStep.js +38 -22
  74. package/lib/module/ui/components/payment/PaymentSummaryStep.js.map +1 -1
  75. package/lib/module/ui/context/hooks/useAuthOperations.js +4 -3
  76. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  77. package/lib/module/ui/screens/AccountCenterScreen.js +1 -3
  78. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  79. package/lib/module/ui/screens/AccountOverviewScreen.js +46 -62
  80. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
  81. package/lib/module/ui/screens/AccountSettingsScreen.js +90 -68
  82. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  83. package/lib/module/ui/screens/AccountSwitcherScreen.js +73 -64
  84. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  85. package/lib/module/ui/screens/AccountVerificationScreen.js +6 -6
  86. package/lib/module/ui/screens/AccountVerificationScreen.js.map +1 -1
  87. package/lib/module/ui/screens/FeedbackScreen.js +48 -42
  88. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  89. package/lib/module/ui/screens/FileManagementScreen.js +25 -36
  90. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  91. package/lib/module/ui/screens/HistoryViewScreen.js +32 -32
  92. package/lib/module/ui/screens/HistoryViewScreen.js.map +1 -1
  93. package/lib/module/ui/screens/LanguageSelectorScreen.js +16 -9
  94. package/lib/module/ui/screens/LanguageSelectorScreen.js.map +1 -1
  95. package/lib/module/ui/screens/LegalDocumentsScreen.js +61 -55
  96. package/lib/module/ui/screens/LegalDocumentsScreen.js.map +1 -1
  97. package/lib/module/ui/screens/PaymentGatewayScreen.js +12 -9
  98. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  99. package/lib/module/ui/screens/PrivacySettingsScreen.js +161 -192
  100. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  101. package/lib/module/ui/screens/SavesCollectionsScreen.js +21 -23
  102. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
  103. package/lib/module/ui/screens/SearchSettingsScreen.js +17 -18
  104. package/lib/module/ui/screens/SearchSettingsScreen.js.map +1 -1
  105. package/lib/module/ui/screens/SessionManagementScreen.js +27 -5
  106. package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
  107. package/lib/module/ui/screens/UserLinksScreen.js +15 -31
  108. package/lib/module/ui/screens/UserLinksScreen.js.map +1 -1
  109. package/lib/module/ui/screens/WelcomeNewUserScreen.js +110 -52
  110. package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
  111. package/lib/module/ui/screens/karma/KarmaFAQScreen.js +4 -6
  112. package/lib/module/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
  113. package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
  114. package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +1 -1
  115. package/lib/typescript/commonjs/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
  116. package/lib/typescript/commonjs/ui/components/index.d.ts +0 -5
  117. package/lib/typescript/commonjs/ui/components/index.d.ts.map +1 -1
  118. package/lib/typescript/commonjs/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -1
  119. package/lib/typescript/commonjs/ui/components/payment/PaymentMethodStep.d.ts.map +1 -1
  120. package/lib/typescript/commonjs/ui/components/payment/PaymentReviewStep.d.ts.map +1 -1
  121. package/lib/typescript/commonjs/ui/components/payment/PaymentSuccessStep.d.ts.map +1 -1
  122. package/lib/typescript/commonjs/ui/components/payment/PaymentSummaryStep.d.ts.map +1 -1
  123. package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  124. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts +1 -1
  125. package/lib/typescript/commonjs/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  126. package/lib/typescript/commonjs/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  127. package/lib/typescript/commonjs/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  128. package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  129. package/lib/typescript/commonjs/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
  130. package/lib/typescript/commonjs/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  131. package/lib/typescript/commonjs/ui/screens/FeedbackScreen.d.ts.map +1 -1
  132. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  133. package/lib/typescript/commonjs/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  134. package/lib/typescript/commonjs/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  135. package/lib/typescript/commonjs/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  136. package/lib/typescript/commonjs/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  137. package/lib/typescript/commonjs/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  138. package/lib/typescript/commonjs/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  139. package/lib/typescript/commonjs/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  140. package/lib/typescript/commonjs/ui/screens/UserLinksScreen.d.ts.map +1 -1
  141. package/lib/typescript/commonjs/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  142. package/lib/typescript/commonjs/ui/screens/karma/KarmaFAQScreen.d.ts.map +1 -1
  143. package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
  144. package/lib/typescript/module/ui/components/SignInModal.d.ts.map +1 -1
  145. package/lib/typescript/module/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
  146. package/lib/typescript/module/ui/components/index.d.ts +0 -5
  147. package/lib/typescript/module/ui/components/index.d.ts.map +1 -1
  148. package/lib/typescript/module/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -1
  149. package/lib/typescript/module/ui/components/payment/PaymentMethodStep.d.ts.map +1 -1
  150. package/lib/typescript/module/ui/components/payment/PaymentReviewStep.d.ts.map +1 -1
  151. package/lib/typescript/module/ui/components/payment/PaymentSuccessStep.d.ts.map +1 -1
  152. package/lib/typescript/module/ui/components/payment/PaymentSummaryStep.d.ts.map +1 -1
  153. package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  154. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts +1 -1
  155. package/lib/typescript/module/ui/navigation/bottomSheetManager.d.ts.map +1 -1
  156. package/lib/typescript/module/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  157. package/lib/typescript/module/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  158. package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  159. package/lib/typescript/module/ui/screens/AccountSwitcherScreen.d.ts.map +1 -1
  160. package/lib/typescript/module/ui/screens/AccountVerificationScreen.d.ts.map +1 -1
  161. package/lib/typescript/module/ui/screens/FeedbackScreen.d.ts.map +1 -1
  162. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  163. package/lib/typescript/module/ui/screens/HistoryViewScreen.d.ts.map +1 -1
  164. package/lib/typescript/module/ui/screens/LanguageSelectorScreen.d.ts.map +1 -1
  165. package/lib/typescript/module/ui/screens/LegalDocumentsScreen.d.ts.map +1 -1
  166. package/lib/typescript/module/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  167. package/lib/typescript/module/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  168. package/lib/typescript/module/ui/screens/SearchSettingsScreen.d.ts.map +1 -1
  169. package/lib/typescript/module/ui/screens/SessionManagementScreen.d.ts.map +1 -1
  170. package/lib/typescript/module/ui/screens/UserLinksScreen.d.ts.map +1 -1
  171. package/lib/typescript/module/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
  172. package/lib/typescript/module/ui/screens/karma/KarmaFAQScreen.d.ts.map +1 -1
  173. package/package.json +2 -2
  174. package/src/ui/components/OxyProvider.tsx +6 -5
  175. package/src/ui/components/SignInModal.tsx +186 -42
  176. package/src/ui/components/fileManagement/FileViewer.tsx +25 -15
  177. package/src/ui/components/index.ts +0 -5
  178. package/src/ui/components/payment/PaymentDetailsStep.tsx +16 -19
  179. package/src/ui/components/payment/PaymentMethodStep.tsx +33 -35
  180. package/src/ui/components/payment/PaymentReviewStep.tsx +63 -67
  181. package/src/ui/components/payment/PaymentSuccessStep.tsx +4 -12
  182. package/src/ui/components/payment/PaymentSummaryStep.tsx +26 -33
  183. package/src/ui/context/hooks/useAuthOperations.ts +4 -3
  184. package/src/ui/screens/AccountCenterScreen.tsx +2 -3
  185. package/src/ui/screens/AccountOverviewScreen.tsx +44 -65
  186. package/src/ui/screens/AccountSettingsScreen.tsx +121 -149
  187. package/src/ui/screens/AccountSwitcherScreen.tsx +94 -115
  188. package/src/ui/screens/AccountVerificationScreen.tsx +10 -9
  189. package/src/ui/screens/FeedbackScreen.tsx +50 -38
  190. package/src/ui/screens/FileManagementScreen.tsx +26 -34
  191. package/src/ui/screens/HistoryViewScreen.tsx +29 -10
  192. package/src/ui/screens/LanguageSelectorScreen.tsx +19 -7
  193. package/src/ui/screens/LegalDocumentsScreen.tsx +46 -63
  194. package/src/ui/screens/PaymentGatewayScreen.tsx +11 -12
  195. package/src/ui/screens/PrivacySettingsScreen.tsx +81 -193
  196. package/src/ui/screens/SavesCollectionsScreen.tsx +23 -23
  197. package/src/ui/screens/SearchSettingsScreen.tsx +11 -19
  198. package/src/ui/screens/SessionManagementScreen.tsx +29 -3
  199. package/src/ui/screens/UserLinksScreen.tsx +15 -32
  200. package/src/ui/screens/WelcomeNewUserScreen.tsx +46 -20
  201. package/src/ui/screens/karma/KarmaFAQScreen.tsx +4 -6
  202. package/lib/commonjs/ui/components/GroupedItem.js +0 -138
  203. package/lib/commonjs/ui/components/GroupedItem.js.map +0 -1
  204. package/lib/commonjs/ui/components/GroupedSection.js +0 -41
  205. package/lib/commonjs/ui/components/GroupedSection.js.map +0 -1
  206. package/lib/commonjs/ui/components/Section.js +0 -39
  207. package/lib/commonjs/ui/components/Section.js.map +0 -1
  208. package/lib/commonjs/ui/components/SectionTitle.js +0 -29
  209. package/lib/commonjs/ui/components/SectionTitle.js.map +0 -1
  210. package/lib/commonjs/ui/components/SettingRow.js +0 -96
  211. package/lib/commonjs/ui/components/SettingRow.js.map +0 -1
  212. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js +0 -208
  213. package/lib/commonjs/ui/components/internal/GroupedPillButtons.js.map +0 -1
  214. package/lib/module/ui/components/GroupedItem.js +0 -135
  215. package/lib/module/ui/components/GroupedItem.js.map +0 -1
  216. package/lib/module/ui/components/GroupedSection.js +0 -37
  217. package/lib/module/ui/components/GroupedSection.js.map +0 -1
  218. package/lib/module/ui/components/Section.js +0 -34
  219. package/lib/module/ui/components/Section.js.map +0 -1
  220. package/lib/module/ui/components/SectionTitle.js +0 -25
  221. package/lib/module/ui/components/SectionTitle.js.map +0 -1
  222. package/lib/module/ui/components/SettingRow.js +0 -91
  223. package/lib/module/ui/components/SettingRow.js.map +0 -1
  224. package/lib/module/ui/components/internal/GroupedPillButtons.js +0 -204
  225. package/lib/module/ui/components/internal/GroupedPillButtons.js.map +0 -1
  226. package/lib/typescript/commonjs/ui/components/GroupedItem.d.ts +0 -24
  227. package/lib/typescript/commonjs/ui/components/GroupedItem.d.ts.map +0 -1
  228. package/lib/typescript/commonjs/ui/components/GroupedSection.d.ts +0 -30
  229. package/lib/typescript/commonjs/ui/components/GroupedSection.d.ts.map +0 -1
  230. package/lib/typescript/commonjs/ui/components/Section.d.ts +0 -12
  231. package/lib/typescript/commonjs/ui/components/Section.d.ts.map +0 -1
  232. package/lib/typescript/commonjs/ui/components/SectionTitle.d.ts +0 -10
  233. package/lib/typescript/commonjs/ui/components/SectionTitle.d.ts.map +0 -1
  234. package/lib/typescript/commonjs/ui/components/SettingRow.d.ts +0 -20
  235. package/lib/typescript/commonjs/ui/components/SettingRow.d.ts.map +0 -1
  236. package/lib/typescript/commonjs/ui/components/internal/GroupedPillButtons.d.ts +0 -24
  237. package/lib/typescript/commonjs/ui/components/internal/GroupedPillButtons.d.ts.map +0 -1
  238. package/lib/typescript/module/ui/components/GroupedItem.d.ts +0 -24
  239. package/lib/typescript/module/ui/components/GroupedItem.d.ts.map +0 -1
  240. package/lib/typescript/module/ui/components/GroupedSection.d.ts +0 -30
  241. package/lib/typescript/module/ui/components/GroupedSection.d.ts.map +0 -1
  242. package/lib/typescript/module/ui/components/Section.d.ts +0 -12
  243. package/lib/typescript/module/ui/components/Section.d.ts.map +0 -1
  244. package/lib/typescript/module/ui/components/SectionTitle.d.ts +0 -10
  245. package/lib/typescript/module/ui/components/SectionTitle.d.ts.map +0 -1
  246. package/lib/typescript/module/ui/components/SettingRow.d.ts +0 -20
  247. package/lib/typescript/module/ui/components/SettingRow.d.ts.map +0 -1
  248. package/lib/typescript/module/ui/components/internal/GroupedPillButtons.d.ts +0 -24
  249. package/lib/typescript/module/ui/components/internal/GroupedPillButtons.d.ts.map +0 -1
  250. package/src/ui/components/GroupedItem.tsx +0 -161
  251. package/src/ui/components/GroupedSection.tsx +0 -60
  252. package/src/ui/components/Section.tsx +0 -42
  253. package/src/ui/components/SectionTitle.tsx +0 -27
  254. package/src/ui/components/SettingRow.tsx +0 -105
  255. package/src/ui/components/internal/GroupedPillButtons.tsx +0 -253
@@ -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
  };
@@ -2,7 +2,7 @@ import type React from 'react';
2
2
  import { useMemo } from 'react';
3
3
  import { View, Text, Animated } 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 { createPaymentStyles } from './paymentStyles';
7
7
  import type { PaymentColors, PaymentStepAnimations } from './types';
8
8
  import { useI18n } from '../../hooks/useI18n';
@@ -56,17 +56,9 @@ const PaymentSuccessStep: React.FC<PaymentSuccessStepProps> = ({
56
56
  </View>
57
57
  </View>
58
58
 
59
- <GroupedPillButtons
60
- buttons={[
61
- {
62
- text: t('payment.actions.done'),
63
- onPress: onDone,
64
- icon: 'checkmark',
65
- variant: 'primary',
66
- },
67
- ]}
68
- colors={colors}
69
- />
59
+ <Button variant="primary" onPress={onDone} size="small" icon={<Ionicons name="checkmark" size={16} />} iconPosition="right">
60
+ {t('payment.actions.done')}
61
+ </Button>
70
62
  </Animated.View>
71
63
  );
72
64
  };
@@ -2,8 +2,8 @@ import type React from 'react';
2
2
  import { useMemo } from 'react';
3
3
  import { View, Text, Animated } from 'react-native';
4
4
  import { Ionicons } from '@expo/vector-icons';
5
- import { GroupedSection } from '../index';
6
- import GroupedPillButtons from '../internal/GroupedPillButtons';
5
+ import { SettingsListGroup, SettingsListItem } from '@oxyhq/bloom/settings-list';
6
+ import { Button } from '@oxyhq/bloom/button';
7
7
  import { createPaymentStyles } from './paymentStyles';
8
8
  import { getCurrencySymbol, CURRENCY_SYMBOLS } from './constants';
9
9
  import type { PaymentItem, PaymentColors, PaymentStepAnimations } from './types';
@@ -81,20 +81,22 @@ const PaymentSummaryStep: React.FC<PaymentSummaryStepProps> = ({
81
81
  {paymentItems.length > 0 ? (
82
82
  <>
83
83
  <View style={styles.summaryCardItems}>
84
- <GroupedSection
85
- items={paymentItems.map((item, idx) => ({
86
- id: `item-${idx}`,
87
- icon: getItemTypeIcon(item.type),
88
- iconColor: colors.primary,
89
- title: `${item.type === 'product' && item.quantity ? `${item.quantity} × ` : ''}${item.name}${item.type === 'subscription' && item.period ? ` (${item.period})` : ''}`,
90
- subtitle: item.description || `${item.currency ? (CURRENCY_SYMBOLS[item.currency.toUpperCase()] || item.currency) : currencySymbol} ${item.price * (item.quantity ?? 1)}`,
91
- customContent: (
92
- <Text style={styles.summaryItemPrice}>
93
- {item.currency ? (CURRENCY_SYMBOLS[item.currency.toUpperCase()] || item.currency) : currencySymbol} {item.price * (item.quantity ?? 1)}
94
- </Text>
95
- ),
96
- }))}
97
- />
84
+ <SettingsListGroup>
85
+ {paymentItems.map((item, idx) => (
86
+ <SettingsListItem
87
+ key={`item-${idx}`}
88
+ icon={<Ionicons name={getItemTypeIcon(item.type)} size={20} color={colors.primary} />}
89
+ title={`${item.type === 'product' && item.quantity ? `${item.quantity} \u00d7 ` : ''}${item.name}${item.type === 'subscription' && item.period ? ` (${item.period})` : ''}`}
90
+ description={item.description || `${item.currency ? (CURRENCY_SYMBOLS[item.currency.toUpperCase()] || item.currency) : currencySymbol} ${item.price * (item.quantity ?? 1)}`}
91
+ showChevron={false}
92
+ rightElement={
93
+ <Text style={styles.summaryItemPrice}>
94
+ {item.currency ? (CURRENCY_SYMBOLS[item.currency.toUpperCase()] || item.currency) : currencySymbol} {item.price * (item.quantity ?? 1)}
95
+ </Text>
96
+ }
97
+ />
98
+ ))}
99
+ </SettingsListGroup>
98
100
  </View>
99
101
 
100
102
  <View style={styles.summaryCardDivider} />
@@ -138,23 +140,14 @@ const PaymentSummaryStep: React.FC<PaymentSummaryStepProps> = ({
138
140
  </View>
139
141
  </View>
140
142
 
141
- <GroupedPillButtons
142
- buttons={[
143
- {
144
- text: t('payment.actions.close'),
145
- onPress: onClose,
146
- icon: 'close',
147
- variant: 'transparent',
148
- },
149
- {
150
- text: t('payment.actions.continue'),
151
- onPress: onNext,
152
- icon: 'arrow-forward',
153
- variant: 'primary',
154
- },
155
- ]}
156
- colors={colors}
157
- />
143
+ <View style={{ flexDirection: 'row', gap: 8, justifyContent: 'flex-end' }}>
144
+ <Button variant="secondary" onPress={onClose} size="small" icon={<Ionicons name="close" size={16} />}>
145
+ {t('payment.actions.close')}
146
+ </Button>
147
+ <Button variant="primary" onPress={onNext} size="small" icon={<Ionicons name="arrow-forward" size={16} />} iconPosition="right">
148
+ {t('payment.actions.continue')}
149
+ </Button>
150
+ </View>
158
151
  </Animated.View>
159
152
  );
160
153
  };
@@ -131,9 +131,10 @@ export const useAuthOperations = ({
131
131
  logger('Creating offline session');
132
132
  }
133
133
 
134
- // Generate a local session ID using cryptographically secure randomness
135
- const cryptoModule = 'expo-crypto';
136
- const Crypto = await import(/* webpackIgnore: true */ cryptoModule);
134
+ // Generate a local session ID using cryptographically secure randomness.
135
+ // Literal-string import: Hermes/Metro require static strings, not variable
136
+ // expressions or webpackIgnore comments.
137
+ const Crypto = await import('expo-crypto');
137
138
  const localSessionId = `offline_${Crypto.getRandomUUID()}`;
138
139
  const localDeviceId = `device_${Crypto.getRandomUUID()}`;
139
140
  const expiresAt = new Date(Date.now() + 7 * 24 * 60 * 60 * 1000).toISOString(); // 7 days
@@ -15,7 +15,6 @@ import { fontFamilies } from '../styles/fonts';
15
15
  import * as Prompt from '@oxyhq/bloom/prompt';
16
16
  import { usePromptControl } from '@oxyhq/bloom/prompt';
17
17
  import ProfileCard from '../components/ProfileCard';
18
- import Section from '../components/Section';
19
18
  import QuickActions from '../components/QuickActions';
20
19
  import { SettingsIcon } from '../components/SettingsIcon';
21
20
  import { useI18n } from '../hooks/useI18n';
@@ -84,7 +83,7 @@ const AccountCenterScreen: React.FC<BaseScreenProps> = ({
84
83
  )}
85
84
 
86
85
  <ScrollView style={styles.scrollView} contentContainerStyle={styles.scrollContainer} showsVerticalScrollIndicator={false}>
87
- <Section title={t('accountCenter.sections.quickActions') || 'Quick Actions'} isFirst={true}>
86
+ <SettingsListGroup title={t('accountCenter.sections.quickActions') || 'Quick Actions'}>
88
87
  <QuickActions
89
88
  theme={normalizedTheme}
90
89
  actions={useMemo(() => [
@@ -96,7 +95,7 @@ const AccountCenterScreen: React.FC<BaseScreenProps> = ({
96
95
  ...(sessions && sessions.length > 1 ? [{ id: 'switch', icon: 'swap-horizontal', iconColor: colors.iconStorage, title: t('accountCenter.quickActions.switch') || 'Switch', onPress: () => navigate?.('AccountSwitcher') }] : []),
97
96
  ], [user?.isPremium, sessions, navigate, t, colors])}
98
97
  />
99
- </Section>
98
+ </SettingsListGroup>
100
99
 
101
100
  <SettingsListGroup title={t('accountCenter.sections.accountManagement') || 'Account Management'}>
102
101
  <SettingsListItem icon={<SettingsIcon name="account-circle" color={colors.iconSecurity} />} title={t('accountCenter.items.accountOverview.title') || 'Account Overview'} description={t('accountCenter.items.accountOverview.subtitle') || 'Complete account information'} onPress={() => navigate?.('AccountOverview')} />
@@ -14,13 +14,11 @@ import { useSafeAreaInsets } from 'react-native-safe-area-context';
14
14
  import type { BaseScreenProps } from '../types/navigation';
15
15
  import OxyLogo from '../components/OxyLogo';
16
16
  import Avatar from '../components/Avatar';
17
- import OxyIcon from '../components/icon/OxyIcon';
18
17
  import { fontFamilies } from '../styles/fonts';
19
18
  import { toast } from '../../lib/sonner';
20
19
  import { Ionicons } from '@expo/vector-icons';
21
20
  import * as Prompt from '@oxyhq/bloom/prompt';
22
21
  import { usePromptControl } from '@oxyhq/bloom/prompt';
23
- import { Section, GroupedSection, GroupedItem } from '../components';
24
22
  import { SettingsIcon } from '../components/SettingsIcon';
25
23
  import { useI18n } from '../hooks/useI18n';
26
24
  import { useTheme } from '@oxyhq/bloom/theme';
@@ -365,78 +363,59 @@ const AccountOverviewScreen: React.FC<BaseScreenProps> = ({
365
363
  ) : null}
366
364
  </SettingsListGroup>
367
365
 
368
- {/* Additional Accounts - kept with GroupedSection due to custom avatar content */}
366
+ {/* Additional Accounts */}
369
367
  {showMoreAccounts && (
370
- <Section title={`${t('accountOverview.sections.additionalAccounts') || 'Additional Accounts'}${additionalAccountsData.length > 0 ? ` (${additionalAccountsData.length})` : ''}`} >
368
+ <SettingsListGroup title={`${t('accountOverview.sections.additionalAccounts') || 'Additional Accounts'}${additionalAccountsData.length > 0 ? ` (${additionalAccountsData.length})` : ''}`}>
371
369
  {loadingAdditionalAccounts ? (
372
- <GroupedSection
373
- items={[
374
- {
375
- id: 'loading-accounts',
376
- icon: 'sync',
377
- iconColor: baseThemeColors.iconSecurity,
378
- title: t('accountOverview.loadingAdditional.title') || 'Loading accounts...',
379
- subtitle: t('accountOverview.loadingAdditional.subtitle') || 'Please wait while we load your additional accounts',
380
- customContent: (
381
- <View style={styles.loadingContainer}>
382
- <ActivityIndicator size="small" color={baseThemeColors.iconSecurity} />
383
- <Text style={styles.loadingText}>{t('accountOverview.loadingAdditional.title') || 'Loading accounts...'}</Text>
384
- </View>
385
- ),
386
- },
387
- ]}
388
-
370
+ <SettingsListItem
371
+ icon={<SettingsIcon name="sync" color={baseThemeColors.iconSecurity} />}
372
+ title={t('accountOverview.loadingAdditional.title') || 'Loading accounts...'}
373
+ description={t('accountOverview.loadingAdditional.subtitle') || 'Please wait while we load your additional accounts'}
374
+ rightElement={
375
+ <View style={styles.loadingContainer}>
376
+ <ActivityIndicator size="small" color={baseThemeColors.iconSecurity} />
377
+ </View>
378
+ }
379
+ showChevron={false}
389
380
  />
390
381
  ) : additionalAccountsData.length > 0 ? (
391
- <GroupedSection
392
- items={additionalAccountsData.map((account, index) => ({
393
- id: `account-${account.id}`,
394
- icon: 'account',
395
- iconColor: baseThemeColors.iconData,
396
- title: typeof account.name === 'object'
382
+ additionalAccountsData.map((account) => (
383
+ <SettingsListItem
384
+ key={`account-${account.id}`}
385
+ icon={
386
+ <View style={styles.userIcon}>
387
+ {account.avatar ? (
388
+ <Image
389
+ source={{ uri: oxyServices.getFileDownloadUrl(account.avatar, 'thumb') }}
390
+ style={styles.accountAvatarImage}
391
+ />
392
+ ) : (
393
+ <View style={styles.accountAvatarFallback}>
394
+ <Text style={styles.accountAvatarText}>
395
+ {account.username?.charAt(0).toUpperCase() || '?'}
396
+ </Text>
397
+ </View>
398
+ )}
399
+ </View>
400
+ }
401
+ title={typeof account.name === 'object'
397
402
  ? account.name?.full || account.name?.first || account.username
398
- : account.name || account.username,
399
- subtitle: account.email || account.username,
400
- onPress: () => {
403
+ : account.name || account.username}
404
+ description={account.email || account.username}
405
+ onPress={() => {
401
406
  toast.info(t('accountOverview.items.accountSwitcher.switchPrompt', { username: account.username }) || `Switch to ${account.username}?`);
402
- },
403
- customContent: (
404
- <>
405
- <View style={styles.userIcon}>
406
- {account.avatar ? (
407
- <Image
408
- source={{ uri: oxyServices.getFileDownloadUrl(account.avatar, 'thumb') }}
409
- style={styles.accountAvatarImage}
410
- />
411
- ) : (
412
- <View style={styles.accountAvatarFallback}>
413
- <Text style={styles.accountAvatarText}>
414
- {account.username?.charAt(0).toUpperCase() || '?'}
415
- </Text>
416
- </View>
417
- )}
418
- </View>
419
- <OxyIcon name="chevron-forward" size={16} color="#ccc" />
420
- </>
421
- ),
422
- }))}
423
-
424
- />
407
+ }}
408
+ />
409
+ ))
425
410
  ) : (
426
- <GroupedSection
427
- items={[
428
- {
429
- id: 'no-accounts',
430
- icon: 'account-outline',
431
- iconColor: '#ccc',
432
- title: t('accountOverview.additional.noAccounts.title') || 'No other accounts',
433
- subtitle: t('accountOverview.additional.noAccounts.subtitle') || 'Add another account to switch between them',
434
- },
435
- ]}
436
-
411
+ <SettingsListItem
412
+ icon={<SettingsIcon name="account-outline" color="#ccc" />}
413
+ title={t('accountOverview.additional.noAccounts.title') || 'No other accounts'}
414
+ description={t('accountOverview.additional.noAccounts.subtitle') || 'Add another account to switch between them'}
415
+ showChevron={false}
437
416
  />
438
417
  )}
439
- </Section>
418
+ </SettingsListGroup>
440
419
  )}
441
420
 
442
421
  {/* Account Management */}