@oxyhq/services 5.17.17 → 5.18.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 (618) hide show
  1. package/README.md +32 -38
  2. package/lib/commonjs/core/CrossDomainAuth.js +277 -0
  3. package/lib/commonjs/core/CrossDomainAuth.js.map +1 -0
  4. package/lib/commonjs/core/HttpService.js +82 -15
  5. package/lib/commonjs/core/HttpService.js.map +1 -1
  6. package/lib/commonjs/core/OxyServices.base.js +11 -3
  7. package/lib/commonjs/core/OxyServices.base.js.map +1 -1
  8. package/lib/commonjs/core/OxyServices.js +4 -1
  9. package/lib/commonjs/core/OxyServices.js.map +1 -1
  10. package/lib/commonjs/core/index.js +30 -0
  11. package/lib/commonjs/core/index.js.map +1 -1
  12. package/lib/commonjs/core/mixins/OxyServices.assets.js +16 -3
  13. package/lib/commonjs/core/mixins/OxyServices.assets.js.map +1 -1
  14. package/lib/commonjs/core/mixins/OxyServices.auth.js +73 -32
  15. package/lib/commonjs/core/mixins/OxyServices.auth.js.map +1 -1
  16. package/lib/commonjs/core/mixins/OxyServices.features.js +372 -0
  17. package/lib/commonjs/core/mixins/OxyServices.features.js.map +1 -0
  18. package/lib/commonjs/core/mixins/OxyServices.fedcm.js +289 -0
  19. package/lib/commonjs/core/mixins/OxyServices.fedcm.js.map +1 -0
  20. package/lib/commonjs/core/mixins/OxyServices.popup.js +352 -0
  21. package/lib/commonjs/core/mixins/OxyServices.popup.js.map +1 -0
  22. package/lib/commonjs/core/mixins/OxyServices.redirect.js +378 -0
  23. package/lib/commonjs/core/mixins/OxyServices.redirect.js.map +1 -0
  24. package/lib/commonjs/core/mixins/OxyServices.user.js +35 -24
  25. package/lib/commonjs/core/mixins/OxyServices.user.js.map +1 -1
  26. package/lib/commonjs/core/mixins/index.js +28 -15
  27. package/lib/commonjs/core/mixins/index.js.map +1 -1
  28. package/lib/commonjs/crypto/index.js +30 -0
  29. package/lib/commonjs/crypto/index.js.map +1 -1
  30. package/lib/commonjs/crypto/keyManager.js +902 -0
  31. package/lib/commonjs/crypto/keyManager.js.map +1 -0
  32. package/lib/commonjs/crypto/polyfill.js +14 -5
  33. package/lib/commonjs/crypto/polyfill.js.map +1 -1
  34. package/lib/commonjs/crypto/recoveryPhrase.js +152 -0
  35. package/lib/commonjs/crypto/recoveryPhrase.js.map +1 -0
  36. package/lib/commonjs/crypto/signatureService.js +289 -0
  37. package/lib/commonjs/crypto/signatureService.js.map +1 -0
  38. package/lib/commonjs/i18n/locales/en-US.json +1 -1
  39. package/lib/commonjs/index.js +40 -26
  40. package/lib/commonjs/index.js.map +1 -1
  41. package/lib/commonjs/models/interfaces.js +0 -15
  42. package/lib/commonjs/models/interfaces.js.map +1 -1
  43. package/lib/commonjs/ui/components/BottomSheetRouter.js +9 -1
  44. package/lib/commonjs/ui/components/BottomSheetRouter.js.map +1 -1
  45. package/lib/commonjs/ui/components/GroupedItem.js +11 -1
  46. package/lib/commonjs/ui/components/GroupedItem.js.map +1 -1
  47. package/lib/commonjs/ui/components/Icon.js.map +1 -1
  48. package/lib/commonjs/ui/components/IconButton/utils.js.map +1 -1
  49. package/lib/commonjs/ui/components/OxyProvider.js +41 -11
  50. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  51. package/lib/commonjs/ui/components/SettingRow.js +17 -4
  52. package/lib/commonjs/ui/components/SettingRow.js.map +1 -1
  53. package/lib/commonjs/ui/components/TextField/Adornment/utils.js.map +1 -1
  54. package/lib/commonjs/ui/components/TextField/helpers.js.map +1 -1
  55. package/lib/commonjs/ui/components/TouchableRipple/utils.js.map +1 -1
  56. package/lib/commonjs/ui/components/Typography/AnimatedText.js.map +1 -1
  57. package/lib/commonjs/ui/components/feedback/FormInput.js +72 -0
  58. package/lib/commonjs/ui/components/feedback/FormInput.js.map +1 -0
  59. package/lib/commonjs/ui/components/feedback/ProgressIndicator.js +33 -0
  60. package/lib/commonjs/ui/components/feedback/ProgressIndicator.js.map +1 -0
  61. package/lib/commonjs/ui/components/feedback/constants.js +59 -0
  62. package/lib/commonjs/ui/components/feedback/constants.js.map +1 -0
  63. package/lib/commonjs/ui/components/feedback/feedbackStyles.js +262 -0
  64. package/lib/commonjs/ui/components/feedback/feedbackStyles.js.map +1 -0
  65. package/lib/commonjs/ui/components/feedback/index.js +54 -0
  66. package/lib/commonjs/ui/components/feedback/index.js.map +1 -0
  67. package/lib/commonjs/ui/components/feedback/types.js +6 -0
  68. package/lib/commonjs/ui/components/feedback/types.js.map +1 -0
  69. package/lib/commonjs/ui/components/feedback/useFeedbackForm.js +52 -0
  70. package/lib/commonjs/ui/components/feedback/useFeedbackForm.js.map +1 -0
  71. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js +282 -0
  72. package/lib/commonjs/ui/components/modals/DeleteAccountModal.js.map +1 -0
  73. package/lib/commonjs/ui/components/modals/index.js +14 -0
  74. package/lib/commonjs/ui/components/modals/index.js.map +1 -0
  75. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js +309 -0
  76. package/lib/commonjs/ui/components/payment/PaymentDetailsStep.js.map +1 -0
  77. package/lib/commonjs/ui/components/payment/PaymentMethodStep.js +79 -0
  78. package/lib/commonjs/ui/components/payment/PaymentMethodStep.js.map +1 -0
  79. package/lib/commonjs/ui/components/payment/PaymentReviewStep.js +108 -0
  80. package/lib/commonjs/ui/components/payment/PaymentReviewStep.js.map +1 -0
  81. package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js +79 -0
  82. package/lib/commonjs/ui/components/payment/PaymentSuccessStep.js.map +1 -0
  83. package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js +176 -0
  84. package/lib/commonjs/ui/components/payment/PaymentSummaryStep.js.map +1 -0
  85. package/lib/commonjs/ui/components/payment/constants.js +53 -0
  86. package/lib/commonjs/ui/components/payment/constants.js.map +1 -0
  87. package/lib/commonjs/ui/components/payment/index.js +80 -0
  88. package/lib/commonjs/ui/components/payment/index.js.map +1 -0
  89. package/lib/commonjs/ui/components/payment/paymentStyles.js +409 -0
  90. package/lib/commonjs/ui/components/payment/paymentStyles.js.map +1 -0
  91. package/lib/commonjs/ui/components/payment/types.js +6 -0
  92. package/lib/commonjs/ui/components/payment/types.js.map +1 -0
  93. package/lib/commonjs/ui/context/OxyContext.js +110 -199
  94. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  95. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +150 -19
  96. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  97. package/lib/commonjs/ui/context/hooks/useSessionManagement.js +279 -0
  98. package/lib/commonjs/ui/context/hooks/useSessionManagement.js.map +1 -0
  99. package/lib/commonjs/ui/hooks/index.js +26 -0
  100. package/lib/commonjs/ui/hooks/index.js.map +1 -1
  101. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +79 -72
  102. package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  103. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +38 -51
  104. package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
  105. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js +3 -3
  106. package/lib/commonjs/ui/hooks/queries/useSecurityQueries.js.map +1 -1
  107. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +18 -12
  108. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
  109. package/lib/commonjs/ui/hooks/useAsyncAction.js +95 -0
  110. package/lib/commonjs/ui/hooks/useAsyncAction.js.map +1 -0
  111. package/lib/commonjs/ui/hooks/useProfileEditing.js +3 -5
  112. package/lib/commonjs/ui/hooks/useProfileEditing.js.map +1 -1
  113. package/lib/commonjs/ui/hooks/useSessionManagement.js +4 -8
  114. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
  115. package/lib/commonjs/ui/hooks/useSessionSocket.js +162 -315
  116. package/lib/commonjs/ui/hooks/useSessionSocket.js.map +1 -1
  117. package/lib/commonjs/ui/hooks/useSettingToggle.js +126 -0
  118. package/lib/commonjs/ui/hooks/useSettingToggle.js.map +1 -0
  119. package/lib/commonjs/ui/hooks/useStorage.js +24 -58
  120. package/lib/commonjs/ui/hooks/useStorage.js.map +1 -1
  121. package/lib/commonjs/ui/index.js +50 -21
  122. package/lib/commonjs/ui/index.js.map +1 -1
  123. package/lib/commonjs/ui/navigation/routes.js +6 -1
  124. package/lib/commonjs/ui/navigation/routes.js.map +1 -1
  125. package/lib/commonjs/ui/screens/AccountCenterScreen.js +6 -4
  126. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  127. package/lib/commonjs/ui/screens/AccountOverviewScreen.js +33 -30
  128. package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
  129. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +29 -24
  130. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  131. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +3 -3
  132. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  133. package/lib/commonjs/ui/screens/FAQScreen.js +315 -0
  134. package/lib/commonjs/ui/screens/FAQScreen.js.map +1 -0
  135. package/lib/commonjs/ui/screens/FeedbackScreen.js +73 -590
  136. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  137. package/lib/commonjs/ui/screens/HelpSupportScreen.js +8 -7
  138. package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
  139. package/lib/commonjs/ui/screens/OxyAuthScreen.js +134 -66
  140. package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
  141. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js +67 -1395
  142. package/lib/commonjs/ui/screens/PaymentGatewayScreen.js.map +1 -1
  143. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +6 -13
  144. package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
  145. package/lib/commonjs/ui/screens/ProfileScreen.js +13 -5
  146. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  147. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js +16 -10
  148. package/lib/commonjs/ui/screens/SavesCollectionsScreen.js.map +1 -1
  149. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js +23 -11
  150. package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  151. package/lib/commonjs/ui/stores/accountStore.js +2 -4
  152. package/lib/commonjs/ui/stores/accountStore.js.map +1 -1
  153. package/lib/commonjs/ui/stores/authStore.js +45 -32
  154. package/lib/commonjs/ui/stores/authStore.js.map +1 -1
  155. package/lib/commonjs/ui/styles/spacing.js +54 -2
  156. package/lib/commonjs/ui/styles/spacing.js.map +1 -1
  157. package/lib/commonjs/ui/utils/avatarUtils.js +37 -41
  158. package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
  159. package/lib/commonjs/ui/utils/storageHelpers.js.map +1 -1
  160. package/lib/commonjs/utils/errorUtils.js +13 -0
  161. package/lib/commonjs/utils/errorUtils.js.map +1 -1
  162. package/lib/commonjs/utils/validationUtils.js +15 -1
  163. package/lib/commonjs/utils/validationUtils.js.map +1 -1
  164. package/lib/module/core/CrossDomainAuth.js +271 -0
  165. package/lib/module/core/CrossDomainAuth.js.map +1 -0
  166. package/lib/module/core/HttpService.js +82 -15
  167. package/lib/module/core/HttpService.js.map +1 -1
  168. package/lib/module/core/OxyServices.base.js +11 -4
  169. package/lib/module/core/OxyServices.base.js.map +1 -1
  170. package/lib/module/core/OxyServices.js +4 -1
  171. package/lib/module/core/OxyServices.js.map +1 -1
  172. package/lib/module/core/index.js +6 -1
  173. package/lib/module/core/index.js.map +1 -1
  174. package/lib/module/core/mixins/OxyServices.assets.js +16 -3
  175. package/lib/module/core/mixins/OxyServices.assets.js.map +1 -1
  176. package/lib/module/core/mixins/OxyServices.auth.js +73 -32
  177. package/lib/module/core/mixins/OxyServices.auth.js.map +1 -1
  178. package/lib/module/core/mixins/OxyServices.features.js +369 -0
  179. package/lib/module/core/mixins/OxyServices.features.js.map +1 -0
  180. package/lib/module/core/mixins/OxyServices.fedcm.js +286 -0
  181. package/lib/module/core/mixins/OxyServices.fedcm.js.map +1 -0
  182. package/lib/module/core/mixins/OxyServices.popup.js +349 -0
  183. package/lib/module/core/mixins/OxyServices.popup.js.map +1 -0
  184. package/lib/module/core/mixins/OxyServices.redirect.js +375 -0
  185. package/lib/module/core/mixins/OxyServices.redirect.js.map +1 -0
  186. package/lib/module/core/mixins/OxyServices.user.js +35 -24
  187. package/lib/module/core/mixins/OxyServices.user.js.map +1 -1
  188. package/lib/module/core/mixins/index.js +16 -3
  189. package/lib/module/core/mixins/index.js.map +1 -1
  190. package/lib/module/crypto/index.js +8 -4
  191. package/lib/module/crypto/index.js.map +1 -1
  192. package/lib/module/crypto/keyManager.js +899 -0
  193. package/lib/module/crypto/keyManager.js.map +1 -0
  194. package/lib/module/crypto/polyfill.js +6 -5
  195. package/lib/module/crypto/polyfill.js.map +1 -1
  196. package/lib/module/crypto/recoveryPhrase.js +147 -0
  197. package/lib/module/crypto/recoveryPhrase.js.map +1 -0
  198. package/lib/module/crypto/signatureService.js +286 -0
  199. package/lib/module/crypto/signatureService.js.map +1 -0
  200. package/lib/module/i18n/locales/en-US.json +1 -1
  201. package/lib/module/index.js +6 -9
  202. package/lib/module/index.js.map +1 -1
  203. package/lib/module/models/interfaces.js +0 -15
  204. package/lib/module/models/interfaces.js.map +1 -1
  205. package/lib/module/ui/components/BottomSheetRouter.js +6 -2
  206. package/lib/module/ui/components/BottomSheetRouter.js.map +1 -1
  207. package/lib/module/ui/components/GroupedItem.js +11 -1
  208. package/lib/module/ui/components/GroupedItem.js.map +1 -1
  209. package/lib/module/ui/components/Icon.js.map +1 -1
  210. package/lib/module/ui/components/IconButton/utils.js.map +1 -1
  211. package/lib/module/ui/components/OxyProvider.js +41 -11
  212. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  213. package/lib/module/ui/components/SettingRow.js +17 -4
  214. package/lib/module/ui/components/SettingRow.js.map +1 -1
  215. package/lib/module/ui/components/TextField/Adornment/utils.js.map +1 -1
  216. package/lib/module/ui/components/TextField/helpers.js.map +1 -1
  217. package/lib/module/ui/components/TouchableRipple/utils.js.map +1 -1
  218. package/lib/module/ui/components/Typography/AnimatedText.js.map +1 -1
  219. package/lib/module/ui/components/feedback/FormInput.js +67 -0
  220. package/lib/module/ui/components/feedback/FormInput.js.map +1 -0
  221. package/lib/module/ui/components/feedback/ProgressIndicator.js +28 -0
  222. package/lib/module/ui/components/feedback/ProgressIndicator.js.map +1 -0
  223. package/lib/module/ui/components/feedback/constants.js +55 -0
  224. package/lib/module/ui/components/feedback/constants.js.map +1 -0
  225. package/lib/module/ui/components/feedback/feedbackStyles.js +257 -0
  226. package/lib/module/ui/components/feedback/feedbackStyles.js.map +1 -0
  227. package/lib/module/ui/components/feedback/index.js +8 -0
  228. package/lib/module/ui/components/feedback/index.js.map +1 -0
  229. package/lib/module/ui/components/feedback/types.js +4 -0
  230. package/lib/module/ui/components/feedback/types.js.map +1 -0
  231. package/lib/module/ui/components/feedback/useFeedbackForm.js +47 -0
  232. package/lib/module/ui/components/feedback/useFeedbackForm.js.map +1 -0
  233. package/lib/module/ui/components/modals/DeleteAccountModal.js +276 -0
  234. package/lib/module/ui/components/modals/DeleteAccountModal.js.map +1 -0
  235. package/lib/module/ui/components/modals/index.js +4 -0
  236. package/lib/module/ui/components/modals/index.js.map +1 -0
  237. package/lib/module/ui/components/payment/PaymentDetailsStep.js +303 -0
  238. package/lib/module/ui/components/payment/PaymentDetailsStep.js.map +1 -0
  239. package/lib/module/ui/components/payment/PaymentMethodStep.js +73 -0
  240. package/lib/module/ui/components/payment/PaymentMethodStep.js.map +1 -0
  241. package/lib/module/ui/components/payment/PaymentReviewStep.js +102 -0
  242. package/lib/module/ui/components/payment/PaymentReviewStep.js.map +1 -0
  243. package/lib/module/ui/components/payment/PaymentSuccessStep.js +73 -0
  244. package/lib/module/ui/components/payment/PaymentSuccessStep.js.map +1 -0
  245. package/lib/module/ui/components/payment/PaymentSummaryStep.js +170 -0
  246. package/lib/module/ui/components/payment/PaymentSummaryStep.js.map +1 -0
  247. package/lib/module/ui/components/payment/constants.js +47 -0
  248. package/lib/module/ui/components/payment/constants.js.map +1 -0
  249. package/lib/module/ui/components/payment/index.js +10 -0
  250. package/lib/module/ui/components/payment/index.js.map +1 -0
  251. package/lib/module/ui/components/payment/paymentStyles.js +404 -0
  252. package/lib/module/ui/components/payment/paymentStyles.js.map +1 -0
  253. package/lib/module/ui/components/payment/types.js +4 -0
  254. package/lib/module/ui/components/payment/types.js.map +1 -0
  255. package/lib/module/ui/context/OxyContext.js +112 -191
  256. package/lib/module/ui/context/OxyContext.js.map +1 -1
  257. package/lib/module/ui/context/hooks/useAuthOperations.js +150 -19
  258. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  259. package/lib/module/ui/context/hooks/useSessionManagement.js +274 -0
  260. package/lib/module/ui/context/hooks/useSessionManagement.js.map +1 -0
  261. package/lib/module/ui/hooks/index.js +2 -0
  262. package/lib/module/ui/hooks/index.js.map +1 -1
  263. package/lib/module/ui/hooks/mutations/useAccountMutations.js +80 -72
  264. package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
  265. package/lib/module/ui/hooks/queries/useAccountQueries.js +31 -44
  266. package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
  267. package/lib/module/ui/hooks/queries/useSecurityQueries.js +1 -1
  268. package/lib/module/ui/hooks/queries/useSecurityQueries.js.map +1 -1
  269. package/lib/module/ui/hooks/queries/useServicesQueries.js +13 -7
  270. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
  271. package/lib/module/ui/hooks/useAsyncAction.js +89 -0
  272. package/lib/module/ui/hooks/useAsyncAction.js.map +1 -0
  273. package/lib/module/ui/hooks/useProfileEditing.js +3 -5
  274. package/lib/module/ui/hooks/useProfileEditing.js.map +1 -1
  275. package/lib/module/ui/hooks/useSessionManagement.js +4 -8
  276. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
  277. package/lib/module/ui/hooks/useSessionSocket.js +162 -315
  278. package/lib/module/ui/hooks/useSessionSocket.js.map +1 -1
  279. package/lib/module/ui/hooks/useSettingToggle.js +120 -0
  280. package/lib/module/ui/hooks/useSettingToggle.js.map +1 -0
  281. package/lib/module/ui/hooks/useStorage.js +25 -59
  282. package/lib/module/ui/hooks/useStorage.js.map +1 -1
  283. package/lib/module/ui/index.js +15 -10
  284. package/lib/module/ui/index.js.map +1 -1
  285. package/lib/module/ui/navigation/routes.js +6 -1
  286. package/lib/module/ui/navigation/routes.js.map +1 -1
  287. package/lib/module/ui/screens/AccountCenterScreen.js +6 -4
  288. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  289. package/lib/module/ui/screens/AccountOverviewScreen.js +33 -30
  290. package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
  291. package/lib/module/ui/screens/AccountSettingsScreen.js +29 -24
  292. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  293. package/lib/module/ui/screens/AccountSwitcherScreen.js +3 -3
  294. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  295. package/lib/module/ui/screens/FAQScreen.js +310 -0
  296. package/lib/module/ui/screens/FAQScreen.js.map +1 -0
  297. package/lib/module/ui/screens/FeedbackScreen.js +64 -581
  298. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  299. package/lib/module/ui/screens/HelpSupportScreen.js +8 -7
  300. package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
  301. package/lib/module/ui/screens/OxyAuthScreen.js +135 -68
  302. package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
  303. package/lib/module/ui/screens/PaymentGatewayScreen.js +67 -1397
  304. package/lib/module/ui/screens/PaymentGatewayScreen.js.map +1 -1
  305. package/lib/module/ui/screens/PrivacySettingsScreen.js +6 -13
  306. package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
  307. package/lib/module/ui/screens/ProfileScreen.js +13 -5
  308. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  309. package/lib/module/ui/screens/SavesCollectionsScreen.js +16 -10
  310. package/lib/module/ui/screens/SavesCollectionsScreen.js.map +1 -1
  311. package/lib/module/ui/screens/karma/KarmaCenterScreen.js +23 -11
  312. package/lib/module/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
  313. package/lib/module/ui/stores/accountStore.js +2 -4
  314. package/lib/module/ui/stores/accountStore.js.map +1 -1
  315. package/lib/module/ui/stores/authStore.js +45 -32
  316. package/lib/module/ui/stores/authStore.js.map +1 -1
  317. package/lib/module/ui/styles/spacing.js +6 -2
  318. package/lib/module/ui/styles/spacing.js.map +1 -1
  319. package/lib/module/ui/utils/avatarUtils.js +37 -40
  320. package/lib/module/ui/utils/avatarUtils.js.map +1 -1
  321. package/lib/module/ui/utils/storageHelpers.js.map +1 -1
  322. package/lib/module/utils/errorUtils.js +7 -0
  323. package/lib/module/utils/errorUtils.js.map +1 -1
  324. package/lib/module/utils/validationUtils.js +13 -0
  325. package/lib/module/utils/validationUtils.js.map +1 -1
  326. package/lib/typescript/core/CrossDomainAuth.d.ts +161 -0
  327. package/lib/typescript/core/CrossDomainAuth.d.ts.map +1 -0
  328. package/lib/typescript/core/HttpService.d.ts +1 -1
  329. package/lib/typescript/core/HttpService.d.ts.map +1 -1
  330. package/lib/typescript/core/OxyServices.base.d.ts +0 -6
  331. package/lib/typescript/core/OxyServices.base.d.ts.map +1 -1
  332. package/lib/typescript/core/OxyServices.d.ts +5 -36
  333. package/lib/typescript/core/OxyServices.d.ts.map +1 -1
  334. package/lib/typescript/core/index.d.ts +4 -0
  335. package/lib/typescript/core/index.d.ts.map +1 -1
  336. package/lib/typescript/core/mixins/OxyServices.analytics.d.ts.map +1 -1
  337. package/lib/typescript/core/mixins/OxyServices.assets.d.ts.map +1 -1
  338. package/lib/typescript/core/mixins/OxyServices.auth.d.ts +40 -20
  339. package/lib/typescript/core/mixins/OxyServices.auth.d.ts.map +1 -1
  340. package/lib/typescript/core/mixins/OxyServices.developer.d.ts.map +1 -1
  341. package/lib/typescript/core/mixins/OxyServices.devices.d.ts.map +1 -1
  342. package/lib/typescript/core/mixins/OxyServices.features.d.ts +229 -0
  343. package/lib/typescript/core/mixins/OxyServices.features.d.ts.map +1 -0
  344. package/lib/typescript/core/mixins/OxyServices.fedcm.d.ts +195 -0
  345. package/lib/typescript/core/mixins/OxyServices.fedcm.d.ts.map +1 -0
  346. package/lib/typescript/core/mixins/OxyServices.karma.d.ts.map +1 -1
  347. package/lib/typescript/core/mixins/OxyServices.language.d.ts.map +1 -1
  348. package/lib/typescript/core/mixins/OxyServices.location.d.ts.map +1 -1
  349. package/lib/typescript/core/mixins/OxyServices.payment.d.ts.map +1 -1
  350. package/lib/typescript/core/mixins/OxyServices.popup.d.ts +206 -0
  351. package/lib/typescript/core/mixins/OxyServices.popup.d.ts.map +1 -0
  352. package/lib/typescript/core/mixins/OxyServices.privacy.d.ts.map +1 -1
  353. package/lib/typescript/core/mixins/OxyServices.redirect.d.ts +246 -0
  354. package/lib/typescript/core/mixins/OxyServices.redirect.d.ts.map +1 -0
  355. package/lib/typescript/core/mixins/OxyServices.security.d.ts.map +1 -1
  356. package/lib/typescript/core/mixins/OxyServices.user.d.ts +6 -4
  357. package/lib/typescript/core/mixins/OxyServices.user.d.ts.map +1 -1
  358. package/lib/typescript/core/mixins/OxyServices.utility.d.ts.map +1 -1
  359. package/lib/typescript/core/mixins/index.d.ts +291 -9
  360. package/lib/typescript/core/mixins/index.d.ts.map +1 -1
  361. package/lib/typescript/crypto/index.d.ts +6 -3
  362. package/lib/typescript/crypto/index.d.ts.map +1 -1
  363. package/lib/typescript/crypto/keyManager.d.ts +190 -0
  364. package/lib/typescript/crypto/keyManager.d.ts.map +1 -0
  365. package/lib/typescript/crypto/polyfill.d.ts +4 -3
  366. package/lib/typescript/crypto/polyfill.d.ts.map +1 -1
  367. package/lib/typescript/crypto/recoveryPhrase.d.ts +59 -0
  368. package/lib/typescript/crypto/recoveryPhrase.d.ts.map +1 -0
  369. package/lib/typescript/crypto/signatureService.d.ts +87 -0
  370. package/lib/typescript/crypto/signatureService.d.ts.map +1 -0
  371. package/lib/typescript/index.d.ts +5 -6
  372. package/lib/typescript/index.d.ts.map +1 -1
  373. package/lib/typescript/models/interfaces.d.ts +2 -14
  374. package/lib/typescript/models/interfaces.d.ts.map +1 -1
  375. package/lib/typescript/models/session.d.ts +0 -9
  376. package/lib/typescript/models/session.d.ts.map +1 -1
  377. package/lib/typescript/types/bip39.d.ts +32 -0
  378. package/lib/typescript/ui/components/BottomSheetRouter.d.ts +5 -0
  379. package/lib/typescript/ui/components/BottomSheetRouter.d.ts.map +1 -1
  380. package/lib/typescript/ui/components/GroupedItem.d.ts +5 -1
  381. package/lib/typescript/ui/components/GroupedItem.d.ts.map +1 -1
  382. package/lib/typescript/ui/components/IconButton/utils.d.ts +1 -1
  383. package/lib/typescript/ui/components/OxyProvider.d.ts.map +1 -1
  384. package/lib/typescript/ui/components/SettingRow.d.ts +6 -0
  385. package/lib/typescript/ui/components/SettingRow.d.ts.map +1 -1
  386. package/lib/typescript/ui/components/TextField/Addons/Outline.d.ts +2 -2
  387. package/lib/typescript/ui/components/TextField/Adornment/utils.d.ts +1 -1
  388. package/lib/typescript/ui/components/TextField/Adornment/utils.d.ts.map +1 -1
  389. package/lib/typescript/ui/components/TextField/helpers.d.ts +8 -8
  390. package/lib/typescript/ui/components/TextField/types.d.ts +1 -0
  391. package/lib/typescript/ui/components/TextField/types.d.ts.map +1 -1
  392. package/lib/typescript/ui/components/feedback/FormInput.d.ts +20 -0
  393. package/lib/typescript/ui/components/feedback/FormInput.d.ts.map +1 -0
  394. package/lib/typescript/ui/components/feedback/ProgressIndicator.d.ts +11 -0
  395. package/lib/typescript/ui/components/feedback/ProgressIndicator.d.ts.map +1 -0
  396. package/lib/typescript/ui/components/feedback/constants.d.ts +5 -0
  397. package/lib/typescript/ui/components/feedback/constants.d.ts.map +1 -0
  398. package/lib/typescript/ui/components/feedback/feedbackStyles.d.ts +280 -0
  399. package/lib/typescript/ui/components/feedback/feedbackStyles.d.ts.map +1 -0
  400. package/lib/typescript/ui/components/feedback/index.d.ts +7 -0
  401. package/lib/typescript/ui/components/feedback/index.d.ts.map +1 -0
  402. package/lib/typescript/ui/components/feedback/types.d.ts +46 -0
  403. package/lib/typescript/ui/components/feedback/types.d.ts.map +1 -0
  404. package/lib/typescript/ui/components/feedback/useFeedbackForm.d.ts +9 -0
  405. package/lib/typescript/ui/components/feedback/useFeedbackForm.d.ts.map +1 -0
  406. package/lib/typescript/ui/components/modals/DeleteAccountModal.d.ts +19 -0
  407. package/lib/typescript/ui/components/modals/DeleteAccountModal.d.ts.map +1 -0
  408. package/lib/typescript/ui/components/modals/index.d.ts +2 -0
  409. package/lib/typescript/ui/components/modals/index.d.ts.map +1 -0
  410. package/lib/typescript/ui/components/payment/PaymentDetailsStep.d.ts +21 -0
  411. package/lib/typescript/ui/components/payment/PaymentDetailsStep.d.ts.map +1 -0
  412. package/lib/typescript/ui/components/payment/PaymentMethodStep.d.ts +14 -0
  413. package/lib/typescript/ui/components/payment/PaymentMethodStep.d.ts.map +1 -0
  414. package/lib/typescript/ui/components/payment/PaymentReviewStep.d.ts +16 -0
  415. package/lib/typescript/ui/components/payment/PaymentReviewStep.d.ts.map +1 -0
  416. package/lib/typescript/ui/components/payment/PaymentSuccessStep.d.ts +10 -0
  417. package/lib/typescript/ui/components/payment/PaymentSuccessStep.d.ts.map +1 -0
  418. package/lib/typescript/ui/components/payment/PaymentSummaryStep.d.ts +15 -0
  419. package/lib/typescript/ui/components/payment/PaymentSummaryStep.d.ts.map +1 -0
  420. package/lib/typescript/ui/components/payment/constants.d.ts +7 -0
  421. package/lib/typescript/ui/components/payment/constants.d.ts.map +1 -0
  422. package/lib/typescript/ui/components/payment/index.d.ts +9 -0
  423. package/lib/typescript/ui/components/payment/index.d.ts.map +1 -0
  424. package/lib/typescript/ui/components/payment/paymentStyles.d.ts +396 -0
  425. package/lib/typescript/ui/components/payment/paymentStyles.d.ts.map +1 -0
  426. package/lib/typescript/ui/components/payment/types.d.ts +40 -0
  427. package/lib/typescript/ui/components/payment/types.d.ts.map +1 -0
  428. package/lib/typescript/ui/components/types.d.ts +4 -0
  429. package/lib/typescript/ui/components/types.d.ts.map +1 -1
  430. package/lib/typescript/ui/context/OxyContext.d.ts +57 -3
  431. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  432. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +10 -3
  433. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  434. package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts +41 -0
  435. package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts.map +1 -0
  436. package/lib/typescript/ui/hooks/index.d.ts +2 -0
  437. package/lib/typescript/ui/hooks/index.d.ts.map +1 -1
  438. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  439. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  440. package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  441. package/lib/typescript/ui/hooks/useAsyncAction.d.ts +51 -0
  442. package/lib/typescript/ui/hooks/useAsyncAction.d.ts.map +1 -0
  443. package/lib/typescript/ui/hooks/useProfileEditing.d.ts.map +1 -1
  444. package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +1 -1
  445. package/lib/typescript/ui/hooks/useSessionSocket.d.ts +1 -2
  446. package/lib/typescript/ui/hooks/useSessionSocket.d.ts.map +1 -1
  447. package/lib/typescript/ui/hooks/useSettingToggle.d.ts +55 -0
  448. package/lib/typescript/ui/hooks/useSettingToggle.d.ts.map +1 -0
  449. package/lib/typescript/ui/hooks/useStorage.d.ts +3 -9
  450. package/lib/typescript/ui/hooks/useStorage.d.ts.map +1 -1
  451. package/lib/typescript/ui/index.d.ts +6 -2
  452. package/lib/typescript/ui/index.d.ts.map +1 -1
  453. package/lib/typescript/ui/navigation/routes.d.ts +1 -1
  454. package/lib/typescript/ui/navigation/routes.d.ts.map +1 -1
  455. package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
  456. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  457. package/lib/typescript/ui/screens/FAQScreen.d.ts +5 -0
  458. package/lib/typescript/ui/screens/FAQScreen.d.ts.map +1 -0
  459. package/lib/typescript/ui/screens/FeedbackScreen.d.ts.map +1 -1
  460. package/lib/typescript/ui/screens/HelpSupportScreen.d.ts.map +1 -1
  461. package/lib/typescript/ui/screens/OxyAuthScreen.d.ts +1 -1
  462. package/lib/typescript/ui/screens/OxyAuthScreen.d.ts.map +1 -1
  463. package/lib/typescript/ui/screens/PaymentGatewayScreen.d.ts +3 -15
  464. package/lib/typescript/ui/screens/PaymentGatewayScreen.d.ts.map +1 -1
  465. package/lib/typescript/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
  466. package/lib/typescript/ui/screens/ProfileScreen.d.ts.map +1 -1
  467. package/lib/typescript/ui/screens/SavesCollectionsScreen.d.ts.map +1 -1
  468. package/lib/typescript/ui/screens/karma/KarmaCenterScreen.d.ts.map +1 -1
  469. package/lib/typescript/ui/stores/accountStore.d.ts.map +1 -1
  470. package/lib/typescript/ui/stores/authStore.d.ts +8 -7
  471. package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
  472. package/lib/typescript/ui/styles/spacing.d.ts +5 -0
  473. package/lib/typescript/ui/styles/spacing.d.ts.map +1 -1
  474. package/lib/typescript/ui/types/navigation.d.ts +2 -1
  475. package/lib/typescript/ui/types/navigation.d.ts.map +1 -1
  476. package/lib/typescript/ui/utils/avatarUtils.d.ts +2 -13
  477. package/lib/typescript/ui/utils/avatarUtils.d.ts.map +1 -1
  478. package/lib/typescript/ui/utils/storageHelpers.d.ts +0 -3
  479. package/lib/typescript/ui/utils/storageHelpers.d.ts.map +1 -1
  480. package/lib/typescript/utils/errorUtils.d.ts +6 -0
  481. package/lib/typescript/utils/errorUtils.d.ts.map +1 -1
  482. package/lib/typescript/utils/validationUtils.d.ts +8 -0
  483. package/lib/typescript/utils/validationUtils.d.ts.map +1 -1
  484. package/package.json +8 -7
  485. package/src/core/CrossDomainAuth.ts +307 -0
  486. package/src/core/HttpService.ts +99 -16
  487. package/src/core/OxyServices.base.ts +20 -3
  488. package/src/core/OxyServices.ts +7 -3
  489. package/src/core/index.ts +9 -1
  490. package/src/core/mixins/OxyServices.assets.ts +14 -3
  491. package/src/core/mixins/OxyServices.auth.ts +105 -36
  492. package/src/core/mixins/OxyServices.features.ts +428 -0
  493. package/src/core/mixins/OxyServices.fedcm.ts +315 -0
  494. package/src/core/mixins/OxyServices.popup.ts +402 -0
  495. package/src/core/mixins/OxyServices.redirect.ts +397 -0
  496. package/src/core/mixins/OxyServices.user.ts +39 -24
  497. package/src/core/mixins/index.ts +33 -14
  498. package/src/crypto/index.ts +16 -5
  499. package/src/crypto/keyManager.ts +966 -0
  500. package/src/crypto/polyfill.ts +6 -5
  501. package/src/crypto/recoveryPhrase.ts +166 -0
  502. package/src/crypto/signatureService.ts +323 -0
  503. package/src/i18n/locales/en-US.json +1 -1
  504. package/src/index.ts +19 -15
  505. package/src/models/interfaces.ts +4 -16
  506. package/src/models/session.ts +2 -11
  507. package/src/types/bip39.d.ts +32 -0
  508. package/src/ui/components/BottomSheetRouter.tsx +6 -1
  509. package/src/ui/components/GroupedItem.tsx +19 -1
  510. package/src/ui/components/Icon.tsx +1 -1
  511. package/src/ui/components/IconButton/utils.ts +1 -1
  512. package/src/ui/components/OxyProvider.tsx +44 -12
  513. package/src/ui/components/SettingRow.tsx +26 -4
  514. package/src/ui/components/TextField/Addons/Outline.tsx +2 -2
  515. package/src/ui/components/TextField/Adornment/utils.ts +2 -2
  516. package/src/ui/components/TextField/helpers.tsx +10 -10
  517. package/src/ui/components/TextField/types.tsx +1 -1
  518. package/src/ui/components/TouchableRipple/utils.ts +2 -2
  519. package/src/ui/components/Typography/AnimatedText.tsx +2 -2
  520. package/src/ui/components/feedback/FormInput.tsx +84 -0
  521. package/src/ui/components/feedback/ProgressIndicator.tsx +35 -0
  522. package/src/ui/components/feedback/constants.ts +22 -0
  523. package/src/ui/components/feedback/feedbackStyles.ts +247 -0
  524. package/src/ui/components/feedback/index.ts +6 -0
  525. package/src/ui/components/feedback/types.ts +52 -0
  526. package/src/ui/components/feedback/useFeedbackForm.ts +44 -0
  527. package/src/ui/components/modals/DeleteAccountModal.tsx +294 -0
  528. package/src/ui/components/modals/index.ts +1 -0
  529. package/src/ui/components/payment/PaymentDetailsStep.tsx +222 -0
  530. package/src/ui/components/payment/PaymentMethodStep.tsx +89 -0
  531. package/src/ui/components/payment/PaymentReviewStep.tsx +126 -0
  532. package/src/ui/components/payment/PaymentSuccessStep.tsx +71 -0
  533. package/src/ui/components/payment/PaymentSummaryStep.tsx +159 -0
  534. package/src/ui/components/payment/constants.ts +39 -0
  535. package/src/ui/components/payment/index.ts +9 -0
  536. package/src/ui/components/payment/paymentStyles.ts +397 -0
  537. package/src/ui/components/payment/types.ts +45 -0
  538. package/src/ui/components/types.tsx +6 -0
  539. package/src/ui/context/OxyContext.tsx +173 -195
  540. package/src/ui/context/hooks/useAuthOperations.ts +177 -36
  541. package/src/ui/context/hooks/useSessionManagement.ts +399 -0
  542. package/src/ui/hooks/index.ts +3 -1
  543. package/src/ui/hooks/mutations/useAccountMutations.ts +83 -76
  544. package/src/ui/hooks/queries/useAccountQueries.ts +29 -35
  545. package/src/ui/hooks/queries/useSecurityQueries.ts +1 -1
  546. package/src/ui/hooks/queries/useServicesQueries.ts +14 -6
  547. package/src/ui/hooks/useAsyncAction.ts +129 -0
  548. package/src/ui/hooks/useProfileEditing.ts +3 -3
  549. package/src/ui/hooks/useSessionManagement.ts +5 -10
  550. package/src/ui/hooks/useSessionSocket.ts +46 -175
  551. package/src/ui/hooks/useSettingToggle.ts +147 -0
  552. package/src/ui/hooks/useStorage.ts +24 -76
  553. package/src/ui/index.ts +22 -13
  554. package/src/ui/navigation/routes.ts +8 -2
  555. package/src/ui/screens/AccountCenterScreen.tsx +4 -4
  556. package/src/ui/screens/AccountOverviewScreen.tsx +36 -38
  557. package/src/ui/screens/AccountSettingsScreen.tsx +34 -37
  558. package/src/ui/screens/AccountSwitcherScreen.tsx +4 -4
  559. package/src/ui/screens/FAQScreen.tsx +332 -0
  560. package/src/ui/screens/FeedbackScreen.tsx +91 -626
  561. package/src/ui/screens/HelpSupportScreen.tsx +7 -5
  562. package/src/ui/screens/OxyAuthScreen.tsx +138 -64
  563. package/src/ui/screens/PaymentGatewayScreen.tsx +96 -1275
  564. package/src/ui/screens/PrivacySettingsScreen.tsx +6 -12
  565. package/src/ui/screens/ProfileScreen.tsx +11 -6
  566. package/src/ui/screens/SavesCollectionsScreen.tsx +19 -10
  567. package/src/ui/screens/karma/KarmaCenterScreen.tsx +10 -10
  568. package/src/ui/stores/accountStore.ts +1 -11
  569. package/src/ui/stores/authStore.ts +43 -44
  570. package/src/ui/styles/spacing.ts +15 -2
  571. package/src/ui/types/navigation.ts +2 -2
  572. package/src/ui/utils/avatarUtils.ts +39 -46
  573. package/src/ui/utils/storageHelpers.ts +0 -4
  574. package/src/utils/__tests__/validationUtils.test.ts +16 -1
  575. package/src/utils/errorUtils.ts +8 -1
  576. package/src/utils/validationUtils.ts +12 -0
  577. package/lib/commonjs/core/services/SessionService.js +0 -163
  578. package/lib/commonjs/core/services/SessionService.js.map +0 -1
  579. package/lib/commonjs/core/services/TokenService.js +0 -220
  580. package/lib/commonjs/core/services/TokenService.js.map +0 -1
  581. package/lib/commonjs/crypto/types.js +0 -2
  582. package/lib/commonjs/crypto/types.js.map +0 -1
  583. package/lib/commonjs/ui/context/OxyContextBase.js +0 -21
  584. package/lib/commonjs/ui/context/OxyContextBase.js.map +0 -1
  585. package/lib/commonjs/ui/context/hooks/useStorage.js +0 -79
  586. package/lib/commonjs/ui/context/hooks/useStorage.js.map +0 -1
  587. package/lib/commonjs/ui/hooks/useAvatarPicker.js +0 -56
  588. package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +0 -1
  589. package/lib/module/core/services/SessionService.js +0 -159
  590. package/lib/module/core/services/SessionService.js.map +0 -1
  591. package/lib/module/core/services/TokenService.js +0 -217
  592. package/lib/module/core/services/TokenService.js.map +0 -1
  593. package/lib/module/crypto/types.js +0 -2
  594. package/lib/module/crypto/types.js.map +0 -1
  595. package/lib/module/ui/context/OxyContextBase.js +0 -16
  596. package/lib/module/ui/context/OxyContextBase.js.map +0 -1
  597. package/lib/module/ui/context/hooks/useStorage.js +0 -74
  598. package/lib/module/ui/context/hooks/useStorage.js.map +0 -1
  599. package/lib/module/ui/hooks/useAvatarPicker.js +0 -50
  600. package/lib/module/ui/hooks/useAvatarPicker.js.map +0 -1
  601. package/lib/typescript/core/services/SessionService.d.ts +0 -78
  602. package/lib/typescript/core/services/SessionService.d.ts.map +0 -1
  603. package/lib/typescript/core/services/TokenService.d.ts +0 -72
  604. package/lib/typescript/core/services/TokenService.d.ts.map +0 -1
  605. package/lib/typescript/crypto/types.d.ts +0 -22
  606. package/lib/typescript/crypto/types.d.ts.map +0 -1
  607. package/lib/typescript/ui/context/OxyContextBase.d.ts +0 -63
  608. package/lib/typescript/ui/context/OxyContextBase.d.ts.map +0 -1
  609. package/lib/typescript/ui/context/hooks/useStorage.d.ts +0 -22
  610. package/lib/typescript/ui/context/hooks/useStorage.d.ts.map +0 -1
  611. package/lib/typescript/ui/hooks/useAvatarPicker.d.ts +0 -19
  612. package/lib/typescript/ui/hooks/useAvatarPicker.d.ts.map +0 -1
  613. package/src/core/services/SessionService.ts +0 -173
  614. package/src/core/services/TokenService.ts +0 -237
  615. package/src/crypto/types.ts +0 -23
  616. package/src/ui/context/OxyContextBase.tsx +0 -78
  617. package/src/ui/context/hooks/useStorage.ts +0 -104
  618. package/src/ui/hooks/useAvatarPicker.ts +0 -61
