tf-checkout-react-native 1.0.45 → 2.0.0-beta.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 (683) hide show
  1. package/README.md +150 -3340
  2. package/dist/index.d.mts +3810 -0
  3. package/dist/index.d.ts +3810 -0
  4. package/dist/index.js +8348 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/index.mjs +8348 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/package.json +31 -57
  9. package/src/CardInput.tsx +49 -0
  10. package/src/EmbeddedCheckout.tsx +323 -0
  11. package/src/auth/AuthModal.tsx +221 -0
  12. package/src/auth/ForgotPasswordForm.tsx +98 -0
  13. package/src/auth/LoginForm.tsx +99 -0
  14. package/src/auth/PasswordInput.tsx +45 -0
  15. package/src/auth/RegisterForm.tsx +247 -0
  16. package/src/auth/ResetPasswordForm.tsx +112 -0
  17. package/src/auth/index.ts +7 -0
  18. package/src/configure.ts +26 -0
  19. package/src/confirmer.ts +180 -0
  20. package/src/index.tsx +25 -227
  21. package/src/instance.ts +13 -0
  22. package/src/sections/AddOns.tsx +335 -0
  23. package/src/sections/BillingInfo.tsx +770 -0
  24. package/src/sections/Confirmation.tsx +143 -0
  25. package/src/sections/IDVerification.tsx +77 -0
  26. package/src/sections/OrderSummary.tsx +116 -0
  27. package/src/sections/Payment.tsx +417 -0
  28. package/src/sections/Tickets.tsx +680 -0
  29. package/src/sections/billing/BillingAddressFields.tsx +126 -0
  30. package/src/sections/billing/BuyerField.tsx +78 -0
  31. package/src/sections/billing/TicketHoldersCard.tsx +119 -0
  32. package/src/sections/billing/types.ts +10 -0
  33. package/src/sections/index.ts +8 -0
  34. package/src/storage.ts +27 -0
  35. package/src/ui/CheckoutProvider.tsx +140 -0
  36. package/src/ui/CustomFields.tsx +176 -0
  37. package/src/ui/Field.tsx +171 -0
  38. package/src/ui/InstallmentPicker.tsx +158 -0
  39. package/src/ui/PaymentMethods.tsx +177 -0
  40. package/src/ui/QuantitySelect.tsx +103 -0
  41. package/src/ui/Select.tsx +151 -0
  42. package/src/ui/Timer.tsx +69 -0
  43. package/src/ui/TimerBanner.tsx +95 -0
  44. package/src/ui/index.ts +17 -0
  45. package/src/ui/primitives.tsx +191 -0
  46. package/src/ui/theme.ts +89 -0
  47. package/src/useCheckout.ts +35 -0
  48. package/lib/brand-DA2IARBI.png +0 -0
  49. package/lib/ic_check-FLIJQ3BY.png +0 -0
  50. package/lib/ic_clock-BZ4Z7PIP.png +0 -0
  51. package/lib/ic_copy-VWMA4B7X.png +0 -0
  52. package/lib/ic_dropdown-BCS3QDNJ.png +0 -0
  53. package/lib/ic_error-KDEZUPSN.png +0 -0
  54. package/lib/ic_eye-WGXVXVAN.png +0 -0
  55. package/lib/ic_eye_off-XTCE6XSO.png +0 -0
  56. package/lib/ic_more-LZWKYCDU.png +0 -0
  57. package/lib/ic_next-LCNIGEDM.png +0 -0
  58. package/lib/index.js +0 -18176
  59. package/lib/index.js.map +0 -1
  60. package/lib/index.mjs +0 -18263
  61. package/lib/index.mjs.map +0 -1
  62. package/lib/typescript/package.json +0 -1
  63. package/lib/typescript/src/api/ApiClient.d.ts +0 -49
  64. package/lib/typescript/src/api/ApiClient.d.ts.map +0 -1
  65. package/lib/typescript/src/api/Constants.d.ts +0 -11
  66. package/lib/typescript/src/api/Constants.d.ts.map +0 -1
  67. package/lib/typescript/src/api/ErrorHandler.d.ts +0 -12
  68. package/lib/typescript/src/api/ErrorHandler.d.ts.map +0 -1
  69. package/lib/typescript/src/api/api.types.d.ts +0 -8
  70. package/lib/typescript/src/api/api.types.d.ts.map +0 -1
  71. package/lib/typescript/src/api/types.d.ts +0 -518
  72. package/lib/typescript/src/api/types.d.ts.map +0 -1
  73. package/lib/typescript/src/apiv2/index.d.ts +0 -3
  74. package/lib/typescript/src/apiv2/index.d.ts.map +0 -1
  75. package/lib/typescript/src/common/query.types.d.ts +0 -3
  76. package/lib/typescript/src/common/query.types.d.ts.map +0 -1
  77. package/lib/typescript/src/components/bottomSheetModal/BottomSheetModal.d.ts +0 -8
  78. package/lib/typescript/src/components/bottomSheetModal/BottomSheetModal.d.ts.map +0 -1
  79. package/lib/typescript/src/components/bottomSheetModal/BottomSheetModalStyles.d.ts +0 -39
  80. package/lib/typescript/src/components/bottomSheetModal/BottomSheetModalStyles.d.ts.map +0 -1
  81. package/lib/typescript/src/components/bottomSheetModal/BottomSheetModalTypes.d.ts +0 -23
  82. package/lib/typescript/src/components/bottomSheetModal/BottomSheetModalTypes.d.ts.map +0 -1
  83. package/lib/typescript/src/components/button/Button.d.ts +0 -5
  84. package/lib/typescript/src/components/button/Button.d.ts.map +0 -1
  85. package/lib/typescript/src/components/button/styles.d.ts +0 -28
  86. package/lib/typescript/src/components/button/styles.d.ts.map +0 -1
  87. package/lib/typescript/src/components/button/types.d.ts +0 -15
  88. package/lib/typescript/src/components/button/types.d.ts.map +0 -1
  89. package/lib/typescript/src/components/cartTimer/CartTimer.d.ts +0 -5
  90. package/lib/typescript/src/components/cartTimer/CartTimer.d.ts.map +0 -1
  91. package/lib/typescript/src/components/cartTimer/styles.d.ts +0 -47
  92. package/lib/typescript/src/components/cartTimer/styles.d.ts.map +0 -1
  93. package/lib/typescript/src/components/cartTimer/types.d.ts +0 -19
  94. package/lib/typescript/src/components/cartTimer/types.d.ts.map +0 -1
  95. package/lib/typescript/src/components/checkbox/Checkbox.d.ts +0 -4
  96. package/lib/typescript/src/components/checkbox/Checkbox.d.ts.map +0 -1
  97. package/lib/typescript/src/components/checkbox/styles.d.ts +0 -39
  98. package/lib/typescript/src/components/checkbox/styles.d.ts.map +0 -1
  99. package/lib/typescript/src/components/checkbox/types.d.ts +0 -22
  100. package/lib/typescript/src/components/checkbox/types.d.ts.map +0 -1
  101. package/lib/typescript/src/components/datePicker/DatePicker.d.ts +0 -4
  102. package/lib/typescript/src/components/datePicker/DatePicker.d.ts.map +0 -1
  103. package/lib/typescript/src/components/datePicker/styles.d.ts +0 -35
  104. package/lib/typescript/src/components/datePicker/styles.d.ts.map +0 -1
  105. package/lib/typescript/src/components/datePicker/types.d.ts +0 -20
  106. package/lib/typescript/src/components/datePicker/types.d.ts.map +0 -1
  107. package/lib/typescript/src/components/dropdown/Dropdown.d.ts +0 -4
  108. package/lib/typescript/src/components/dropdown/Dropdown.d.ts.map +0 -1
  109. package/lib/typescript/src/components/dropdown/DropdownListItem.d.ts +0 -4
  110. package/lib/typescript/src/components/dropdown/DropdownListItem.d.ts.map +0 -1
  111. package/lib/typescript/src/components/dropdown/styles.d.ts +0 -85
  112. package/lib/typescript/src/components/dropdown/styles.d.ts.map +0 -1
  113. package/lib/typescript/src/components/dropdown/types.d.ts +0 -35
  114. package/lib/typescript/src/components/dropdown/types.d.ts.map +0 -1
  115. package/lib/typescript/src/components/dropdownMaterial/DropdownMaterial.d.ts +0 -4
  116. package/lib/typescript/src/components/dropdownMaterial/DropdownMaterial.d.ts.map +0 -1
  117. package/lib/typescript/src/components/dropdownMaterial/styles.d.ts +0 -79
  118. package/lib/typescript/src/components/dropdownMaterial/styles.d.ts.map +0 -1
  119. package/lib/typescript/src/components/dropdownMaterial/types.d.ts +0 -22
  120. package/lib/typescript/src/components/dropdownMaterial/types.d.ts.map +0 -1
  121. package/lib/typescript/src/components/enterPassword/EnterPassword.d.ts +0 -5
  122. package/lib/typescript/src/components/enterPassword/EnterPassword.d.ts.map +0 -1
  123. package/lib/typescript/src/components/enterPassword/styles.d.ts +0 -21
  124. package/lib/typescript/src/components/enterPassword/styles.d.ts.map +0 -1
  125. package/lib/typescript/src/components/enterPassword/types.d.ts +0 -24
  126. package/lib/typescript/src/components/enterPassword/types.d.ts.map +0 -1
  127. package/lib/typescript/src/components/formField/FormField.d.ts +0 -4
  128. package/lib/typescript/src/components/formField/FormField.d.ts.map +0 -1
  129. package/lib/typescript/src/components/formField/styles.d.ts +0 -35
  130. package/lib/typescript/src/components/formField/styles.d.ts.map +0 -1
  131. package/lib/typescript/src/components/formField/types.d.ts +0 -48
  132. package/lib/typescript/src/components/formField/types.d.ts.map +0 -1
  133. package/lib/typescript/src/components/index.d.ts +0 -21
  134. package/lib/typescript/src/components/index.d.ts.map +0 -1
  135. package/lib/typescript/src/components/input/Input.d.ts +0 -4
  136. package/lib/typescript/src/components/input/Input.d.ts.map +0 -1
  137. package/lib/typescript/src/components/input/styles.d.ts +0 -47
  138. package/lib/typescript/src/components/input/styles.d.ts.map +0 -1
  139. package/lib/typescript/src/components/input/types.d.ts +0 -28
  140. package/lib/typescript/src/components/input/types.d.ts.map +0 -1
  141. package/lib/typescript/src/components/loading/Loading.d.ts +0 -4
  142. package/lib/typescript/src/components/loading/Loading.d.ts.map +0 -1
  143. package/lib/typescript/src/components/loading/styles.d.ts +0 -30
  144. package/lib/typescript/src/components/loading/styles.d.ts.map +0 -1
  145. package/lib/typescript/src/components/loading/types.d.ts +0 -15
  146. package/lib/typescript/src/components/loading/types.d.ts.map +0 -1
  147. package/lib/typescript/src/components/loggedIn/LoggedIn.d.ts +0 -5
  148. package/lib/typescript/src/components/loggedIn/LoggedIn.d.ts.map +0 -1
  149. package/lib/typescript/src/components/loggedIn/styles.d.ts +0 -9
  150. package/lib/typescript/src/components/loggedIn/styles.d.ts.map +0 -1
  151. package/lib/typescript/src/components/loggedIn/types.d.ts +0 -24
  152. package/lib/typescript/src/components/loggedIn/types.d.ts.map +0 -1
  153. package/lib/typescript/src/components/login/Login.d.ts +0 -5
  154. package/lib/typescript/src/components/login/Login.d.ts.map +0 -1
  155. package/lib/typescript/src/components/login/LoginView.d.ts +0 -5
  156. package/lib/typescript/src/components/login/LoginView.d.ts.map +0 -1
  157. package/lib/typescript/src/components/login/components/LoginForm.d.ts +0 -5
  158. package/lib/typescript/src/components/login/components/LoginForm.d.ts.map +0 -1
  159. package/lib/typescript/src/components/login/components/types.d.ts +0 -19
  160. package/lib/typescript/src/components/login/components/types.d.ts.map +0 -1
  161. package/lib/typescript/src/components/login/styles.d.ts +0 -62
  162. package/lib/typescript/src/components/login/styles.d.ts.map +0 -1
  163. package/lib/typescript/src/components/login/types.d.ts +0 -144
  164. package/lib/typescript/src/components/login/types.d.ts.map +0 -1
  165. package/lib/typescript/src/components/phoneInput/PhoneInput.d.ts +0 -5
  166. package/lib/typescript/src/components/phoneInput/PhoneInput.d.ts.map +0 -1
  167. package/lib/typescript/src/components/phoneInput/styles.d.ts +0 -29
  168. package/lib/typescript/src/components/phoneInput/styles.d.ts.map +0 -1
  169. package/lib/typescript/src/components/phoneInput/types.d.ts +0 -31
  170. package/lib/typescript/src/components/phoneInput/types.d.ts.map +0 -1
  171. package/lib/typescript/src/components/promoCode/PromoCode.d.ts +0 -5
  172. package/lib/typescript/src/components/promoCode/PromoCode.d.ts.map +0 -1
  173. package/lib/typescript/src/components/promoCode/styles.d.ts +0 -61
  174. package/lib/typescript/src/components/promoCode/styles.d.ts.map +0 -1
  175. package/lib/typescript/src/components/promoCode/types.d.ts +0 -36
  176. package/lib/typescript/src/components/promoCode/types.d.ts.map +0 -1
  177. package/lib/typescript/src/components/radioButton/RadioButton.d.ts +0 -5
  178. package/lib/typescript/src/components/radioButton/RadioButton.d.ts.map +0 -1
  179. package/lib/typescript/src/components/radioButton/styles.d.ts +0 -25
  180. package/lib/typescript/src/components/radioButton/styles.d.ts.map +0 -1
  181. package/lib/typescript/src/components/radioButton/types.d.ts +0 -16
  182. package/lib/typescript/src/components/radioButton/types.d.ts.map +0 -1
  183. package/lib/typescript/src/components/radioGroup/RadioGroup.d.ts +0 -4
  184. package/lib/typescript/src/components/radioGroup/RadioGroup.d.ts.map +0 -1
  185. package/lib/typescript/src/components/radioGroup/index.d.ts +0 -4
  186. package/lib/typescript/src/components/radioGroup/index.d.ts.map +0 -1
  187. package/lib/typescript/src/components/radioGroup/types.d.ts +0 -24
  188. package/lib/typescript/src/components/radioGroup/types.d.ts.map +0 -1
  189. package/lib/typescript/src/components/restorePassword/RestorePassword.d.ts +0 -5
  190. package/lib/typescript/src/components/restorePassword/RestorePassword.d.ts.map +0 -1
  191. package/lib/typescript/src/components/restorePassword/ResultDialog.d.ts +0 -5
  192. package/lib/typescript/src/components/restorePassword/ResultDialog.d.ts.map +0 -1
  193. package/lib/typescript/src/components/restorePassword/styles.d.ts +0 -34
  194. package/lib/typescript/src/components/restorePassword/styles.d.ts.map +0 -1
  195. package/lib/typescript/src/components/restorePassword/types.d.ts +0 -49
  196. package/lib/typescript/src/components/restorePassword/types.d.ts.map +0 -1
  197. package/lib/typescript/src/components/separator/Separator.d.ts +0 -4
  198. package/lib/typescript/src/components/separator/Separator.d.ts.map +0 -1
  199. package/lib/typescript/src/components/separator/types.d.ts +0 -9
  200. package/lib/typescript/src/components/separator/types.d.ts.map +0 -1
  201. package/lib/typescript/src/components/stripePayment/StripePayment.d.ts +0 -5
  202. package/lib/typescript/src/components/stripePayment/StripePayment.d.ts.map +0 -1
  203. package/lib/typescript/src/components/stripePayment/styles.d.ts +0 -7
  204. package/lib/typescript/src/components/stripePayment/styles.d.ts.map +0 -1
  205. package/lib/typescript/src/components/stripePayment/types.d.ts +0 -14
  206. package/lib/typescript/src/components/stripePayment/types.d.ts.map +0 -1
  207. package/lib/typescript/src/components/waitingList/WaitingList.d.ts +0 -6
  208. package/lib/typescript/src/components/waitingList/WaitingList.d.ts.map +0 -1
  209. package/lib/typescript/src/components/waitingList/WaitingListView.d.ts +0 -5
  210. package/lib/typescript/src/components/waitingList/WaitingListView.d.ts.map +0 -1
  211. package/lib/typescript/src/components/waitingList/styles.d.ts +0 -9
  212. package/lib/typescript/src/components/waitingList/styles.d.ts.map +0 -1
  213. package/lib/typescript/src/components/waitingList/types.d.ts +0 -59
  214. package/lib/typescript/src/components/waitingList/types.d.ts.map +0 -1
  215. package/lib/typescript/src/containers/billingInfo/Billing.d.ts +0 -6
  216. package/lib/typescript/src/containers/billingInfo/Billing.d.ts.map +0 -1
  217. package/lib/typescript/src/containers/billingInfo/styles.d.ts +0 -61
  218. package/lib/typescript/src/containers/billingInfo/styles.d.ts.map +0 -1
  219. package/lib/typescript/src/containers/billingInfo/types.d.ts +0 -160
  220. package/lib/typescript/src/containers/billingInfo/types.d.ts.map +0 -1
  221. package/lib/typescript/src/containers/checkout/Checkout.d.ts +0 -7
  222. package/lib/typescript/src/containers/checkout/Checkout.d.ts.map +0 -1
  223. package/lib/typescript/src/containers/checkout/CheckoutData.d.ts +0 -3
  224. package/lib/typescript/src/containers/checkout/CheckoutData.d.ts.map +0 -1
  225. package/lib/typescript/src/containers/checkout/components/Conditions.d.ts +0 -4
  226. package/lib/typescript/src/containers/checkout/components/Conditions.d.ts.map +0 -1
  227. package/lib/typescript/src/containers/checkout/components/OrderReview.d.ts +0 -4
  228. package/lib/typescript/src/containers/checkout/components/OrderReview.d.ts.map +0 -1
  229. package/lib/typescript/src/containers/checkout/components/styles.d.ts +0 -26
  230. package/lib/typescript/src/containers/checkout/components/styles.d.ts.map +0 -1
  231. package/lib/typescript/src/containers/checkout/styles.d.ts +0 -42
  232. package/lib/typescript/src/containers/checkout/styles.d.ts.map +0 -1
  233. package/lib/typescript/src/containers/checkout/types.d.ts +0 -126
  234. package/lib/typescript/src/containers/checkout/types.d.ts.map +0 -1
  235. package/lib/typescript/src/containers/index.d.ts +0 -9
  236. package/lib/typescript/src/containers/index.d.ts.map +0 -1
  237. package/lib/typescript/src/containers/myOrderDetails/MyOrderDetails.d.ts +0 -6
  238. package/lib/typescript/src/containers/myOrderDetails/MyOrderDetails.d.ts.map +0 -1
  239. package/lib/typescript/src/containers/myOrderDetails/MyOrderDetailsView.d.ts +0 -5
  240. package/lib/typescript/src/containers/myOrderDetails/MyOrderDetailsView.d.ts.map +0 -1
  241. package/lib/typescript/src/containers/myOrderDetails/components/Notification.d.ts +0 -15
  242. package/lib/typescript/src/containers/myOrderDetails/components/Notification.d.ts.map +0 -1
  243. package/lib/typescript/src/containers/myOrderDetails/components/OrderListItem.d.ts +0 -3
  244. package/lib/typescript/src/containers/myOrderDetails/components/OrderListItem.d.ts.map +0 -1
  245. package/lib/typescript/src/containers/myOrderDetails/components/TicketActions/TicketActions.d.ts +0 -5
  246. package/lib/typescript/src/containers/myOrderDetails/components/TicketActions/TicketActions.d.ts.map +0 -1
  247. package/lib/typescript/src/containers/myOrderDetails/components/TicketActions/TicketActionsTypes.d.ts +0 -30
  248. package/lib/typescript/src/containers/myOrderDetails/components/TicketActions/TicketActionsTypes.d.ts.map +0 -1
  249. package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItem.d.ts +0 -8
  250. package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItem.d.ts.map +0 -1
  251. package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItemStyles.d.ts +0 -33
  252. package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItemStyles.d.ts.map +0 -1
  253. package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItemTypes.d.ts +0 -30
  254. package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItemTypes.d.ts.map +0 -1
  255. package/lib/typescript/src/containers/myOrderDetails/components/styles.d.ts +0 -39
  256. package/lib/typescript/src/containers/myOrderDetails/components/styles.d.ts.map +0 -1
  257. package/lib/typescript/src/containers/myOrderDetails/styles.d.ts +0 -55
  258. package/lib/typescript/src/containers/myOrderDetails/styles.d.ts.map +0 -1
  259. package/lib/typescript/src/containers/myOrderDetails/types.d.ts +0 -126
  260. package/lib/typescript/src/containers/myOrderDetails/types.d.ts.map +0 -1
  261. package/lib/typescript/src/containers/myOrders/MyOrders.d.ts +0 -6
  262. package/lib/typescript/src/containers/myOrders/MyOrders.d.ts.map +0 -1
  263. package/lib/typescript/src/containers/myOrders/MyOrdersView.d.ts +0 -5
  264. package/lib/typescript/src/containers/myOrders/MyOrdersView.d.ts.map +0 -1
  265. package/lib/typescript/src/containers/myOrders/components/OrderListItem.d.ts +0 -5
  266. package/lib/typescript/src/containers/myOrders/components/OrderListItem.d.ts.map +0 -1
  267. package/lib/typescript/src/containers/myOrders/components/styles.d.ts +0 -56
  268. package/lib/typescript/src/containers/myOrders/components/styles.d.ts.map +0 -1
  269. package/lib/typescript/src/containers/myOrders/components/types.d.ts +0 -26
  270. package/lib/typescript/src/containers/myOrders/components/types.d.ts.map +0 -1
  271. package/lib/typescript/src/containers/myOrders/styles.d.ts +0 -37
  272. package/lib/typescript/src/containers/myOrders/styles.d.ts.map +0 -1
  273. package/lib/typescript/src/containers/myOrders/types.d.ts +0 -73
  274. package/lib/typescript/src/containers/myOrders/types.d.ts.map +0 -1
  275. package/lib/typescript/src/containers/purchaseConfirmation/PurchaseConfirmation.d.ts +0 -6
  276. package/lib/typescript/src/containers/purchaseConfirmation/PurchaseConfirmation.d.ts.map +0 -1
  277. package/lib/typescript/src/containers/purchaseConfirmation/PurchaseConfirmationView.d.ts +0 -5
  278. package/lib/typescript/src/containers/purchaseConfirmation/PurchaseConfirmationView.d.ts.map +0 -1
  279. package/lib/typescript/src/containers/purchaseConfirmation/styles.d.ts +0 -74
  280. package/lib/typescript/src/containers/purchaseConfirmation/styles.d.ts.map +0 -1
  281. package/lib/typescript/src/containers/purchaseConfirmation/types.d.ts +0 -66
  282. package/lib/typescript/src/containers/purchaseConfirmation/types.d.ts.map +0 -1
  283. package/lib/typescript/src/containers/resaleTickets/ResaleTickets.d.ts +0 -6
  284. package/lib/typescript/src/containers/resaleTickets/ResaleTickets.d.ts.map +0 -1
  285. package/lib/typescript/src/containers/resaleTickets/ResaleTicketsView.d.ts +0 -5
  286. package/lib/typescript/src/containers/resaleTickets/ResaleTicketsView.d.ts.map +0 -1
  287. package/lib/typescript/src/containers/resaleTickets/types.d.ts +0 -129
  288. package/lib/typescript/src/containers/resaleTickets/types.d.ts.map +0 -1
  289. package/lib/typescript/src/containers/resetPassword/ResetPassword.d.ts +0 -5
  290. package/lib/typescript/src/containers/resetPassword/ResetPassword.d.ts.map +0 -1
  291. package/lib/typescript/src/containers/resetPassword/ResetPasswordView.d.ts +0 -5
  292. package/lib/typescript/src/containers/resetPassword/ResetPasswordView.d.ts.map +0 -1
  293. package/lib/typescript/src/containers/resetPassword/styles.d.ts +0 -33
  294. package/lib/typescript/src/containers/resetPassword/styles.d.ts.map +0 -1
  295. package/lib/typescript/src/containers/resetPassword/types.d.ts +0 -48
  296. package/lib/typescript/src/containers/resetPassword/types.d.ts.map +0 -1
  297. package/lib/typescript/src/containers/tickets/Tickets.d.ts +0 -6
  298. package/lib/typescript/src/containers/tickets/Tickets.d.ts.map +0 -1
  299. package/lib/typescript/src/containers/tickets/TicketsView.d.ts +0 -4
  300. package/lib/typescript/src/containers/tickets/TicketsView.d.ts.map +0 -1
  301. package/lib/typescript/src/containers/tickets/components/TicketGroupListHeader.d.ts +0 -5
  302. package/lib/typescript/src/containers/tickets/components/TicketGroupListHeader.d.ts.map +0 -1
  303. package/lib/typescript/src/containers/tickets/components/TicketListItem.d.ts +0 -4
  304. package/lib/typescript/src/containers/tickets/components/TicketListItem.d.ts.map +0 -1
  305. package/lib/typescript/src/containers/tickets/components/styles.d.ts +0 -51
  306. package/lib/typescript/src/containers/tickets/components/styles.d.ts.map +0 -1
  307. package/lib/typescript/src/containers/tickets/components/types.d.ts +0 -40
  308. package/lib/typescript/src/containers/tickets/components/types.d.ts.map +0 -1
  309. package/lib/typescript/src/containers/tickets/styles.d.ts +0 -20
  310. package/lib/typescript/src/containers/tickets/styles.d.ts.map +0 -1
  311. package/lib/typescript/src/containers/tickets/types.d.ts +0 -114
  312. package/lib/typescript/src/containers/tickets/types.d.ts.map +0 -1
  313. package/lib/typescript/src/core/BillingCore/BillingCore.d.ts +0 -13
  314. package/lib/typescript/src/core/BillingCore/BillingCore.d.ts.map +0 -1
  315. package/lib/typescript/src/core/BillingCore/BillingCoreTypes.d.ts +0 -24
  316. package/lib/typescript/src/core/BillingCore/BillingCoreTypes.d.ts.map +0 -1
  317. package/lib/typescript/src/core/CheckoutCore/CheckoutCore.d.ts +0 -15
  318. package/lib/typescript/src/core/CheckoutCore/CheckoutCore.d.ts.map +0 -1
  319. package/lib/typescript/src/core/CheckoutCore/CheckoutCoreTypes.d.ts +0 -17
  320. package/lib/typescript/src/core/CheckoutCore/CheckoutCoreTypes.d.ts.map +0 -1
  321. package/lib/typescript/src/core/CoreProps.d.ts +0 -5
  322. package/lib/typescript/src/core/CoreProps.d.ts.map +0 -1
  323. package/lib/typescript/src/core/LoginCore/LoginCore.d.ts +0 -6
  324. package/lib/typescript/src/core/LoginCore/LoginCore.d.ts.map +0 -1
  325. package/lib/typescript/src/core/LoginCore/LoginCoreHelper.d.ts +0 -3
  326. package/lib/typescript/src/core/LoginCore/LoginCoreHelper.d.ts.map +0 -1
  327. package/lib/typescript/src/core/LoginCore/LoginCoreTypes.d.ts +0 -15
  328. package/lib/typescript/src/core/LoginCore/LoginCoreTypes.d.ts.map +0 -1
  329. package/lib/typescript/src/core/MyOrdersCore/MyOrdersCore.d.ts +0 -6
  330. package/lib/typescript/src/core/MyOrdersCore/MyOrdersCore.d.ts.map +0 -1
  331. package/lib/typescript/src/core/MyOrdersCore/MyOrdersCoreTypes.d.ts +0 -10
  332. package/lib/typescript/src/core/MyOrdersCore/MyOrdersCoreTypes.d.ts.map +0 -1
  333. package/lib/typescript/src/core/OrderDetailsCore/OrderDetailsCore.d.ts +0 -6
  334. package/lib/typescript/src/core/OrderDetailsCore/OrderDetailsCore.d.ts.map +0 -1
  335. package/lib/typescript/src/core/OrderDetailsCore/OrderDetailsCoreTypes.d.ts +0 -9
  336. package/lib/typescript/src/core/OrderDetailsCore/OrderDetailsCoreTypes.d.ts.map +0 -1
  337. package/lib/typescript/src/core/PurchaseConfirmationCore/PurchaseConfirmationCore.d.ts +0 -6
  338. package/lib/typescript/src/core/PurchaseConfirmationCore/PurchaseConfirmationCore.d.ts.map +0 -1
  339. package/lib/typescript/src/core/PurchaseConfirmationCore/PurchaseConfirmationCoreTypes.d.ts +0 -8
  340. package/lib/typescript/src/core/PurchaseConfirmationCore/PurchaseConfirmationCoreTypes.d.ts.map +0 -1
  341. package/lib/typescript/src/core/ResetPasswordCore/ResetPasswordCore.d.ts +0 -6
  342. package/lib/typescript/src/core/ResetPasswordCore/ResetPasswordCore.d.ts.map +0 -1
  343. package/lib/typescript/src/core/ResetPasswordCore/ResetPasswordCoreTypes.d.ts +0 -5
  344. package/lib/typescript/src/core/ResetPasswordCore/ResetPasswordCoreTypes.d.ts.map +0 -1
  345. package/lib/typescript/src/core/Session/SessionCoreTypes.d.ts +0 -9
  346. package/lib/typescript/src/core/Session/SessionCoreTypes.d.ts.map +0 -1
  347. package/lib/typescript/src/core/Session/SessionHandle.d.ts +0 -6
  348. package/lib/typescript/src/core/Session/SessionHandle.d.ts.map +0 -1
  349. package/lib/typescript/src/core/TicketsCore/TicketsCore.d.ts +0 -6
  350. package/lib/typescript/src/core/TicketsCore/TicketsCore.d.ts.map +0 -1
  351. package/lib/typescript/src/core/TicketsCore/TicketsCoreTypes.d.ts +0 -40
  352. package/lib/typescript/src/core/TicketsCore/TicketsCoreTypes.d.ts.map +0 -1
  353. package/lib/typescript/src/core/WaitingListCore/WaitingListCore.d.ts +0 -6
  354. package/lib/typescript/src/core/WaitingListCore/WaitingListCore.d.ts.map +0 -1
  355. package/lib/typescript/src/core/WaitingListCore/WaitingListCoreTypes.d.ts +0 -12
  356. package/lib/typescript/src/core/WaitingListCore/WaitingListCoreTypes.d.ts.map +0 -1
  357. package/lib/typescript/src/core/index.d.ts +0 -21
  358. package/lib/typescript/src/core/index.d.ts.map +0 -1
  359. package/lib/typescript/src/features/auth/api-hooks.d.ts +0 -178
  360. package/lib/typescript/src/features/auth/api-hooks.d.ts.map +0 -1
  361. package/lib/typescript/src/features/auth/types.d.ts +0 -51
  362. package/lib/typescript/src/features/auth/types.d.ts.map +0 -1
  363. package/lib/typescript/src/features/auth/utils.d.ts +0 -3
  364. package/lib/typescript/src/features/auth/utils.d.ts.map +0 -1
  365. package/lib/typescript/src/features/checkout-v2/components/AddonsContainer.d.ts +0 -37
  366. package/lib/typescript/src/features/checkout-v2/components/AddonsContainer.d.ts.map +0 -1
  367. package/lib/typescript/src/features/checkout-v2/components/Conditions.d.ts +0 -30
  368. package/lib/typescript/src/features/checkout-v2/components/Conditions.d.ts.map +0 -1
  369. package/lib/typescript/src/features/checkout-v2/components/OrderReview.d.ts +0 -25
  370. package/lib/typescript/src/features/checkout-v2/components/OrderReview.d.ts.map +0 -1
  371. package/lib/typescript/src/features/checkout-v2/components/TicketHoldersSection.d.ts +0 -14
  372. package/lib/typescript/src/features/checkout-v2/components/TicketHoldersSection.d.ts.map +0 -1
  373. package/lib/typescript/src/features/checkout-v2/form/config.d.ts +0 -61
  374. package/lib/typescript/src/features/checkout-v2/form/config.d.ts.map +0 -1
  375. package/lib/typescript/src/features/checkout-v2/form/index.d.ts +0 -22
  376. package/lib/typescript/src/features/checkout-v2/form/index.d.ts.map +0 -1
  377. package/lib/typescript/src/features/checkout-v2/form/styles.d.ts +0 -4501
  378. package/lib/typescript/src/features/checkout-v2/form/styles.d.ts.map +0 -1
  379. package/lib/typescript/src/features/checkout-v2/form/texts.d.ts +0 -4
  380. package/lib/typescript/src/features/checkout-v2/form/texts.d.ts.map +0 -1
  381. package/lib/typescript/src/features/checkout-v2/form/types.d.ts +0 -191
  382. package/lib/typescript/src/features/checkout-v2/form/types.d.ts.map +0 -1
  383. package/lib/typescript/src/features/checkout-v2/hooks/api-hooks.d.ts +0 -227
  384. package/lib/typescript/src/features/checkout-v2/hooks/api-hooks.d.ts.map +0 -1
  385. package/lib/typescript/src/features/checkout-v2/hooks/use-checkout.d.ts +0 -37
  386. package/lib/typescript/src/features/checkout-v2/hooks/use-checkout.d.ts.map +0 -1
  387. package/lib/typescript/src/features/checkout-v2/index.d.ts +0 -42
  388. package/lib/typescript/src/features/checkout-v2/index.d.ts.map +0 -1
  389. package/lib/typescript/src/features/checkout-v2/types.d.ts +0 -433
  390. package/lib/typescript/src/features/checkout-v2/types.d.ts.map +0 -1
  391. package/lib/typescript/src/features/checkout-v2/utils.d.ts +0 -12
  392. package/lib/typescript/src/features/checkout-v2/utils.d.ts.map +0 -1
  393. package/lib/typescript/src/features/event/api-hooks.d.ts +0 -171
  394. package/lib/typescript/src/features/event/api-hooks.d.ts.map +0 -1
  395. package/lib/typescript/src/features/event/types.d.ts +0 -58
  396. package/lib/typescript/src/features/event/types.d.ts.map +0 -1
  397. package/lib/typescript/src/features/form/index.d.ts +0 -24
  398. package/lib/typescript/src/features/form/index.d.ts.map +0 -1
  399. package/lib/typescript/src/features/form/styles.d.ts +0 -35
  400. package/lib/typescript/src/features/form/styles.d.ts.map +0 -1
  401. package/lib/typescript/src/features/form/types.d.ts +0 -33
  402. package/lib/typescript/src/features/form/types.d.ts.map +0 -1
  403. package/lib/typescript/src/features/geo/api-hooks.d.ts +0 -12
  404. package/lib/typescript/src/features/geo/api-hooks.d.ts.map +0 -1
  405. package/lib/typescript/src/features/geo/types.d.ts +0 -13
  406. package/lib/typescript/src/features/geo/types.d.ts.map +0 -1
  407. package/lib/typescript/src/helpers/Config.d.ts +0 -24
  408. package/lib/typescript/src/helpers/Config.d.ts.map +0 -1
  409. package/lib/typescript/src/helpers/CountryCodes.d.ts +0 -16
  410. package/lib/typescript/src/helpers/CountryCodes.d.ts.map +0 -1
  411. package/lib/typescript/src/helpers/Debounced.d.ts +0 -2
  412. package/lib/typescript/src/helpers/Debounced.d.ts.map +0 -1
  413. package/lib/typescript/src/helpers/Domains.d.ts +0 -3
  414. package/lib/typescript/src/helpers/Domains.d.ts.map +0 -1
  415. package/lib/typescript/src/helpers/LocalStorage.d.ts +0 -27
  416. package/lib/typescript/src/helpers/LocalStorage.d.ts.map +0 -1
  417. package/lib/typescript/src/helpers/RefreshAccessToken.d.ts +0 -3
  418. package/lib/typescript/src/helpers/RefreshAccessToken.d.ts.map +0 -1
  419. package/lib/typescript/src/helpers/StringsHelper.d.ts +0 -3
  420. package/lib/typescript/src/helpers/StringsHelper.d.ts.map +0 -1
  421. package/lib/typescript/src/helpers/Validators.d.ts +0 -16
  422. package/lib/typescript/src/helpers/Validators.d.ts.map +0 -1
  423. package/lib/typescript/src/index.d.ts +0 -49
  424. package/lib/typescript/src/index.d.ts.map +0 -1
  425. package/lib/typescript/src/res/colors.d.ts +0 -16
  426. package/lib/typescript/src/res/colors.d.ts.map +0 -1
  427. package/lib/typescript/src/res/icons.d.ts +0 -13
  428. package/lib/typescript/src/res/icons.d.ts.map +0 -1
  429. package/lib/typescript/src/res/images.d.ts +0 -5
  430. package/lib/typescript/src/res/images.d.ts.map +0 -1
  431. package/lib/typescript/src/res/index.d.ts +0 -32
  432. package/lib/typescript/src/res/index.d.ts.map +0 -1
  433. package/lib/typescript/src/types/IAccountTickets.d.ts +0 -71
  434. package/lib/typescript/src/types/IAccountTickets.d.ts.map +0 -1
  435. package/lib/typescript/src/types/ICountry.d.ts +0 -2
  436. package/lib/typescript/src/types/ICountry.d.ts.map +0 -1
  437. package/lib/typescript/src/types/IError.d.ts +0 -6
  438. package/lib/typescript/src/types/IError.d.ts.map +0 -1
  439. package/lib/typescript/src/types/IEvent.d.ts +0 -87
  440. package/lib/typescript/src/types/IEvent.d.ts.map +0 -1
  441. package/lib/typescript/src/types/ITicket.d.ts +0 -71
  442. package/lib/typescript/src/types/ITicket.d.ts.map +0 -1
  443. package/lib/typescript/src/types/IUserProfile.d.ts +0 -30
  444. package/lib/typescript/src/types/IUserProfile.d.ts.map +0 -1
  445. package/lib/typescript/src/types/index.d.ts +0 -6
  446. package/lib/typescript/src/types/index.d.ts.map +0 -1
  447. package/lib/typescript/src/utils/Logger.d.ts +0 -21
  448. package/lib/typescript/src/utils/Logger.d.ts.map +0 -1
  449. package/lib/typescript/src/utils/handlers.d.ts +0 -9
  450. package/lib/typescript/src/utils/handlers.d.ts.map +0 -1
  451. package/lib/typescript/src/utils/storageAdapter.d.ts +0 -14
  452. package/lib/typescript/src/utils/storageAdapter.d.ts.map +0 -1
  453. package/lib/typescript/src/utils/styleUtils.d.ts +0 -18
  454. package/lib/typescript/src/utils/styleUtils.d.ts.map +0 -1
  455. package/src/api/ApiClient.ts +0 -1539
  456. package/src/api/Constants.ts +0 -10
  457. package/src/api/ErrorHandler.ts +0 -36
  458. package/src/api/api.types.ts +0 -8
  459. package/src/api/types.ts +0 -593
  460. package/src/apiv2/index.ts +0 -142
  461. package/src/assets/icons/ic_check.png +0 -0
  462. package/src/assets/icons/ic_clock.png +0 -0
  463. package/src/assets/icons/ic_copy.png +0 -0
  464. package/src/assets/icons/ic_dropdown.png +0 -0
  465. package/src/assets/icons/ic_error.png +0 -0
  466. package/src/assets/icons/ic_eye.png +0 -0
  467. package/src/assets/icons/ic_eye_off.png +0 -0
  468. package/src/assets/icons/ic_more.png +0 -0
  469. package/src/assets/icons/ic_next.png +0 -0
  470. package/src/assets/images/brand.png +0 -0
  471. package/src/common/query.types.ts +0 -6
  472. package/src/components/bottomSheetModal/BottomSheetModal.tsx +0 -95
  473. package/src/components/bottomSheetModal/BottomSheetModalStyles.ts +0 -43
  474. package/src/components/bottomSheetModal/BottomSheetModalTypes.ts +0 -26
  475. package/src/components/button/Button.tsx +0 -53
  476. package/src/components/button/styles.tsx +0 -30
  477. package/src/components/button/types.ts +0 -16
  478. package/src/components/cartTimer/CartTimer.tsx +0 -68
  479. package/src/components/cartTimer/styles.ts +0 -44
  480. package/src/components/cartTimer/types.ts +0 -22
  481. package/src/components/checkbox/Checkbox.tsx +0 -53
  482. package/src/components/checkbox/styles.ts +0 -41
  483. package/src/components/checkbox/types.ts +0 -23
  484. package/src/components/datePicker/DatePicker.tsx +0 -81
  485. package/src/components/datePicker/styles.ts +0 -39
  486. package/src/components/datePicker/types.ts +0 -21
  487. package/src/components/dropdown/Dropdown.tsx +0 -111
  488. package/src/components/dropdown/DropdownListItem.tsx +0 -36
  489. package/src/components/dropdown/styles.ts +0 -97
  490. package/src/components/dropdown/types.ts +0 -38
  491. package/src/components/dropdownMaterial/DropdownMaterial.tsx +0 -129
  492. package/src/components/dropdownMaterial/styles.ts +0 -91
  493. package/src/components/dropdownMaterial/types.ts +0 -24
  494. package/src/components/enterPassword/EnterPassword.tsx +0 -50
  495. package/src/components/enterPassword/styles.ts +0 -23
  496. package/src/components/enterPassword/types.ts +0 -27
  497. package/src/components/formField/FormField.tsx +0 -131
  498. package/src/components/formField/styles.ts +0 -37
  499. package/src/components/formField/types.ts +0 -60
  500. package/src/components/index.ts +0 -20
  501. package/src/components/input/Input.tsx +0 -77
  502. package/src/components/input/styles.ts +0 -53
  503. package/src/components/input/types.ts +0 -38
  504. package/src/components/loading/Loading.tsx +0 -30
  505. package/src/components/loading/styles.ts +0 -32
  506. package/src/components/loading/types.ts +0 -16
  507. package/src/components/loggedIn/LoggedIn.tsx +0 -60
  508. package/src/components/loggedIn/styles.ts +0 -9
  509. package/src/components/loggedIn/types.ts +0 -27
  510. package/src/components/login/Login.tsx +0 -161
  511. package/src/components/login/LoginView.tsx +0 -259
  512. package/src/components/login/components/LoginForm.tsx +0 -92
  513. package/src/components/login/components/types.ts +0 -22
  514. package/src/components/login/styles.ts +0 -63
  515. package/src/components/login/types.ts +0 -189
  516. package/src/components/phoneInput/PhoneInput.tsx +0 -72
  517. package/src/components/phoneInput/styles.ts +0 -31
  518. package/src/components/phoneInput/types.ts +0 -35
  519. package/src/components/promoCode/PromoCode.tsx +0 -111
  520. package/src/components/promoCode/styles.ts +0 -63
  521. package/src/components/promoCode/types.ts +0 -43
  522. package/src/components/radioButton/RadioButton.tsx +0 -26
  523. package/src/components/radioButton/styles.ts +0 -32
  524. package/src/components/radioButton/types.ts +0 -17
  525. package/src/components/radioGroup/RadioGroup.tsx +0 -86
  526. package/src/components/radioGroup/index.ts +0 -4
  527. package/src/components/radioGroup/types.ts +0 -26
  528. package/src/components/restorePassword/RestorePassword.tsx +0 -63
  529. package/src/components/restorePassword/ResultDialog.tsx +0 -26
  530. package/src/components/restorePassword/styles.ts +0 -38
  531. package/src/components/restorePassword/types.ts +0 -61
  532. package/src/components/separator/Separator.tsx +0 -26
  533. package/src/components/separator/types.ts +0 -9
  534. package/src/components/stripePayment/StripePayment.tsx +0 -51
  535. package/src/components/stripePayment/styles.ts +0 -7
  536. package/src/components/stripePayment/types.ts +0 -22
  537. package/src/components/waitingList/WaitingList.tsx +0 -147
  538. package/src/components/waitingList/WaitingListView.tsx +0 -94
  539. package/src/components/waitingList/styles.ts +0 -9
  540. package/src/components/waitingList/types.ts +0 -68
  541. package/src/containers/billingInfo/Billing.tsx +0 -1902
  542. package/src/containers/billingInfo/styles.ts +0 -64
  543. package/src/containers/billingInfo/types.ts +0 -217
  544. package/src/containers/checkout/Checkout.tsx +0 -519
  545. package/src/containers/checkout/CheckoutData.ts +0 -29
  546. package/src/containers/checkout/components/Conditions.tsx +0 -22
  547. package/src/containers/checkout/components/OrderReview.tsx +0 -31
  548. package/src/containers/checkout/components/styles.ts +0 -28
  549. package/src/containers/checkout/styles.ts +0 -44
  550. package/src/containers/checkout/types.ts +0 -148
  551. package/src/containers/index.ts +0 -8
  552. package/src/containers/myOrderDetails/MyOrderDetails.tsx +0 -318
  553. package/src/containers/myOrderDetails/MyOrderDetailsView.tsx +0 -269
  554. package/src/containers/myOrderDetails/components/Notification.tsx +0 -40
  555. package/src/containers/myOrderDetails/components/OrderListItem.tsx +0 -12
  556. package/src/containers/myOrderDetails/components/TicketActions/TicketActions.tsx +0 -68
  557. package/src/containers/myOrderDetails/components/TicketActions/TicketActionsTypes.ts +0 -41
  558. package/src/containers/myOrderDetails/components/TicketListItem/TicketListItem.tsx +0 -63
  559. package/src/containers/myOrderDetails/components/TicketListItem/TicketListItemStyles.ts +0 -33
  560. package/src/containers/myOrderDetails/components/TicketListItem/TicketListItemTypes.ts +0 -39
  561. package/src/containers/myOrderDetails/components/styles.ts +0 -42
  562. package/src/containers/myOrderDetails/styles.ts +0 -57
  563. package/src/containers/myOrderDetails/types.ts +0 -173
  564. package/src/containers/myOrders/MyOrders.tsx +0 -340
  565. package/src/containers/myOrders/MyOrdersView.tsx +0 -182
  566. package/src/containers/myOrders/components/OrderListItem.tsx +0 -50
  567. package/src/containers/myOrders/components/styles.ts +0 -55
  568. package/src/containers/myOrders/components/types.ts +0 -28
  569. package/src/containers/myOrders/styles.ts +0 -42
  570. package/src/containers/myOrders/types.ts +0 -84
  571. package/src/containers/purchaseConfirmation/PurchaseConfirmation.tsx +0 -145
  572. package/src/containers/purchaseConfirmation/PurchaseConfirmationView.tsx +0 -82
  573. package/src/containers/purchaseConfirmation/styles.ts +0 -79
  574. package/src/containers/purchaseConfirmation/types.ts +0 -77
  575. package/src/containers/resaleTickets/ResaleTickets.tsx +0 -234
  576. package/src/containers/resaleTickets/ResaleTicketsView.tsx +0 -314
  577. package/src/containers/resaleTickets/types.ts +0 -154
  578. package/src/containers/resetPassword/ResetPassword.tsx +0 -110
  579. package/src/containers/resetPassword/ResetPasswordView.tsx +0 -81
  580. package/src/containers/resetPassword/styles.ts +0 -35
  581. package/src/containers/resetPassword/types.ts +0 -56
  582. package/src/containers/tickets/Tickets.tsx +0 -525
  583. package/src/containers/tickets/TicketsView.tsx +0 -164
  584. package/src/containers/tickets/components/TicketGroupListHeader.tsx +0 -12
  585. package/src/containers/tickets/components/TicketListItem.tsx +0 -124
  586. package/src/containers/tickets/components/styles.ts +0 -54
  587. package/src/containers/tickets/components/types.ts +0 -47
  588. package/src/containers/tickets/styles.ts +0 -22
  589. package/src/containers/tickets/types.ts +0 -158
  590. package/src/core/BillingCore/BillingCore.tsx +0 -129
  591. package/src/core/BillingCore/BillingCoreTypes.ts +0 -34
  592. package/src/core/BillingCore/README.md +0 -22
  593. package/src/core/CheckoutCore/CheckoutCore.tsx +0 -113
  594. package/src/core/CheckoutCore/CheckoutCoreTypes.ts +0 -23
  595. package/src/core/CheckoutCore/README.md +0 -20
  596. package/src/core/CoreProps.ts +0 -5
  597. package/src/core/LoginCore/LoginCore.tsx +0 -140
  598. package/src/core/LoginCore/LoginCoreHelper.ts +0 -22
  599. package/src/core/LoginCore/LoginCoreTypes.ts +0 -21
  600. package/src/core/MIGRATION.md +0 -148
  601. package/src/core/MyOrdersCore/MyOrdersCore.tsx +0 -44
  602. package/src/core/MyOrdersCore/MyOrdersCoreTypes.ts +0 -15
  603. package/src/core/OrderDetailsCore/OrderDetailsCore.tsx +0 -36
  604. package/src/core/OrderDetailsCore/OrderDetailsCoreTypes.ts +0 -10
  605. package/src/core/PurchaseConfirmationCore/PurchaseConfirmationCore.tsx +0 -37
  606. package/src/core/PurchaseConfirmationCore/PurchaseConfirmationCoreTypes.ts +0 -10
  607. package/src/core/ResetPasswordCore/ResetPasswordCore.tsx +0 -21
  608. package/src/core/ResetPasswordCore/ResetPasswordCoreTypes.ts +0 -5
  609. package/src/core/Session/SessionCoreTypes.ts +0 -10
  610. package/src/core/Session/SessionHandle.tsx +0 -23
  611. package/src/core/TicketsCore/TicketsCore.tsx +0 -216
  612. package/src/core/TicketsCore/TicketsCoreTypes.ts +0 -52
  613. package/src/core/WaitingListCore/WaitingListCore.tsx +0 -35
  614. package/src/core/WaitingListCore/WaitingListCoreTypes.ts +0 -16
  615. package/src/core/index.ts +0 -20
  616. package/src/features/auth/api-hooks.ts +0 -61
  617. package/src/features/auth/types.ts +0 -54
  618. package/src/features/auth/utils.ts +0 -27
  619. package/src/features/checkout-v2/components/AddonsContainer.tsx +0 -159
  620. package/src/features/checkout-v2/components/Conditions.tsx +0 -144
  621. package/src/features/checkout-v2/components/OrderReview.tsx +0 -96
  622. package/src/features/checkout-v2/components/TicketHoldersSection.tsx +0 -131
  623. package/src/features/checkout-v2/form/config.tsx +0 -194
  624. package/src/features/checkout-v2/form/index.tsx +0 -830
  625. package/src/features/checkout-v2/form/styles.ts +0 -241
  626. package/src/features/checkout-v2/form/texts.ts +0 -133
  627. package/src/features/checkout-v2/form/types.ts +0 -231
  628. package/src/features/checkout-v2/hooks/api-hooks.ts +0 -332
  629. package/src/features/checkout-v2/hooks/use-checkout.ts +0 -927
  630. package/src/features/checkout-v2/index.tsx +0 -289
  631. package/src/features/checkout-v2/types.ts +0 -475
  632. package/src/features/checkout-v2/utils.ts +0 -156
  633. package/src/features/event/api-hooks.ts +0 -28
  634. package/src/features/event/types.ts +0 -69
  635. package/src/features/form/index.tsx +0 -185
  636. package/src/features/form/styles.ts +0 -37
  637. package/src/features/form/types.ts +0 -38
  638. package/src/features/geo/api-hooks.ts +0 -43
  639. package/src/features/geo/types.ts +0 -15
  640. package/src/helpers/Config.ts +0 -81
  641. package/src/helpers/CountryCodes.ts +0 -3382
  642. package/src/helpers/Debounced.ts +0 -27
  643. package/src/helpers/Domains.ts +0 -32
  644. package/src/helpers/LocalStorage.tsx +0 -152
  645. package/src/helpers/RefreshAccessToken.ts +0 -25
  646. package/src/helpers/StringsHelper.ts +0 -5
  647. package/src/helpers/Validators.ts +0 -108
  648. package/src/packages/rn-material-ui-textfield/README.md +0 -149
  649. package/src/packages/rn-material-ui-textfield/components/affix/index.js +0 -61
  650. package/src/packages/rn-material-ui-textfield/components/affix/styles.js +0 -8
  651. package/src/packages/rn-material-ui-textfield/components/counter/index.js +0 -36
  652. package/src/packages/rn-material-ui-textfield/components/counter/styles.js +0 -12
  653. package/src/packages/rn-material-ui-textfield/components/field/index.js +0 -700
  654. package/src/packages/rn-material-ui-textfield/components/field/styles.js +0 -42
  655. package/src/packages/rn-material-ui-textfield/components/field-filled/index.js +0 -21
  656. package/src/packages/rn-material-ui-textfield/components/field-filled/styles.js +0 -10
  657. package/src/packages/rn-material-ui-textfield/components/field-outlined/index.js +0 -59
  658. package/src/packages/rn-material-ui-textfield/components/helper/index.js +0 -78
  659. package/src/packages/rn-material-ui-textfield/components/helper/styles.js +0 -12
  660. package/src/packages/rn-material-ui-textfield/components/label/index.js +0 -123
  661. package/src/packages/rn-material-ui-textfield/components/label/styles.js +0 -16
  662. package/src/packages/rn-material-ui-textfield/components/line/index.js +0 -117
  663. package/src/packages/rn-material-ui-textfield/components/line/styles.js +0 -18
  664. package/src/packages/rn-material-ui-textfield/components/outline/index.js +0 -139
  665. package/src/packages/rn-material-ui-textfield/components/outline/styles.js +0 -83
  666. package/src/packages/rn-material-ui-textfield/index.d.ts +0 -53
  667. package/src/packages/rn-material-ui-textfield/index.js +0 -5
  668. package/src/packages/rn-material-ui-textfield/license.txt +0 -28
  669. package/src/res/colors.ts +0 -16
  670. package/src/res/icons.ts +0 -11
  671. package/src/res/images.ts +0 -3
  672. package/src/res/index.ts +0 -11
  673. package/src/types/IAccountTickets.ts +0 -75
  674. package/src/types/ICountry.ts +0 -2
  675. package/src/types/IError.ts +0 -5
  676. package/src/types/IEvent.ts +0 -87
  677. package/src/types/ITicket.ts +0 -75
  678. package/src/types/IUserProfile.ts +0 -30
  679. package/src/types/index.ts +0 -5
  680. package/src/utils/Logger.ts +0 -75
  681. package/src/utils/handlers.ts +0 -49
  682. package/src/utils/storageAdapter.ts +0 -44
  683. package/src/utils/styleUtils.ts +0 -76