@@ -4,120 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _react = require("react");
7
+ var _react = _interopRequireWildcard(require("react"));
8
8
  var _reactNative = require("react-native");
9
9
  var _styles = require("../styles");
10
10
  var _themeUtils = require("../utils/themeUtils");
11
11
  var _GroupedPillButtons = _interopRequireDefault(require("../components/internal/GroupedPillButtons"));
12
- var _TextField = _interopRequireDefault(require("../components/TextField"));
13
- var _vectorIcons = require("@expo/vector-icons");
14
- var _icon = require("../components/icon");
15
- var _sonner = require("sonner");
16
- var _reactNativeQrcodeSvg = _interopRequireDefault(require("react-native-qrcode-svg"));
17
- var _components = require("../components");
18
12
  var _useThemeStyles = require("../hooks/useThemeStyles");
13
+ var _reactNativeQrcodeSvg = _interopRequireDefault(require("react-native-qrcode-svg"));
14
+ var _payment = require("../components/payment");
19
15
  var _jsxRuntime = require("react/jsx-runtime");
20
16
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
21
- // Restrict payment methods to Card, Oxy Pay, and FairCoin (QR)
22
- const PAYMENT_METHODS = [{
23
- key: 'card',
24
- label: 'Credit/Debit Card',
25
- icon: 'card-outline',
26
- description: 'Pay securely with your credit or debit card.'
27
- }, {
28
- key: 'oxy',
29
- label: 'Oxy Pay',
30
- icon: 'wallet-outline',
31
- description: 'Use your Oxy Pay in-app balance.'
32
- }, {
33
- key: 'faircoin',
34
- label: 'FAIRWallet',
35
- icon: 'qr-code-outline',
36
- description: 'Pay with FairCoin by scanning a QR code.'
37
- }];
38
-
39
- // Add PaymentItem type
40
-
41
- // Extend props to accept onPaymentResult, amount, and currency
42
-
43
- // Currency symbol map
44
- const CURRENCY_SYMBOLS = {
45
- FAIR: '⊜',
46
- INR: '₹',
47
- USD: '$',
48
- EUR: '€',
49
- GBP: '£',
50
- JPY: '¥',
51
- CNY: '¥',
52
- AUD: 'A$',
53
- CAD: 'C$'
54
- // Add more as needed
55
- };
56
- const CURRENCY_NAMES = {
57
- FAIR: 'FairCoin',
58
- INR: 'Indian Rupee',
59
- USD: 'US Dollar',
60
- EUR: 'Euro',
61
- GBP: 'British Pound',
62
- JPY: 'Japanese Yen',
63
- CNY: 'Chinese Yuan',
64
- AUD: 'Australian Dollar',
65
- CAD: 'Canadian Dollar'
66
- // Add more as needed
67
- };
68
-
69
- // Helper: icon for item type (Ionicons only)
70
- const getItemTypeIcon = (type, color) => {
71
- switch (type) {
72
- case 'product':
73
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
74
- name: "cart-outline",
75
- size: 22,
76
- color: color,
77
- style: {
78
- marginRight: 8
79
- }
80
- });
81
- case 'subscription':
82
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
83
- name: "repeat-outline",
84
- size: 22,
85
- color: color,
86
- style: {
87
- marginRight: 8
88
- }
89
- });
90
- case 'service':
91
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
92
- name: "construct-outline",
93
- size: 22,
94
- color: color,
95
- style: {
96
- marginRight: 8
97
- }
98
- });
99
- case 'fee':
100
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
101
- name: "cash-outline",
102
- size: 22,
103
- color: color,
104
- style: {
105
- marginRight: 8
106
- }
107
- });
108
- default:
109
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
110
- name: "pricetag-outline",
111
- size: 22,
112
- color: color,
113
- style: {
114
- marginRight: 8
115
- }
116
- });
117
- }
118
- };
119
-
120
- // Helper to get unique item types (move to top-level, before component)
17
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
121
18
  const getUniqueItemTypes = items => {
122
19
  const types = items.map(item => item.type);
123
20
  return Array.from(new Set(types));
@@ -132,8 +29,7 @@ const PaymentGatewayScreen = props => {
132
29
  currency = 'FAIR',
133
30
  onClose,
134
31
  paymentItems = [],
135
- // NEW
136
- description = '' // NEW
32
+ description = ''
137
33
  } = props;
138
34
 
139
35
  // DEV ENFORCEMENT: Only allow one type of payment item
@@ -152,9 +48,7 @@ const PaymentGatewayScreen = props => {
152
48
  expiry: '',
153
49
  cvv: ''
154
50
  });