@@ -1,1902 +0,0 @@
1
- import _every from 'lodash/every'
2
- import _find from 'lodash/find'
3
- import _forEach from 'lodash/forEach'
4
- import _map from 'lodash/map'
5
- import React, {
6
- forwardRef,
7
- useCallback,
8
- useEffect,
9
- useImperativeHandle,
10
- useMemo,
11
- useRef,
12
- useState,
13
- } from 'react'
14
- import { ActivityIndicator, Alert, Image, Linking, Text, View } from 'react-native'
15
- import DeviceCountry, { TYPE_ANY } from 'react-native-device-country'
16
- import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view'
17
-
18
- import Constants from '../../api/Constants'
19
- import {
20
- ICheckoutBody,
21
- ICheckoutTicketHolder,
22
- IFetchAccessTokenResponse,
23
- IRegisterNewUserBody,
24
- } from '../../api/types'
25
- import {
26
- Button,
27
- CartTimer,
28
- Checkbox,
29
- DatePicker,
30
- DropdownMaterial,
31
- Input,
32
- Loading,
33
- Login,
34
- PhoneInput,
35
- } from '../../components'
36
- import { IDropdownItem } from '../../components/dropdown/types'
37
- import { ILoginSuccessData } from '../../components/login/types'
38
- import { IOnChangePhoneNumberPayload } from '../../components/phoneInput/types'
39
- import { BillingCore, BillingCoreHandle, SessionHandle } from '../../core'
40
- import { SessionHandleType } from '../../core/Session/SessionCoreTypes'
41
- import { Config } from '../../helpers/Config'
42
- import { getCountryDialCode } from '../../helpers/CountryCodes'
43
- import { useDebounced } from '../../helpers/Debounced'
44
- import { getData, LocalStorageKeys } from '../../helpers/LocalStorage'
45
- import { emptyPhone } from '../../helpers/StringsHelper'
46
- import {
47
- validateAge,
48
- validateDropDownEmpty,
49
- validateEmail,
50
- validateEmpty,
51
- validatePasswords,
52
- validatePhoneNumber,
53
- } from '../../helpers/Validators'
54
- import R from '../../res'
55
- import { IError, IUserProfile, IUserProfilePublic } from '../../types'
56
- import s from './styles'
57
- import {
58
- IBillingFormFieldsData,
59
- IBillingProps,
60
- ITicketHolderField,
61
- SkippingStatusType,
62
- } from './types'
63
-
64
- /*
65
- Fields to hide when ticket is free
66
- - Billing Street Address
67
- - City
68
- - State/County
69
- - Post Code/Zip
70
- - Country
71
- */
72
-
73
- const Billing = forwardRef<SessionHandleType, IBillingProps>(
74
- (
75
- {
76
- styles,
77
- texts,
78
- cartProps: {
79
- isAgeRequired,
80
- isNameRequired,
81
- isPhoneRequired,
82
- minimumAge,
83
- isBillingRequired,
84
- isTicketFree,
85
- isPhoneHidden,
86
- },
87
- loginBrandImages,
88
- skipBillingConfig,
89
- areAlertsEnabled = true,
90
- areLoadingIndicatorsEnabled = true,
91
- onLoadingChange,
92
- onLoginError,
93
- onLoginSuccess,
94
- onRegisterError,
95
- onRegisterSuccess,
96
- onCheckoutSuccess,
97
- onCheckoutError,
98
- onFetchUserProfileSuccess,
99
- onFetchUserProfileError,
100
- onFetchCartError,
101
- onFetchCartSuccess,
102
- onFetchCountriesError,
103
- onFetchCountriesSuccess,
104
- onFetchStatesError,
105
- onFetchStatesSuccess,
106
- onSkippingStatusChange,
107
- onLogoutSuccess,
108
- onLogoutError,
109
- onCartExpired,
110
- shouldCartTimerNotMinimizeOnTap,
111
- config = {
112
- isCheckoutAlwaysButtonEnabled: false,
113
- shouldHideTicketHolderSectionOnSingleTicket: false,
114
- },
115
- },
116
- ref
117
- ) => {
118
- //#region State
119
- const [isLoading, setIsLoading] = useState<boolean>(false)
120
- const [isSubmittingData, setIsSubmittingData] = useState<boolean>(false)
121
- const [loggedUserFirstName, setLoggedUserFirstName] = useState<string>('')
122
- const [loginMessage, setLoginMessage] = useState('')
123
- const [firstName, setFirstName] = useState('')
124
- const [lastName, setLastName] = useState('')
125
- const [email, setEmail] = useState('')
126
- const [emailConfirmation, setEmailConfirmation] = useState('')
127
- const [password, setPassword] = useState('')
128
- const [passwordConfirmation, setPasswordConfirmation] = useState('')
129
- const [isSubToTicketFairy, setIsSubToTicketFairy] = useState(false)
130
- const [isSubToBrand, setIsSubToBrand] = useState(false)
131
- const [phone, setPhone] = useState('')
132
- const [street, setStreet] = useState('')
133
- const [city, setCity] = useState('')
134
- const [countryId, setCountryId] = useState('')
135
- const [stateId, setStateId] = useState('')
136
- const [postalCode, setPostalCode] = useState('')
137
- const [dateOfBirth, setDateOfBirth] = useState<Date | undefined>(undefined)
138
- const [selectedCountry, setSelectedCountry] = useState<IDropdownItem | undefined>(
139
- undefined
140
- )
141
- const [selectedState, setSelectedState] = useState<IDropdownItem | undefined>(
142
- undefined
143
- )
144
-
145
- const [ticketHoldersData, setTicketHoldersData] = useState<ITicketHolderField[]>([])
146
-
147
- const [numberOfTicketHolders, setNumberOfTicketHolders] = useState<
148
- number | undefined
149
- >(0)
150
-
151
- const [states, setStates] = useState<IDropdownItem[]>([])
152
- const [countries, setCountries] = useState<IDropdownItem[]>([])
153
-
154
- const [isLoginDialogVisible, setIsLoginDialogVisible] = useState(false)
155
- const [skippingStatus, setSkippingStatus] = useState<SkippingStatusType>(undefined)
156
- const [isTtfCheckboxHidden, setIsTtfCheckboxHidden] = useState(false)
157
- //#endregion State
158
-
159
- //#region Labels
160
- const holderLabels = useMemo(() => {
161
- if (
162
- numberOfTicketHolders === 1 &&
163
- config.shouldHideTicketHolderSectionOnSingleTicket
164
- ) {
165
- return null
166
- }
167
-
168
- const optional = isNameRequired ? '' : texts?.form?.optional || '(optional)'
169
- return {
170
- firstName: texts?.form?.holderFirstName
171
- ? `${texts.form.holderFirstName} ${optional}`
172
- : `First Name ${optional}`,
173
- lastName: texts?.form?.holderLastName
174
- ? `${texts.form.holderLastName} ${optional}`
175
- : `Last Name ${optional}`,
176
- email: texts?.form?.holderEmail
177
- ? `${texts.form.holderEmail} ${texts?.form?.optional || '(optional)'}`
178
- : `Email ${optional}`,
179
- phone: texts?.form?.holderPhone
180
- ? `${texts.form.holderPhone} ${texts?.form?.optional || '(optional)'}`
181
- : `Phone ${optional}`,
182
- }
183
- }, [isNameRequired, texts, numberOfTicketHolders])
184
-
185
- const brandCheckBoxText =
186
- texts?.form?.isSubToBrand ||
187
- 'I would like to be updated on news, events and offers.'
188
-
189
- const phoneLabel = useMemo(() => {
190
- const optionalPhone = isPhoneRequired ? '' : texts?.form?.optional || ' (optional)'
191
- return texts?.form?.phone
192
- ? `${texts?.form?.phone} ${optionalPhone}`
193
- : `Phone ${optionalPhone}`
194
- }, [isPhoneRequired, texts])
195
-
196
- const addressLabel = useMemo(() => {
197
- const optionalAddress = Config.IS_BILLING_STREET_NAME_REQUIRED
198
- ? ''
199
- : texts?.form?.optional || ' (optional)'
200
-
201
- return texts?.form?.street
202
- ? `${texts.form.street} ${optionalAddress}`
203
- : `Street ${optionalAddress}`
204
- }, [texts])
205
- //#endregion Labels
206
-
207
- // Cart expiration timer
208
- const [secondsLeft, setSecondsLeft] = React.useState(420)
209
-
210
- //#region Errors state
211
- const firstNameError = useDebounced(firstName, validateEmpty)
212
- const lastNameError = useDebounced(lastName, validateEmpty)
213
- const emailError = useDebounced(email, () => validateEmail(email, emailConfirmation))
214
- const confirmEmailError = useDebounced(emailConfirmation, () =>
215
- validateEmail(emailConfirmation, email)
216
- )
217
- const passwordError = useDebounced(password, () =>
218
- validatePasswords(password, passwordConfirmation)
219
- )
220
- const confirmPasswordError = useDebounced(passwordConfirmation, () =>
221
- validatePasswords(passwordConfirmation, password)
222
- )
223
- const [phoneError, setPhoneError] = useState('')
224
- const streetError = useDebounced(street, validateEmpty)
225
- const cityError = useDebounced(city, validateEmpty)
226
- const postalCodeError = useDebounced(postalCode, validateEmpty)
227
- const [ttfPrivacyPolicyError, setTtfPrivacyPolicyError] = useState('')
228
-
229
- const [firstNameErrorState, setFirstNameErrorState] = useState('')
230
- const [lastNameErrorState, setLastNameErrorState] = useState('')
231
- const [streetErrorState, setStreetErrorState] = useState('')
232
- const [dateOfBirthError, setDateOfBirthError] = useState('')
233
- const [emailErrorState, setEmailErrorState] = useState('')
234
- const [emailConfirmationErrorState, setEmailConfirmationErrorState] = useState('')
235
- const [cityErrorState, setCityErrorState] = useState('')
236
- const [postalCodeErrorState, setPostalCodeErrorState] = useState('')
237
- const [countryErrorState, setCountryErrorState] = useState('')
238
- const [stateErrorState, setStateErrorState] = useState('')
239
- const [passwordErrorState, setPasswordErrorState] = useState('')
240
- const [confirmPasswordErrorState, setConfirmPasswordErrorState] = useState('')
241
-
242
- const requiredText = texts?.required || 'Required'
243
-
244
- //#endregion Errors state
245
- //#endregion
246
-
247
- const getSkippingStatus = (numOfTickets: number): SkippingStatusType => {
248
- // DO NOT SKIP IF
249
- // * User is not logged in.
250
- // * Event Collect_names is turned on and tickets are more than one.
251
- // * Event validate_age is turned on.
252
- // * phone_required is turned on and customer does not have a phone number.
253
-
254
- if (isBillingRequired || skippingStatus === 'fail') {
255
- return 'false'
256
- }
257
-
258
- if ((isNameRequired && numOfTickets > 1) || isAgeRequired) {
259
- return 'false'
260
- } else {
261
- return 'skipping'
262
- }
263
- }
264
-
265
- //#region Refs
266
- const storedToken = useRef('')
267
- const storedProfileData = useRef({} as IUserProfilePublic)
268
- const phoneErrorCounter = useRef(0)
269
- const billingCoreRef = useRef<BillingCoreHandle>(null)
270
- const sessionHandleRef = useRef<SessionHandleType>(null)
271
- const phoneCountryCode = useRef('')
272
- const errorsRef = useRef({
273
- firstName: '',
274
- lastName: '',
275
- email: '',
276
- confirmEmail: '',
277
- password: '',
278
- confirmPassword: '',
279
- dateOfBirth: '',
280
- phone: '',
281
- street: '',
282
- city: '',
283
- country: '',
284
- zipCode: '',
285
- state: '',
286
- privacy: '',
287
- })
288
-
289
- //#endregion
290
-
291
- //#region Imperative Handler
292
- useImperativeHandle(ref, () => ({
293
- async refreshAccessToken(refreshToken: string): Promise<IFetchAccessTokenResponse> {
294
- if (!sessionHandleRef.current) {
295
- return {
296
- accessTokenError: {
297
- message: 'Session Handle ref is not initialized',
298
- },
299
- }
300
- }
301
-
302
- const { accessTokenError, accessTokenData } =
303
- await sessionHandleRef.current!.refreshAccessToken(refreshToken)
304
- if (!accessTokenError && accessTokenData?.accessToken) {
305
- await fetchData()
306
- }
307
- return {
308
- accessTokenData,
309
- accessTokenError,
310
- }
311
- },
312
-
313
- async reloadData() {
314
- await fetchData()
315
- },
316
- }))
317
- //#endregion Imperative Handler
318
-
319
- //#region Handlers
320
- const handleSetPhoneError = useCallback(
321
- (error: string) => {
322
- if (isPhoneRequired && phone.length > 0) {
323
- setPhoneError(error)
324
- }
325
- },
326
- [isPhoneRequired, phone.length]
327
- )
328
-
329
- const handleOnChangePhoneNumber = (payload: IOnChangePhoneNumberPayload) => {
330
- setPhone(payload.input)
331
-
332
- if (payload.isValid) {
333
- errorsRef.current.phone = ''
334
- setPhoneError('')
335
-
336
- return
337
- }
338
-
339
- if (!payload.isValid && phoneErrorCounter.current > 0) {
340
- errorsRef.current.phone =
341
- texts?.form?.phoneInput?.customError || 'Invalid phone number'
342
-
343
- return handleSetPhoneError(
344
- texts?.form?.phoneInput?.customError || 'Invalid phone number'
345
- )
346
- }
347
-
348
- phoneErrorCounter.current = phoneErrorCounter.current + 1
349
- }
350
-
351
- const handleOnLoadingChange = useCallback(
352
- (loading: boolean) => {
353
- if (onLoadingChange) {
354
- onLoadingChange(loading)
355
- }
356
- },
357
- [onLoadingChange]
358
- )
359
-
360
- const handleOnSkippingStatusChange = useCallback(
361
- (status: SkippingStatusType) => {
362
- onSkippingStatusChange?.(status)
363
- },
364
- [onSkippingStatusChange]
365
- )
366
-
367
- const showAlert = (text: string) => {
368
- if (areAlertsEnabled) {
369
- Alert.alert('', text)
370
- }
371
- }
372
-
373
- const showLoginDialog = () => setIsLoginDialogVisible(true)
374
- const hideLoginDialog = () => setIsLoginDialogVisible(false)
375
-
376
- const handleIsSubToBrandToggle = () => {
377
- setIsSubToBrand(!isSubToBrand)
378
- }
379
-
380
- const handleIsSubToTicketFairyToggle = () => {
381
- const newValue = !isSubToTicketFairy
382
-
383
- if (newValue) {
384
- errorsRef.current.privacy = ''
385
- setTtfPrivacyPolicyError('')
386
- } else {
387
- errorsRef.current.privacy = requiredText
388
- setTtfPrivacyPolicyError(requiredText)
389
- }
390
-
391
- setIsSubToTicketFairy(newValue)
392
- }
393
-
394
- const handleOpenPrivacyLink = async () => {
395
- const canOpenLink = await Linking.canOpenURL(Constants.PRIVACY_POLICY_LINK)
396
- if (canOpenLink) {
397
- await Linking.openURL(Constants.PRIVACY_POLICY_LINK)
398
- }
399
- }
400
-
401
- const handleSetFormDataFromUserProfile = (
402
- userProfile: IUserProfilePublic,
403
- accessToken?: string
404
- ) => {
405
- storedProfileData.current = userProfile
406
- setFirstName(userProfile.firstName)
407
- setLastName(userProfile.lastName)
408
- setEmail(userProfile.email)
409
- setEmailConfirmation(userProfile.email)
410
- setPhone(userProfile.phone)
411
- setStreet(userProfile.streetAddress)
412
- setCity(userProfile.city)
413
- setPostalCode(userProfile.zipCode)
414
- setCountryId(userProfile.countryId)
415
- setStateId(userProfile.stateId)
416
- setLoggedUserFirstName(userProfile.firstName)
417
-
418
- let dob: Date | undefined
419
-
420
- if (userProfile.dateOfBirth) {
421
- const dobSplitted = userProfile.dateOfBirth.split('-')
422
- dob = new Date(
423
- parseInt(dobSplitted[0]!, 10),
424
- parseInt(dobSplitted[1]!, 10) - 1,
425
- parseInt(dobSplitted[2]!, 10)
426
- )
427
- handleOnSelectDate(dob)
428
- }
429
-
430
- const thData = [...ticketHoldersData]
431
- thData.forEach((th, index) => {
432
- th.firstName = index === 0 ? userProfile.firstName : ''
433
- th.lastName = index === 0 ? userProfile.lastName : ''
434
- th.email = index === 0 ? userProfile.email : ''
435
- th.phone = index === 0 ? userProfile.phone : ''
436
- })
437
- setTicketHoldersData(thData)
438
-
439
- if (accessToken) {
440
- storedToken.current = accessToken
441
- }
442
-
443
- showErrorMessages({
444
- firstName: userProfile.firstName,
445
- lastName: userProfile.lastName,
446
- email: userProfile.email,
447
- confirmEmail: userProfile.email,
448
- street: userProfile.streetAddress,
449
- city: userProfile.city,
450
- selectedCountry: userProfile.countryId
451
- ? {
452
- label: '',
453
- value: userProfile.countryId,
454
- }
455
- : undefined,
456
- selectedState: userProfile.stateId
457
- ? {
458
- label: '',
459
- value: userProfile.stateId,
460
- }
461
- : undefined,
462
- postalCode: userProfile.zipCode,
463
- dateOfBirth: dob,
464
- phoneNumber: userProfile.phone,
465
- isRegistering: !loggedUserFirstName && !storedToken.current,
466
- ticketHolderData: ticketHoldersData,
467
- })
468
- }
469
-
470
- const clearFormErrors = () => {
471
- setFirstNameErrorState('')
472
- setLastNameErrorState('')
473
- setEmailErrorState('')
474
- setEmailConfirmationErrorState('')
475
- setDateOfBirthError('')
476
- setPhoneError('')
477
- setStreetErrorState('')
478
- setCityErrorState('')
479
- setCountryErrorState('')
480
- setPostalCodeErrorState('')
481
- setStateErrorState('')
482
- setTtfPrivacyPolicyError('')
483
- errorsRef.current = {
484
- firstName: '',
485
- lastName: '',
486
- email: '',
487
- confirmEmail: '',
488
- password: '',
489
- confirmPassword: '',
490
- dateOfBirth: '',
491
- phone: '',
492
- street: '',
493
- city: '',
494
- country: '',
495
- zipCode: '',
496
- state: '',
497
- privacy: '',
498
- }
499
- }
500
-
501
- const handleOnLoginSuccess = async ({
502
- userProfile,
503
- accessTokenData,
504
- }: ILoginSuccessData) => {
505
- clearFormErrors()
506
-
507
- let countryCode = 'US'
508
- const accessToken = await getData(LocalStorageKeys.ACCESS_TOKEN)
509
- const usrProfile = { ...userProfile }
510
-
511
- onLoginSuccess?.({
512
- userProfile,
513
- accessTokenData,
514
- })
515
-
516
- try {
517
- const deviceCountry = await DeviceCountry.getCountryCode(TYPE_ANY)
518
- countryCode = deviceCountry.code.toUpperCase()
519
- } catch (err) {
520
- countryCode = 'US'
521
- }
522
-
523
- if (!userProfile.phone) {
524
- usrProfile.phone = ''
525
- } else {
526
- if (!usrProfile.phone?.includes('+')) {
527
- usrProfile.phone = `${getCountryDialCode(countryCode)}${usrProfile.phone}`
528
- }
529
- }
530
-
531
- if (!isBillingRequired && skippingStatus === 'fail') {
532
- setSkippingStatus('skipping')
533
-
534
- const phoneValidError = validatePhoneNumber({
535
- phoneNumber: userProfile.phone,
536
- customError: texts?.form?.phoneInput?.customError,
537
- })
538
-
539
- if (phoneValidError && isPhoneRequired) {
540
- setIsLoading(false)
541
- handleSetPhoneError(
542
- texts?.invalidPhoneNumberError || 'Please enter a valid phone number'
543
- )
544
- }
545
-
546
- await performCheckout(
547
- getCheckoutBodyWhenSkipping({
548
- userProfile: usrProfile,
549
- ticketsQuantity: numberOfTicketHolders || 1,
550
- })
551
- )
552
- }
553
- handleSetFormDataFromUserProfile(usrProfile, accessToken)
554
- }
555
-
556
- const handleOnLoginError = (error: IError) => {
557
- onLoginError?.(error)
558
- }
559
-
560
- const handleOnLogoutSuccess = async () => {
561
- setFirstName('')
562
- setLastName('')
563
- setEmail('')
564
- setEmailConfirmation('')
565
- setPhone('')
566
- setStreet('')
567
- setCity('')
568
- setPostalCode('')
569
- setPassword('')
570
- setPasswordConfirmation('')
571
- setCountryId('')
572
- setStateId('')
573
- handleOnSelectDate(undefined)
574
-
575
- setSelectedCountry({
576
- value: '-1',
577
- label: texts?.form?.country || 'Country',
578
- code: '__',
579
- })
580
- setStates([
581
- {
582
- value: '-1',
583
- label: texts?.form?.state || 'State/County',
584
- },
585
- ])
586
- setIsSubToTicketFairy(false)
587
- setIsSubToBrand(false)
588
- storedToken.current = ''
589
- setLoggedUserFirstName('')
590
-
591
- const thData = [...ticketHoldersData]
592
- thData.forEach((th) => {
593
- th.firstName = ''
594
- th.lastName = ''
595
- th.email = ''
596
- th.phone = ''
597
- th.firstNameError = ''
598
- th.lastNameError = ''
599
- })
600
- setTicketHoldersData(thData)
601
- onLogoutSuccess?.()
602
- }
603
-
604
- //#region Handlers input changed
605
- const handleOnSelectDate = (newDate: Date | undefined) => {
606
- setDateOfBirth(newDate)
607
-
608
- if (dateOfBirthError.length > 0 && newDate) {
609
- setDateOfBirthError('')
610
- }
611
-
612
- if (minimumAge) {
613
- const ageError = validateAge(newDate, minimumAge)
614
- setDateOfBirthError(ageError)
615
- } else {
616
- if (!newDate) {
617
- setDateOfBirthError(requiredText)
618
- }
619
- }
620
- }
621
-
622
- const handleOnStreetChanged = (text: string) => {
623
- if (streetErrorState.length > 0 && text.length > 0) {
624
- setStreetErrorState('')
625
- }
626
- setStreet(text)
627
- }
628
-
629
- const handleOnCityChanged = (text: string) => {
630
- if (cityErrorState.length > 0 && text.length > 0) {
631
- setCityErrorState('')
632
- }
633
- setCity(text)
634
- }
635
-
636
- const handleOnFirstNameChanged = (text: string) => {
637
- if (firstNameErrorState.length > 0 && text.length > 0) {
638
- setFirstNameErrorState('')
639
- }
640
- setFirstName(text)
641
- }
642
-
643
- const handleOnLastNameChanged = (text: string) => {
644
- if (lastNameErrorState.length > 0 && text.length > 0) {
645
- setLastNameErrorState('')
646
- }
647
- setLastName(text)
648
- }
649
-
650
- const handleOnEmailChanged = (text: string) => {
651
- if (emailErrorState.length > 0 && text.length > 0) {
652
- setEmailErrorState('')
653
- }
654
- setEmail(text)
655
- }
656
-
657
- const handleOnEmailConfirmationChanged = (text: string) => {
658
- if (emailConfirmationErrorState.length > 0 && text.length > 0) {
659
- setEmailConfirmationErrorState('')
660
- }
661
- setEmailConfirmation(text)
662
- }
663
-
664
- const handleOnPostalCodeChanged = (text: string) => {
665
- if (postalCodeErrorState.length > 0 && text.length > 0) {
666
- setPostalCodeErrorState('')
667
- }
668
- setPostalCode(text)
669
- }
670
-
671
- const handleOnStateChanged = (itm: IDropdownItem) => {
672
- if (stateErrorState.length > 0 && itm.value !== '-1') {
673
- setStateErrorState('')
674
- } else if (itm.value === '-1') {
675
- setStateErrorState(requiredText)
676
- }
677
- setSelectedState(itm)
678
- }
679
-
680
- const handleOnCountryChanged = (itm: IDropdownItem) => {
681
- if (countryErrorState.length > 0 && itm.value !== '-1') {
682
- setCountryErrorState('')
683
- } else if (itm.value === '-1') {
684
- setCountryErrorState(requiredText)
685
- }
686
- setSelectedCountry(itm)
687
- }
688
-
689
- const handleOnPasswordChanged = (text: string) => {
690
- if (passwordErrorState.length > 0 && text.length > 0) {
691
- setPasswordErrorState('')
692
- }
693
- setPassword(text)
694
- }
695
-
696
- const handleOnConfirmPasswordChanged = (text: string) => {
697
- if (confirmPasswordErrorState.length > 0 && text.length > 0) {
698
- setConfirmPasswordErrorState('')
699
- }
700
- setPasswordConfirmation(text)
701
- }
702
- //#endregion Handlers input changed
703
-
704
- //#endregion
705
-
706
- //#region Form validation
707
- const checkIsStoredPhoneNumberFormat = (storedPhoneNumber?: string) => {
708
- if (!storedPhoneNumber) {
709
- handleSetPhoneError(
710
- texts?.invalidPhoneNumberError || 'Please enter a valid phone number'
711
- )
712
- return false
713
- }
714
-
715
- if (!storedPhoneNumber.includes('+')) {
716
- handleSetPhoneError(
717
- texts?.invalidPhoneNumberError || 'Please enter a valid phone number'
718
- )
719
- return false
720
- }
721
- return true
722
- }
723
-
724
- const showErrorMessages = (data: IBillingFormFieldsData) => {
725
- if (secondsLeft === 0) {
726
- return false
727
- }
728
-
729
- const validateFirstName = validateEmpty(data.firstName)
730
- const validateLastName = validateEmpty(data.lastName)
731
-
732
- const validateEmails = validateEmail(data.email, data.confirmEmail)
733
- const validateEmailsConfirmation = validateEmail(data.confirmEmail, data.email)
734
-
735
- if (isTicketFree) {
736
- setFirstNameErrorState(validateFirstName)
737
- setLastNameErrorState(validateLastName)
738
- errorsRef.current.firstName = validateFirstName
739
- errorsRef.current.lastName = validateLastName
740
-
741
- setEmailErrorState(validateEmails)
742
- setEmailConfirmationErrorState(validateEmailsConfirmation)
743
- errorsRef.current.email = validateEmails
744
- errorsRef.current.confirmEmail = validateEmailsConfirmation
745
-
746
- if (data.isRegistering) {
747
- const validatePassword = validatePasswords(data.password, data.confirmPassword)
748
- const validatePasswordConfirmation = validatePasswords(
749
- data.confirmPassword,
750
- data.password
751
- )
752
-
753
- setPasswordErrorState(validatePassword)
754
- setConfirmPasswordErrorState(validatePasswordConfirmation)
755
-
756
- errorsRef.current.password = validatePassword
757
- errorsRef.current.confirmPassword = validatePasswordConfirmation
758
- }
759
-
760
- if (isAgeRequired) {
761
- if (minimumAge) {
762
- const birthdayValidation = validateAge(data.dateOfBirth, minimumAge)
763
- setDateOfBirthError(birthdayValidation)
764
- errorsRef.current.dateOfBirth = birthdayValidation
765
- } else {
766
- setDateOfBirthError(data.dateOfBirth ? '' : requiredText)
767
- errorsRef.current.dateOfBirth = data.dateOfBirth ? '' : requiredText
768
- }
769
- }
770
-
771
- if (isPhoneRequired && !isPhoneHidden) {
772
- const validatePhone = validatePhoneNumber({
773
- phoneNumber: data.phoneNumber,
774
- customError: texts?.form?.phoneInput?.customError,
775
- countryCode: phoneCountryCode.current,
776
- })
777
- setPhoneError(validatePhone)
778
- errorsRef.current.phone = validatePhone
779
- }
780
-
781
- errorsRef.current.privacy = isSubToTicketFairy ? '' : requiredText
782
-
783
- if (isNameRequired) {
784
- const ticketHoldersDataCopy = [...data.ticketHolderData]
785
- _map(data.ticketHolderData, (th, index) => {
786
- if (isNameRequired) {
787
- ticketHoldersDataCopy[index].firstNameError = validateEmpty(th.firstName)
788
- ticketHoldersDataCopy[index].lastNameError = validateEmpty(th.lastName)
789
- }
790
- })
791
-
792
- setTicketHoldersData(ticketHoldersDataCopy)
793
- }
794
-
795
- return
796
- } // end of Ticket Free
797
-
798
- const validateStreet = validateEmpty(data.street)
799
- const validateCity = validateEmpty(data.city)
800
- const validatePostalCode = validateEmpty(data.postalCode)
801
-
802
- setStreetErrorState(validateStreet)
803
- setCityErrorState(validateCity)
804
- setPostalCodeErrorState(validatePostalCode)
805
- setFirstNameErrorState(validateFirstName)
806
- setLastNameErrorState(validateLastName)
807
- setEmailErrorState(validateEmails)
808
- setEmailConfirmationErrorState(validateEmailsConfirmation)
809
-
810
- errorsRef.current.street = validateStreet
811
- errorsRef.current.city = validateCity
812
- errorsRef.current.zipCode = validatePostalCode
813
- errorsRef.current.firstName = validateFirstName
814
- errorsRef.current.lastName = validateLastName
815
- errorsRef.current.email = validateEmails
816
- errorsRef.current.confirmEmail = validateEmailsConfirmation
817
-
818
- if (data.isRegistering) {
819
- const validatePassword = validatePasswords(data.password, data.confirmPassword)
820
- const validatePasswordConfirmation = validatePasswords(
821
- data.confirmPassword,
822
- data.password
823
- )
824
-
825
- setPasswordErrorState(validatePassword)
826
- setConfirmPasswordErrorState(validatePasswordConfirmation)
827
-
828
- errorsRef.current.password = validatePassword
829
- errorsRef.current.confirmPassword = validatePasswordConfirmation
830
- }
831
-
832
- const countryValidation = validateDropDownEmpty(data.selectedCountry?.value)
833
-
834
- setCountryErrorState(countryValidation)
835
- errorsRef.current.country = countryValidation
836
-
837
- if (isAgeRequired) {
838
- if (minimumAge) {
839
- const birthdayValidation = validateAge(data.dateOfBirth, minimumAge)
840
- setDateOfBirthError(birthdayValidation)
841
- errorsRef.current.dateOfBirth = birthdayValidation
842
- } else {
843
- setDateOfBirthError(data.dateOfBirth ? '' : requiredText)
844
- errorsRef.current.dateOfBirth = data.dateOfBirth ? '' : requiredText
845
- }
846
- }
847
-
848
- const validateState = validateDropDownEmpty(data.selectedState?.value)
849
-
850
- setStateErrorState(validateState)
851
- errorsRef.current.state = validateState
852
-
853
- if (isPhoneRequired && !isPhoneHidden) {
854
- const validatePhone = validatePhoneNumber({
855
- phoneNumber: data.phoneNumber,
856
- customError: texts?.form?.phoneInput?.customError,
857
- countryCode: phoneCountryCode.current,
858
- })
859
-
860
- setPhoneError(validatePhone)
861
- errorsRef.current.phone = validatePhone
862
- }
863
-
864
- //setTtfPrivacyPolicyError(isSubToTicketFairy ? '' : requiredText)
865
- errorsRef.current.privacy = isSubToTicketFairy ? '' : requiredText
866
-
867
- if (isNameRequired) {
868
- const ticketHoldersDataCopy = [...data.ticketHolderData]
869
- _map(data.ticketHolderData, (th, index) => {
870
- if (isNameRequired) {
871
- ticketHoldersDataCopy[index].firstNameError = validateEmpty(th.firstName)
872
- ticketHoldersDataCopy[index].lastNameError = validateEmpty(th.lastName)
873
- }
874
- })
875
-
876
- setTicketHoldersData(ticketHoldersDataCopy)
877
- }
878
- }
879
-
880
- const checkBasicDataValid = (): boolean => {
881
- if (secondsLeft === 0) {
882
- return false
883
- }
884
-
885
- if (isTicketFree) {
886
- if (
887
- errorsRef.current.firstName ||
888
- errorsRef.current.lastName ||
889
- errorsRef.current.email ||
890
- errorsRef.current.confirmEmail
891
- ) {
892
- return false
893
- }
894
- } else {
895
- if (
896
- errorsRef.current.firstName ||
897
- errorsRef.current.lastName ||
898
- errorsRef.current.email ||
899
- errorsRef.current.confirmEmail ||
900
- errorsRef.current.city ||
901
- errorsRef.current.zipCode ||
902
- errorsRef.current.state ||
903
- errorsRef.current.country ||
904
- errorsRef.current.street
905
- ) {
906
- return false
907
- }
908
- }
909
-
910
- if (isPhoneRequired && !isPhoneHidden && errorsRef.current.phone) {
911
- if (isLoading) {
912
- setIsLoading(false)
913
- }
914
-
915
- return false
916
- }
917
-
918
- return true
919
- }
920
-
921
- const fillAllRequiredFieldsAlert =
922
- texts?.form?.fillAllRequiredFieldsAlert ||
923
- 'You must fill all Ticket Holder required fields'
924
-
925
- const checkExtraDataValid = (): string => {
926
- if (!isTtfCheckboxHidden && !isSubToTicketFairy) {
927
- setTtfPrivacyPolicyError(
928
- texts?.form?.ttfPrivacyPolicyRequiredError || requiredText
929
- )
930
- return 'Please review the errors'
931
- }
932
-
933
- if (isAgeRequired) {
934
- if (!dateOfBirth) {
935
- setDateOfBirthError(requiredText)
936
- return 'Please enter your date of birth'
937
- }
938
-
939
- if (minimumAge) {
940
- const ageValidationMessage = validateAge(dateOfBirth, minimumAge)
941
- if (ageValidationMessage) {
942
- setDateOfBirthError(ageValidationMessage)
943
- return ageValidationMessage
944
- }
945
- }
946
- }
947
-
948
- if (!isNameRequired) {
949
- return ''
950
- }
951
-
952
- if (
953
- ticketHoldersData.length === 1 &&
954
- config.shouldHideTicketHolderSectionOnSingleTicket
955
- ) {
956
- return ''
957
- }
958
-
959
- return _every(
960
- _map(
961
- ticketHoldersData,
962
- (th) => validateEmpty(th.firstName) || validateEmpty(th.lastName)
963
- ),
964
- (itm) => itm === ''
965
- )
966
- ? ''
967
- : fillAllRequiredFieldsAlert
968
- }
969
- //#endregion
970
-
971
- //#region Submit form
972
- const handleOnRegisterFail = (rawError: any) => {
973
- onRegisterError?.(rawError)
974
- }
975
-
976
- const performCheckout = async (checkoutBodyWhenSkipping?: ICheckoutBody) => {
977
- if (!billingCoreRef.current) {
978
- return onCheckoutError?.({ message: 'BillingCore is not ready' })
979
- }
980
-
981
- const checkoutBody = checkoutBodyWhenSkipping || getCheckoutBody()
982
-
983
- setIsSubmittingData(true)
984
- const { error: checkoutError, data: checkoutData } =
985
- await billingCoreRef.current.checkoutOrder(checkoutBody)
986
- setIsLoading(false)
987
- setIsSubmittingData(false)
988
-
989
- if (checkoutError) {
990
- onCheckoutError?.(checkoutError)
991
- setSkippingStatus('false')
992
- return showAlert(checkoutError.message)
993
- }
994
-
995
- if (!checkoutData) {
996
- onCheckoutError?.({ message: 'Checkout returned not data' })
997
- setSkippingStatus('false')
998
- return showAlert('Checkout returned not data')
999
- }
1000
-
1001
- setSkippingStatus('success')
1002
- billingCoreRef.current.stopCartTimer()
1003
- onCheckoutSuccess(checkoutData)
1004
- }
1005
-
1006
- const getRegisterFormData = (data: IRegisterNewUserBody): FormData => {
1007
- const bodyFormData = new FormData()
1008
- _forEach(data.attributes, (item: any, key: string) => {
1009
- bodyFormData.append(key, item)
1010
- })
1011
- return bodyFormData
1012
- }
1013
-
1014
- const performNewUserRegister = async () => {
1015
- if (!billingCoreRef.current) {
1016
- showAlert('BillingCore is not ready')
1017
- return onRegisterError?.({ message: 'BillingCore is not initialized' })
1018
- }
1019
-
1020
- setIsSubmittingData(true)
1021
-
1022
- const registerUserBody = getRegisterNewUserBody()
1023
- const registerForm = getRegisterFormData(registerUserBody)
1024
-
1025
- const { registerNewUserResponseData, registerNewUserResponseError } =
1026
- await billingCoreRef.current.registerNewUser(registerForm)
1027
-
1028
- if (registerNewUserResponseError) {
1029
- setIsSubmittingData(false)
1030
- if (registerNewUserResponseError.isAlreadyRegistered) {
1031
- setLoginMessage(registerNewUserResponseError.message!)
1032
- showLoginDialog()
1033
- return handleOnRegisterFail(registerNewUserResponseError.raw)
1034
- }
1035
- handleOnRegisterFail(registerNewUserResponseError.raw)
1036
- return showAlert(registerNewUserResponseError.message!)
1037
- }
1038
-
1039
- if (!registerNewUserResponseData) {
1040
- setIsSubmittingData(false)
1041
- handleOnRegisterFail('Register user returned no data')
1042
- return showAlert('Register user returned no data')
1043
- }
1044
-
1045
- storedToken.current = registerNewUserResponseData.accessTokenData.accessToken
1046
-
1047
- onRegisterSuccess?.(registerNewUserResponseData)
1048
-
1049
- await performCheckout()
1050
- }
1051
-
1052
- const getRegisterNewUserBody = (): IRegisterNewUserBody => {
1053
- const phoneNumber = isPhoneRequired ? phone : emptyPhone(phone)
1054
-
1055
- const body: IRegisterNewUserBody = isTicketFree
1056
- ? {
1057
- attributes: {
1058
- email: email,
1059
- first_name: firstName,
1060
- last_name: lastName,
1061
- password: password,
1062
- phone: phoneNumber,
1063
- password_confirmation: passwordConfirmation,
1064
- client_id: Config.CLIENT_ID!,
1065
- client_secret: Config.CLIENT_SECRET!,
1066
- check_cart_expiration: true,
1067
- },
1068
- }
1069
- : {
1070
- attributes: {
1071
- city: city,
1072
- country: parseInt(selectedCountry!.value as string, 10),
1073
- email: email,
1074
- first_name: firstName,
1075
- last_name: lastName,
1076
- password: password,
1077
- phone: phoneNumber,
1078
- state: parseInt(selectedState!.value as string, 10),
1079
- street_address: street,
1080
- zip: postalCode,
1081
- password_confirmation: passwordConfirmation,
1082
- client_id: Config.CLIENT_ID!,
1083
- client_secret: Config.CLIENT_SECRET!,
1084
- check_cart_expiration: true,
1085
- },
1086
- }
1087
-
1088
- if (body.attributes.phone === undefined) {
1089
- delete body.attributes.phone
1090
- }
1091
-
1092
- if (isAgeRequired && dateOfBirth) {
1093
- body.attributes.dob_day = dateOfBirth.getDate()
1094
- body.attributes.dob_month = dateOfBirth.getMonth() + 1
1095
- body.attributes.dob_year = dateOfBirth.getFullYear()
1096
- }
1097
-
1098
- return body
1099
- }
1100
-
1101
- const getCheckoutBody = (): ICheckoutBody => {
1102
- const parsedTicketHolders: ICheckoutTicketHolder[] = []
1103
-
1104
- if (config.shouldHideTicketHolderSectionOnSingleTicket && numberOfTicketHolders) {
1105
- parsedTicketHolders.push({
1106
- first_name: firstName,
1107
- last_name: lastName,
1108
- phone: phone,
1109
- email: email,
1110
- })
1111
- } else {
1112
- for (let i = 0; i <= numberOfTicketHolders! - 1; i++) {
1113
- const individualHolder = {
1114
- first_name: ticketHoldersData[i]?.firstName || '',
1115
- last_name: ticketHoldersData[i]?.lastName || '',
1116
- phone: ticketHoldersData[i]?.phone || '',
1117
- email: ticketHoldersData[i]?.email || '',
1118
- }
1119
- parsedTicketHolders.push(individualHolder)
1120
- }
1121
- }
1122
-
1123
- const formattedPhone = isPhoneRequired ? phone : emptyPhone(phone)
1124
-
1125
- const checkoutBody: ICheckoutBody = isTicketFree
1126
- ? {
1127
- attributes: {
1128
- confirm_email: emailConfirmation,
1129
- email: email,
1130
- first_name: firstName,
1131
- last_name: lastName,
1132
- password: password,
1133
- phone: formattedPhone,
1134
- ticket_holders: parsedTicketHolders,
1135
- ttf_opt_in: isSubToTicketFairy,
1136
- brand_opt_in: isSubToBrand,
1137
- },
1138
- }
1139
- : {
1140
- attributes: {
1141
- city: city,
1142
- confirm_email: emailConfirmation,
1143
- country: parseInt(selectedCountry!.value as string, 10),
1144
- email: email,
1145
- first_name: firstName,
1146
- last_name: lastName,
1147
- password: password,
1148
- phone: formattedPhone,
1149
- state: parseInt(selectedState!.value as string, 10),
1150
- street_address: street,
1151
- zip: postalCode,
1152
- ticket_holders: parsedTicketHolders,
1153
- ttf_opt_in: isSubToTicketFairy,
1154
- brand_opt_in: isSubToBrand,
1155
- },
1156
- }
1157
-
1158
- if (isAgeRequired && dateOfBirth) {
1159
- checkoutBody.attributes.dob_day = dateOfBirth.getDate()
1160
- checkoutBody.attributes.dob_month = dateOfBirth.getMonth() + 1
1161
- checkoutBody.attributes.dob_year = dateOfBirth.getFullYear()
1162
- }
1163
-
1164
- if (checkoutBody.attributes.phone === undefined) {
1165
- delete checkoutBody.attributes.phone
1166
- }
1167
-
1168
- return checkoutBody
1169
- }
1170
-
1171
- const getCheckoutBodyWhenSkipping = ({
1172
- userProfile,
1173
- ticketsQuantity,
1174
- }: {
1175
- userProfile: IUserProfilePublic
1176
- ticketsQuantity: number
1177
- }): ICheckoutBody => {
1178
- const parsedTicketHolders: ICheckoutTicketHolder[] = []
1179
- const hFirstName = userProfile.firstName
1180
- const hLastName = userProfile.lastName
1181
- const hPhone = userProfile.phone
1182
- const hEmail = userProfile.email
1183
-
1184
- for (let i = 0; i <= ticketsQuantity - 1; i++) {
1185
- const individualHolder = i
1186
- ? {
1187
- first_name: '',
1188
- last_name: '',
1189
- phone: '',
1190
- email: '',
1191
- }
1192
- : {
1193
- first_name: hFirstName,
1194
- last_name: hLastName,
1195
- phone: hPhone,
1196
- email: hEmail,
1197
- }
1198
-
1199
- parsedTicketHolders.push(individualHolder)
1200
- }
1201
-
1202
- const checkoutBody: ICheckoutBody = isTicketFree
1203
- ? {
1204
- attributes: {
1205
- confirm_email: userProfile.email,
1206
- email: userProfile.email,
1207
- first_name: userProfile.firstName,
1208
- last_name: userProfile.lastName,
1209
- phone: userProfile.phone,
1210
- ticket_holders: parsedTicketHolders,
1211
- ttf_opt_in: isSubToTicketFairy,
1212
- brand_opt_in: isSubToBrand,
1213
- password: password,
1214
- },
1215
- }
1216
- : {
1217
- attributes: {
1218
- city: userProfile.city,
1219
- confirm_email: userProfile.email,
1220
- country: parseInt(userProfile.countryId, 10),
1221
- email: userProfile.email,
1222
- first_name: userProfile.firstName,
1223
- last_name: userProfile.lastName,
1224
- phone: userProfile.phone,
1225
- state: parseInt(userProfile.stateId, 10),
1226
- street_address: userProfile.streetAddress,
1227
- zip: userProfile.zipCode,
1228
- ticket_holders: parsedTicketHolders,
1229
- ttf_opt_in: isSubToTicketFairy,
1230
- brand_opt_in: isSubToBrand,
1231
- password: password,
1232
- },
1233
- }
1234
-
1235
- if (checkoutBody.attributes.phone === undefined) {
1236
- delete checkoutBody.attributes.phone
1237
- }
1238
-
1239
- return checkoutBody
1240
- }
1241
-
1242
- const onSubmit = async () => {
1243
- showErrorMessages({
1244
- firstName: firstName,
1245
- lastName: lastName,
1246
- email: email,
1247
- confirmEmail: emailConfirmation,
1248
- password: password,
1249
- confirmPassword: passwordConfirmation,
1250
- street: street,
1251
- city: city,
1252
- selectedCountry: selectedCountry,
1253
- selectedState: selectedState,
1254
- postalCode: postalCode,
1255
- dateOfBirth: dateOfBirth,
1256
- phoneNumber: phone,
1257
- isRegistering: !loggedUserFirstName && !storedToken.current,
1258
- ticketHolderData: ticketHoldersData,
1259
- })
1260
-
1261
- const isBasicDataValid = checkBasicDataValid()
1262
- const isExtraDataValidErrors = checkExtraDataValid()
1263
-
1264
- if (isExtraDataValidErrors || !isBasicDataValid) {
1265
- return
1266
- }
1267
-
1268
- if (loggedUserFirstName && storedToken.current) {
1269
- await performCheckout()
1270
- } else {
1271
- await performNewUserRegister()
1272
- }
1273
- }
1274
- //#endregion
1275
-
1276
- const setCountryByEvent = async () => {
1277
- const eventCountry = await getData(LocalStorageKeys.EVENT_COUNTRY)
1278
-
1279
- if (!eventCountry) {
1280
- return
1281
- }
1282
-
1283
- if (countries.length > 1 && eventCountry) {
1284
- const selectedCountryItem = _find(countries, (item) => {
1285
- const stringValue = item.code as string
1286
- return stringValue.toUpperCase() === eventCountry?.toUpperCase()
1287
- })
1288
- setSelectedCountry(selectedCountryItem)
1289
- }
1290
- }
1291
-
1292
- //#region Fetch Initial Data
1293
- const fetchData = async () => {
1294
- if (!billingCoreRef.current) {
1295
- onFetchCartError?.({ message: 'BillingCoreRef not initialized' })
1296
- return showAlert('BillingCoreRef not initialized')
1297
- }
1298
-
1299
- setIsLoading(true)
1300
-
1301
- let usrPrfl: IUserProfile | undefined
1302
- const usrTkn = await getData(LocalStorageKeys.ACCESS_TOKEN)
1303
- let skippingStatusInner: SkippingStatusType
1304
-
1305
- const { countriesData, countriesError } =
1306
- await billingCoreRef.current.getCountries()
1307
-
1308
- if (countriesError) {
1309
- setSkippingStatus('fail')
1310
- setIsLoading(false)
1311
- onFetchCountriesError?.(countriesError)
1312
- return showAlert(countriesError.message || 'Error fetching countries')
1313
- }
1314
-
1315
- onFetchCountriesSuccess?.(countriesData!)
1316
-
1317
- const parsedCountries: IDropdownItem[] = _map(countriesData, (item) => {
1318
- return { label: item.name, value: item.id, code: item.code }
1319
- })
1320
-
1321
- if (usrTkn) {
1322
- storedToken.current = usrTkn
1323
- const { userProfileError, userProfileData } =
1324
- await billingCoreRef.current.getUserProfile()
1325
-
1326
- if (userProfileError || !userProfileData) {
1327
- setSkippingStatus('fail')
1328
- setIsLoading(false)
1329
- onFetchUserProfileError?.(userProfileError!)
1330
-
1331
- return showAlert(userProfileError?.message || 'Error fetching user profile')
1332
- }
1333
-
1334
- onFetchUserProfileSuccess?.({
1335
- firstName: userProfileData.firstName,
1336
- lastName: userProfileData.lastName,
1337
- })
1338
-
1339
- usrPrfl = userProfileData
1340
- } else {
1341
- skippingStatusInner = 'fail'
1342
- parsedCountries.unshift({
1343
- value: '-1',
1344
- label: texts?.form?.country || 'Country',
1345
- code: '__',
1346
- })
1347
- setSelectedCountry({
1348
- value: '-1',
1349
- label: texts?.form?.country || 'Country',
1350
- code: '__',
1351
- })
1352
- }
1353
-
1354
- const { cartData, cartError } = await billingCoreRef.current.getCart()
1355
-
1356
- if (cartError || !cartData) {
1357
- setSkippingStatus('fail')
1358
- setIsLoading(false)
1359
- onFetchCartError?.(cartError || { message: 'Error fetching cart' })
1360
- return showAlert(cartError?.message || 'Error fetching cart')
1361
- }
1362
-
1363
- onFetchCartSuccess?.()
1364
-
1365
- if (skippingStatusInner === 'fail') {
1366
- setSkippingStatus('fail')
1367
- } else {
1368
- setSkippingStatus(getSkippingStatus(cartData.quantity))
1369
- }
1370
-
1371
- setNumberOfTicketHolders(cartData.quantity)
1372
- setIsSubToBrand(cartData.isMarketingOptedIn)
1373
- setIsSubToTicketFairy(cartData.isTfOptIn || false)
1374
- setIsTtfCheckboxHidden(cartData.isTfOptInHidden || false)
1375
-
1376
- if (cartData.expiresAt) {
1377
- setSecondsLeft(cartData.expiresAt)
1378
- }
1379
-
1380
- const tHolders: ITicketHolderField[] = []
1381
- for (let i = 0; i < cartData.quantity; i++) {
1382
- tHolders.push({
1383
- firstName: i === 0 && usrPrfl ? usrPrfl.firstName : '',
1384
- lastName: i === 0 && usrPrfl ? usrPrfl.lastName : '',
1385
- email: i === 0 && usrPrfl ? usrPrfl.email : '',
1386
- phone: i === 0 && usrPrfl ? usrPrfl.phone : '',
1387
- firstNameError: '',
1388
- lastNameError: '',
1389
- })
1390
- }
1391
-
1392
- let phoneCountry = 'US'
1393
- let phoneCountryDialCode = '+1'
1394
- const eventCountry = await getData(LocalStorageKeys.EVENT_COUNTRY)
1395
-
1396
- if (eventCountry) {
1397
- phoneCountry = eventCountry.toUpperCase()
1398
- phoneCountryDialCode = getCountryDialCode(phoneCountry)
1399
- } else {
1400
- try {
1401
- const deviceCountry = await DeviceCountry.getCountryCode(TYPE_ANY)
1402
- phoneCountry = deviceCountry.code.toUpperCase()
1403
- phoneCountryDialCode = getCountryDialCode(phoneCountry)
1404
- } catch (err) {
1405
- phoneCountry = 'US'
1406
- }
1407
- }
1408
-
1409
- if (usrPrfl) {
1410
- if (!isPhoneHidden && isPhoneRequired) {
1411
- if (!checkIsStoredPhoneNumberFormat(usrPrfl.phone)) {
1412
- setPhoneError(
1413
- texts?.invalidPhoneNumberError || 'Please enter a valid phone number'
1414
- )
1415
- skippingStatusInner = 'fail'
1416
- setSkippingStatus('fail')
1417
- setIsLoading(false)
1418
- } else {
1419
- // We can perform Checkout process since phone is valid
1420
- if (!isBillingRequired && usrTkn && cartData) {
1421
- const checkoutBody: ICheckoutBody = getCheckoutBodyWhenSkipping({
1422
- userProfile: usrPrfl,
1423
- ticketsQuantity: cartData.quantity,
1424
- })
1425
- return await performCheckout(checkoutBody)
1426
- } else {
1427
- if (skippingStatusInner === 'skipping') {
1428
- setSkippingStatus('fail')
1429
- }
1430
- }
1431
- }
1432
- } else {
1433
- // We can perform Checkout process since phone is valid
1434
- if (!isBillingRequired && usrTkn && cartData) {
1435
- const checkoutBody: ICheckoutBody = getCheckoutBodyWhenSkipping({
1436
- userProfile: usrPrfl,
1437
- ticketsQuantity: cartData.quantity,
1438
- })
1439
- return await performCheckout(checkoutBody)
1440
- } else {
1441
- if (skippingStatusInner === 'skipping') {
1442
- setSkippingStatus('fail')
1443
- }
1444
- }
1445
- }
1446
-
1447
- const userPhone = usrPrfl.phone === null ? phoneCountryDialCode : usrPrfl.phone
1448
-
1449
- if (userPhone.length <= 5) {
1450
- phoneCountryCode.current = userPhone
1451
- }
1452
-
1453
- handleSetFormDataFromUserProfile({
1454
- ...usrPrfl,
1455
- phone: userPhone,
1456
- })
1457
- } else {
1458
- // There is no user profile data
1459
- phoneCountryCode.current = phoneCountryDialCode
1460
- setPhone(phoneCountryDialCode)
1461
- }
1462
-
1463
- setCountries(parsedCountries)
1464
- setTicketHoldersData(tHolders)
1465
- setIsSubmittingData(false)
1466
- setIsLoading(false)
1467
- }
1468
- //#endregion Fetch Initial Data
1469
-
1470
- //#region Effects
1471
- useEffect(() => {
1472
- handleOnLoadingChange(isLoading)
1473
- }, [isLoading, handleOnLoadingChange])
1474
-
1475
- useEffect(() => {
1476
- handleOnSkippingStatusChange(skippingStatus)
1477
- }, [handleOnSkippingStatusChange, skippingStatus])
1478
-
1479
- useEffect(() => {
1480
- if (countryId) {
1481
- if (countries.length > 1) {
1482
- const selectedCountryItem = _find(countries, (item) => item.value === countryId)
1483
- setSelectedCountry(selectedCountryItem)
1484
- }
1485
- } else {
1486
- setCountryByEvent()
1487
- }
1488
- }, [countries, countryId])
1489
-
1490
- useEffect(() => {
1491
- const getStates = async () => {
1492
- if (!selectedCountry) {
1493
- return
1494
- }
1495
-
1496
- if (!billingCoreRef.current) {
1497
- onFetchCartError?.({ message: 'BillingCoreRef not initialized' })
1498
- return showAlert('BillingCoreRef not initialized')
1499
- }
1500
-
1501
- const { statesData, statesError } = await billingCoreRef.current.getStates(
1502
- selectedCountry.value.toString()
1503
- )
1504
-
1505
- if (statesError) {
1506
- onFetchStatesError?.(statesError!)
1507
- return showAlert(statesError?.message || 'Error fetching states')
1508
- }
1509
-
1510
- const parsedStates: IDropdownItem[] = _map(statesData, (item, index) => {
1511
- return { label: item, value: index }
1512
- })
1513
-
1514
- onFetchStatesSuccess?.()
1515
- setStates(parsedStates)
1516
- }
1517
-
1518
- if (selectedCountry && selectedCountry.value !== '-1') {
1519
- getStates()
1520
- }
1521
- }, [selectedCountry])
1522
-
1523
- useEffect(() => {
1524
- if (states.length > 1 && stateId) {
1525
- const selectedStateItem = _find(states, (item) => item.value === stateId)
1526
- if (!selectedStateItem) {
1527
- return setSelectedState({
1528
- value: '-1',
1529
- label: texts?.form?.state || 'State/County',
1530
- })
1531
- }
1532
- setSelectedState(selectedStateItem)
1533
- } else {
1534
- setSelectedState({
1535
- value: '-1',
1536
- label: texts?.form?.state || 'State/County',
1537
- })
1538
- }
1539
- }, [stateId, states])
1540
-
1541
- useEffect(() => {
1542
- setCountries([
1543
- {
1544
- value: '-1',
1545
- label: texts?.form?.country || 'Country',
1546
- },
1547
- ])
1548
- setStates([
1549
- {
1550
- value: '-1',
1551
- label: texts?.form?.state || 'State/County',
1552
- },
1553
- ])
1554
- fetchData()
1555
- }, [])
1556
- //#endregion
1557
-
1558
- const isDataValid = checkBasicDataValid()
1559
-
1560
- const isButtonDisabled = config.isCheckoutAlwaysButtonEnabled ? false : !isDataValid
1561
-
1562
- //#region RENDER
1563
- const renderTicketHolders = () => {
1564
- if (!numberOfTicketHolders || !holderLabels || ticketHoldersData.length === 0) {
1565
- return null
1566
- }
1567
-
1568
- const tHolders = []
1569
- for (let i = 0; i < numberOfTicketHolders; i++) {
1570
- const thItemTitle = texts?.form?.ticketHolderItem || 'Ticket Holder'
1571
- tHolders.push(
1572
- <View key={`ticketHolder.${i}`}>
1573
- <Text style={styles?.ticketHolderItemHeader}>
1574
- {thItemTitle} {i + 1}
1575
- </Text>
1576
- <Input
1577
- label={holderLabels.firstName}
1578
- value={ticketHoldersData[i].firstName}
1579
- onChangeText={(text) => {
1580
- const copyTicketHolders = [...ticketHoldersData]
1581
- copyTicketHolders[i].firstName = text
1582
- copyTicketHolders[i].firstNameError = validateEmpty(text)
1583
-
1584
- setTicketHoldersData(copyTicketHolders)
1585
- }}
1586
- error={ticketHoldersData[i].firstNameError}
1587
- styles={styles?.inputStyles}
1588
- />
1589
- <Input
1590
- label={holderLabels.lastName}
1591
- value={ticketHoldersData[i].lastName}
1592
- onChangeText={(text) => {
1593
- const copyTicketHolders = [...ticketHoldersData]
1594
- copyTicketHolders[i].lastName = text
1595
- copyTicketHolders[i].lastNameError = validateEmpty(text)
1596
-
1597
- setTicketHoldersData(copyTicketHolders)
1598
- }}
1599
- error={ticketHoldersData[i].lastNameError}
1600
- styles={styles?.inputStyles}
1601
- />
1602
- <Input
1603
- label={holderLabels.email}
1604
- value={ticketHoldersData[i].email}
1605
- onChangeText={(text) => {
1606
- const copyTicketHolders = [...ticketHoldersData]
1607
- copyTicketHolders[i].email = text
1608
- setTicketHoldersData(copyTicketHolders)
1609
- }}
1610
- keyboardType="email-address"
1611
- styles={styles?.inputStyles}
1612
- autoCapitalize="none"
1613
- />
1614
- <Input
1615
- label={holderLabels.phone}
1616
- value={ticketHoldersData[i].phone}
1617
- onChangeText={(text) => {
1618
- const copyTicketHolders = [...ticketHoldersData]
1619
- copyTicketHolders[i].phone = text
1620
- setTicketHoldersData(copyTicketHolders)
1621
- }}
1622
- keyboardType="phone-pad"
1623
- styles={styles?.inputStyles}
1624
- />
1625
- </View>
1626
- )
1627
- }
1628
-
1629
- return (
1630
- <>
1631
- <Text style={styles?.ticketHoldersTitle}>
1632
- {texts?.form?.ticketHoldersTitle || 'Ticket Holders'}
1633
- </Text>
1634
- {tHolders}
1635
- </>
1636
- )
1637
- }
1638
-
1639
- const renderCheckingOut = () => {
1640
- const skippingStyles = skipBillingConfig?.styles
1641
- return (
1642
- <View style={[s.skippingRootContainer, skippingStyles?.rootContainer]}>
1643
- <View style={[s.skippingDialogContainer, skippingStyles?.dialogContainer]}>
1644
- <Image
1645
- source={skipBillingConfig?.brandImage || R.images.brand}
1646
- style={[s.skippingBrandImage, skippingStyles?.brandImage]}
1647
- />
1648
- <Text style={[s.skippingMessage, skippingStyles?.text]}>
1649
- {texts?.skippingMessage || 'Checking out...'}
1650
- </Text>
1651
- {!!skipBillingConfig?.isActivityIndicatorVisible && (
1652
- <ActivityIndicator
1653
- color={skippingStyles?.activityIndicator?.color || R.colors.black}
1654
- size={skippingStyles?.activityIndicator?.size || 'large'}
1655
- />
1656
- )}
1657
- </View>
1658
- </View>
1659
- )
1660
- }
1661
-
1662
- const renderContent = () => (
1663
- <>
1664
- <KeyboardAwareScrollView extraScrollHeight={32}>
1665
- <View style={styles?.rootContainer}>
1666
- <Login
1667
- onLoginSuccessful={handleOnLoginSuccess}
1668
- onLoginError={handleOnLoginError}
1669
- onLogoutSuccess={handleOnLogoutSuccess}
1670
- onLogoutError={onLogoutError}
1671
- isLoginDialogVisible={isLoginDialogVisible}
1672
- showLoginDialog={showLoginDialog}
1673
- hideLoginDialog={hideLoginDialog}
1674
- userFirstName={loggedUserFirstName}
1675
- texts={{ ...texts?.loginTexts, message: loginMessage }}
1676
- styles={styles?.loginStyles}
1677
- brandImages={loginBrandImages}
1678
- />
1679
- <Text style={styles?.screenTitle}>
1680
- {texts?.form?.getYourTicketsTitle || 'Get Your Tickets'}
1681
- </Text>
1682
-
1683
- <Input
1684
- label={texts?.form?.firstName || 'First name'}
1685
- value={firstName}
1686
- onChangeText={handleOnFirstNameChanged}
1687
- error={firstNameError || firstNameErrorState}
1688
- styles={styles?.inputStyles}
1689
- />
1690
- <Input
1691
- label={texts?.form?.lastName || 'Last name'}
1692
- value={lastName}
1693
- onChangeText={handleOnLastNameChanged}
1694
- error={lastNameError || lastNameErrorState}
1695
- styles={styles?.inputStyles}
1696
- />
1697
-
1698
- <Text style={styles?.texts}>
1699
- {texts?.form?.emailsAdvice ||
1700
- `IMPORTANT: Please double check that your email address is correct.\nIt's where we send your confirmation and e-tickets to!`}
1701
- </Text>
1702
-
1703
- <Input
1704
- label={texts?.form?.email || 'Email'}
1705
- value={email}
1706
- onChangeText={handleOnEmailChanged}
1707
- keyboardType="email-address"
1708
- error={emailError || emailErrorState}
1709
- styles={styles?.inputStyles}
1710
- autoCapitalize="none"
1711
- />
1712
- <Input
1713
- label={texts?.form?.confirmEmail || 'Confirm email'}
1714
- value={emailConfirmation}
1715
- onChangeText={handleOnEmailConfirmationChanged}
1716
- keyboardType="email-address"
1717
- error={confirmEmailError || emailConfirmationErrorState}
1718
- styles={styles?.inputStyles}
1719
- autoCapitalize="none"
1720
- />
1721
- {isAgeRequired && (
1722
- <DatePicker
1723
- text={texts?.form?.dateOfBirth || 'Date of Birth'}
1724
- onSelectDate={handleOnSelectDate}
1725
- selectedDate={dateOfBirth}
1726
- styles={styles?.datePicker}
1727
- error={dateOfBirthError}
1728
- />
1729
- )}
1730
- {!loggedUserFirstName && (
1731
- <>
1732
- <Text style={styles?.passwordTitle}>
1733
- {texts?.form?.choosePassword ||
1734
- 'Choose a password for your new TICKETFAIRY account'}
1735
- </Text>
1736
- <Input
1737
- label={texts?.form?.password || 'Password'}
1738
- isSecure
1739
- onChangeText={handleOnPasswordChanged}
1740
- error={passwordError || passwordErrorState}
1741
- styles={styles?.inputStyles}
1742
- autoCapitalize="none"
1743
- secureTextEntry={true}
1744
- textContentType="oneTimeCode"
1745
- />
1746
- <Input
1747
- label={texts?.form?.confirmPassword || 'Confirm password'}
1748
- isSecure
1749
- onChangeText={handleOnConfirmPasswordChanged}
1750
- error={confirmPasswordError || confirmPasswordErrorState}
1751
- styles={styles?.inputStyles}
1752
- autoCapitalize="none"
1753
- secureTextEntry={true}
1754
- textContentType="oneTimeCode"
1755
- />
1756
- </>
1757
- )}
1758
-
1759
- {!isPhoneHidden && (
1760
- <PhoneInput
1761
- phoneNumber={phone}
1762
- onChangePhoneNumber={handleOnChangePhoneNumber}
1763
- styles={styles?.phoneInputStyles}
1764
- error={phoneError}
1765
- texts={{
1766
- label: phoneLabel,
1767
- ...texts?.form?.phoneInput,
1768
- }}
1769
- />
1770
- )}
1771
-
1772
- {!isTicketFree && (
1773
- <>
1774
- <Input
1775
- label={addressLabel}
1776
- value={street}
1777
- onChangeText={handleOnStreetChanged}
1778
- error={streetError || streetErrorState}
1779
- styles={styles?.inputStyles}
1780
- />
1781
- <Input
1782
- label={texts?.form?.city || 'City'}
1783
- value={city}
1784
- onChangeText={handleOnCityChanged}
1785
- error={cityError || cityErrorState}
1786
- styles={styles?.inputStyles}
1787
- />
1788
- <DropdownMaterial
1789
- items={countries}
1790
- onSelectItem={handleOnCountryChanged}
1791
- selectedOption={selectedCountry}
1792
- styles={styles?.dropdownMaterialStyles}
1793
- materialInputProps={{
1794
- label: texts?.form?.country || 'Country',
1795
- error: countryErrorState,
1796
- }}
1797
- />
1798
- <Input
1799
- label={texts?.form?.zipCode || 'Postal Code / Zip Code'}
1800
- value={postalCode}
1801
- onChangeText={handleOnPostalCodeChanged}
1802
- error={postalCodeError || postalCodeErrorState}
1803
- styles={styles?.inputStyles}
1804
- />
1805
- <DropdownMaterial
1806
- items={states}
1807
- onSelectItem={handleOnStateChanged}
1808
- selectedOption={selectedState}
1809
- styles={styles?.dropdownMaterialStyles}
1810
- materialInputProps={{
1811
- label: texts?.form?.state || 'State',
1812
- error: stateErrorState,
1813
- }}
1814
- />
1815
- </>
1816
- )}
1817
- <Checkbox
1818
- onPress={handleIsSubToBrandToggle}
1819
- text={brandCheckBoxText}
1820
- isActive={isSubToBrand}
1821
- styles={styles?.checkboxStyles}
1822
- />
1823
-
1824
- {!isTtfCheckboxHidden && (
1825
- <Checkbox
1826
- onPress={handleIsSubToTicketFairyToggle}
1827
- isActive={isSubToTicketFairy}
1828
- customTextComp={
1829
- <Text
1830
- style={[
1831
- styles?.customCheckbox?.text,
1832
- !!ttfPrivacyPolicyError && {
1833
- color: styles?.customCheckbox?.errorColor,
1834
- },
1835
- ]}
1836
- >
1837
- {texts?.form?.isSubToTicketFairy ||
1838
- `I agree that The Ticket Fairy may use the personal data that have provided for marketing purposes, such as recommending events that I might be interested in, in accordance with its `}
1839
- <Text
1840
- style={styles?.privacyPolicyLinkStyle}
1841
- onPress={handleOpenPrivacyLink}
1842
- >
1843
- {texts?.form?.privacyPolicy || 'Privacy Policy'}
1844
- </Text>
1845
- .
1846
- </Text>
1847
- }
1848
- styles={{ error: s.ttfPolicyError, ...styles?.checkboxStyles }}
1849
- error={ttfPrivacyPolicyError}
1850
- />
1851
- )}
1852
-
1853
- {renderTicketHolders()}
1854
-
1855
- <Button
1856
- onPress={onSubmit}
1857
- text={texts?.checkoutButton || 'CHECKOUT'}
1858
- isDisabled={isButtonDisabled}
1859
- isLoading={isSubmittingData}
1860
- styles={
1861
- isButtonDisabled
1862
- ? {
1863
- button: s.submitButtonDisabled,
1864
- ...styles?.checkoutButtonDisabled,
1865
- }
1866
- : {
1867
- container: [s.submitButton, styles?.checkoutButton?.container],
1868
- text: styles?.checkoutButton?.text,
1869
- button: styles?.checkoutButton?.button,
1870
- }
1871
- }
1872
- />
1873
- </View>
1874
- {areLoadingIndicatorsEnabled && isLoading && <Loading />}
1875
- </KeyboardAwareScrollView>
1876
- <CartTimer
1877
- secondsLeft={secondsLeft}
1878
- styles={styles?.cartTimer}
1879
- texts={texts?.cartTimer}
1880
- shouldNotMinimize={shouldCartTimerNotMinimizeOnTap}
1881
- />
1882
- </>
1883
- )
1884
-
1885
- return (
1886
- <BillingCore
1887
- ref={billingCoreRef}
1888
- onSecondsLeftChange={setSecondsLeft}
1889
- onCartExpired={onCartExpired}
1890
- >
1891
- <SessionHandle ref={sessionHandleRef}>
1892
- {skippingStatus === 'skipping' && areLoadingIndicatorsEnabled
1893
- ? renderCheckingOut()
1894
- : renderContent()}
1895
- </SessionHandle>
1896
- </BillingCore>
1897
- )
1898
- //#endregion
1899
- }
1900
- )
1901
-
1902
- export default Billing