155
- const [upiId, setUpiId] = (0, _react.useState)('');
156
51
  const [isPaying, setIsPaying] = (0, _react.useState)(false);
157
- const [success, setSuccess] = (0, _react.useState)(false);
158
52
 
159
53
  // Animations
160
54
  const fadeAnim = (0, _react.useRef)(new _reactNative.Animated.Value(1)).current;
@@ -163,23 +57,8 @@ const PaymentGatewayScreen = props => {
163
57
  const progressAnim = (0, _react.useRef)(new _reactNative.Animated.Value(0.2)).current;
164
58
  const normalizedTheme = (0, _themeUtils.normalizeTheme)(theme);
165
59
  const colors = (0, _styles.useThemeColors)(normalizedTheme);
166
- const commonStyles = (0, _styles.createCommonStyles)(normalizedTheme);
167
- const styles = (0, _react.useMemo)(() => createStyles(colors, normalizedTheme), [colors, normalizedTheme]);
168
-
169
- // Get symbol and name for currency
170
- const currencySymbol = CURRENCY_SYMBOLS[currency.toUpperCase()] || currency;
171
- const currencyName = CURRENCY_NAMES[currency.toUpperCase()] || currency;
172
-
173
- // Calculate total from items if provided, else use amount
174
- const computedTotal = (0, _react.useMemo)(() => {
175
- if (paymentItems && paymentItems.length > 0) {
176
- return paymentItems.reduce((sum, item) => {
177
- const qty = item.quantity ?? 1;
178
- return sum + item.price * qty;
179
- }, 0);
180
- }
181
- return Number(amount) || 0;
182
- }, [paymentItems, amount]);
60
+ const themeStyles = (0, _useThemeStyles.useThemeStyles)(normalizedTheme);
61
+ const styles = (0, _react.useMemo)(() => (0, _payment.createPaymentStyles)(colors), [colors]);
183
62
 
184
63
  // Determine if the payment is for a recurring item (subscription)
185
64
  const isRecurring = paymentItems.length > 0 && paymentItems[0].type === 'subscription';
@@ -187,20 +66,11 @@ const PaymentGatewayScreen = props => {
187
66
  // Filter payment methods: remove 'faircoin' if recurring
188
67
  const availablePaymentMethods = (0, _react.useMemo)(() => {
189
68
  if (isRecurring) {
190
- return PAYMENT_METHODS.filter(m => m.key !== 'faircoin');
69
+ return _payment.PAYMENT_METHODS.filter(m => m.key !== 'faircoin');
191
70
  }
192
- return PAYMENT_METHODS;
71
+ return _payment.PAYMENT_METHODS;
193
72
  }, [isRecurring]);
194
73
 
195
- // Add after useState declarations
196
- // Remove itemTypeError state, useEffect, and user-facing error in renderSummaryStep
197
-
198
- // Helper to get unique item types
199
- // Remove itemTypeError state, useEffect, and user-facing error in renderSummaryStep
200
-
201
- // Validate item types on paymentItems change
202
- // Remove itemTypeError state, useEffect, and user-facing error in renderSummaryStep
203
-
204
74
  // Animation transitions
205
75
  const animateTransition = (0, _react.useCallback)(nextStep => {
206
76
  _reactNative.Animated.timing(scaleAnim, {
@@ -232,7 +102,7 @@ const PaymentGatewayScreen = props => {
232
102
  useNativeDriver: _reactNative.Platform.OS !== 'web'
233
103
  })]).start();
234
104
  });
235
- }, []);
105
+ }, [fadeAnim, slideAnim, scaleAnim]);
236
106
  const nextStep = (0, _react.useCallback)(() => {
237
107
  if (currentStep < 4) {
238
108
  _reactNative.Animated.timing(progressAnim, {
@@ -254,17 +124,14 @@ const PaymentGatewayScreen = props => {
254
124
  }
255
125
  }, [currentStep, progressAnim, animateTransition]);
256
126
 
257
- // Dummy pay handler
127
+ // Pay handler - TODO: Replace with actual payment API
258
128
  const handlePay = (0, _react.useCallback)(() => {
259
129
  setIsPaying(true);
260
130
  setTimeout(() => {
261
131
  setIsPaying(false);
262
- setSuccess(true);
263
132
  nextStep();
264
133
  }, 1500);
265
134
  }, [nextStep]);
266
-
267
- // Success handler for Done button
268
135
  const handleDone = (0, _react.useCallback)(() => {
269
136
  if (onPaymentResult) {
270
137
  onPaymentResult({
@@ -273,8 +140,6 @@ const PaymentGatewayScreen = props => {
273
140
  }
274
141
  navigate?.('AccountOverview');
275
142
  }, [onPaymentResult, navigate]);
276
-
277
- // Handle close/cancel: return failure result if payment is not completed
278
143
  const handleClose = (0, _react.useCallback)(() => {
279
144
  if (onPaymentResult) {
280
145
  onPaymentResult({
@@ -289,10 +154,7 @@ const PaymentGatewayScreen = props => {
289
154
  }
290
155
  }, [onPaymentResult, onClose, goBack]);
291
156
 
292
- // Optionally, intercept goBack/onClose if user tries to close the screen
293
- // (You may want to use useEffect to listen for unmount or navigation away)
294
-
295
- // If amount is missing or invalid, show error
157
+ // Validate amount
296
158
  if (!amount || isNaN(Number(amount)) || Number(amount) <= 0) {
297
159
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
298
160
  style: styles.errorContainer,
@@ -306,619 +168,82 @@ const PaymentGatewayScreen = props => {
306
168
  icon: 'close',
307
169
  variant: 'primary'
308
170
  }],
309
- colors: (0, _styles.useThemeColors)(normalizedTheme)
171
+ colors: colors
310
172
  })]
311
173
  });
312
174
  }
313
175
 
314
- // Example FairCoin address (replace with real one)
176
+ // FairCoin address - TODO: Replace with dynamic address from backend
315
177
  const faircoinAddress = 'f1abc1234FAIRCOINADDRESS';
316
178
  const {
317
179
  width: windowWidth
318
180
  } = (0, _reactNative.useWindowDimensions)();
319
181
  const isMobile = windowWidth < 600;
320
182
  const qrSize = !isMobile ? Math.min(windowWidth * 0.3, 220) : Math.min(windowWidth * 0.8, 300);
321
- const handleCopyAddress = () => {
322
- _reactNative.Clipboard.setString(faircoinAddress);
323
- (0, _sonner.toast)('Address copied to clipboard!');
324
- };
325
- const handleOpenFairWallet = () => {
326
- const url = `fairwallet://pay?address=${faircoinAddress}`;
327
- _reactNative.Linking.openURL(url);
328
- };
329
-
330
- // Helper for dynamic styles
331
- const getStepIndicatorStyle = active => [styles.stepIndicator, active ? styles.stepIndicatorActive : styles.stepIndicatorInactive];
332
- const getPaymentMethodButtonStyle = active => [styles.paymentMethodButton, active ? styles.paymentMethodButtonActive : styles.paymentMethodButtonInactive];
333
- const getPaymentMethodIconColor = active => active ? colors.primary : colors.text;
334
-
335
- // Step indicator
336
- const renderStepIndicator = () => {
337
- const totalSteps = 5;
338
- const activeStep = currentStep + 1;
339
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
340
- style: styles.stepIndicatorContainer,
341
- children: Array.from({
342
- length: totalSteps
343
- }).map((_, idx) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
344
- style: getStepIndicatorStyle(activeStep === idx + 1)
345
- }, idx))
346
- });
183
+ const animations = {
184
+ fadeAnim,
185
+ slideAnim,
186
+ scaleAnim
347
187
  };
348
-
349
- // PaymentGatewayHeader component
350
- const stepTitles = ['Complete Your Payment', 'Select Payment Method', 'Enter Payment Details', 'Review & Pay', 'Success'];
351
-
352
- // Step 1: Summary step (new first step, no header/dots here)
353
- const renderSummaryStep = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Animated.View, {
354
- style: [styles.stepContainer, {
355
- opacity: fadeAnim,
356
- transform: [{
357
- translateY: slideAnim
358
- }, {
359
- scale: scaleAnim
360
- }]
361
- }],
362
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
363
- style: styles.section,
364
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
365
- style: styles.sectionTitle,
366
- children: "Payment Summary"
367
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
368
- style: styles.summaryCard,
369
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
370
- style: styles.summaryCardContent,
371
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
372
- name: "receipt-outline",
373
- size: 64,
374
- color: colors.primary,
375
- style: styles.summaryCardIcon
376
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
377
- style: styles.summaryCardMainTitle,
378
- children: paymentItems && paymentItems.length > 0 ? 'Order Summary' : 'Payment'
379
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
380
- style: styles.summaryCardSubtitle,
381
- children: paymentItems && paymentItems.length > 0 ? 'Review your payment details' : 'Complete your payment'
382
- }), paymentItems && paymentItems.length > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
383
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
384
- style: styles.summaryCardItems,
385
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.GroupedSection, {
386
- items: paymentItems.map((item, idx) => ({
387
- id: `item-${idx}`,
388
- icon: getItemTypeIcon(item.type, colors.primary).props.name,
389
- iconColor: colors.primary,
390
- title: `${item.type === 'product' && item.quantity ? `${item.quantity} × ` : ''}${item.name}${item.type === 'subscription' && item.period ? ` (${item.period})` : ''}`,
391
- subtitle: item.description || `${item.currency ? CURRENCY_SYMBOLS[item.currency.toUpperCase()] || item.currency : currencySymbol} ${item.price * (item.quantity ?? 1)}`,
392
- customContent: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
393
- style: styles.summaryItemPrice,
394
- children: [item.currency ? CURRENCY_SYMBOLS[item.currency.toUpperCase()] || item.currency : currencySymbol, " ", item.price * (item.quantity ?? 1)]
395
- })
396
- }))
397
- })
398
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
399
- style: styles.summaryCardDivider
400
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
401
- style: styles.summaryCardTotalSection,
402
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
403
- style: styles.summaryCardTotalRow,
404
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
405
- style: styles.summaryCardTotalLabel,
406
- children: "Subtotal"
407
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
408
- style: styles.summaryCardTotalValue,
409
- children: [currencySymbol, " ", amount]
410
- })]
411
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
412
- style: styles.summaryCardTotalRow,
413
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
414
- style: styles.summaryCardTotalLabel,
415
- children: "Tax"
416
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
417
- style: styles.summaryCardTotalValue,
418
- children: [currencySymbol, " 0.00"]
419
- })]
420
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
421
- style: styles.summaryCardTotalRow,
422
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
423
- style: styles.summaryCardTotalLabel,
424
- children: "Total"
425
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
426
- style: styles.summaryCardTotalValue,
427
- children: [currencySymbol, " ", amount]
428
- })]
429
- })]
430
- })]
431
- }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
432
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
433
- style: styles.summaryCardAmount,
434
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
435
- style: styles.summaryCardAmountLabel,
436
- children: "Amount to Pay"
437
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
438
- style: styles.summaryCardAmountValue,
439
- children: [currencySymbol, " ", amount]
440
- }), description && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
441
- style: styles.summaryCardAmountDescription,
442
- children: description
443
- })]
444
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
445
- style: styles.summaryCardDivider
446
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
447
- style: styles.summaryCardTotalSection,
448
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
449
- style: styles.summaryCardTotalRow,
450
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
451
- style: styles.summaryCardTotalLabel,
452
- children: "Total"
453
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
454
- style: styles.summaryCardTotalValue,
455
- children: [currencySymbol, " ", amount]
456
- })]
457
- })
458
- })]
459
- })]
460
- })
461
- })]
462
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GroupedPillButtons.default, {
463
- buttons: [{
464
- text: 'Close',
465
- onPress: handleClose,
466
- icon: 'close',
467
- variant: 'transparent'
468
- }, {
469
- text: 'Continue',
470
- onPress: nextStep,
471
- icon: 'arrow-forward',
472
- variant: 'primary'
473
- }],
474
- colors: colors
475
- })]
476
- });
477
-
478
- // Step 2: Choose Payment Method (now the second step, no header/dots here)
479
- const renderMethodStep = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Animated.View, {
480
- style: [styles.stepContainer, {
481
- opacity: fadeAnim,
482
- transform: [{
483
- translateY: slideAnim
484
- }, {
485
- scale: scaleAnim
486
- }]
487
- }],
488
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
489
- style: styles.section,
490
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
491
- style: styles.sectionTitle,
492
- children: "Choose Payment Method"
493
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.GroupedSection, {
494
- items: availablePaymentMethods.map(method => ({
495
- id: method.key,
496
- icon: method.key === 'faircoin' ? undefined : method.icon,
497
- iconColor: method.key === 'card' ? '#007AFF' : method.key === 'oxy' ? '#32D74B' : method.key === 'faircoin' ? '#9ffb50' : colors.primary,
498
- title: method.label,
499
- subtitle: method.description,
500
- onPress: () => setPaymentMethod(method.key),
501
- selected: paymentMethod === method.key,
502
- showChevron: false,
503
- customIcon: method.key === 'faircoin' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FAIRWalletIcon, {
504
- size: 20
505
- }) : undefined
506
- }))
507
- })]
508
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GroupedPillButtons.default, {
509
- buttons: [{
510
- text: 'Back',
511
- onPress: prevStep,
512
- icon: 'arrow-back',
513
- variant: 'transparent'
514
- }, {
515
- text: 'Continue',
516
- onPress: nextStep,
517
- icon: 'arrow-forward',
518
- variant: 'primary'
519
- }],
520
- colors: colors
521
- })]
522
- });
523
-
524
- // Step 2: Enter Payment Details
525
- const renderDetailsStep = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Animated.View, {
526
- style: [styles.stepContainer, {
527
- opacity: fadeAnim,
528
- transform: [{
529
- translateY: slideAnim
530
- }, {
531
- scale: scaleAnim
532
- }]
533
- }],
534
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
535
- style: styles.section,
536
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
537
- style: styles.sectionTitle,
538
- children: paymentMethod === 'card' ? 'Card Details' : paymentMethod === 'oxy' ? 'Oxy Pay' : paymentMethod === 'faircoin' ? 'FairCoin Payment' : 'Payment Details'
539
- }), paymentMethod === 'card' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
540
- style: styles.cardPaymentCard,
541
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
542
- style: styles.cardPaymentContent,
543
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
544
- name: "card-outline",
545
- size: 64,
546
- color: colors.primary,
547
- style: styles.cardPaymentIcon
548
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
549
- style: styles.cardPaymentMainTitle,
550
- children: "Credit Card"
551
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
552
- style: styles.cardPaymentSubtitle,
553
- children: "Enter your card details securely"
554
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
555
- style: styles.cardPaymentFields,
556
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
557
- style: styles.cardRowInfo,
558
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
559
- name: "card-outline",
560
- size: 24,
561
- color: colors.primary,
562
- style: styles.cardRowIcon
563
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
564
- style: styles.cardRowText,
565
- children: "We accept Visa, Mastercard, and more"
566
- })]
567
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, {
568
- value: cardDetails.number,
569
- onChangeText: text => {
570
- // Format card number with spaces
571
- const formatted = text.replace(/\s/g, '').replace(/(\d{4})/g, '$1 ').trim();
572
- setCardDetails({
573
- ...cardDetails,
574
- number: formatted
575
- });
576
- },
577
- placeholder: "1234 5678 9012 3456",
578
- keyboardType: "numeric",
579
- maxLength: 19,
580
- style: styles.cardFieldContainer,
581
- left: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
582
- name: "card-outline",
583
- size: 18,
584
- color: colors.primary
585
- })
586
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
587
- style: styles.cardFieldRow,
588
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, {
589
- value: cardDetails.expiry,
590
- onChangeText: text => {
591
- // Format expiry date
592
- const formatted = text.replace(/\D/g, '').replace(/(\d{2})(\d)/, '$1/$2');
593
- setCardDetails({
594
- ...cardDetails,
595
- expiry: formatted
596
- });
597
- },
598
- placeholder: "MM/YY",
599
- maxLength: 5,
600
- style: styles.cardFieldHalfLeft,
601
- left: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
602
- name: "calendar-outline",
603
- size: 16,
604
- color: colors.primary
605
- })
606
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, {
607
- value: cardDetails.cvv,
608
- onChangeText: text => {
609
- // Only allow numbers
610
- const formatted = text.replace(/\D/g, '');
611
- setCardDetails({
612
- ...cardDetails,
613
- cvv: formatted
614
- });
615
- },
616
- placeholder: "123",
617
- keyboardType: "numeric",
618
- maxLength: 4,
619
- style: styles.cardFieldHalfRight,
620
- left: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
621
- name: "lock-closed-outline",
622
- size: 16,
623
- color: colors.primary
624
- })
625
- })]
626
- })]
627
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
628
- style: {
629
- height: 18
630
- }
631
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
632
- style: styles.cardPaymentWaiting,
633
- children: "Ready to process payment..."
634
- })]
635
- })
636
- }), paymentMethod === 'oxy' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
637
- style: styles.oxyPayCard,
638
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
639
- style: styles.oxyPayContent,
640
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
641
- name: "wallet-outline",
642
- size: 64,
643
- color: colors.primary,
644
- style: styles.oxyPayIcon
645
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
646
- style: styles.oxyPayMainTitle,
647
- children: "Oxy Pay"
648
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
649
- style: styles.oxyPaySubtitle,
650
- children: "Pay with your in-app wallet"
651
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
652
- style: styles.oxyPayBalanceBox,
653
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
654
- style: styles.oxyPayBalanceText,
655
- children: "Balance: \u229C 123.45"
656
- })
657
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
658
- style: {
659
- height: 18
660
- }
661
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
662
- style: styles.oxyPayWaiting,
663
- children: "Ready to process payment..."
664
- })]
665
- })
666
- }), paymentMethod === 'faircoin' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
667
- style: styles.faircoinCard,
668
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
669
- style: styles.faircoinContent,
670
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FAIRWalletIcon, {
671
- size: 64,
672
- style: styles.faircoinIcon
673
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
674
- style: styles.faircoinMainTitle,
675
- children: "FAIRWallet"
676
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
677
- style: styles.faircoinSubtitle,
678
- children: "Pay with FairCoin"
679
- }), !isMobile ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
680
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
681
- style: styles.faircoinScanText,
682
- children: "Scan to Pay"
683
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
684
- style: styles.faircoinQRCard,
685
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeQrcodeSvg.default, {
686
- value: faircoinAddress,
687
- size: qrSize - 32
688
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
689
- style: styles.faircoinQRBadge,
690
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FAIRWalletIcon, {
691
- size: 28
692
- })
693
- })]
694
- })]
695
- }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
696
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
697
- style: styles.faircoinTitle,
698
- children: "Use the options below to pay with FAIRWallet"
699
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
700
- style: styles.faircoinAddress,
701
- children: faircoinAddress
702
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
703
- style: [styles.faircoinButton, {
704
- backgroundColor: '#9ffb50',
705
- borderRadius: 18,
706
- marginTop: 12,
707
- width: '90%',
708
- flexDirection: 'row',
709
- alignItems: 'center',
710
- justifyContent: 'center'
711
- }],
712
- onPress: handleOpenFairWallet,
713
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FAIRWalletIcon, {
714
- size: 20,
715
- style: {
716
- marginRight: 8
717
- }
718
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
719
- style: [styles.faircoinButtonText, {
720
- color: '#1b1f0a',
721
- fontWeight: 'bold',
722
- fontSize: 16
723
- }],
724
- children: "Open in FAIRWallet"
725
- })]
726
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
727
- style: [styles.faircoinButton, {
728
- backgroundColor: '#9ffb50',
729
- borderRadius: 18,
730
- marginTop: 10,
731
- width: '90%',
732
- flexDirection: 'row',
733
- alignItems: 'center',
734
- justifyContent: 'center'
735
- }],
736
- onPress: handleCopyAddress,
737
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FAIRWalletIcon, {
738
- size: 20,
739
- style: {
740
- marginRight: 8
741
- }
742
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
743
- style: [styles.faircoinButtonText, {
744
- color: '#1b1f0a',
745
- fontWeight: 'bold',
746
- fontSize: 16
747
- }],
748
- children: "Copy Address"
749
- })]
750
- })]
751
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
752
- style: {
753
- height: 18
754
- }
755
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
756
- style: styles.faircoinWaiting,
757
- children: "Waiting for payment..."
758
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
759
- style: styles.faircoinPlaceholder,
760
- children: "(This is a placeholder. Integrate with a QR code generator for production.)"
761
- })]
762
- })
763
- })]
764
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GroupedPillButtons.default, {
765
- buttons: [{
766
- text: 'Back',
767
- onPress: prevStep,
768
- icon: 'arrow-back',
769
- variant: 'transparent'
770
- }, {
771
- text: 'Continue',
772
- onPress: nextStep,
773
- icon: 'arrow-forward',
774
- variant: 'primary',
775
- disabled: paymentMethod === 'card' && (!cardDetails.number || !cardDetails.expiry || !cardDetails.cvv)
776
- }],
777
- colors: colors
778
- })]
779
- });
780
-
781
- // Step 4: Review & Pay
782
- const renderReviewStep = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Animated.View, {
783
- style: [styles.stepContainer, {
784
- opacity: fadeAnim,
785
- transform: [{
786
- translateY: slideAnim
787
- }, {
788
- scale: scaleAnim
789
- }]
790
- }],
791
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
792
- style: styles.section,
793
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
794
- style: styles.sectionTitle,
795
- children: "Review Payment"
796
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.GroupedSection, {
797
- items: [{
798
- id: 'secure-payment',
799
- icon: 'shield-check',
800
- iconColor: colors.success || '#4BB543',
801
- title: 'Secure payment',
802
- subtitle: 'Your payment is protected by industry-standard encryption'
803
- }, {
804
- id: 'amount',
805
- icon: 'cash',
806
- iconColor: colors.primary,
807
- title: 'Amount',
808
- subtitle: `${currencySymbol} ${amount}`
809
- }, {
810
- id: 'payment-method',
811
- icon: PAYMENT_METHODS.find(m => m.key === paymentMethod)?.icon,
812
- iconColor: colors.primary,
813
- title: 'Payment Method',
814
- subtitle: PAYMENT_METHODS.find(m => m.key === paymentMethod)?.label
815
- }, ...(paymentMethod === 'card' ? [{
816
- id: 'card-details',
817
- icon: 'card',
818
- iconColor: colors.primary,
819
- title: 'Card',
820
- subtitle: cardDetails.number.replace(/.(?=.{4})/g, '*')
821
- }] : []), ...(paymentMethod === 'oxy' ? [{
822
- id: 'oxy-balance',
823
- icon: 'wallet',
824
- iconColor: colors.primary,
825
- title: 'Oxy Pay Account',
826
- subtitle: 'Balance: ⊜ 123.45'
827
- }] : []), ...(paymentMethod === 'faircoin' ? [{
828
- id: 'faircoin-wallet',
829
- icon: 'qr-code',
830
- iconColor: colors.primary,
831
- title: 'FairCoin Wallet',
832
- subtitle: 'Paid via QR'
833
- }] : [])]
834
- })]
835
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GroupedPillButtons.default, {
836
- buttons: [{
837
- text: 'Back',
838
- onPress: prevStep,
839
- icon: 'arrow-back',
840
- variant: 'transparent'
841
- }, {
842
- text: isPaying ? 'Processing...' : 'Pay Now',
843
- onPress: handlePay,
844
- icon: 'checkmark',
845
- variant: 'primary',
846
- loading: isPaying
847
- }],
848
- colors: colors
849
- })]
850
- });
851
-
852
- // Step 5: Success
853
- const renderSuccessStep = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Animated.View, {
854
- style: [styles.stepContainer, {
855
- opacity: fadeAnim,
856
- transform: [{
857
- translateY: slideAnim
858
- }, {
859
- scale: scaleAnim
860
- }]
861
- }],
862
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
863
- style: styles.section,
864
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
865
- style: styles.sectionTitle,
866
- children: "Payment Complete"
867
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
868
- style: styles.successCard,
869
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
870
- style: styles.successContent,
871
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
872
- name: "checkmark-circle",
873
- size: 64,
874
- color: colors.success || '#4BB543',
875
- style: styles.successIcon
876
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
877
- style: styles.successMainTitle,
878
- children: "Payment Successful!"
879
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
880
- style: styles.successSubtitle,
881
- children: "Thank you for your payment."
882
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
883
- style: {
884
- height: 18
885
- }
886
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
887
- style: styles.successMessage,
888
- children: "Your transaction has been processed successfully."
889
- })]
890
- })
891
- })]
892
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GroupedPillButtons.default, {
893
- buttons: [{
894
- text: 'Done',
895
- onPress: handleDone,
896
- icon: 'checkmark',
897
- variant: 'primary'
898
- }],
899
- colors: colors
900
- })]
901
- });
902
188
  const renderCurrentStep = () => {
903
189
  switch (currentStep) {
904
190
  case 0:
905
- return renderSummaryStep();
191
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_payment.PaymentSummaryStep, {
192
+ paymentItems: paymentItems,
193
+ amount: amount,
194
+ currency: currency,
195
+ description: description,
196
+ colors: colors,
197
+ animations: animations,
198
+ onClose: handleClose,
199
+ onNext: nextStep
200
+ });
906
201
  case 1:
907
- return renderMethodStep();
202
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_payment.PaymentMethodStep, {
203
+ availablePaymentMethods: availablePaymentMethods,
204
+ selectedMethod: paymentMethod,
205
+ onSelectMethod: setPaymentMethod,
206
+ colors: colors,
207
+ animations: animations,
208
+ onBack: prevStep,
209
+ onNext: nextStep
210
+ });
908
211
  case 2:
909
- return renderDetailsStep();
212
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_payment.PaymentDetailsStep, {
213
+ paymentMethod: paymentMethod,
214
+ cardDetails: cardDetails,
215
+ onCardDetailsChange: setCardDetails,
216
+ colors: colors,
217
+ animations: animations,
218
+ faircoinAddress: faircoinAddress,
219
+ isMobile: isMobile,
220
+ qrSize: qrSize,
221
+ onBack: prevStep,
222
+ onNext: nextStep,
223
+ QRCodeComponent: _reactNativeQrcodeSvg.default
224
+ });
910
225
  case 3:
911
- return renderReviewStep();
226
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_payment.PaymentReviewStep, {
227
+ amount: amount,
228
+ currency: currency,
229
+ paymentMethod: paymentMethod,
230
+ cardDetails: cardDetails,
231
+ colors: colors,
232
+ animations: animations,
233
+ isPaying: isPaying,
234
+ onBack: prevStep,
235
+ onPay: handlePay
236
+ });
912
237
  case 4:
913
- return renderSuccessStep();
238
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_payment.PaymentSuccessStep, {
239
+ colors: colors,
240
+ animations: animations,
241
+ onDone: handleDone
242
+ });
914
243
  default:
915
- return renderSummaryStep();
244
+ return null;
916
245
  }
917
246
  };
918
-
919
- // Use centralized theme styles hook for consistency
920
- // primaryColor from hook (#007AFF) is already correct for this screen
921
- const themeStyles = (0, _useThemeStyles.useThemeStyles)(normalizedTheme);
922
247
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
923
248
  style: [styles.container, {
924
249
  backgroundColor: themeStyles.backgroundColor
@@ -930,658 +255,5 @@ const PaymentGatewayScreen = props => {
930
255
  })
931
256
  });
932
257
  };
933
- const createStyles = (colors, theme) => _reactNative.StyleSheet.create({
934
- container: {
935
- flex: 1
936
- },
937
- content: {
938
- flex: 1,
939
- padding: 16
940
- },
941
- stepContainer: {
942
- justifyContent: 'flex-start',
943
- alignItems: 'flex-start',
944
- width: '100%'
945
- },
946
- section: {
947
- marginBottom: 24,
948
- width: '100%'
949
- },
950
- sectionTitle: {
951
- fontSize: 16,
952
- fontWeight: '600',
953
- color: colors.text,
954
- marginBottom: 12,
955
- fontFamily: _styles.fontFamilies.phuduSemiBold
956
- },
957
- stepIndicatorContainer: {
958
- flexDirection: 'row',
959
- justifyContent: 'center',
960
- alignItems: 'center',
961
- marginVertical: 16
962
- },
963
- stepIndicator: {
964
- height: 10,
965
- borderRadius: 5,
966
- marginHorizontal: 4
967
- },
968
- stepIndicatorActive: {
969
- width: 28,
970
- backgroundColor: colors.primary
971
- },
972
- stepIndicatorInactive: {
973
- width: 10,
974
- backgroundColor: colors.border
975
- },
976
- logo: {
977
- width: 40,
978
- height: 20,
979
- alignSelf: 'center',
980
- resizeMode: 'contain'
981
- },
982
- headerTitle: {
983
- fontFamily: _styles.fontFamilies.phuduBold,
984
- fontSize: 22,
985
- fontWeight: _reactNative.Platform.OS === 'web' ? 'bold' : undefined,
986
- color: colors.text,
987
- letterSpacing: -0.5
988
- },
989
- paymentMethodButton: {
990
- flexDirection: 'row',
991
- alignItems: 'center',
992
- borderRadius: 16,
993
- padding: 14,
994
- marginBottom: 10,
995
- width: '90%',
996
- alignSelf: 'center',
997
- borderWidth: 1
998
- },
999
- paymentMethodButtonActive: {
1000
- backgroundColor: colors.primary + '22',
1001
- borderColor: colors.primary,
1002
- borderWidth: 2
1003
- },
1004
- paymentMethodButtonInactive: {
1005
- backgroundColor: 'transparent',
1006
- borderColor: colors.border,
1007
- borderWidth: 1
1008
- },
1009
- paymentMethodLabel: {
1010
- fontFamily: _styles.fontFamilies.phudu,
1011
- fontSize: 18,
1012
- color: colors.text,
1013
- fontWeight: '600'
1014
- },
1015
- paymentMethodDescription: {
1016
- fontFamily: _styles.fontFamilies.phudu,
1017
- fontSize: 15,
1018
- color: colors.secondaryText,
1019
- marginTop: 8,
1020
- minHeight: 36,
1021
- textAlign: 'center'
1022
- },
1023
- errorContainer: {
1024
- flex: 1,
1025
- justifyContent: 'center',
1026
- alignItems: 'center',
1027
- padding: 32
1028
- },
1029
- errorText: {
1030
- fontSize: 18,
1031
- color: 'red',
1032
- marginBottom: 24
1033
- },
1034
- methodListContainer: {
1035
- width: '100%',
1036
- alignItems: 'center'
1037
- },
1038
- methodIcon: {
1039
- marginRight: 12
1040
- },
1041
- methodCheckIcon: {
1042
- marginLeft: 'auto'
1043
- },
1044
- cardRowInfo: {
1045
- flexDirection: 'row',
1046
- alignItems: 'center',
1047
- marginBottom: 16
1048
- },
1049
- cardRowIcon: {
1050
- marginRight: 8
1051
- },
1052
- cardRowText: {
1053
- fontSize: 15,
1054
- color: colors.secondaryText
1055
- },
1056
- cardFieldContainer: {
1057
- marginBottom: 16
1058
- },
1059
- cardFieldRow: {
1060
- flexDirection: 'row',
1061
- gap: 12
1062
- },
1063
- cardFieldHalfLeft: {
1064
- flex: 1,
1065
- marginRight: 6
1066
- },
1067
- cardFieldHalfRight: {
1068
- flex: 1,
1069
- marginLeft: 6
1070
- },
1071
- oxyPayContainer: {
1072
- alignItems: 'center'
1073
- },
1074
- oxyPayIcon: {
1075
- marginBottom: 8
1076
- },
1077
- oxyPayTitle: {
1078
- fontSize: 16,
1079
- marginBottom: 8,
1080
- color: colors.text,
1081
- fontWeight: '600',
1082
- textAlign: 'center'
1083
- },
1084
- oxyPaySubtitle: {
1085
- fontSize: 14,
1086
- color: colors.secondaryText,
1087
- marginBottom: 8,
1088
- textAlign: 'center'
1089
- },
1090
- oxyPayBalanceBox: {
1091
- backgroundColor: colors.primary + '22',
1092
- borderRadius: 12,
1093
- padding: 8,
1094
- marginTop: 8
1095
- },
1096
- oxyPayBalanceText: {
1097
- color: colors.primary,
1098
- fontWeight: '600'
1099
- },
1100
- oxyPayCard: {
1101
- backgroundColor: '#fff',
1102
- borderRadius: 16,
1103
- padding: 24,
1104
- marginBottom: 24,
1105
- alignItems: 'center',
1106
- width: '100%'
1107
- },
1108
- oxyPayContent: {
1109
- alignItems: 'center',
1110
- width: '100%'
1111
- },
1112
- oxyPayMainTitle: {
1113
- fontFamily: _styles.fontFamilies.phuduBold,
1114
- fontWeight: 'bold',
1115
- fontSize: 28,
1116
- color: colors.text,
1117
- marginBottom: 2,
1118
- textAlign: 'center',
1119
- letterSpacing: 0.5
1120
- },
1121
- oxyPayWaiting: {
1122
- fontSize: 14,
1123
- color: colors.secondaryText,
1124
- textAlign: 'center',
1125
- marginBottom: 8
1126
- },
1127
- faircoinContainer: {
1128
- alignItems: 'center',
1129
- marginBottom: 24,
1130
- width: '100%'
1131
- },
1132
- faircoinIcon: {
1133
- marginBottom: 8
1134
- },
1135
- faircoinMainTitle: {
1136
- fontFamily: _styles.fontFamilies.phuduBold,
1137
- fontWeight: 'bold',
1138
- fontSize: 28,
1139
- color: '#1b1f0a',
1140
- marginBottom: 2,
1141
- textAlign: 'center',
1142
- letterSpacing: 0.5
1143
- },
1144
- faircoinSubtitle: {
1145
- color: '#1b1f0a',
1146
- fontWeight: '700',
1147
- fontSize: 17,
1148
- marginBottom: 18,
1149
- textAlign: 'center',
1150
- letterSpacing: 0.2
1151
- },
1152
- faircoinScanText: {
1153
- color: '#1b1f0a',
1154
- fontWeight: '600',
1155
- fontSize: 15,
1156
- marginBottom: 8
1157
- },
1158
- faircoinQRCard: {
1159
- width: 200,
1160
- height: 200,
1161
- backgroundColor: '#fff',
1162
- borderRadius: 32,
1163
- justifyContent: 'center',
1164
- alignItems: 'center',
1165
- marginBottom: 16,
1166
- padding: 16,
1167
- borderWidth: 3,
1168
- borderColor: '#9ffb50',
1169
- shadowColor: '#9ffb50',
1170
- shadowOffset: {
1171
- width: 0,
1172
- height: 4
1173
- },
1174
- shadowOpacity: 0.25,
1175
- shadowRadius: 12,
1176
- elevation: 8,
1177
- position: 'relative'
1178
- },
1179
- faircoinQRBadge: {
1180
- position: 'absolute',
1181
- bottom: 12,
1182
- right: 12,
1183
- backgroundColor: '#fff',
1184
- borderRadius: 16,
1185
- padding: 4,
1186
- shadowColor: '#000',
1187
- shadowOffset: {
1188
- width: 0,
1189
- height: 2
1190
- },
1191
- shadowOpacity: 0.1,
1192
- shadowRadius: 4,
1193
- elevation: 2
1194
- },
1195
- faircoinTitle: {
1196
- fontSize: 16,
1197
- marginBottom: 8,
1198
- color: colors.text,
1199
- fontWeight: '600',
1200
- textAlign: 'center'
1201
- },
1202
- faircoinQRBox: {
1203
- width: 160,
1204
- height: 160,
1205
- backgroundColor: '#eee',
1206
- borderRadius: 16,
1207
- justifyContent: 'center',
1208
- alignItems: 'center',
1209
- marginBottom: 12,
1210
- borderWidth: 2,
1211
- borderColor: colors.primary
1212
- },
1213
- faircoinQRText: {
1214
- color: '#aaa'
1215
- },
1216
- faircoinWaiting: {
1217
- fontSize: 14,
1218
- color: colors.secondaryText,
1219
- textAlign: 'center',
1220
- marginBottom: 8
1221
- },
1222
- faircoinPlaceholder: {
1223
- fontSize: 13,
1224
- color: colors.secondaryText,
1225
- textAlign: 'center'
1226
- },
1227
- faircoinCard: {
1228
- backgroundColor: '#fff',
1229
- borderRadius: 16,
1230
- padding: 24,
1231
- marginBottom: 24,
1232
- alignItems: 'center',
1233
- width: '100%'
1234
- },
1235
- faircoinContent: {
1236
- alignItems: 'center',
1237
- width: '100%'
1238
- },
1239
- successCard: {
1240
- backgroundColor: '#fff',
1241
- borderRadius: 16,
1242
- padding: 24,
1243
- marginBottom: 24,
1244
- alignItems: 'center',
1245
- width: '100%'
1246
- },
1247
- successContent: {
1248
- alignItems: 'center',
1249
- width: '100%'
1250
- },
1251
- successIcon: {
1252
- marginBottom: 8
1253
- },
1254
- successMainTitle: {
1255
- fontFamily: _styles.fontFamilies.phuduBold,
1256
- fontWeight: 'bold',
1257
- fontSize: 28,
1258
- color: colors.success || '#4BB543',
1259
- marginBottom: 2,
1260
- textAlign: 'center',
1261
- letterSpacing: 0.5
1262
- },
1263
- successSubtitle: {
1264
- fontSize: 16,
1265
- color: colors.text,
1266
- textAlign: 'center',
1267
- marginBottom: 8,
1268
- width: '100%'
1269
- },
1270
- successMessage: {
1271
- fontSize: 14,
1272
- color: colors.secondaryText,
1273
- textAlign: 'center',
1274
- marginBottom: 8
1275
- },
1276
- methodCard: {
1277
- flexDirection: 'row',
1278
- alignItems: 'center',
1279
- backgroundColor: '#fff',
1280
- borderRadius: 18,
1281
- paddingVertical: 18,
1282
- paddingHorizontal: 18,
1283
- marginBottom: 14,
1284
- borderWidth: 1.5,
1285
- borderColor: colors.border,
1286
- shadowColor: '#000',
1287
- shadowOffset: {
1288
- width: 0,
1289
- height: 2
1290
- },
1291
- shadowOpacity: 0.06,
1292
- shadowRadius: 6,
1293
- elevation: 2,
1294
- minHeight: 72
1295
- },
1296
- methodCardSelected: {
1297
- backgroundColor: colors.primary + '11',
1298
- borderColor: colors.primary,
1299
- shadowOpacity: 0.13,
1300
- shadowRadius: 10,
1301
- elevation: 4
1302
- },
1303
- methodCardContent: {
1304
- flexDirection: 'row',
1305
- alignItems: 'center',
1306
- flex: 1
1307
- },
1308
- methodCardIcon: {
1309
- marginRight: 18,
1310
- marginLeft: 2
1311
- },
1312
- methodCardTextContainer: {
1313
- flex: 1,
1314
- flexDirection: 'column',
1315
- justifyContent: 'center'
1316
- },
1317
- methodCardDescription: {
1318
- fontSize: 14,
1319
- color: colors.secondaryText,
1320
- marginTop: 2,
1321
- opacity: 0.85
1322
- },
1323
- methodCardCheckIcon: {
1324
- marginLeft: 12
1325
- },
1326
- paymentMethodLabelSelected: {
1327
- color: colors.primary
1328
- },
1329
- circleListContainer: {
1330
- flexDirection: 'row',
1331
- flexWrap: 'nowrap',
1332
- justifyContent: 'center',
1333
- alignItems: 'flex-start',
1334
- paddingHorizontal: 4,
1335
- width: '100%',
1336
- marginBottom: 0
1337
- },
1338
- circleMethod: {
1339
- alignItems: 'center',
1340
- marginHorizontal: 0,
1341
- flex: 1,
1342
- minWidth: 62,
1343
- paddingVertical: 2,
1344
- paddingHorizontal: 2
1345
- },
1346
- circleMethodSelected: {
1347
- // No extra margin, but highlight below
1348
- },
1349
- circleIconWrapper: {
1350
- width: 48,
1351
- // restored padding
1352
- height: 48,
1353
- // restored padding
1354
- borderRadius: 24,
1355
- // half of width/height
1356
- backgroundColor: '#fff',
1357
- borderWidth: 2,
1358
- borderColor: colors.border,
1359
- alignItems: 'center',
1360
- justifyContent: 'center',
1361
- marginBottom: 8,
1362
- // spacing below icon
1363
- shadowColor: '#000',
1364
- shadowOffset: {
1365
- width: 0,
1366
- height: 2
1367
- },
1368
- shadowOpacity: 0.07,
1369
- shadowRadius: 6,
1370
- elevation: 2
1371
- },
1372
- circleLabel: {
1373
- fontFamily: _styles.fontFamilies.phudu,
1374
- fontSize: 16,
1375
- color: colors.text,
1376
- fontWeight: '600',
1377
- textAlign: 'center',
1378
- marginBottom: 4,
1379
- marginTop: 2
1380
- },
1381
- circleLabelSelected: {
1382
- color: colors.primary
1383
- },
1384
- circleDescription: {
1385
- fontSize: 13,
1386
- color: colors.secondaryText,
1387
- textAlign: 'center',
1388
- opacity: 0.85,
1389
- minHeight: 36,
1390
- marginBottom: 2
1391
- },
1392
- headerStepIndicatorContainer: {
1393
- marginVertical: 2,
1394
- flexDirection: 'row',
1395
- justifyContent: 'center',
1396
- alignItems: 'center'
1397
- },
1398
- faircoinButton: {
1399
- flexDirection: 'row',
1400
- alignItems: 'center',
1401
- alignSelf: 'center',
1402
- backgroundColor: colors.primary + '11',
1403
- borderRadius: 16,
1404
- paddingHorizontal: 16,
1405
- paddingVertical: 8,
1406
- marginTop: 6,
1407
- marginBottom: 2
1408
- },
1409
- faircoinButtonText: {
1410
- color: colors.primary,
1411
- fontWeight: '600',
1412
- fontSize: 15
1413
- },
1414
- faircoinAddress: {
1415
- color: colors.secondaryText,
1416
- fontSize: 13,
1417
- textAlign: 'center',
1418
- marginTop: 6,
1419
- marginBottom: 2
1420
- },
1421
- // Summary step styles
1422
- summaryDescriptionContainer: {
1423
- marginBottom: 16
1424
- },
1425
- summaryDescriptionText: {
1426
- color: colors.secondaryText,
1427
- fontSize: 15,
1428
- lineHeight: 20
1429
- },
1430
- summaryItemPrice: {
1431
- color: colors.text,
1432
- fontWeight: '600',
1433
- fontSize: 16
1434
- },
1435
- summaryFallbackContainer: {
1436
- padding: 16,
1437
- backgroundColor: '#fff',
1438
- borderRadius: 12,
1439
- borderWidth: 1,
1440
- borderColor: colors.border
1441
- },
1442
- summaryFallbackText: {
1443
- color: colors.text,
1444
- fontSize: 16,
1445
- textAlign: 'center'
1446
- },
1447
- // Card payment styles
1448
- cardPaymentCard: {
1449
- backgroundColor: '#fff',
1450
- borderRadius: 16,
1451
- padding: 24,
1452
- marginBottom: 24,
1453
- alignItems: 'center',
1454
- width: '100%'
1455
- },
1456
- cardPaymentContent: {
1457
- alignItems: 'center',
1458
- width: '100%'
1459
- },
1460
- cardPaymentIcon: {
1461
- marginBottom: 8
1462
- },
1463
- cardPaymentMainTitle: {
1464
- fontFamily: _styles.fontFamilies.phuduBold,
1465
- fontWeight: 'bold',
1466
- fontSize: 28,
1467
- color: colors.text,
1468
- marginBottom: 2,
1469
- textAlign: 'center',
1470
- letterSpacing: 0.5
1471
- },
1472
- cardPaymentSubtitle: {
1473
- fontSize: 16,
1474
- color: colors.secondaryText,
1475
- textAlign: 'center',
1476
- marginBottom: 24,
1477
- width: '100%'
1478
- },
1479
- cardPaymentFields: {
1480
- width: '100%',
1481
- marginBottom: 16
1482
- },
1483
- cardPaymentWaiting: {
1484
- fontSize: 14,
1485
- color: colors.secondaryText,
1486
- textAlign: 'center',
1487
- marginBottom: 8
1488
- },
1489
- // Summary card styles
1490
- summaryCard: {
1491
- backgroundColor: '#fff',
1492
- borderRadius: 16,
1493
- padding: 24,
1494
- marginBottom: 24,
1495
- alignItems: 'center',
1496
- width: '100%'
1497
- },
1498
- summaryCardContent: {
1499
- alignItems: 'center',
1500
- width: '100%'
1501
- },
1502
- summaryCardIcon: {
1503
- marginBottom: 8
1504
- },
1505
- summaryCardMainTitle: {
1506
- fontFamily: _styles.fontFamilies.phuduBold,
1507
- fontWeight: 'bold',
1508
- fontSize: 28,
1509
- color: colors.text,
1510
- marginBottom: 2,
1511
- textAlign: 'center',
1512
- letterSpacing: 0.5
1513
- },
1514
- summaryCardSubtitle: {
1515
- fontSize: 16,
1516
- color: colors.secondaryText,
1517
- textAlign: 'center',
1518
- marginBottom: 24,
1519
- width: '100%'
1520
- },
1521
- summaryCardItems: {
1522
- width: '100%',
1523
- marginBottom: 16
1524
- },
1525
- summaryCardTotal: {
1526
- fontSize: 18,
1527
- fontWeight: 'bold',
1528
- color: colors.text,
1529
- textAlign: 'center',
1530
- marginBottom: 8
1531
- },
1532
- // Simple amount styles
1533
- summaryCardAmount: {
1534
- alignItems: 'center',
1535
- width: '100%',
1536
- marginBottom: 16
1537
- },
1538
- summaryCardAmountLabel: {
1539
- fontSize: 16,
1540
- color: colors.secondaryText,
1541
- textAlign: 'center',
1542
- marginBottom: 8
1543
- },
1544
- summaryCardAmountValue: {
1545
- fontSize: 32,
1546
- fontWeight: 'bold',
1547
- color: colors.text,
1548
- textAlign: 'center',
1549
- marginBottom: 8,
1550
- fontFamily: _styles.fontFamilies.phuduBold
1551
- },
1552
- summaryCardAmountDescription: {
1553
- fontSize: 14,
1554
- color: colors.secondaryText,
1555
- textAlign: 'center',
1556
- lineHeight: 20
1557
- },
1558
- // Enhanced summary styles
1559
- summaryCardDivider: {
1560
- height: 1,
1561
- backgroundColor: colors.border,
1562
- marginVertical: 16,
1563
- width: '100%'
1564
- },
1565
- summaryCardTotalSection: {
1566
- width: '100%',
1567
- marginBottom: 8
1568
- },
1569
- summaryCardTotalRow: {
1570
- flexDirection: 'row',
1571
- justifyContent: 'space-between',
1572
- alignItems: 'center',
1573
- paddingVertical: 4
1574
- },
1575
- summaryCardTotalLabel: {
1576
- fontSize: 16,
1577
- color: colors.secondaryText,
1578
- fontWeight: '500'
1579
- },
1580
- summaryCardTotalValue: {
1581
- fontSize: 16,
1582
- color: colors.text,
1583
- fontWeight: '600'
1584
- }
1585
- });
1586
258
  var _default = exports.default = PaymentGatewayScreen;
1587
259
  //# sourceMappingURL=PaymentGatewayScreen.js.map