tf-checkout-react-native 1.0.47 → 2.0.0-beta.10

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 (720) hide show
  1. package/README.md +221 -3320
  2. package/dist/index.d.mts +11722 -0
  3. package/dist/index.d.ts +11722 -0
  4. package/dist/index.js +33655 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/index.mjs +33768 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/package.json +45 -59
  9. package/scripts/build-seat-map.mjs +31 -0
  10. package/scripts/seat-map-entry.jsx +22 -0
  11. package/scripts/verify-discussion-support.cjs +131 -0
  12. package/src/CardInput.tsx +110 -0
  13. package/src/EmbeddedCheckout.tsx +425 -0
  14. package/src/auth/AuthModal.tsx +398 -0
  15. package/src/auth/EmailCodeForm.tsx +91 -0
  16. package/src/auth/ForgotPasswordForm.tsx +98 -0
  17. package/src/auth/LoginForm.tsx +99 -0
  18. package/src/auth/PasswordInput.tsx +45 -0
  19. package/src/auth/RegisterForm.tsx +333 -0
  20. package/src/auth/ResetPasswordForm.tsx +112 -0
  21. package/src/auth/TwoFactorForm.tsx +74 -0
  22. package/src/auth/index.ts +11 -0
  23. package/src/configure.ts +31 -0
  24. package/src/confirmer.ts +272 -0
  25. package/src/generated/seatMapWidget.ts +3 -0
  26. package/src/index.tsx +25 -227
  27. package/src/instance.ts +13 -0
  28. package/src/sections/Accommodation.tsx +57 -0
  29. package/src/sections/AccountDeletion.tsx +347 -0
  30. package/src/sections/AccountEmailEnrichment.tsx +122 -0
  31. package/src/sections/AccountInformation.tsx +139 -0
  32. package/src/sections/AccountPaymentPlan.tsx +105 -0
  33. package/src/sections/AccountRewards.tsx +108 -0
  34. package/src/sections/AddOns.tsx +286 -0
  35. package/src/sections/BillingInfo.tsx +772 -0
  36. package/src/sections/Bundles.tsx +467 -0
  37. package/src/sections/Confirmation.tsx +143 -0
  38. package/src/sections/EventDiscussionView.tsx +655 -0
  39. package/src/sections/IDVerification.tsx +77 -0
  40. package/src/sections/NotificationPreferences.tsx +244 -0
  41. package/src/sections/OrderSummary.tsx +143 -0
  42. package/src/sections/Passes.tsx +177 -0
  43. package/src/sections/Payment.tsx +534 -0
  44. package/src/sections/PhoneAuthentication.tsx +371 -0
  45. package/src/sections/PostReaction.tsx +122 -0
  46. package/src/sections/ProfileSettings.tsx +446 -0
  47. package/src/sections/Rewards.tsx +320 -0
  48. package/src/sections/SeatMap.tsx +225 -0
  49. package/src/sections/SeatsIoMap.tsx +110 -0
  50. package/src/sections/Streaming.tsx +278 -0
  51. package/src/sections/TicketChange.tsx +379 -0
  52. package/src/sections/TicketGift.tsx +206 -0
  53. package/src/sections/TicketRefund.tsx +104 -0
  54. package/src/sections/Tickets.tsx +761 -0
  55. package/src/sections/Trips.tsx +87 -0
  56. package/src/sections/WaiverSigning.tsx +429 -0
  57. package/src/sections/billing/BillingAddressFields.tsx +126 -0
  58. package/src/sections/billing/BuyerField.tsx +78 -0
  59. package/src/sections/billing/PhoneIdentity.tsx +169 -0
  60. package/src/sections/billing/TicketHoldersCard.tsx +123 -0
  61. package/src/sections/billing/types.ts +10 -0
  62. package/src/sections/discussion/CommentImages.tsx +366 -0
  63. package/src/sections/discussion/SwipeReply.tsx +88 -0
  64. package/src/sections/index.ts +54 -0
  65. package/src/sections/rewards/RewardsLadder.tsx +167 -0
  66. package/src/sections/rewards/RewardsTree.tsx +117 -0
  67. package/src/storage.ts +26 -0
  68. package/src/ui/CheckoutProvider.tsx +176 -0
  69. package/src/ui/CustomFields.tsx +212 -0
  70. package/src/ui/Field.tsx +189 -0
  71. package/src/ui/Frozen.tsx +22 -0
  72. package/src/ui/InstallmentPicker.tsx +155 -0
  73. package/src/ui/PaymentMethods.tsx +180 -0
  74. package/src/ui/ProviderPages.tsx +214 -0
  75. package/src/ui/QuantitySelect.tsx +128 -0
  76. package/src/ui/Select.tsx +154 -0
  77. package/src/ui/SignaturePad.tsx +218 -0
  78. package/src/ui/Timer.tsx +69 -0
  79. package/src/ui/TimerBanner.tsx +95 -0
  80. package/src/ui/index.ts +20 -0
  81. package/src/ui/primitives.tsx +202 -0
  82. package/src/ui/theme.ts +89 -0
  83. package/src/ui/useAccountT.ts +16 -0
  84. package/src/useCheckout.ts +37 -0
  85. package/lib/brand-DA2IARBI.png +0 -0
  86. package/lib/ic_check-FLIJQ3BY.png +0 -0
  87. package/lib/ic_clock-BZ4Z7PIP.png +0 -0
  88. package/lib/ic_copy-VWMA4B7X.png +0 -0
  89. package/lib/ic_dropdown-BCS3QDNJ.png +0 -0
  90. package/lib/ic_error-KDEZUPSN.png +0 -0
  91. package/lib/ic_eye-WGXVXVAN.png +0 -0
  92. package/lib/ic_eye_off-XTCE6XSO.png +0 -0
  93. package/lib/ic_more-LZWKYCDU.png +0 -0
  94. package/lib/ic_next-LCNIGEDM.png +0 -0
  95. package/lib/index.js +0 -18222
  96. package/lib/index.js.map +0 -1
  97. package/lib/index.mjs +0 -18309
  98. package/lib/index.mjs.map +0 -1
  99. package/lib/typescript/package.json +0 -1
  100. package/lib/typescript/src/api/ApiClient.d.ts +0 -49
  101. package/lib/typescript/src/api/ApiClient.d.ts.map +0 -1
  102. package/lib/typescript/src/api/Constants.d.ts +0 -11
  103. package/lib/typescript/src/api/Constants.d.ts.map +0 -1
  104. package/lib/typescript/src/api/ErrorHandler.d.ts +0 -12
  105. package/lib/typescript/src/api/ErrorHandler.d.ts.map +0 -1
  106. package/lib/typescript/src/api/api.types.d.ts +0 -8
  107. package/lib/typescript/src/api/api.types.d.ts.map +0 -1
  108. package/lib/typescript/src/api/types.d.ts +0 -518
  109. package/lib/typescript/src/api/types.d.ts.map +0 -1
  110. package/lib/typescript/src/apiv2/index.d.ts +0 -3
  111. package/lib/typescript/src/apiv2/index.d.ts.map +0 -1
  112. package/lib/typescript/src/common/query.types.d.ts +0 -3
  113. package/lib/typescript/src/common/query.types.d.ts.map +0 -1
  114. package/lib/typescript/src/components/bottomSheetModal/BottomSheetModal.d.ts +0 -8
  115. package/lib/typescript/src/components/bottomSheetModal/BottomSheetModal.d.ts.map +0 -1
  116. package/lib/typescript/src/components/bottomSheetModal/BottomSheetModalStyles.d.ts +0 -39
  117. package/lib/typescript/src/components/bottomSheetModal/BottomSheetModalStyles.d.ts.map +0 -1
  118. package/lib/typescript/src/components/bottomSheetModal/BottomSheetModalTypes.d.ts +0 -23
  119. package/lib/typescript/src/components/bottomSheetModal/BottomSheetModalTypes.d.ts.map +0 -1
  120. package/lib/typescript/src/components/button/Button.d.ts +0 -5
  121. package/lib/typescript/src/components/button/Button.d.ts.map +0 -1
  122. package/lib/typescript/src/components/button/styles.d.ts +0 -28
  123. package/lib/typescript/src/components/button/styles.d.ts.map +0 -1
  124. package/lib/typescript/src/components/button/types.d.ts +0 -15
  125. package/lib/typescript/src/components/button/types.d.ts.map +0 -1
  126. package/lib/typescript/src/components/cartTimer/CartTimer.d.ts +0 -5
  127. package/lib/typescript/src/components/cartTimer/CartTimer.d.ts.map +0 -1
  128. package/lib/typescript/src/components/cartTimer/styles.d.ts +0 -47
  129. package/lib/typescript/src/components/cartTimer/styles.d.ts.map +0 -1
  130. package/lib/typescript/src/components/cartTimer/types.d.ts +0 -19
  131. package/lib/typescript/src/components/cartTimer/types.d.ts.map +0 -1
  132. package/lib/typescript/src/components/checkbox/Checkbox.d.ts +0 -4
  133. package/lib/typescript/src/components/checkbox/Checkbox.d.ts.map +0 -1
  134. package/lib/typescript/src/components/checkbox/styles.d.ts +0 -39
  135. package/lib/typescript/src/components/checkbox/styles.d.ts.map +0 -1
  136. package/lib/typescript/src/components/checkbox/types.d.ts +0 -22
  137. package/lib/typescript/src/components/checkbox/types.d.ts.map +0 -1
  138. package/lib/typescript/src/components/datePicker/DatePicker.d.ts +0 -4
  139. package/lib/typescript/src/components/datePicker/DatePicker.d.ts.map +0 -1
  140. package/lib/typescript/src/components/datePicker/styles.d.ts +0 -35
  141. package/lib/typescript/src/components/datePicker/styles.d.ts.map +0 -1
  142. package/lib/typescript/src/components/datePicker/types.d.ts +0 -20
  143. package/lib/typescript/src/components/datePicker/types.d.ts.map +0 -1
  144. package/lib/typescript/src/components/dropdown/Dropdown.d.ts +0 -4
  145. package/lib/typescript/src/components/dropdown/Dropdown.d.ts.map +0 -1
  146. package/lib/typescript/src/components/dropdown/DropdownListItem.d.ts +0 -4
  147. package/lib/typescript/src/components/dropdown/DropdownListItem.d.ts.map +0 -1
  148. package/lib/typescript/src/components/dropdown/styles.d.ts +0 -85
  149. package/lib/typescript/src/components/dropdown/styles.d.ts.map +0 -1
  150. package/lib/typescript/src/components/dropdown/types.d.ts +0 -35
  151. package/lib/typescript/src/components/dropdown/types.d.ts.map +0 -1
  152. package/lib/typescript/src/components/dropdownMaterial/DropdownMaterial.d.ts +0 -4
  153. package/lib/typescript/src/components/dropdownMaterial/DropdownMaterial.d.ts.map +0 -1
  154. package/lib/typescript/src/components/dropdownMaterial/styles.d.ts +0 -79
  155. package/lib/typescript/src/components/dropdownMaterial/styles.d.ts.map +0 -1
  156. package/lib/typescript/src/components/dropdownMaterial/types.d.ts +0 -22
  157. package/lib/typescript/src/components/dropdownMaterial/types.d.ts.map +0 -1
  158. package/lib/typescript/src/components/enterPassword/EnterPassword.d.ts +0 -5
  159. package/lib/typescript/src/components/enterPassword/EnterPassword.d.ts.map +0 -1
  160. package/lib/typescript/src/components/enterPassword/styles.d.ts +0 -21
  161. package/lib/typescript/src/components/enterPassword/styles.d.ts.map +0 -1
  162. package/lib/typescript/src/components/enterPassword/types.d.ts +0 -24
  163. package/lib/typescript/src/components/enterPassword/types.d.ts.map +0 -1
  164. package/lib/typescript/src/components/formField/FormField.d.ts +0 -4
  165. package/lib/typescript/src/components/formField/FormField.d.ts.map +0 -1
  166. package/lib/typescript/src/components/formField/styles.d.ts +0 -35
  167. package/lib/typescript/src/components/formField/styles.d.ts.map +0 -1
  168. package/lib/typescript/src/components/formField/types.d.ts +0 -48
  169. package/lib/typescript/src/components/formField/types.d.ts.map +0 -1
  170. package/lib/typescript/src/components/index.d.ts +0 -21
  171. package/lib/typescript/src/components/index.d.ts.map +0 -1
  172. package/lib/typescript/src/components/input/Input.d.ts +0 -4
  173. package/lib/typescript/src/components/input/Input.d.ts.map +0 -1
  174. package/lib/typescript/src/components/input/styles.d.ts +0 -47
  175. package/lib/typescript/src/components/input/styles.d.ts.map +0 -1
  176. package/lib/typescript/src/components/input/types.d.ts +0 -28
  177. package/lib/typescript/src/components/input/types.d.ts.map +0 -1
  178. package/lib/typescript/src/components/loading/Loading.d.ts +0 -4
  179. package/lib/typescript/src/components/loading/Loading.d.ts.map +0 -1
  180. package/lib/typescript/src/components/loading/styles.d.ts +0 -30
  181. package/lib/typescript/src/components/loading/styles.d.ts.map +0 -1
  182. package/lib/typescript/src/components/loading/types.d.ts +0 -15
  183. package/lib/typescript/src/components/loading/types.d.ts.map +0 -1
  184. package/lib/typescript/src/components/loggedIn/LoggedIn.d.ts +0 -5
  185. package/lib/typescript/src/components/loggedIn/LoggedIn.d.ts.map +0 -1
  186. package/lib/typescript/src/components/loggedIn/styles.d.ts +0 -9
  187. package/lib/typescript/src/components/loggedIn/styles.d.ts.map +0 -1
  188. package/lib/typescript/src/components/loggedIn/types.d.ts +0 -24
  189. package/lib/typescript/src/components/loggedIn/types.d.ts.map +0 -1
  190. package/lib/typescript/src/components/login/Login.d.ts +0 -5
  191. package/lib/typescript/src/components/login/Login.d.ts.map +0 -1
  192. package/lib/typescript/src/components/login/LoginView.d.ts +0 -5
  193. package/lib/typescript/src/components/login/LoginView.d.ts.map +0 -1
  194. package/lib/typescript/src/components/login/components/LoginForm.d.ts +0 -5
  195. package/lib/typescript/src/components/login/components/LoginForm.d.ts.map +0 -1
  196. package/lib/typescript/src/components/login/components/types.d.ts +0 -19
  197. package/lib/typescript/src/components/login/components/types.d.ts.map +0 -1
  198. package/lib/typescript/src/components/login/styles.d.ts +0 -62
  199. package/lib/typescript/src/components/login/styles.d.ts.map +0 -1
  200. package/lib/typescript/src/components/login/types.d.ts +0 -144
  201. package/lib/typescript/src/components/login/types.d.ts.map +0 -1
  202. package/lib/typescript/src/components/phoneInput/PhoneInput.d.ts +0 -5
  203. package/lib/typescript/src/components/phoneInput/PhoneInput.d.ts.map +0 -1
  204. package/lib/typescript/src/components/phoneInput/styles.d.ts +0 -29
  205. package/lib/typescript/src/components/phoneInput/styles.d.ts.map +0 -1
  206. package/lib/typescript/src/components/phoneInput/types.d.ts +0 -31
  207. package/lib/typescript/src/components/phoneInput/types.d.ts.map +0 -1
  208. package/lib/typescript/src/components/promoCode/PromoCode.d.ts +0 -5
  209. package/lib/typescript/src/components/promoCode/PromoCode.d.ts.map +0 -1
  210. package/lib/typescript/src/components/promoCode/styles.d.ts +0 -61
  211. package/lib/typescript/src/components/promoCode/styles.d.ts.map +0 -1
  212. package/lib/typescript/src/components/promoCode/types.d.ts +0 -36
  213. package/lib/typescript/src/components/promoCode/types.d.ts.map +0 -1
  214. package/lib/typescript/src/components/radioButton/RadioButton.d.ts +0 -5
  215. package/lib/typescript/src/components/radioButton/RadioButton.d.ts.map +0 -1
  216. package/lib/typescript/src/components/radioButton/styles.d.ts +0 -25
  217. package/lib/typescript/src/components/radioButton/styles.d.ts.map +0 -1
  218. package/lib/typescript/src/components/radioButton/types.d.ts +0 -16
  219. package/lib/typescript/src/components/radioButton/types.d.ts.map +0 -1
  220. package/lib/typescript/src/components/radioGroup/RadioGroup.d.ts +0 -4
  221. package/lib/typescript/src/components/radioGroup/RadioGroup.d.ts.map +0 -1
  222. package/lib/typescript/src/components/radioGroup/index.d.ts +0 -4
  223. package/lib/typescript/src/components/radioGroup/index.d.ts.map +0 -1
  224. package/lib/typescript/src/components/radioGroup/types.d.ts +0 -24
  225. package/lib/typescript/src/components/radioGroup/types.d.ts.map +0 -1
  226. package/lib/typescript/src/components/restorePassword/RestorePassword.d.ts +0 -5
  227. package/lib/typescript/src/components/restorePassword/RestorePassword.d.ts.map +0 -1
  228. package/lib/typescript/src/components/restorePassword/ResultDialog.d.ts +0 -5
  229. package/lib/typescript/src/components/restorePassword/ResultDialog.d.ts.map +0 -1
  230. package/lib/typescript/src/components/restorePassword/styles.d.ts +0 -34
  231. package/lib/typescript/src/components/restorePassword/styles.d.ts.map +0 -1
  232. package/lib/typescript/src/components/restorePassword/types.d.ts +0 -49
  233. package/lib/typescript/src/components/restorePassword/types.d.ts.map +0 -1
  234. package/lib/typescript/src/components/separator/Separator.d.ts +0 -4
  235. package/lib/typescript/src/components/separator/Separator.d.ts.map +0 -1
  236. package/lib/typescript/src/components/separator/types.d.ts +0 -9
  237. package/lib/typescript/src/components/separator/types.d.ts.map +0 -1
  238. package/lib/typescript/src/components/stripePayment/StripePayment.d.ts +0 -5
  239. package/lib/typescript/src/components/stripePayment/StripePayment.d.ts.map +0 -1
  240. package/lib/typescript/src/components/stripePayment/styles.d.ts +0 -7
  241. package/lib/typescript/src/components/stripePayment/styles.d.ts.map +0 -1
  242. package/lib/typescript/src/components/stripePayment/types.d.ts +0 -14
  243. package/lib/typescript/src/components/stripePayment/types.d.ts.map +0 -1
  244. package/lib/typescript/src/components/waitingList/WaitingList.d.ts +0 -6
  245. package/lib/typescript/src/components/waitingList/WaitingList.d.ts.map +0 -1
  246. package/lib/typescript/src/components/waitingList/WaitingListView.d.ts +0 -5
  247. package/lib/typescript/src/components/waitingList/WaitingListView.d.ts.map +0 -1
  248. package/lib/typescript/src/components/waitingList/styles.d.ts +0 -9
  249. package/lib/typescript/src/components/waitingList/styles.d.ts.map +0 -1
  250. package/lib/typescript/src/components/waitingList/types.d.ts +0 -59
  251. package/lib/typescript/src/components/waitingList/types.d.ts.map +0 -1
  252. package/lib/typescript/src/containers/billingInfo/Billing.d.ts +0 -6
  253. package/lib/typescript/src/containers/billingInfo/Billing.d.ts.map +0 -1
  254. package/lib/typescript/src/containers/billingInfo/styles.d.ts +0 -61
  255. package/lib/typescript/src/containers/billingInfo/styles.d.ts.map +0 -1
  256. package/lib/typescript/src/containers/billingInfo/types.d.ts +0 -160
  257. package/lib/typescript/src/containers/billingInfo/types.d.ts.map +0 -1
  258. package/lib/typescript/src/containers/checkout/Checkout.d.ts +0 -7
  259. package/lib/typescript/src/containers/checkout/Checkout.d.ts.map +0 -1
  260. package/lib/typescript/src/containers/checkout/CheckoutData.d.ts +0 -3
  261. package/lib/typescript/src/containers/checkout/CheckoutData.d.ts.map +0 -1
  262. package/lib/typescript/src/containers/checkout/components/Conditions.d.ts +0 -4
  263. package/lib/typescript/src/containers/checkout/components/Conditions.d.ts.map +0 -1
  264. package/lib/typescript/src/containers/checkout/components/OrderReview.d.ts +0 -4
  265. package/lib/typescript/src/containers/checkout/components/OrderReview.d.ts.map +0 -1
  266. package/lib/typescript/src/containers/checkout/components/styles.d.ts +0 -26
  267. package/lib/typescript/src/containers/checkout/components/styles.d.ts.map +0 -1
  268. package/lib/typescript/src/containers/checkout/styles.d.ts +0 -42
  269. package/lib/typescript/src/containers/checkout/styles.d.ts.map +0 -1
  270. package/lib/typescript/src/containers/checkout/types.d.ts +0 -126
  271. package/lib/typescript/src/containers/checkout/types.d.ts.map +0 -1
  272. package/lib/typescript/src/containers/index.d.ts +0 -9
  273. package/lib/typescript/src/containers/index.d.ts.map +0 -1
  274. package/lib/typescript/src/containers/myOrderDetails/MyOrderDetails.d.ts +0 -6
  275. package/lib/typescript/src/containers/myOrderDetails/MyOrderDetails.d.ts.map +0 -1
  276. package/lib/typescript/src/containers/myOrderDetails/MyOrderDetailsView.d.ts +0 -5
  277. package/lib/typescript/src/containers/myOrderDetails/MyOrderDetailsView.d.ts.map +0 -1
  278. package/lib/typescript/src/containers/myOrderDetails/components/Notification.d.ts +0 -15
  279. package/lib/typescript/src/containers/myOrderDetails/components/Notification.d.ts.map +0 -1
  280. package/lib/typescript/src/containers/myOrderDetails/components/OrderListItem.d.ts +0 -3
  281. package/lib/typescript/src/containers/myOrderDetails/components/OrderListItem.d.ts.map +0 -1
  282. package/lib/typescript/src/containers/myOrderDetails/components/TicketActions/TicketActions.d.ts +0 -5
  283. package/lib/typescript/src/containers/myOrderDetails/components/TicketActions/TicketActions.d.ts.map +0 -1
  284. package/lib/typescript/src/containers/myOrderDetails/components/TicketActions/TicketActionsTypes.d.ts +0 -30
  285. package/lib/typescript/src/containers/myOrderDetails/components/TicketActions/TicketActionsTypes.d.ts.map +0 -1
  286. package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItem.d.ts +0 -8
  287. package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItem.d.ts.map +0 -1
  288. package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItemStyles.d.ts +0 -33
  289. package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItemStyles.d.ts.map +0 -1
  290. package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItemTypes.d.ts +0 -30
  291. package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItemTypes.d.ts.map +0 -1
  292. package/lib/typescript/src/containers/myOrderDetails/components/styles.d.ts +0 -39
  293. package/lib/typescript/src/containers/myOrderDetails/components/styles.d.ts.map +0 -1
  294. package/lib/typescript/src/containers/myOrderDetails/styles.d.ts +0 -55
  295. package/lib/typescript/src/containers/myOrderDetails/styles.d.ts.map +0 -1
  296. package/lib/typescript/src/containers/myOrderDetails/types.d.ts +0 -126
  297. package/lib/typescript/src/containers/myOrderDetails/types.d.ts.map +0 -1
  298. package/lib/typescript/src/containers/myOrders/MyOrders.d.ts +0 -6
  299. package/lib/typescript/src/containers/myOrders/MyOrders.d.ts.map +0 -1
  300. package/lib/typescript/src/containers/myOrders/MyOrdersView.d.ts +0 -5
  301. package/lib/typescript/src/containers/myOrders/MyOrdersView.d.ts.map +0 -1
  302. package/lib/typescript/src/containers/myOrders/components/OrderListItem.d.ts +0 -5
  303. package/lib/typescript/src/containers/myOrders/components/OrderListItem.d.ts.map +0 -1
  304. package/lib/typescript/src/containers/myOrders/components/styles.d.ts +0 -56
  305. package/lib/typescript/src/containers/myOrders/components/styles.d.ts.map +0 -1
  306. package/lib/typescript/src/containers/myOrders/components/types.d.ts +0 -26
  307. package/lib/typescript/src/containers/myOrders/components/types.d.ts.map +0 -1
  308. package/lib/typescript/src/containers/myOrders/styles.d.ts +0 -37
  309. package/lib/typescript/src/containers/myOrders/styles.d.ts.map +0 -1
  310. package/lib/typescript/src/containers/myOrders/types.d.ts +0 -73
  311. package/lib/typescript/src/containers/myOrders/types.d.ts.map +0 -1
  312. package/lib/typescript/src/containers/purchaseConfirmation/PurchaseConfirmation.d.ts +0 -6
  313. package/lib/typescript/src/containers/purchaseConfirmation/PurchaseConfirmation.d.ts.map +0 -1
  314. package/lib/typescript/src/containers/purchaseConfirmation/PurchaseConfirmationView.d.ts +0 -5
  315. package/lib/typescript/src/containers/purchaseConfirmation/PurchaseConfirmationView.d.ts.map +0 -1
  316. package/lib/typescript/src/containers/purchaseConfirmation/styles.d.ts +0 -74
  317. package/lib/typescript/src/containers/purchaseConfirmation/styles.d.ts.map +0 -1
  318. package/lib/typescript/src/containers/purchaseConfirmation/types.d.ts +0 -66
  319. package/lib/typescript/src/containers/purchaseConfirmation/types.d.ts.map +0 -1
  320. package/lib/typescript/src/containers/resaleTickets/ResaleTickets.d.ts +0 -6
  321. package/lib/typescript/src/containers/resaleTickets/ResaleTickets.d.ts.map +0 -1
  322. package/lib/typescript/src/containers/resaleTickets/ResaleTicketsView.d.ts +0 -5
  323. package/lib/typescript/src/containers/resaleTickets/ResaleTicketsView.d.ts.map +0 -1
  324. package/lib/typescript/src/containers/resaleTickets/types.d.ts +0 -129
  325. package/lib/typescript/src/containers/resaleTickets/types.d.ts.map +0 -1
  326. package/lib/typescript/src/containers/resetPassword/ResetPassword.d.ts +0 -5
  327. package/lib/typescript/src/containers/resetPassword/ResetPassword.d.ts.map +0 -1
  328. package/lib/typescript/src/containers/resetPassword/ResetPasswordView.d.ts +0 -5
  329. package/lib/typescript/src/containers/resetPassword/ResetPasswordView.d.ts.map +0 -1
  330. package/lib/typescript/src/containers/resetPassword/styles.d.ts +0 -33
  331. package/lib/typescript/src/containers/resetPassword/styles.d.ts.map +0 -1
  332. package/lib/typescript/src/containers/resetPassword/types.d.ts +0 -48
  333. package/lib/typescript/src/containers/resetPassword/types.d.ts.map +0 -1
  334. package/lib/typescript/src/containers/tickets/Tickets.d.ts +0 -6
  335. package/lib/typescript/src/containers/tickets/Tickets.d.ts.map +0 -1
  336. package/lib/typescript/src/containers/tickets/TicketsView.d.ts +0 -4
  337. package/lib/typescript/src/containers/tickets/TicketsView.d.ts.map +0 -1
  338. package/lib/typescript/src/containers/tickets/components/TicketGroupListHeader.d.ts +0 -5
  339. package/lib/typescript/src/containers/tickets/components/TicketGroupListHeader.d.ts.map +0 -1
  340. package/lib/typescript/src/containers/tickets/components/TicketListItem.d.ts +0 -4
  341. package/lib/typescript/src/containers/tickets/components/TicketListItem.d.ts.map +0 -1
  342. package/lib/typescript/src/containers/tickets/components/styles.d.ts +0 -51
  343. package/lib/typescript/src/containers/tickets/components/styles.d.ts.map +0 -1
  344. package/lib/typescript/src/containers/tickets/components/types.d.ts +0 -40
  345. package/lib/typescript/src/containers/tickets/components/types.d.ts.map +0 -1
  346. package/lib/typescript/src/containers/tickets/styles.d.ts +0 -20
  347. package/lib/typescript/src/containers/tickets/styles.d.ts.map +0 -1
  348. package/lib/typescript/src/containers/tickets/types.d.ts +0 -114
  349. package/lib/typescript/src/containers/tickets/types.d.ts.map +0 -1
  350. package/lib/typescript/src/core/BillingCore/BillingCore.d.ts +0 -13
  351. package/lib/typescript/src/core/BillingCore/BillingCore.d.ts.map +0 -1
  352. package/lib/typescript/src/core/BillingCore/BillingCoreTypes.d.ts +0 -24
  353. package/lib/typescript/src/core/BillingCore/BillingCoreTypes.d.ts.map +0 -1
  354. package/lib/typescript/src/core/CheckoutCore/CheckoutCore.d.ts +0 -15
  355. package/lib/typescript/src/core/CheckoutCore/CheckoutCore.d.ts.map +0 -1
  356. package/lib/typescript/src/core/CheckoutCore/CheckoutCoreTypes.d.ts +0 -17
  357. package/lib/typescript/src/core/CheckoutCore/CheckoutCoreTypes.d.ts.map +0 -1
  358. package/lib/typescript/src/core/CoreProps.d.ts +0 -5
  359. package/lib/typescript/src/core/CoreProps.d.ts.map +0 -1
  360. package/lib/typescript/src/core/LoginCore/LoginCore.d.ts +0 -6
  361. package/lib/typescript/src/core/LoginCore/LoginCore.d.ts.map +0 -1
  362. package/lib/typescript/src/core/LoginCore/LoginCoreHelper.d.ts +0 -3
  363. package/lib/typescript/src/core/LoginCore/LoginCoreHelper.d.ts.map +0 -1
  364. package/lib/typescript/src/core/LoginCore/LoginCoreTypes.d.ts +0 -15
  365. package/lib/typescript/src/core/LoginCore/LoginCoreTypes.d.ts.map +0 -1
  366. package/lib/typescript/src/core/MyOrdersCore/MyOrdersCore.d.ts +0 -6
  367. package/lib/typescript/src/core/MyOrdersCore/MyOrdersCore.d.ts.map +0 -1
  368. package/lib/typescript/src/core/MyOrdersCore/MyOrdersCoreTypes.d.ts +0 -10
  369. package/lib/typescript/src/core/MyOrdersCore/MyOrdersCoreTypes.d.ts.map +0 -1
  370. package/lib/typescript/src/core/OrderDetailsCore/OrderDetailsCore.d.ts +0 -6
  371. package/lib/typescript/src/core/OrderDetailsCore/OrderDetailsCore.d.ts.map +0 -1
  372. package/lib/typescript/src/core/OrderDetailsCore/OrderDetailsCoreTypes.d.ts +0 -9
  373. package/lib/typescript/src/core/OrderDetailsCore/OrderDetailsCoreTypes.d.ts.map +0 -1
  374. package/lib/typescript/src/core/PurchaseConfirmationCore/PurchaseConfirmationCore.d.ts +0 -6
  375. package/lib/typescript/src/core/PurchaseConfirmationCore/PurchaseConfirmationCore.d.ts.map +0 -1
  376. package/lib/typescript/src/core/PurchaseConfirmationCore/PurchaseConfirmationCoreTypes.d.ts +0 -8
  377. package/lib/typescript/src/core/PurchaseConfirmationCore/PurchaseConfirmationCoreTypes.d.ts.map +0 -1
  378. package/lib/typescript/src/core/ResetPasswordCore/ResetPasswordCore.d.ts +0 -6
  379. package/lib/typescript/src/core/ResetPasswordCore/ResetPasswordCore.d.ts.map +0 -1
  380. package/lib/typescript/src/core/ResetPasswordCore/ResetPasswordCoreTypes.d.ts +0 -5
  381. package/lib/typescript/src/core/ResetPasswordCore/ResetPasswordCoreTypes.d.ts.map +0 -1
  382. package/lib/typescript/src/core/Session/SessionCoreTypes.d.ts +0 -9
  383. package/lib/typescript/src/core/Session/SessionCoreTypes.d.ts.map +0 -1
  384. package/lib/typescript/src/core/Session/SessionHandle.d.ts +0 -6
  385. package/lib/typescript/src/core/Session/SessionHandle.d.ts.map +0 -1
  386. package/lib/typescript/src/core/TicketsCore/TicketsCore.d.ts +0 -6
  387. package/lib/typescript/src/core/TicketsCore/TicketsCore.d.ts.map +0 -1
  388. package/lib/typescript/src/core/TicketsCore/TicketsCoreTypes.d.ts +0 -40
  389. package/lib/typescript/src/core/TicketsCore/TicketsCoreTypes.d.ts.map +0 -1
  390. package/lib/typescript/src/core/WaitingListCore/WaitingListCore.d.ts +0 -6
  391. package/lib/typescript/src/core/WaitingListCore/WaitingListCore.d.ts.map +0 -1
  392. package/lib/typescript/src/core/WaitingListCore/WaitingListCoreTypes.d.ts +0 -12
  393. package/lib/typescript/src/core/WaitingListCore/WaitingListCoreTypes.d.ts.map +0 -1
  394. package/lib/typescript/src/core/index.d.ts +0 -21
  395. package/lib/typescript/src/core/index.d.ts.map +0 -1
  396. package/lib/typescript/src/features/auth/api-hooks.d.ts +0 -178
  397. package/lib/typescript/src/features/auth/api-hooks.d.ts.map +0 -1
  398. package/lib/typescript/src/features/auth/types.d.ts +0 -51
  399. package/lib/typescript/src/features/auth/types.d.ts.map +0 -1
  400. package/lib/typescript/src/features/auth/utils.d.ts +0 -3
  401. package/lib/typescript/src/features/auth/utils.d.ts.map +0 -1
  402. package/lib/typescript/src/features/checkout-v2/components/AddonsContainer.d.ts +0 -37
  403. package/lib/typescript/src/features/checkout-v2/components/AddonsContainer.d.ts.map +0 -1
  404. package/lib/typescript/src/features/checkout-v2/components/Conditions.d.ts +0 -30
  405. package/lib/typescript/src/features/checkout-v2/components/Conditions.d.ts.map +0 -1
  406. package/lib/typescript/src/features/checkout-v2/components/OrderReview.d.ts +0 -25
  407. package/lib/typescript/src/features/checkout-v2/components/OrderReview.d.ts.map +0 -1
  408. package/lib/typescript/src/features/checkout-v2/components/TicketHoldersSection.d.ts +0 -14
  409. package/lib/typescript/src/features/checkout-v2/components/TicketHoldersSection.d.ts.map +0 -1
  410. package/lib/typescript/src/features/checkout-v2/form/config.d.ts +0 -61
  411. package/lib/typescript/src/features/checkout-v2/form/config.d.ts.map +0 -1
  412. package/lib/typescript/src/features/checkout-v2/form/index.d.ts +0 -22
  413. package/lib/typescript/src/features/checkout-v2/form/index.d.ts.map +0 -1
  414. package/lib/typescript/src/features/checkout-v2/form/styles.d.ts +0 -4501
  415. package/lib/typescript/src/features/checkout-v2/form/styles.d.ts.map +0 -1
  416. package/lib/typescript/src/features/checkout-v2/form/texts.d.ts +0 -4
  417. package/lib/typescript/src/features/checkout-v2/form/texts.d.ts.map +0 -1
  418. package/lib/typescript/src/features/checkout-v2/form/types.d.ts +0 -191
  419. package/lib/typescript/src/features/checkout-v2/form/types.d.ts.map +0 -1
  420. package/lib/typescript/src/features/checkout-v2/hooks/api-hooks.d.ts +0 -227
  421. package/lib/typescript/src/features/checkout-v2/hooks/api-hooks.d.ts.map +0 -1
  422. package/lib/typescript/src/features/checkout-v2/hooks/use-checkout.d.ts +0 -37
  423. package/lib/typescript/src/features/checkout-v2/hooks/use-checkout.d.ts.map +0 -1
  424. package/lib/typescript/src/features/checkout-v2/index.d.ts +0 -42
  425. package/lib/typescript/src/features/checkout-v2/index.d.ts.map +0 -1
  426. package/lib/typescript/src/features/checkout-v2/types.d.ts +0 -433
  427. package/lib/typescript/src/features/checkout-v2/types.d.ts.map +0 -1
  428. package/lib/typescript/src/features/checkout-v2/utils.d.ts +0 -12
  429. package/lib/typescript/src/features/checkout-v2/utils.d.ts.map +0 -1
  430. package/lib/typescript/src/features/event/api-hooks.d.ts +0 -171
  431. package/lib/typescript/src/features/event/api-hooks.d.ts.map +0 -1
  432. package/lib/typescript/src/features/event/types.d.ts +0 -58
  433. package/lib/typescript/src/features/event/types.d.ts.map +0 -1
  434. package/lib/typescript/src/features/form/index.d.ts +0 -24
  435. package/lib/typescript/src/features/form/index.d.ts.map +0 -1
  436. package/lib/typescript/src/features/form/styles.d.ts +0 -35
  437. package/lib/typescript/src/features/form/styles.d.ts.map +0 -1
  438. package/lib/typescript/src/features/form/types.d.ts +0 -33
  439. package/lib/typescript/src/features/form/types.d.ts.map +0 -1
  440. package/lib/typescript/src/features/geo/api-hooks.d.ts +0 -12
  441. package/lib/typescript/src/features/geo/api-hooks.d.ts.map +0 -1
  442. package/lib/typescript/src/features/geo/types.d.ts +0 -13
  443. package/lib/typescript/src/features/geo/types.d.ts.map +0 -1
  444. package/lib/typescript/src/helpers/Config.d.ts +0 -24
  445. package/lib/typescript/src/helpers/Config.d.ts.map +0 -1
  446. package/lib/typescript/src/helpers/CountryCodes.d.ts +0 -16
  447. package/lib/typescript/src/helpers/CountryCodes.d.ts.map +0 -1
  448. package/lib/typescript/src/helpers/Debounced.d.ts +0 -2
  449. package/lib/typescript/src/helpers/Debounced.d.ts.map +0 -1
  450. package/lib/typescript/src/helpers/Domains.d.ts +0 -3
  451. package/lib/typescript/src/helpers/Domains.d.ts.map +0 -1
  452. package/lib/typescript/src/helpers/LocalStorage.d.ts +0 -27
  453. package/lib/typescript/src/helpers/LocalStorage.d.ts.map +0 -1
  454. package/lib/typescript/src/helpers/RefreshAccessToken.d.ts +0 -3
  455. package/lib/typescript/src/helpers/RefreshAccessToken.d.ts.map +0 -1
  456. package/lib/typescript/src/helpers/StringsHelper.d.ts +0 -3
  457. package/lib/typescript/src/helpers/StringsHelper.d.ts.map +0 -1
  458. package/lib/typescript/src/helpers/Validators.d.ts +0 -16
  459. package/lib/typescript/src/helpers/Validators.d.ts.map +0 -1
  460. package/lib/typescript/src/index.d.ts +0 -49
  461. package/lib/typescript/src/index.d.ts.map +0 -1
  462. package/lib/typescript/src/res/colors.d.ts +0 -16
  463. package/lib/typescript/src/res/colors.d.ts.map +0 -1
  464. package/lib/typescript/src/res/icons.d.ts +0 -13
  465. package/lib/typescript/src/res/icons.d.ts.map +0 -1
  466. package/lib/typescript/src/res/images.d.ts +0 -5
  467. package/lib/typescript/src/res/images.d.ts.map +0 -1
  468. package/lib/typescript/src/res/index.d.ts +0 -32
  469. package/lib/typescript/src/res/index.d.ts.map +0 -1
  470. package/lib/typescript/src/types/IAccountTickets.d.ts +0 -71
  471. package/lib/typescript/src/types/IAccountTickets.d.ts.map +0 -1
  472. package/lib/typescript/src/types/ICountry.d.ts +0 -2
  473. package/lib/typescript/src/types/ICountry.d.ts.map +0 -1
  474. package/lib/typescript/src/types/IError.d.ts +0 -6
  475. package/lib/typescript/src/types/IError.d.ts.map +0 -1
  476. package/lib/typescript/src/types/IEvent.d.ts +0 -87
  477. package/lib/typescript/src/types/IEvent.d.ts.map +0 -1
  478. package/lib/typescript/src/types/ITicket.d.ts +0 -71
  479. package/lib/typescript/src/types/ITicket.d.ts.map +0 -1
  480. package/lib/typescript/src/types/IUserProfile.d.ts +0 -30
  481. package/lib/typescript/src/types/IUserProfile.d.ts.map +0 -1
  482. package/lib/typescript/src/types/index.d.ts +0 -6
  483. package/lib/typescript/src/types/index.d.ts.map +0 -1
  484. package/lib/typescript/src/utils/Logger.d.ts +0 -21
  485. package/lib/typescript/src/utils/Logger.d.ts.map +0 -1
  486. package/lib/typescript/src/utils/handlers.d.ts +0 -9
  487. package/lib/typescript/src/utils/handlers.d.ts.map +0 -1
  488. package/lib/typescript/src/utils/storageAdapter.d.ts +0 -14
  489. package/lib/typescript/src/utils/storageAdapter.d.ts.map +0 -1
  490. package/lib/typescript/src/utils/styleUtils.d.ts +0 -18
  491. package/lib/typescript/src/utils/styleUtils.d.ts.map +0 -1
  492. package/src/api/ApiClient.ts +0 -1539
  493. package/src/api/Constants.ts +0 -10
  494. package/src/api/ErrorHandler.ts +0 -36
  495. package/src/api/api.types.ts +0 -8
  496. package/src/api/types.ts +0 -593
  497. package/src/apiv2/index.ts +0 -143
  498. package/src/assets/icons/ic_check.png +0 -0
  499. package/src/assets/icons/ic_clock.png +0 -0
  500. package/src/assets/icons/ic_copy.png +0 -0
  501. package/src/assets/icons/ic_dropdown.png +0 -0
  502. package/src/assets/icons/ic_error.png +0 -0
  503. package/src/assets/icons/ic_eye.png +0 -0
  504. package/src/assets/icons/ic_eye_off.png +0 -0
  505. package/src/assets/icons/ic_more.png +0 -0
  506. package/src/assets/icons/ic_next.png +0 -0
  507. package/src/assets/images/brand.png +0 -0
  508. package/src/common/query.types.ts +0 -6
  509. package/src/components/bottomSheetModal/BottomSheetModal.tsx +0 -95
  510. package/src/components/bottomSheetModal/BottomSheetModalStyles.ts +0 -43
  511. package/src/components/bottomSheetModal/BottomSheetModalTypes.ts +0 -26
  512. package/src/components/button/Button.tsx +0 -53
  513. package/src/components/button/styles.tsx +0 -30
  514. package/src/components/button/types.ts +0 -16
  515. package/src/components/cartTimer/CartTimer.tsx +0 -68
  516. package/src/components/cartTimer/styles.ts +0 -44
  517. package/src/components/cartTimer/types.ts +0 -22
  518. package/src/components/checkbox/Checkbox.tsx +0 -53
  519. package/src/components/checkbox/styles.ts +0 -41
  520. package/src/components/checkbox/types.ts +0 -23
  521. package/src/components/datePicker/DatePicker.tsx +0 -81
  522. package/src/components/datePicker/styles.ts +0 -39
  523. package/src/components/datePicker/types.ts +0 -21
  524. package/src/components/dropdown/Dropdown.tsx +0 -111
  525. package/src/components/dropdown/DropdownListItem.tsx +0 -36
  526. package/src/components/dropdown/styles.ts +0 -97
  527. package/src/components/dropdown/types.ts +0 -38
  528. package/src/components/dropdownMaterial/DropdownMaterial.tsx +0 -129
  529. package/src/components/dropdownMaterial/styles.ts +0 -91
  530. package/src/components/dropdownMaterial/types.ts +0 -24
  531. package/src/components/enterPassword/EnterPassword.tsx +0 -50
  532. package/src/components/enterPassword/styles.ts +0 -23
  533. package/src/components/enterPassword/types.ts +0 -27
  534. package/src/components/formField/FormField.tsx +0 -131
  535. package/src/components/formField/styles.ts +0 -37
  536. package/src/components/formField/types.ts +0 -60
  537. package/src/components/index.ts +0 -20
  538. package/src/components/input/Input.tsx +0 -77
  539. package/src/components/input/styles.ts +0 -53
  540. package/src/components/input/types.ts +0 -38
  541. package/src/components/loading/Loading.tsx +0 -30
  542. package/src/components/loading/styles.ts +0 -32
  543. package/src/components/loading/types.ts +0 -16
  544. package/src/components/loggedIn/LoggedIn.tsx +0 -60
  545. package/src/components/loggedIn/styles.ts +0 -9
  546. package/src/components/loggedIn/types.ts +0 -27
  547. package/src/components/login/Login.tsx +0 -161
  548. package/src/components/login/LoginView.tsx +0 -259
  549. package/src/components/login/components/LoginForm.tsx +0 -92
  550. package/src/components/login/components/types.ts +0 -22
  551. package/src/components/login/styles.ts +0 -63
  552. package/src/components/login/types.ts +0 -189
  553. package/src/components/phoneInput/PhoneInput.tsx +0 -72
  554. package/src/components/phoneInput/styles.ts +0 -31
  555. package/src/components/phoneInput/types.ts +0 -35
  556. package/src/components/promoCode/PromoCode.tsx +0 -111
  557. package/src/components/promoCode/styles.ts +0 -63
  558. package/src/components/promoCode/types.ts +0 -43
  559. package/src/components/radioButton/RadioButton.tsx +0 -26
  560. package/src/components/radioButton/styles.ts +0 -32
  561. package/src/components/radioButton/types.ts +0 -17
  562. package/src/components/radioGroup/RadioGroup.tsx +0 -86
  563. package/src/components/radioGroup/index.ts +0 -4
  564. package/src/components/radioGroup/types.ts +0 -26
  565. package/src/components/restorePassword/RestorePassword.tsx +0 -63
  566. package/src/components/restorePassword/ResultDialog.tsx +0 -26
  567. package/src/components/restorePassword/styles.ts +0 -38
  568. package/src/components/restorePassword/types.ts +0 -61
  569. package/src/components/separator/Separator.tsx +0 -26
  570. package/src/components/separator/types.ts +0 -9
  571. package/src/components/stripePayment/StripePayment.tsx +0 -51
  572. package/src/components/stripePayment/styles.ts +0 -7
  573. package/src/components/stripePayment/types.ts +0 -22
  574. package/src/components/waitingList/WaitingList.tsx +0 -147
  575. package/src/components/waitingList/WaitingListView.tsx +0 -94
  576. package/src/components/waitingList/styles.ts +0 -9
  577. package/src/components/waitingList/types.ts +0 -68
  578. package/src/containers/billingInfo/Billing.tsx +0 -1902
  579. package/src/containers/billingInfo/styles.ts +0 -64
  580. package/src/containers/billingInfo/types.ts +0 -217
  581. package/src/containers/checkout/Checkout.tsx +0 -519
  582. package/src/containers/checkout/CheckoutData.ts +0 -29
  583. package/src/containers/checkout/components/Conditions.tsx +0 -22
  584. package/src/containers/checkout/components/OrderReview.tsx +0 -31
  585. package/src/containers/checkout/components/styles.ts +0 -28
  586. package/src/containers/checkout/styles.ts +0 -44
  587. package/src/containers/checkout/types.ts +0 -148
  588. package/src/containers/index.ts +0 -8
  589. package/src/containers/myOrderDetails/MyOrderDetails.tsx +0 -318
  590. package/src/containers/myOrderDetails/MyOrderDetailsView.tsx +0 -269
  591. package/src/containers/myOrderDetails/components/Notification.tsx +0 -40
  592. package/src/containers/myOrderDetails/components/OrderListItem.tsx +0 -12
  593. package/src/containers/myOrderDetails/components/TicketActions/TicketActions.tsx +0 -68
  594. package/src/containers/myOrderDetails/components/TicketActions/TicketActionsTypes.ts +0 -41
  595. package/src/containers/myOrderDetails/components/TicketListItem/TicketListItem.tsx +0 -63
  596. package/src/containers/myOrderDetails/components/TicketListItem/TicketListItemStyles.ts +0 -33
  597. package/src/containers/myOrderDetails/components/TicketListItem/TicketListItemTypes.ts +0 -39
  598. package/src/containers/myOrderDetails/components/styles.ts +0 -42
  599. package/src/containers/myOrderDetails/styles.ts +0 -57
  600. package/src/containers/myOrderDetails/types.ts +0 -173
  601. package/src/containers/myOrders/MyOrders.tsx +0 -340
  602. package/src/containers/myOrders/MyOrdersView.tsx +0 -182
  603. package/src/containers/myOrders/components/OrderListItem.tsx +0 -50
  604. package/src/containers/myOrders/components/styles.ts +0 -55
  605. package/src/containers/myOrders/components/types.ts +0 -28
  606. package/src/containers/myOrders/styles.ts +0 -42
  607. package/src/containers/myOrders/types.ts +0 -84
  608. package/src/containers/purchaseConfirmation/PurchaseConfirmation.tsx +0 -145
  609. package/src/containers/purchaseConfirmation/PurchaseConfirmationView.tsx +0 -82
  610. package/src/containers/purchaseConfirmation/styles.ts +0 -79
  611. package/src/containers/purchaseConfirmation/types.ts +0 -77
  612. package/src/containers/resaleTickets/ResaleTickets.tsx +0 -234
  613. package/src/containers/resaleTickets/ResaleTicketsView.tsx +0 -314
  614. package/src/containers/resaleTickets/types.ts +0 -154
  615. package/src/containers/resetPassword/ResetPassword.tsx +0 -110
  616. package/src/containers/resetPassword/ResetPasswordView.tsx +0 -81
  617. package/src/containers/resetPassword/styles.ts +0 -35
  618. package/src/containers/resetPassword/types.ts +0 -56
  619. package/src/containers/tickets/Tickets.tsx +0 -525
  620. package/src/containers/tickets/TicketsView.tsx +0 -164
  621. package/src/containers/tickets/components/TicketGroupListHeader.tsx +0 -12
  622. package/src/containers/tickets/components/TicketListItem.tsx +0 -124
  623. package/src/containers/tickets/components/styles.ts +0 -54
  624. package/src/containers/tickets/components/types.ts +0 -47
  625. package/src/containers/tickets/styles.ts +0 -22
  626. package/src/containers/tickets/types.ts +0 -158
  627. package/src/core/BillingCore/BillingCore.tsx +0 -129
  628. package/src/core/BillingCore/BillingCoreTypes.ts +0 -34
  629. package/src/core/BillingCore/README.md +0 -22
  630. package/src/core/CheckoutCore/CheckoutCore.tsx +0 -113
  631. package/src/core/CheckoutCore/CheckoutCoreTypes.ts +0 -23
  632. package/src/core/CheckoutCore/README.md +0 -20
  633. package/src/core/CoreProps.ts +0 -5
  634. package/src/core/LoginCore/LoginCore.tsx +0 -140
  635. package/src/core/LoginCore/LoginCoreHelper.ts +0 -22
  636. package/src/core/LoginCore/LoginCoreTypes.ts +0 -21
  637. package/src/core/MIGRATION.md +0 -148
  638. package/src/core/MyOrdersCore/MyOrdersCore.tsx +0 -44
  639. package/src/core/MyOrdersCore/MyOrdersCoreTypes.ts +0 -15
  640. package/src/core/OrderDetailsCore/OrderDetailsCore.tsx +0 -36
  641. package/src/core/OrderDetailsCore/OrderDetailsCoreTypes.ts +0 -10
  642. package/src/core/PurchaseConfirmationCore/PurchaseConfirmationCore.tsx +0 -37
  643. package/src/core/PurchaseConfirmationCore/PurchaseConfirmationCoreTypes.ts +0 -10
  644. package/src/core/ResetPasswordCore/ResetPasswordCore.tsx +0 -21
  645. package/src/core/ResetPasswordCore/ResetPasswordCoreTypes.ts +0 -5
  646. package/src/core/Session/SessionCoreTypes.ts +0 -10
  647. package/src/core/Session/SessionHandle.tsx +0 -23
  648. package/src/core/TicketsCore/TicketsCore.tsx +0 -216
  649. package/src/core/TicketsCore/TicketsCoreTypes.ts +0 -52
  650. package/src/core/WaitingListCore/WaitingListCore.tsx +0 -35
  651. package/src/core/WaitingListCore/WaitingListCoreTypes.ts +0 -16
  652. package/src/core/index.ts +0 -20
  653. package/src/features/auth/api-hooks.ts +0 -61
  654. package/src/features/auth/types.ts +0 -54
  655. package/src/features/auth/utils.ts +0 -27
  656. package/src/features/checkout-v2/components/AddonsContainer.tsx +0 -159
  657. package/src/features/checkout-v2/components/Conditions.tsx +0 -144
  658. package/src/features/checkout-v2/components/OrderReview.tsx +0 -96
  659. package/src/features/checkout-v2/components/TicketHoldersSection.tsx +0 -131
  660. package/src/features/checkout-v2/form/config.tsx +0 -194
  661. package/src/features/checkout-v2/form/index.tsx +0 -830
  662. package/src/features/checkout-v2/form/styles.ts +0 -241
  663. package/src/features/checkout-v2/form/texts.ts +0 -133
  664. package/src/features/checkout-v2/form/types.ts +0 -231
  665. package/src/features/checkout-v2/hooks/api-hooks.ts +0 -332
  666. package/src/features/checkout-v2/hooks/use-checkout.ts +0 -927
  667. package/src/features/checkout-v2/index.tsx +0 -289
  668. package/src/features/checkout-v2/types.ts +0 -475
  669. package/src/features/checkout-v2/utils.ts +0 -156
  670. package/src/features/event/api-hooks.ts +0 -28
  671. package/src/features/event/types.ts +0 -69
  672. package/src/features/form/index.tsx +0 -185
  673. package/src/features/form/styles.ts +0 -37
  674. package/src/features/form/types.ts +0 -38
  675. package/src/features/geo/api-hooks.ts +0 -43
  676. package/src/features/geo/types.ts +0 -15
  677. package/src/helpers/Config.ts +0 -81
  678. package/src/helpers/CountryCodes.ts +0 -3382
  679. package/src/helpers/Debounced.ts +0 -27
  680. package/src/helpers/Domains.ts +0 -32
  681. package/src/helpers/LocalStorage.tsx +0 -152
  682. package/src/helpers/RefreshAccessToken.ts +0 -25
  683. package/src/helpers/StringsHelper.ts +0 -5
  684. package/src/helpers/Validators.ts +0 -108
  685. package/src/packages/rn-material-ui-textfield/README.md +0 -149
  686. package/src/packages/rn-material-ui-textfield/components/affix/index.js +0 -61
  687. package/src/packages/rn-material-ui-textfield/components/affix/styles.js +0 -8
  688. package/src/packages/rn-material-ui-textfield/components/counter/index.js +0 -36
  689. package/src/packages/rn-material-ui-textfield/components/counter/styles.js +0 -12
  690. package/src/packages/rn-material-ui-textfield/components/field/index.js +0 -700
  691. package/src/packages/rn-material-ui-textfield/components/field/styles.js +0 -42
  692. package/src/packages/rn-material-ui-textfield/components/field-filled/index.js +0 -21
  693. package/src/packages/rn-material-ui-textfield/components/field-filled/styles.js +0 -10
  694. package/src/packages/rn-material-ui-textfield/components/field-outlined/index.js +0 -59
  695. package/src/packages/rn-material-ui-textfield/components/helper/index.js +0 -78
  696. package/src/packages/rn-material-ui-textfield/components/helper/styles.js +0 -12
  697. package/src/packages/rn-material-ui-textfield/components/label/index.js +0 -123
  698. package/src/packages/rn-material-ui-textfield/components/label/styles.js +0 -16
  699. package/src/packages/rn-material-ui-textfield/components/line/index.js +0 -117
  700. package/src/packages/rn-material-ui-textfield/components/line/styles.js +0 -18
  701. package/src/packages/rn-material-ui-textfield/components/outline/index.js +0 -139
  702. package/src/packages/rn-material-ui-textfield/components/outline/styles.js +0 -83
  703. package/src/packages/rn-material-ui-textfield/index.d.ts +0 -53
  704. package/src/packages/rn-material-ui-textfield/index.js +0 -5
  705. package/src/packages/rn-material-ui-textfield/license.txt +0 -28
  706. package/src/res/colors.ts +0 -16
  707. package/src/res/icons.ts +0 -11
  708. package/src/res/images.ts +0 -3
  709. package/src/res/index.ts +0 -11
  710. package/src/types/IAccountTickets.ts +0 -75
  711. package/src/types/ICountry.ts +0 -2
  712. package/src/types/IError.ts +0 -5
  713. package/src/types/IEvent.ts +0 -87
  714. package/src/types/ITicket.ts +0 -75
  715. package/src/types/IUserProfile.ts +0 -30
  716. package/src/types/index.ts +0 -5
  717. package/src/utils/Logger.ts +0 -75
  718. package/src/utils/handlers.ts +0 -49
  719. package/src/utils/storageAdapter.ts +0 -44
  720. package/src/utils/styleUtils.ts +0 -76
package/lib/index.mjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/bottomSheetModal/BottomSheetModal.tsx","../src/res/colors.ts","../src/res/icons.ts","../src/res/images.ts","../src/res/index.ts","../src/components/bottomSheetModal/BottomSheetModalStyles.ts","../src/components/button/Button.tsx","../src/components/button/styles.tsx","../src/components/cartTimer/CartTimer.tsx","../src/components/cartTimer/styles.ts","../src/components/checkbox/Checkbox.tsx","../src/components/checkbox/styles.ts","../src/components/datePicker/DatePicker.tsx","../src/components/input/Input.tsx","../src/components/input/styles.ts","../src/packages/rn-material-ui-textfield/components/field/index.js","../src/packages/rn-material-ui-textfield/components/line/index.js","../src/packages/rn-material-ui-textfield/components/line/styles.js","../src/packages/rn-material-ui-textfield/components/label/index.js","../src/packages/rn-material-ui-textfield/components/label/styles.js","../src/packages/rn-material-ui-textfield/components/affix/index.js","../src/packages/rn-material-ui-textfield/components/affix/styles.js","../src/packages/rn-material-ui-textfield/components/helper/index.js","../src/packages/rn-material-ui-textfield/components/helper/styles.js","../src/packages/rn-material-ui-textfield/components/counter/index.js","../src/packages/rn-material-ui-textfield/components/counter/styles.js","../src/packages/rn-material-ui-textfield/components/field/styles.js","../src/packages/rn-material-ui-textfield/components/field-filled/styles.js","../src/packages/rn-material-ui-textfield/components/field-filled/index.js","../src/packages/rn-material-ui-textfield/components/field-outlined/index.js","../src/packages/rn-material-ui-textfield/components/outline/index.js","../src/packages/rn-material-ui-textfield/components/outline/styles.js","../src/components/datePicker/styles.ts","../src/components/dropdown/Dropdown.tsx","../src/components/separator/Separator.tsx","../src/components/dropdown/DropdownListItem.tsx","../src/components/dropdown/styles.ts","../src/components/dropdownMaterial/DropdownMaterial.tsx","../src/components/dropdownMaterial/styles.ts","../src/components/enterPassword/EnterPassword.tsx","../src/components/enterPassword/styles.ts","../src/components/formField/FormField.tsx","../src/components/radioGroup/RadioGroup.tsx","../src/components/radioGroup/index.ts","../src/components/formField/styles.ts","../src/components/loading/Loading.tsx","../src/components/loading/styles.ts","../src/components/loggedIn/LoggedIn.tsx","../src/components/loggedIn/styles.ts","../src/components/login/Login.tsx","../src/core/BillingCore/BillingCore.tsx","../src/api/ApiClient.ts","../src/helpers/Config.ts","../src/api/Constants.ts","../src/helpers/Domains.ts","../src/helpers/LocalStorage.tsx","../src/api/ErrorHandler.ts","../src/core/LoginCore/LoginCoreHelper.ts","../src/helpers/RefreshAccessToken.ts","../src/core/CheckoutCore/CheckoutCore.tsx","../src/core/LoginCore/LoginCore.tsx","../src/core/MyOrdersCore/MyOrdersCore.tsx","../src/core/OrderDetailsCore/OrderDetailsCore.tsx","../src/core/PurchaseConfirmationCore/PurchaseConfirmationCore.tsx","../src/core/ResetPasswordCore/ResetPasswordCore.tsx","../src/core/Session/SessionHandle.tsx","../src/core/TicketsCore/TicketsCore.tsx","../src/core/WaitingListCore/WaitingListCore.tsx","../src/components/login/LoginView.tsx","../src/helpers/Debounced.ts","../src/helpers/Validators.ts","../src/components/restorePassword/RestorePassword.tsx","../src/components/restorePassword/styles.ts","../src/components/restorePassword/ResultDialog.tsx","../src/components/login/components/LoginForm.tsx","../src/components/login/styles.ts","../src/components/phoneInput/PhoneInput.tsx","../src/components/phoneInput/styles.ts","../src/components/promoCode/PromoCode.tsx","../src/components/promoCode/styles.ts","../src/components/radioButton/RadioButton.tsx","../src/components/radioButton/styles.ts","../src/components/stripePayment/StripePayment.tsx","../src/components/stripePayment/styles.ts","../src/components/waitingList/WaitingList.tsx","../src/components/waitingList/WaitingListView.tsx","../src/components/waitingList/styles.ts","../src/containers/billingInfo/Billing.tsx","../src/helpers/CountryCodes.ts","../../tf-checkout-shared/src/api/client/publicRequest.ts","../../tf-checkout-shared/src/utils/getDomain.ts","../../tf-checkout-shared/src/utils/cookies.ts","../../tf-checkout-shared/src/utils/storage.ts","../../tf-checkout-shared/src/constants/index.ts","../../tf-checkout-shared/src/config/setConfigs.ts","../../tf-checkout-shared/src/utils/isBrowser.ts","../../tf-checkout-shared/src/api/client/auth.ts","../../tf-checkout-shared/src/utils/auth.ts","../../tf-checkout-shared/src/utils/getQueryVariable.ts","../../tf-checkout-shared/src/utils/formatters.ts","../../tf-checkout-shared/src/api/client/interceptors.ts","../../tf-checkout-shared/src/api/client/cart.ts","../../tf-checkout-shared/src/api/client/checkout.ts","../../tf-checkout-shared/src/api/client/common.ts","../../tf-checkout-shared/src/api/client/orders.ts","../../tf-checkout-shared/src/api/client/payment.ts","../../../node_modules/.pnpm/nanoid@3.3.11/node_modules/nanoid/non-secure/index.js","../src/helpers/StringsHelper.ts","../src/containers/billingInfo/styles.ts","../src/containers/checkout/Checkout.tsx","../src/containers/checkout/CheckoutData.ts","../src/containers/checkout/components/Conditions.tsx","../src/containers/checkout/components/styles.ts","../src/containers/checkout/components/OrderReview.tsx","../src/containers/checkout/styles.ts","../src/containers/myOrderDetails/MyOrderDetails.tsx","../src/containers/myOrderDetails/MyOrderDetailsView.tsx","../src/containers/myOrderDetails/components/Notification.tsx","../src/containers/myOrderDetails/components/styles.ts","../src/containers/myOrderDetails/components/TicketActions/TicketActions.tsx","../src/containers/myOrderDetails/components/TicketListItem/TicketListItem.tsx","../src/containers/myOrderDetails/components/TicketListItem/TicketListItemStyles.ts","../src/containers/myOrderDetails/styles.ts","../src/containers/myOrders/MyOrders.tsx","../src/containers/myOrders/MyOrdersView.tsx","../src/containers/myOrders/components/OrderListItem.tsx","../src/containers/myOrders/components/styles.ts","../src/containers/myOrders/styles.ts","../src/utils/Logger.ts","../src/containers/purchaseConfirmation/PurchaseConfirmation.tsx","../src/containers/purchaseConfirmation/PurchaseConfirmationView.tsx","../src/containers/purchaseConfirmation/styles.ts","../src/containers/resaleTickets/ResaleTickets.tsx","../src/containers/resaleTickets/ResaleTicketsView.tsx","../src/containers/resetPassword/ResetPassword.tsx","../src/containers/resetPassword/ResetPasswordView.tsx","../src/containers/resetPassword/styles.ts","../src/containers/tickets/Tickets.tsx","../src/containers/tickets/TicketsView.tsx","../src/containers/tickets/components/TicketGroupListHeader.tsx","../src/containers/tickets/components/TicketListItem.tsx","../src/containers/tickets/components/styles.ts","../src/containers/tickets/styles.ts","../src/features/checkout-v2/hooks/use-checkout.ts","../src/utils/handlers.ts","../src/features/auth/api-hooks.ts","../src/features/auth/utils.ts","../src/features/event/api-hooks.ts","../src/features/geo/api-hooks.ts","../src/features/checkout-v2/utils.ts","../src/features/checkout-v2/hooks/api-hooks.ts","../src/features/checkout-v2/index.tsx","../src/features/checkout-v2/form/index.tsx","../src/features/form/index.tsx","../src/features/checkout-v2/components/AddonsContainer.tsx","../src/features/checkout-v2/components/Conditions.tsx","../src/features/checkout-v2/components/OrderReview.tsx","../src/features/checkout-v2/form/config.tsx","../src/features/checkout-v2/form/styles.ts","../src/features/checkout-v2/form/texts.ts","../src/index.tsx","../src/utils/storageAdapter.ts"],"sourcesContent":["import React, { forwardRef, useEffect, useImperativeHandle, useRef } from 'react'\nimport {\n Animated,\n Dimensions,\n Image,\n Modal as RNModal,\n StyleProp,\n Text,\n TouchableOpacity,\n View,\n} from 'react-native'\n\nimport R from '../../res'\nimport s from './BottomSheetModalStyles'\nimport { IBottomSheetModalProps } from './BottomSheetModalTypes'\n\nconst animationDuration = 350\nconst { height: screenHeight } = Dimensions.get('window')\n\nexport type BottomSheetHandle = {\n close(): void\n}\n\nconst BottomSheetModal = forwardRef<BottomSheetHandle, IBottomSheetModalProps>(\n ({ onClose, texts, styles, content, contentHeight = screenHeight / 2 }, ref) => {\n const contentYPosition = useRef(new Animated.Value(contentHeight)).current\n\n const showContent = () => {\n Animated.timing(contentYPosition, {\n toValue: 0,\n duration: animationDuration,\n useNativeDriver: true,\n }).start()\n }\n\n const hideContent = () => {\n Animated.timing(contentYPosition, {\n toValue: contentHeight,\n duration: animationDuration,\n useNativeDriver: true,\n }).start(onClose)\n }\n\n useEffect(() => {\n showContent()\n })\n\n const onCloseHandler = () => {\n hideContent()\n }\n\n const animatedStyle: StyleProp<any> = {\n height: contentHeight,\n transform: [\n {\n translateY: contentYPosition,\n },\n ],\n }\n\n useImperativeHandle(ref, () => ({\n async close() {\n hideContent()\n },\n }))\n\n const mergedStyle = [s.animatedContent, animatedStyle, styles?.content]\n\n const title = texts?.title || 'Title'\n\n return (\n <RNModal transparent>\n <View style={[s.rootContainer, styles?.rootContainer]}>\n <Animated.View style={mergedStyle}>\n <View style={[s.header, styles?.headerContainer]}>\n <Text style={[s.title, styles?.title]}>{title}</Text>\n <TouchableOpacity\n onPress={onCloseHandler}\n style={[s.closeButton, styles?.closeButton]}\n >\n <Image\n style={[s.closeButtonIcon, styles?.closeButtonIcon]}\n source={R.icons.error}\n />\n </TouchableOpacity>\n </View>\n <View style={[s.contentContainer, styles?.contentContainer]}>{content}</View>\n </Animated.View>\n </View>\n </RNModal>\n )\n }\n)\n\nexport default BottomSheetModal\n","const colors = {\n primary: 'black',\n disabled: 'gray',\n white: 'white',\n black: 'black',\n tint: 'rgba(0,0,0,0.1)',\n transparentBlack: 'rgba(0,0,0,0.5)',\n transparent: 'rgba(0,0,0,0)',\n danger: '#D9534F',\n listBackground: 'rgba(0,0,0,0.1)',\n validGreen: '#139679',\n fff: '#fff',\n timerBackground: '#f4daa3',\n}\n\nexport default colors\n","export default {\n dropdown: require('../assets/icons/ic_dropdown.png'),\n check: require('../assets/icons/ic_check.png'),\n copy: require('../assets/icons/ic_copy.png'),\n next: require('../assets/icons/ic_next.png'),\n error: require('../assets/icons/ic_error.png'),\n more: require('../assets/icons/ic_more.png'),\n clock: require('../assets/icons/ic_clock.png'),\n eye: require('../assets/icons/ic_eye.png'),\n eyeOff: require('../assets/icons/ic_eye_off.png'),\n}\n","export default {\n brand: require('../assets/images/brand.png'),\n}\n","import colors from './colors'\nimport icons from './icons'\nimport images from './images'\n\nconst R = {\n icons: icons,\n colors: colors,\n images: images,\n}\n\nexport default R\n","import { Dimensions, StyleSheet } from 'react-native'\n\nimport R from '../../res'\n\nconst { width: screenWidth } = Dimensions.get('window')\n\nexport default StyleSheet.create({\n rootContainer: {\n backgroundColor: R.colors.transparentBlack,\n flex: 1,\n justifyContent: 'flex-end',\n },\n animatedContent: {\n width: screenWidth,\n borderTopStartRadius: 20,\n borderTopEndRadius: 20,\n paddingVertical: 24,\n backgroundColor: R.colors.listBackground,\n },\n closeButton: {\n padding: 8,\n justifyContent: 'flex-end',\n },\n header: {\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n marginBottom: 16,\n paddingHorizontal: 24,\n },\n title: {\n fontSize: 20,\n },\n closeButtonIcon: {\n height: 16,\n width: 16,\n resizeMode: 'contain',\n tintColor: R.colors.white,\n },\n contentContainer: {\n flex: 1,\n },\n})\n","//@ts-nocheck\nimport React from 'react'\nimport { ActivityIndicator, Text, TouchableOpacity, View } from 'react-native'\n\nimport R from '../../res'\nimport s from './styles'\nimport { IButtonProps } from './types'\n\nconst Button = React.forwardRef(\n (\n {\n text = 'Press me',\n onPress,\n isUpperCase,\n isDisabled,\n isLoading,\n styles,\n }: IButtonProps,\n ref\n ) => {\n const formatText = isUpperCase ? text.toUpperCase() : text\n\n return (\n <>\n <View style={[s.container, styles?.container]} ref={ref?.containerView}>\n <TouchableOpacity\n ref={ref?.touchableOpacity}\n onPress={onPress}\n activeOpacity={0.8}\n style={[isDisabled ? s.buttonDisabled : s.button, styles?.button]}\n disabled={isDisabled || isLoading}\n >\n {isLoading ? (\n <View ref={ref?.loadingView}>\n <ActivityIndicator\n color={R.colors.white}\n size={'small'}\n ref={ref?.activityIndicator}\n />\n </View>\n ) : (\n <Text style={[s.text, styles?.text]} ref={ref?.loadingText}>\n {formatText}\n </Text>\n )}\n </TouchableOpacity>\n </View>\n </>\n )\n }\n)\n\nexport default Button\n","import { StyleSheet } from 'react-native'\n\nimport R from '../../res'\n\nexport default StyleSheet.create({\n container: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n button: {\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: R.colors.primary,\n height: 45,\n width: '100%',\n paddingHorizontal: 8,\n },\n buttonDisabled: {\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: R.colors.disabled,\n height: 45,\n width: '100%',\n },\n text: {\n color: R.colors.white,\n fontSize: 18,\n fontWeight: '700',\n },\n})\n","import React, { FC, useEffect, useState } from 'react'\nimport { Image, Pressable, Text, View } from 'react-native'\n\nimport R from '../../res'\nimport s from './styles'\nimport { ICartTimerProps } from './types'\n\nconst CartTimer: FC<ICartTimerProps> = ({\n shouldNotMinimize,\n texts,\n styles,\n secondsLeft,\n}) => {\n const [isOnlyTimeVisible, setIsOnlyTimeVisible] = useState(false)\n const hideOtherData = () => {\n if (!shouldNotMinimize) {\n setIsOnlyTimeVisible(!isOnlyTimeVisible)\n }\n }\n const [timeRemaining, setTimeRemaining] = useState('')\n\n const message = texts?.message\n ? texts.message\n : 'Please complete your purchase before the timer reaches zero:'\n\n useEffect(() => {\n const clockify = () => {\n //let hours = Math.floor(secondsLeft / 60 / 60)\n const mins = Math.floor((secondsLeft / 60) % 60)\n const seconds = Math.floor(secondsLeft % 60)\n //let displayHours = hours < 10 ? `0${hours}` : hours\n const displayMins = mins < 10 ? `0${mins}` : mins\n const displaySecs = seconds < 10 ? `0${seconds}` : seconds\n\n setTimeRemaining(`${displayMins}:${displaySecs}`)\n }\n\n clockify()\n }, [secondsLeft])\n\n return (\n <View\n style={[\n s.rootContainer,\n isOnlyTimeVisible && s.rootContainerSmall,\n styles?.rootContainer,\n ]}\n >\n <Pressable onPressOut={hideOtherData}>\n <View style={[s.contentContainer, styles?.contentContainer]}>\n {!isOnlyTimeVisible && (\n <Image source={R.icons.clock} style={[s.icon, styles?.icon]} />\n )}\n <View style={[s.textsContainer, styles?.textsContainer]}>\n {!isOnlyTimeVisible && (\n <Text style={[s.message, styles?.message]}>{message}</Text>\n )}\n <Text style={[s.time, isOnlyTimeVisible && s.timeOnlyVisible, styles?.time]}>\n {timeRemaining}\n </Text>\n </View>\n </View>\n </Pressable>\n </View>\n )\n}\n\nexport default CartTimer\n","import { Dimensions, StyleSheet } from 'react-native'\n\nimport R from '../../res'\n\nconst { width: sWidth } = Dimensions.get('window')\n\nexport default StyleSheet.create({\n rootContainer: {\n backgroundColor: R.colors.timerBackground,\n position: 'absolute',\n right: 0,\n top: 40,\n width: sWidth / 1.5,\n borderRadius: 2,\n padding: 8,\n elevation: 3,\n shadowOffset: { width: -3, height: 3 },\n shadowColor: R.colors.black,\n shadowOpacity: 0.2,\n shadowRadius: 3,\n },\n rootContainerSmall: {\n width: sWidth / 5,\n },\n contentContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n flex: 1,\n },\n icon: {\n width: 16,\n height: 16,\n resizeMode: 'contain',\n marginRight: 8,\n },\n textsContainer: { flex: 1 },\n message: { marginBottom: 4 },\n time: {\n fontWeight: '800',\n },\n timeOnlyVisible: {\n alignSelf: 'center',\n },\n})\n","import React from 'react'\nimport { Image, StyleProp, Text, TouchableOpacity, View, ViewStyle } from 'react-native'\n\nimport R from '../../res'\nimport s from './styles'\nimport { ICheckboxProps } from './types'\n\nconst Checkbox = ({\n onPress,\n text,\n styles,\n isActive,\n customTextComp,\n error,\n}: ICheckboxProps) => {\n let indicatorStyles: StyleProp<ViewStyle> = isActive\n ? [s.indicatorOn, styles?.indicator]\n : [s.indicator, styles?.indicatorDisabled]\n\n if (error) {\n indicatorStyles = [...indicatorStyles, { borderColor: styles?.errorColor }]\n }\n\n return (\n <TouchableOpacity\n onPress={onPress}\n activeOpacity={0.8}\n style={[s.container, styles?.container]}\n >\n <>\n <View style={[s.content, styles?.content]}>\n <View style={indicatorStyles}>\n {isActive && <Image source={R.icons.check} style={[s.check, styles?.icon]} />}\n </View>\n {customTextComp || (\n <Text\n style={[\n s.textContainer,\n styles?.text,\n !!error && { color: styles?.errorColor },\n ]}\n >\n {text}\n </Text>\n )}\n </View>\n {!!error && <Text style={styles?.error}>{error}</Text>}\n </>\n </TouchableOpacity>\n )\n}\n\nexport default Checkbox\n","import { StyleSheet } from 'react-native'\n\nimport R from '../../res'\n\nexport default StyleSheet.create({\n container: {\n marginBottom: 24,\n },\n content: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n indicator: {\n width: 24,\n height: 24,\n borderRadius: 5,\n borderWidth: 1,\n backgroundColor: R.colors.transparent,\n marginRight: 16,\n justifyContent: 'center',\n alignItems: 'center',\n },\n indicatorOn: {\n width: 24,\n height: 24,\n borderRadius: 5,\n borderWidth: 1,\n backgroundColor: R.colors.primary,\n marginRight: 16,\n justifyContent: 'center',\n alignItems: 'center',\n },\n check: {\n width: '60%',\n height: '60%',\n tintColor: R.colors.white,\n },\n textContainer: {\n flex: 1,\n },\n})\n","import React, { useState } from 'react'\nimport { Pressable, StyleSheet, View } from 'react-native'\nimport DateTimePickerModal from 'react-native-modal-datetime-picker'\n\nimport Input from '../input/Input'\nimport s from './styles'\nimport { IDatePickerProps } from './types'\n\nconst DatePicker = ({\n onSelectDate,\n onCancel,\n styles,\n text = 'Select date',\n selectedDate,\n placeholder = 'Select date',\n error,\n}: IDatePickerProps) => {\n const [isVisible, setIsVisible] = useState(false)\n const onButtonPress = () => {\n setIsVisible(true)\n }\n\n const handleOnSelectDate = (date: Date) => {\n if (onSelectDate) {\n onSelectDate(date)\n }\n setIsVisible(false)\n }\n\n const handleOnCancel = () => {\n if (onCancel) {\n onCancel()\n }\n setIsVisible(false)\n }\n\n // Format date in a more readable way\n const formatDate = (date: Date) => {\n if (!date) return ''\n // Format as MM/DD/YYYY\n const month = String(date.getMonth() + 1).padStart(2, '0')\n const day = String(date.getDate()).padStart(2, '0')\n const year = date.getFullYear()\n return `${month}/${day}/${year}`\n }\n\n return (\n <View style={[styles?.container, s.container]}>\n <Input\n label={text}\n value={selectedDate ? formatDate(selectedDate) : ''}\n placeholder={placeholder}\n pointerEvents=\"none\"\n editable={false} // Prevent keyboard from showing\n error={error}\n styles={{\n container: styles?.inputContainer,\n input: styles?.input,\n fieldWrapper: styles?.fieldWrapper,\n baseColor: styles?.baseColor,\n errorColor: styles?.errorColor,\n }}\n />\n <Pressable\n style={StyleSheet.absoluteFill} // covers the whole field\n onPress={onButtonPress}\n />\n <DateTimePickerModal\n isVisible={isVisible}\n mode=\"date\"\n onConfirm={handleOnSelectDate}\n onCancel={handleOnCancel}\n date={selectedDate || new Date()}\n maximumDate={new Date()}\n pickerComponentStyleIOS={{ height: 200 }}\n />\n </View>\n )\n}\n\nexport default DatePicker\n","//@ts-nocheck\n\nimport React from 'react'\nimport { Image, TouchableOpacity, View } from 'react-native'\n\nimport R from '../../res'\nimport s from './styles'\nimport { IInputProps } from './types'\nimport { OutlinedTextField } from '../../packages/rn-material-ui-textfield'\n\nconst Input = (props: IInputProps) => {\n const {\n id,\n value,\n onTextChanged,\n onChangeText,\n reference,\n label,\n styles,\n isShowPasswordButtonVisible,\n showPasswordImages,\n secureTextEntry,\n } = props\n const mainColor = styles?.baseColor ? styles.baseColor : styles?.color || R.colors.black\n\n const showPasswordImage = showPasswordImages?.show || R.icons.eye\n const hidePasswordImage = showPasswordImages?.hide || R.icons.eyeOff\n const [isShowingPassword, setIsShowingPassword] = React.useState(false)\n\n const handleOnPressShowPassword = () => {\n setIsShowingPassword(!isShowingPassword)\n }\n\n const showPasswordButton = () => {\n return (\n isShowPasswordButtonVisible &&\n secureTextEntry && (\n <TouchableOpacity onPress={handleOnPressShowPassword} activeOpacity={0.8}>\n <Image\n source={isShowingPassword ? hidePasswordImage : showPasswordImage}\n style={[s.showPasswordIcon, styles?.showPasswordIcon]}\n />\n </TouchableOpacity>\n )\n )\n }\n\n return (\n <View style={[s.container, styles?.container]}>\n <OutlinedTextField\n placeholderTextColor={styles?.placeholderColor}\n // inputRef={reference}\n value={value}\n onChangeText={(text: string) =>\n id && onTextChanged ? onTextChanged(id, text) : onChangeText\n }\n label={label}\n tintColor={mainColor}\n containerStyle={[s.fieldWrapper, styles?.fieldWrapper]}\n baseColor={mainColor}\n activeLineWidth={styles?.activeLineWidth || 1}\n lineWidth={styles?.lineWidth || 1}\n textContentType={props.isSecure ? 'oneTimeCode' : 'none'}\n autoCorrect={false}\n style={styles?.input}\n errorColor={styles?.errorColor}\n secureTextEntry={secureTextEntry && !isShowingPassword}\n renderRightAccessory={showPasswordButton}\n // // 👇 ADDED/MODIFIED LINE: Explicitly set contentInset to ensure alignment\n // // contentInset={{ left: 12, top: 10, label: 4, input: 8, right: 12 }}\n {...props}\n />\n </View>\n )\n}\n\nexport default Input\n","import { StyleSheet } from 'react-native'\n\nimport R from '../../res'\n\nconst LEFT_ICON_SIZE = 22\nconst TEXT_LEFT_MARGIN = LEFT_ICON_SIZE + 10\nconst FONT_SIZE = 16\n\nexport default StyleSheet.create({\n container: {\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n marginBottom: 16,\n },\n textLabelFocused: {\n color: R.colors.primary,\n fontSize: 14,\n },\n textLabelFocusedError: {\n color: R.colors.danger,\n fontSize: 14,\n },\n textLabel: {\n color: R.colors.primary,\n fontSize: FONT_SIZE,\n },\n textValue: {\n color: R.colors.white,\n fontSize: FONT_SIZE,\n marginLeft: TEXT_LEFT_MARGIN,\n marginBottom: -2,\n },\n textValueWithoutIcon: {\n color: R.colors.white,\n fontSize: FONT_SIZE,\n marginLeft: 0,\n marginBottom: -2,\n },\n fieldWrapper: {\n flex: 1,\n },\n error: {\n color: R.colors.danger,\n fontSize: 14,\n marginTop: -4,\n },\n showPasswordIcon: {\n tintColor: 'black',\n width: 24,\n height: 24,\n },\n})\n","import PropTypes from 'prop-types'\nimport React, { PureComponent } from 'react'\nimport { View, TextInput, Animated, StyleSheet, Platform } from 'react-native'\nimport {\n TextPropTypes,\n ViewPropTypes,\n TextInputPropTypes,\n} from 'deprecated-react-native-prop-types'\n\nimport Line from '../line'\nimport Label from '../label'\nimport Affix from '../affix'\nimport Helper from '../helper'\nimport Counter from '../counter'\n\nimport styles from './styles'\n\nfunction startAnimation(animation, options, callback) {\n Animated.timing(animation, options).start(callback)\n}\n\nfunction labelStateFromProps(props, state) {\n const { placeholder, defaultValue } = props\n const { value, receivedFocus } = state\n\n return !!(placeholder || value || (!receivedFocus && defaultValue))\n}\n\nfunction errorStateFromProps(props, state) {\n const { error } = props\n\n return !!error\n}\n\nexport default class TextField extends PureComponent {\n static defaultProps = {\n underlineColorAndroid: 'transparent',\n disableFullscreenUI: true,\n autoCapitalize: 'sentences',\n editable: true,\n\n animationDuration: 225,\n\n fontSize: 16,\n labelFontSize: 12,\n\n tintColor: 'rgb(0, 145, 234)',\n textColor: 'rgba(0, 0, 0, .87)',\n baseColor: 'rgba(0, 0, 0, .38)',\n\n errorColor: 'rgb(213, 0, 0)',\n\n lineWidth: StyleSheet.hairlineWidth,\n activeLineWidth: 2,\n disabledLineWidth: 1,\n\n lineType: 'solid',\n disabledLineType: 'dotted',\n\n disabled: false,\n }\n\n static propTypes = {\n ...TextInputPropTypes,\n\n animationDuration: PropTypes.number,\n\n fontSize: PropTypes.number,\n labelFontSize: PropTypes.number,\n\n contentInset: PropTypes.shape({\n top: PropTypes.number,\n label: PropTypes.number,\n input: PropTypes.number,\n left: PropTypes.number,\n right: PropTypes.number,\n bottom: PropTypes.number,\n }),\n\n labelOffset: Label.propTypes.offset,\n\n labelTextStyle: TextPropTypes.style,\n titleTextStyle: TextPropTypes.style,\n affixTextStyle: TextPropTypes.style,\n\n tintColor: PropTypes.string,\n textColor: PropTypes.string,\n baseColor: PropTypes.string,\n\n label: PropTypes.string,\n title: PropTypes.string,\n\n characterRestriction: PropTypes.number,\n\n error: PropTypes.string,\n errorColor: PropTypes.string,\n\n lineWidth: PropTypes.number,\n activeLineWidth: PropTypes.number,\n disabledLineWidth: PropTypes.number,\n\n lineType: Line.propTypes.lineType,\n disabledLineType: Line.propTypes.lineType,\n\n disabled: PropTypes.bool,\n\n formatText: PropTypes.func,\n\n renderLeftAccessory: PropTypes.func,\n renderRightAccessory: PropTypes.func,\n\n prefix: PropTypes.string,\n suffix: PropTypes.string,\n\n containerStyle: ViewPropTypes.style,\n inputContainerStyle: ViewPropTypes.style,\n }\n\n static inputContainerStyle = styles.inputContainer\n\n static contentInset = {\n top: 16,\n label: 4,\n input: 8,\n left: 0,\n right: 0,\n bottom: 8,\n }\n\n static labelOffset = {\n x0: 0,\n y0: 0,\n x1: 0,\n y1: 0,\n }\n\n static getDerivedStateFromProps({ error, value }, state) {\n const newState = {}\n /* Keep last received error in state */\n if (error && error !== state.error) {\n newState.error = error\n }\n\n if (value !== undefined && value !== state.value) {\n newState.value = value\n }\n\n return newState\n }\n\n constructor(props) {\n super(props)\n\n this.onBlur = this.onBlur.bind(this)\n this.onFocus = this.onFocus.bind(this)\n this.onPress = this.focus.bind(this)\n this.onChange = this.onChange.bind(this)\n this.onChangeText = this.onChangeText.bind(this)\n this.onContentSizeChange = this.onContentSizeChange.bind(this)\n this.onFocusAnimationEnd = this.onFocusAnimationEnd.bind(this)\n\n this.createGetter('contentInset')\n this.createGetter('labelOffset')\n\n this.inputRef = this.props.inputRef ?? React.createRef()\n this.mounted = false\n this.focused = false\n\n const { value, error, fontSize } = this.props\n\n const labelState = labelStateFromProps(this.props, { value }) ? 1 : 0\n const focusState = errorStateFromProps(this.props) ? -1 : 0\n\n this.state = {\n value,\n error,\n\n focusAnimation: new Animated.Value(focusState),\n labelAnimation: new Animated.Value(labelState),\n\n receivedFocus: false,\n\n height: fontSize * 1.5,\n }\n }\n\n createGetter(name) {\n this[name] = () => {\n const { [name]: value } = this.props\n const { [name]: defaultValue } = this.constructor\n\n return { ...defaultValue, ...value }\n }\n }\n\n componentDidMount() {\n this.mounted = true\n }\n\n componentWillUnmount() {\n this.mounted = false\n }\n\n componentDidUpdate(prevProps, prevState) {\n const errorState = errorStateFromProps(this.props)\n const prevErrorState = errorStateFromProps(prevProps)\n\n if (errorState ^ prevErrorState) {\n this.startFocusAnimation()\n }\n\n const labelState = labelStateFromProps(this.props, this.state)\n const prevLabelState = labelStateFromProps(prevProps, prevState)\n\n if (labelState ^ prevLabelState) {\n this.startLabelAnimation()\n }\n }\n\n startFocusAnimation() {\n const { focusAnimation } = this.state\n const { animationDuration: duration } = this.props\n\n const options = {\n toValue: this.focusState(),\n duration,\n useNativeDriver: false,\n }\n\n startAnimation(focusAnimation, options, this.onFocusAnimationEnd)\n }\n\n startLabelAnimation() {\n const { labelAnimation } = this.state\n const { animationDuration: duration } = this.props\n\n const options = {\n toValue: this.labelState(),\n useNativeDriver: true,\n duration,\n }\n\n startAnimation(labelAnimation, options)\n }\n\n setNativeProps(props) {\n const { current: input } = this.inputRef\n\n input.setNativeProps(props)\n }\n\n focusState() {\n if (errorStateFromProps(this.props)) {\n return -1\n }\n\n return this.focused ? 1 : 0\n }\n\n labelState() {\n if (labelStateFromProps(this.props, this.state)) {\n return 1\n }\n\n return this.focused ? 1 : 0\n }\n\n focus() {\n const { disabled, editable } = this.props\n const { current: input } = this.inputRef\n\n if (!disabled && editable) {\n input.focus()\n }\n }\n\n blur() {\n const { current: input } = this.inputRef\n\n input.blur()\n }\n\n clear() {\n const { current: input } = this.inputRef\n\n input.clear()\n\n /* onChangeText is not triggered by .clear() */\n this.onChangeText('')\n }\n\n value() {\n const { defaultValue } = this.props\n\n const value = this.isDefaultVisible() ? defaultValue : this.state.value\n\n if (value == null) {\n return ''\n }\n\n return typeof value === 'string' ? value : String(value)\n }\n\n setValue(value) {\n this.setState({ value })\n }\n\n isFocused() {\n const { current: input } = this.inputRef\n\n return input.isFocused()\n }\n\n isRestricted() {\n const { characterRestriction: limit } = this.props\n const { length: count } = this.value()\n\n return limit < count\n }\n\n isErrored() {\n return errorStateFromProps(this.props)\n }\n\n isDefaultVisible() {\n const { value, receivedFocus } = this.state\n const { defaultValue } = this.props\n\n return !receivedFocus && value == null && defaultValue != null\n }\n\n isPlaceholderVisible() {\n const { placeholder } = this.props\n\n return placeholder && !this.focused && !this.value()\n }\n\n isLabelActive() {\n return this.labelState() === 1\n }\n\n onFocus(event) {\n const { onFocus, clearTextOnFocus } = this.props\n const { receivedFocus } = this.state\n\n if (typeof onFocus === 'function') {\n onFocus(event)\n }\n\n if (clearTextOnFocus) {\n this.clear()\n }\n\n this.focused = true\n\n this.startFocusAnimation()\n this.startLabelAnimation()\n\n if (!receivedFocus) {\n this.setState({ receivedFocus: true, value: this.value() })\n }\n }\n\n onBlur(event) {\n const { onBlur } = this.props\n\n if (typeof onBlur === 'function') {\n onBlur(event)\n }\n\n this.focused = false\n\n this.startFocusAnimation()\n this.startLabelAnimation()\n }\n\n onChange(event) {\n const { onChange } = this.props\n\n if (typeof onChange === 'function') {\n onChange(event)\n }\n }\n\n onChangeText(text) {\n const { onChangeText, formatText } = this.props\n\n if (typeof formatText === 'function') {\n text = formatText(text)\n }\n\n this.setState({ value: text })\n\n if (typeof onChangeText === 'function') {\n onChangeText(text)\n }\n }\n\n onContentSizeChange(event) {\n const { onContentSizeChange, fontSize } = this.props\n const { height } = event.nativeEvent.contentSize\n\n if (typeof onContentSizeChange === 'function') {\n onContentSizeChange(event)\n }\n\n this.setState({\n height: Math.max(\n fontSize * 1.5,\n Math.ceil(height) + Platform.select({ ios: 4, android: 1 })\n ),\n })\n }\n\n onFocusAnimationEnd() {\n const { error } = this.props\n const { error: retainedError } = this.state\n\n if (this.mounted && !error && retainedError) {\n this.setState({ error: null })\n }\n }\n\n inputHeight() {\n const { height: computedHeight } = this.state\n const { multiline, fontSize, height = computedHeight } = this.props\n\n return multiline ? height : fontSize * 1.5\n }\n\n inputContainerHeight() {\n const { labelFontSize, multiline } = this.props\n const contentInset = this.contentInset()\n\n if (Platform.OS === 'web' && multiline) {\n return 'auto'\n }\n\n return (\n contentInset.top +\n labelFontSize +\n contentInset.label +\n this.inputHeight() +\n contentInset.input\n )\n }\n\n inputProps() {\n const store = {}\n\n for (const key in TextInputPropTypes) {\n if (key === 'defaultValue') {\n continue\n }\n\n if (key in this.props) {\n store[key] = this.props[key]\n }\n }\n\n return store\n }\n\n inputStyle() {\n const { fontSize, baseColor, textColor, disabled, multiline } = this.props\n\n const color = disabled || this.isDefaultVisible() ? baseColor : textColor\n\n const style = {\n fontSize,\n color,\n\n height: this.inputHeight(),\n }\n\n if (multiline) {\n const lineHeight = fontSize * 1.5\n const offset = Platform.OS === 'ios' ? 2 : 0\n\n style.height += lineHeight\n style.transform = [\n {\n translateY: lineHeight + offset,\n },\n ]\n }\n\n return style\n }\n\n renderLabel(props) {\n const offset = this.labelOffset()\n\n const { label, fontSize, labelFontSize, labelTextStyle } = this.props\n\n return (\n <Label\n {...props}\n fontSize={fontSize}\n activeFontSize={labelFontSize}\n offset={offset}\n label={label}\n style={labelTextStyle}\n />\n )\n }\n\n renderLine(props) {\n return <Line {...props} />\n }\n\n renderAccessory(prop) {\n const { [prop]: renderAccessory } = this.props\n\n return typeof renderAccessory === 'function' ? renderAccessory() : null\n }\n\n renderAffix(type) {\n const { labelAnimation } = this.state\n const {\n [type]: affix,\n fontSize,\n baseColor: color,\n affixTextStyle: style,\n } = this.props\n\n if (affix == null) {\n return null\n }\n\n const props = {\n type,\n style,\n color,\n fontSize,\n labelAnimation,\n }\n\n return <Affix {...props}>{affix}</Affix>\n }\n\n renderHelper() {\n const { focusAnimation, error } = this.state\n\n const {\n title,\n disabled,\n baseColor,\n errorColor,\n titleTextStyle: style,\n characterRestriction: limit,\n } = this.props\n\n const { length: count } = this.value()\n const contentInset = this.contentInset()\n\n const containerStyle = {\n paddingLeft: contentInset.left,\n paddingRight: contentInset.right,\n minHeight: contentInset.bottom,\n }\n\n const styleProps = {\n style,\n baseColor,\n errorColor,\n }\n\n const counterProps = {\n ...styleProps,\n limit,\n count,\n }\n\n const helperProps = {\n ...styleProps,\n title,\n error,\n disabled,\n focusAnimation,\n }\n\n return (\n <View style={[styles.helperContainer, containerStyle]}>\n <Helper {...helperProps} />\n <Counter {...counterProps} />\n </View>\n )\n }\n\n renderInput() {\n const { disabled, editable, tintColor, style: inputStyleOverrides } = this.props\n\n const props = this.inputProps()\n const inputStyle = this.inputStyle()\n\n return (\n <TextInput\n selectionColor={tintColor}\n {...props}\n style={[styles.input, inputStyle, inputStyleOverrides]}\n editable={!disabled && editable}\n onChange={this.onChange}\n onChangeText={this.onChangeText}\n onContentSizeChange={this.onContentSizeChange}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n value={this.value()}\n ref={this.inputRef}\n />\n )\n }\n\n render() {\n const { labelAnimation, focusAnimation } = this.state\n const {\n editable,\n disabled,\n lineType,\n disabledLineType,\n lineWidth,\n activeLineWidth,\n disabledLineWidth,\n tintColor,\n baseColor,\n errorColor,\n containerStyle,\n inputContainerStyle: inputContainerStyleOverrides,\n } = this.props\n\n const restricted = this.isRestricted()\n const contentInset = this.contentInset()\n\n const inputContainerStyle = {\n paddingTop: contentInset.top,\n paddingRight: contentInset.right,\n paddingBottom: contentInset.input,\n paddingLeft: contentInset.left,\n height: this.inputContainerHeight(),\n }\n\n const containerProps = {\n style: containerStyle,\n onStartShouldSetResponder: () => true,\n onResponderRelease: this.onPress,\n pointerEvents: !disabled ? 'auto' : 'none',\n }\n\n const inputContainerProps = {\n style: [\n this.constructor.inputContainerStyle,\n inputContainerStyle,\n inputContainerStyleOverrides,\n ],\n }\n\n const styleProps = {\n disabled,\n restricted,\n baseColor,\n tintColor,\n errorColor,\n\n contentInset,\n\n focusAnimation,\n labelAnimation,\n }\n\n const lineProps = {\n ...styleProps,\n\n lineWidth,\n activeLineWidth,\n disabledLineWidth,\n\n lineType,\n disabledLineType,\n }\n\n return (\n <View {...containerProps}>\n <Animated.View {...inputContainerProps}>\n {this.renderLine(lineProps)}\n {this.renderAccessory('renderLeftAccessory')}\n <View style={styles.stack} pointerEvents={editable ? 'auto' : 'none'}>\n {this.renderLabel(styleProps)}\n <View style={styles.row}>\n {this.renderAffix('prefix')}\n {this.renderInput()}\n {this.renderAffix('suffix')}\n </View>\n </View>\n {this.renderAccessory('renderRightAccessory')}\n </Animated.View>\n {this.renderHelper()}\n </View>\n )\n }\n}\n","import PropTypes from 'prop-types'\nimport React, { PureComponent } from 'react'\nimport { View, Animated } from 'react-native'\n\nimport styles from './styles'\n\nconst lineTypes = PropTypes.oneOf(['solid', 'dotted', 'dashed', 'none'])\n\nexport default class Line extends PureComponent {\n static defaultProps = {\n lineType: 'solid',\n disabledLineType: 'dotted',\n\n disabled: false,\n restricted: false,\n }\n\n static propTypes = {\n lineType: lineTypes,\n disabledLineType: lineTypes,\n\n disabled: PropTypes.bool,\n restricted: PropTypes.bool,\n\n tintColor: PropTypes.string,\n baseColor: PropTypes.string,\n errorColor: PropTypes.string,\n\n lineWidth: PropTypes.number,\n activeLineWidth: PropTypes.number,\n disabledLineWidth: PropTypes.number,\n\n focusAnimation: PropTypes.instanceOf(Animated.Value),\n }\n\n static getDerivedStateFromProps(props, state) {\n const { lineWidth, activeLineWidth, disabledLineWidth } = props\n\n const maxLineWidth = Math.max(lineWidth, activeLineWidth, disabledLineWidth, 1)\n\n if (maxLineWidth !== state.maxLineWidth) {\n return { maxLineWidth }\n }\n\n return null\n }\n\n state = { maxLineWidth: 1 }\n\n borderProps() {\n const {\n disabled,\n restricted,\n lineWidth,\n activeLineWidth,\n disabledLineWidth,\n baseColor,\n tintColor,\n errorColor,\n focusAnimation,\n } = this.props\n\n if (disabled) {\n return {\n borderColor: baseColor,\n borderWidth: disabledLineWidth,\n }\n }\n\n if (restricted) {\n return {\n borderColor: errorColor,\n borderWidth: activeLineWidth,\n }\n }\n\n return {\n borderColor: focusAnimation.interpolate({\n inputRange: [-1, 0, 1],\n outputRange: [errorColor, baseColor, tintColor],\n }),\n\n borderWidth: focusAnimation.interpolate({\n inputRange: [-1, 0, 1],\n outputRange: [activeLineWidth, lineWidth, activeLineWidth],\n }),\n }\n }\n\n render() {\n const { maxLineWidth } = this.state\n const { disabled, lineType, disabledLineType } = this.props\n\n const borderStyle = disabled ? disabledLineType : lineType\n\n if (borderStyle === 'none') {\n return null\n }\n\n const [top, right, left] = Array.from(new Array(3), () => -1.5 * maxLineWidth)\n\n const lineStyle = {\n ...this.borderProps(),\n\n borderStyle,\n top,\n right,\n left,\n }\n\n return (\n <View style={styles.container} pointerEvents=\"none\">\n <Animated.View style={[styles.line, lineStyle]} />\n </View>\n )\n }\n}\n","import { StyleSheet, Platform } from 'react-native'\n\nexport default StyleSheet.create({\n line: {\n position: 'absolute',\n bottom: 0,\n\n ...Platform.select({\n android: { borderRadius: Number.EPSILON },\n }),\n },\n\n container: {\n ...StyleSheet.absoluteFillObject,\n\n overflow: 'hidden',\n },\n})\n","import PropTypes from 'prop-types'\nimport React, { PureComponent } from 'react'\nimport { Animated } from 'react-native'\nimport { TextPropTypes } from 'deprecated-react-native-prop-types'\n\nimport styles from './styles'\n\nexport default class Label extends PureComponent {\n static defaultProps = {\n numberOfLines: 1,\n disabled: false,\n restricted: false,\n }\n\n static propTypes = {\n numberOfLines: PropTypes.number,\n\n disabled: PropTypes.bool,\n restricted: PropTypes.bool,\n\n fontSize: PropTypes.number.isRequired,\n activeFontSize: PropTypes.number.isRequired,\n\n baseColor: PropTypes.string.isRequired,\n tintColor: PropTypes.string.isRequired,\n errorColor: PropTypes.string.isRequired,\n\n focusAnimation: PropTypes.instanceOf(Animated.Value).isRequired,\n\n labelAnimation: PropTypes.instanceOf(Animated.Value).isRequired,\n\n contentInset: PropTypes.shape({\n label: PropTypes.number,\n }),\n\n offset: PropTypes.shape({\n x0: PropTypes.number,\n y0: PropTypes.number,\n x1: PropTypes.number,\n y1: PropTypes.number,\n }),\n\n style: TextPropTypes.style,\n label: PropTypes.string,\n }\n\n render() {\n const {\n label,\n offset,\n disabled,\n restricted,\n fontSize,\n activeFontSize,\n contentInset,\n errorColor,\n baseColor,\n tintColor,\n style,\n focusAnimation,\n labelAnimation,\n ...props\n } = this.props\n\n if (label == null) {\n return null\n }\n\n const color = disabled\n ? baseColor\n : restricted\n ? errorColor\n : focusAnimation.interpolate({\n inputRange: [-1, 0, 1],\n outputRange: [errorColor, baseColor, tintColor],\n })\n\n const textStyle = {\n lineHeight: style?.lineHeight || fontSize,\n fontSize,\n color,\n }\n\n let { x0, y0, x1, y1 } = offset\n\n y0 += activeFontSize\n y0 += contentInset.label\n y0 += fontSize * 0.25\n\n const scale = labelAnimation.interpolate({\n inputRange: [0, 1],\n outputRange: [1, activeFontSize / fontSize],\n })\n\n const containerStyle = {\n transform: [\n {\n translateX: labelAnimation.interpolate({\n inputRange: [0, 1],\n outputRange: [x0, x1],\n }),\n },\n {\n translateY: labelAnimation.interpolate({\n inputRange: [0, 1],\n outputRange: [y0, y1],\n }),\n },\n {\n scale,\n },\n ],\n }\n\n return (\n <Animated.View style={[styles.container, containerStyle]}>\n <Animated.Text style={[styles.text, style, textStyle]} {...props}>\n {label}\n </Animated.Text>\n </Animated.View>\n )\n }\n}\n","import { StyleSheet } from 'react-native'\n\nexport default StyleSheet.create({\n container: {\n position: 'absolute',\n top: 0,\n transformOrigin: 'left',\n transform: [{ translateX: '-50%' }],\n },\n\n text: {\n textAlign: 'left',\n includeFontPadding: false,\n textAlignVertical: 'top',\n },\n})\n","import PropTypes from 'prop-types'\nimport React, { PureComponent } from 'react'\nimport { Animated } from 'react-native'\nimport { TextPropTypes } from 'deprecated-react-native-prop-types'\n\nimport styles from './styles'\n\nexport default class Affix extends PureComponent {\n static defaultProps = {\n numberOfLines: 1,\n }\n\n static propTypes = {\n numberOfLines: PropTypes.number,\n style: TextPropTypes.style,\n\n color: PropTypes.string.isRequired,\n fontSize: PropTypes.number.isRequired,\n\n type: PropTypes.oneOf(['prefix', 'suffix']).isRequired,\n\n labelAnimation: PropTypes.instanceOf(Animated.Value).isRequired,\n\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n }\n\n render() {\n const { labelAnimation, style, children, type, fontSize, color } = this.props\n\n const containerStyle = {\n height: fontSize * 1.5,\n opacity: labelAnimation,\n }\n\n const textStyle = {\n includeFontPadding: false,\n textAlignVertical: 'top',\n\n fontSize,\n color,\n }\n\n switch (type) {\n case 'prefix':\n containerStyle.paddingRight = 8\n textStyle.textAlign = 'left'\n break\n\n case 'suffix':\n containerStyle.paddingLeft = 8\n textStyle.textAlign = 'right'\n break\n }\n\n return (\n <Animated.View style={[styles.container, containerStyle]}>\n <Animated.Text style={[style, textStyle]}>{children}</Animated.Text>\n </Animated.View>\n )\n }\n}\n","import { StyleSheet } from 'react-native'\n\nexport default StyleSheet.create({\n container: {\n top: 2,\n justifyContent: 'center',\n },\n})\n","import PropTypes from 'prop-types'\nimport React, { PureComponent } from 'react'\nimport { Animated } from 'react-native'\nimport { TextPropTypes } from 'deprecated-react-native-prop-types'\n\nimport styles from './styles'\n\nexport default class Helper extends PureComponent {\n static propTypes = {\n title: PropTypes.string,\n error: PropTypes.string,\n disabled: PropTypes.bool,\n style: TextPropTypes.style,\n baseColor: PropTypes.string,\n errorColor: PropTypes.string,\n focusAnimation: PropTypes.instanceOf(Animated.Value),\n }\n\n constructor(props) {\n super(props)\n\n const { error, focusAnimation } = this.props\n\n const opacity = focusAnimation.interpolate({\n inputRange: [-1, -0.5, 0],\n outputRange: [1, 0, 1],\n extrapolate: 'clamp',\n })\n\n this.state = {\n errored: !!error,\n opacity,\n }\n }\n\n componentDidMount() {\n const { focusAnimation } = this.props\n\n this.listener = focusAnimation.addListener(this.onAnimation.bind(this))\n }\n\n componentWillUnmount() {\n const { focusAnimation } = this.props\n\n focusAnimation.removeListener(this.listener)\n }\n\n onAnimation({ value }) {\n if (this.animationValue > -0.5 && value <= -0.5) {\n this.setState({ errored: true })\n }\n\n if (this.animationValue < -0.5 && value >= -0.5) {\n this.setState({ errored: false })\n }\n\n this.animationValue = value\n }\n\n render() {\n const { errored, opacity } = this.state\n const { style, title, error, disabled, baseColor, errorColor } = this.props\n\n const text = errored ? error : title\n\n if (text == null) {\n return null\n }\n\n const textStyle = {\n opacity,\n\n color: !disabled && errored ? errorColor : baseColor,\n }\n\n return <Animated.Text style={[styles.text, style, textStyle]}>{text}</Animated.Text>\n }\n}\n","import { StyleSheet } from 'react-native'\n\nexport default StyleSheet.create({\n text: {\n flex: 1,\n fontSize: 12,\n lineHeight: 16,\n backgroundColor: 'transparent',\n paddingVertical: 2,\n textAlign: 'left',\n },\n})\n","import PropTypes from 'prop-types'\nimport React, { PureComponent } from 'react'\nimport { Text } from 'react-native'\n\nimport styles from './styles'\nimport { TextPropTypes } from 'deprecated-react-native-prop-types'\n\nexport default class Counter extends PureComponent {\n static propTypes = {\n count: PropTypes.number.isRequired,\n limit: PropTypes.number,\n\n baseColor: PropTypes.string.isRequired,\n errorColor: PropTypes.string.isRequired,\n\n style: TextPropTypes.style,\n }\n\n render() {\n const { count, limit, baseColor, errorColor, style } = this.props\n\n if (!limit) {\n return null\n }\n\n const textStyle = {\n color: count > limit ? errorColor : baseColor,\n }\n\n return (\n <Text style={[styles.text, style, textStyle]}>\n {count} / {limit}\n </Text>\n )\n }\n}\n","import { StyleSheet } from 'react-native'\n\nexport default StyleSheet.create({\n text: {\n fontSize: 12,\n lineHeight: 16,\n textAlign: 'right',\n backgroundColor: 'transparent',\n paddingVertical: 2,\n marginLeft: 8,\n },\n})\n","import { StyleSheet, I18nManager } from 'react-native'\n\nexport default StyleSheet.create({\n inputContainer: {\n flexDirection: 'row',\n alignItems: 'flex-end',\n },\n\n input: {\n top: 2,\n padding: 0,\n paddingTop: 0 /* XXX: iOS has paddingTop set for multiline input */,\n margin: 0,\n flex: 1,\n\n textAlign: I18nManager.isRTL ? 'right' : 'left',\n\n includeFontPadding: false,\n textAlignVertical: 'top',\n },\n\n helperContainer: {\n flexDirection: 'row',\n justifyContent: 'flex-end',\n alignItems: 'flex-start',\n },\n\n row: {\n flex: 1,\n flexDirection: 'row',\n alignItems: 'flex-end',\n },\n\n stack: {\n flex: 1,\n alignSelf: 'stretch',\n },\n\n flex: {\n flex: 1,\n },\n})\n","import { StyleSheet } from 'react-native'\n\nexport default StyleSheet.create({\n inputContainer: {\n borderTopLeftRadius: 4,\n borderTopRightRadius: 4,\n\n backgroundColor: 'rgb(204, 204, 204)',\n },\n})\n","import TextField from '../field'\nimport styles from './styles'\n\nexport default class FilledTextField extends TextField {\n static contentInset = {\n ...TextField.contentInset,\n\n top: 8,\n left: 12,\n right: 12,\n }\n\n static labelOffset = {\n ...TextField.labelOffset,\n\n y0: -10,\n y1: -2,\n }\n\n static inputContainerStyle = [TextField.inputContainerStyle, styles.inputContainer]\n}\n","import React from 'react'\nimport { Animated, StyleSheet } from 'react-native'\n\nimport TextField from '../field'\nimport Outline from '../outline'\n\nexport default class OutlinedTextField extends TextField {\n static contentInset = {\n ...TextField.contentInset,\n\n input: 16,\n\n top: 0,\n left: 12,\n right: 12,\n }\n\n static labelOffset = {\n ...TextField.labelOffset,\n\n y0: 0,\n y1: -10,\n }\n\n static defaultProps = {\n ...TextField.defaultProps,\n\n lineWidth: 1,\n disabledLineWidth: StyleSheet.hairlineWidth,\n }\n\n constructor(props) {\n super(props)\n\n this.onTextLayout = this.onTextLayout.bind(this)\n this.state.labelWidth = new Animated.Value(0)\n }\n\n onTextLayout({ nativeEvent: { lines } }) {\n const { fontSize, labelFontSize } = this.props\n const { labelWidth } = this.state\n\n const scale = labelFontSize / fontSize\n\n labelWidth.setValue(lines[0].width * scale)\n }\n\n renderLabel(props) {\n const { onTextLayout } = this\n\n return super.renderLabel({ ...props, onTextLayout })\n }\n\n renderLine(props) {\n const { labelWidth } = this.state\n\n return <Outline {...props} labelWidth={labelWidth} />\n }\n}\n","import PropTypes from 'prop-types'\nimport React, { Fragment, PureComponent } from 'react'\nimport { View, Animated, I18nManager } from 'react-native'\n\nimport styles, { borderRadius } from './styles'\n\nexport default class Line extends PureComponent {\n static defaultProps = {\n lineType: 'solid',\n disabled: false,\n restricted: false,\n }\n\n static propTypes = {\n lineType: PropTypes.oneOf(['solid', 'none']),\n\n disabled: PropTypes.bool,\n restricted: PropTypes.bool,\n\n tintColor: PropTypes.string,\n baseColor: PropTypes.string,\n errorColor: PropTypes.string,\n\n lineWidth: PropTypes.number,\n activeLineWidth: PropTypes.number,\n disabledLineWidth: PropTypes.number,\n\n focusAnimation: PropTypes.instanceOf(Animated.Value),\n labelAnimation: PropTypes.instanceOf(Animated.Value),\n labelWidth: PropTypes.instanceOf(Animated.Value),\n\n contentInset: PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n }),\n }\n\n borderProps() {\n const {\n disabled,\n restricted,\n lineType,\n lineWidth,\n activeLineWidth,\n disabledLineWidth,\n baseColor,\n tintColor,\n errorColor,\n focusAnimation,\n } = this.props\n\n if (disabled) {\n return {\n borderColor: baseColor,\n borderWidth: disabledLineWidth,\n }\n }\n\n if (restricted) {\n return {\n borderColor: errorColor,\n borderWidth: activeLineWidth,\n }\n }\n\n return {\n borderColor: focusAnimation.interpolate({\n inputRange: [-1, 0, 1],\n outputRange: [errorColor, baseColor, tintColor],\n }),\n\n borderWidth: focusAnimation.interpolate({\n inputRange: [-1, 0, 1],\n outputRange: [activeLineWidth, lineWidth, activeLineWidth],\n }),\n\n borderStyle: lineType,\n }\n }\n\n render() {\n const { lineType, labelWidth, labelAnimation, contentInset } = this.props\n\n if (lineType === 'none') {\n return null\n }\n\n const labelOffset = 2 * (contentInset.left - 2 * borderRadius)\n const lineOffset = Animated.add(labelWidth, labelOffset)\n\n const topLineContainerStyle = {\n transform: [\n {\n scaleX: I18nManager.isRTL ? -1 : 1,\n },\n {\n translateX: Animated.multiply(labelAnimation, lineOffset),\n },\n ],\n }\n\n const leftContainerStyle = {\n width: contentInset.left - borderRadius,\n }\n\n const rightContainerStyle = {\n width: contentInset.right - borderRadius,\n }\n\n const topContainerStyle = {\n left: leftContainerStyle.width,\n right: rightContainerStyle.width,\n }\n\n const lineStyle = this.borderProps()\n\n return (\n <Fragment>\n <View style={[styles.topContainer, topContainerStyle]} pointerEvents=\"none\">\n <Animated.View style={[styles.topLineContainer, topLineContainerStyle]}>\n <Animated.View style={[styles.borderTop, lineStyle]} />\n </Animated.View>\n </View>\n\n <View style={[styles.rightContainer, rightContainerStyle]} pointerEvents=\"none\">\n <Animated.View style={[styles.borderRight, lineStyle]} />\n </View>\n\n <View style={styles.bottomContainer} pointerEvents=\"none\">\n <Animated.View style={[styles.borderBottom, lineStyle]} />\n </View>\n\n <View style={[styles.leftContainer, leftContainerStyle]} pointerEvents=\"none\">\n <Animated.View style={[styles.borderLeft, lineStyle]} />\n </View>\n </Fragment>\n )\n }\n}\n","import { StyleSheet, Platform } from 'react-native'\n\nexport const borderRadius = 4\n\nconst containerStyle = {\n position: 'absolute',\n overflow: 'hidden',\n}\n\nexport default StyleSheet.create({\n borderLeft: {\n ...StyleSheet.absoluteFillObject,\n borderRadius,\n\n right: -borderRadius,\n bottom: -borderRadius,\n },\n\n borderRight: {\n ...StyleSheet.absoluteFillObject,\n borderRadius,\n\n left: -borderRadius,\n bottom: -borderRadius,\n },\n\n borderBottom: {\n ...StyleSheet.absoluteFillObject,\n borderRadius,\n\n top: -borderRadius,\n\n /* XXX: Android positioning error workaround */\n bottom: StyleSheet.hairlineWidth,\n },\n\n borderTop: {\n ...StyleSheet.absoluteFillObject,\n borderRadius,\n\n left: -borderRadius,\n right: -borderRadius,\n bottom: -borderRadius,\n },\n\n leftContainer: {\n ...containerStyle,\n\n top: 0,\n left: 0,\n width: borderRadius,\n height: borderRadius,\n },\n\n rightContainer: {\n ...containerStyle,\n\n top: 0,\n right: 0,\n height: borderRadius,\n },\n\n bottomContainer: {\n ...containerStyle,\n\n top: borderRadius - (Platform.OS === 'android' ? 0.25 : 0),\n left: 0,\n right: 0,\n bottom: 0,\n },\n\n topContainer: {\n ...containerStyle,\n\n top: 0,\n height: borderRadius,\n },\n\n topLineContainer: {\n ...StyleSheet.absoluteFillObject,\n overflow: 'hidden',\n },\n})\n","import { StyleSheet } from 'react-native'\n\nimport R from '../../res'\n\nconst FONT_SIZE = 16\n\nexport default StyleSheet.create({\n container: {\n width: '100%',\n position: 'relative',\n },\n label: {\n fontSize: 12,\n color: R.colors.primary,\n marginBottom: 4,\n fontWeight: '400',\n },\n button: {\n width: '100%',\n borderWidth: 1,\n height: 56,\n alignItems: 'flex-start',\n justifyContent: 'center',\n paddingHorizontal: 12,\n borderColor: '#bdbdbd',\n borderRadius: 4,\n backgroundColor: 'transparent',\n },\n text: {\n fontSize: FONT_SIZE,\n paddingVertical: 8,\n color: '#000000',\n },\n error: {\n color: R.colors.danger,\n fontSize: 12,\n marginTop: 4,\n },\n})\n","//@ts-nocheck\n\nimport React, { MutableRefObject, useCallback, useEffect, useRef, useState } from 'react'\nimport {\n FlatList,\n Image,\n Modal,\n Text,\n TouchableOpacity,\n TouchableWithoutFeedback,\n View,\n} from 'react-native'\n\nimport R from '../../res'\nimport Separator from '../separator/Separator'\nimport DropdownListItem from './DropdownListItem'\nimport { DropdownStyles as s } from './styles'\nimport { IDropdownItem, IDropdownProps } from './types'\n\nconst Dropdown = ({ items, selectedOption, onSelectItem, styles }: IDropdownProps) => {\n const [isModalVisible, setIsModalVisible] = useState(false)\n const flatListRef: MutableRefObject<FlatList> = useRef()\n\n const showModal = () => {\n requestAnimationFrame(() => {\n setIsModalVisible(true)\n })\n }\n const hideModal = () => {\n requestAnimationFrame(() => {\n setIsModalVisible(false)\n })\n }\n\n const handleOnSelectItem = (item: IDropdownItem) => {\n onSelectItem(item)\n hideModal()\n }\n\n useEffect(() => {\n if (flatListRef?.current) {\n flatListRef.current.flashScrollIndicators()\n }\n }, [isModalVisible])\n\n const renderItem = useCallback(\n ({ item }) => (\n <DropdownListItem\n item={item}\n onSelectItem={handleOnSelectItem}\n selectedOption={selectedOption}\n styles={styles?.listItem}\n />\n ),\n\n [handleOnSelectItem, selectedOption]\n )\n\n const keyExtractor = useCallback((item: IDropdownItem) => item.value.toString(), [])\n\n const renderSeparator = useCallback(() => <Separator />, [])\n\n const getItemLayout = useCallback(\n (data, index) => ({\n length: 45,\n offset: 45 * index,\n index,\n }),\n []\n )\n\n return (\n <View style={[s.rootContainer, styles?.container]}>\n <TouchableOpacity onPress={showModal} style={[s.button, styles?.button]}>\n <Text style={[s.label, styles?.label]}>{selectedOption?.label}</Text>\n <Image source={R.icons.dropdown} style={[s.icon, styles?.icon]} />\n </TouchableOpacity>\n {isModalVisible && items.length > 0 && (\n <Modal presentationStyle=\"overFullScreen\" transparent={true}>\n <View style={s.modalContainer}>\n <TouchableOpacity\n activeOpacity={1}\n onPress={hideModal}\n style={s.modalBackgroundTouchable}\n >\n <TouchableWithoutFeedback>\n <View style={[s.dialog, styles?.dialog]}>\n <FlatList\n keyExtractor={keyExtractor}\n ref={flatListRef}\n indicatorStyle=\"black\"\n data={items}\n extraData={items}\n maxToRenderPerBatch={6}\n initialNumToRender={6}\n renderItem={renderItem}\n ItemSeparatorComponent={renderSeparator}\n getItemLayout={getItemLayout}\n style={[s.flatListContainer, styles?.flatListContainer]}\n />\n </View>\n </TouchableWithoutFeedback>\n </TouchableOpacity>\n </View>\n </Modal>\n )}\n </View>\n )\n}\n\nexport default Dropdown\n","import React from 'react'\nimport { View } from 'react-native'\n\nimport { ISeparatorProps } from './types'\n\nconst Separator = ({\n color,\n height,\n width,\n marginLeft,\n marginVertical,\n}: ISeparatorProps) => {\n return (\n <View\n style={{\n height: height || 1,\n backgroundColor: color || '#DEDEDE',\n width: width || '99%',\n marginLeft: marginLeft || '0.5%',\n marginVertical: marginVertical,\n }}\n />\n )\n}\n\nexport default Separator\n","import React from 'react'\nimport { Text, TouchableOpacity, View } from 'react-native'\n\nimport { DropdownListItemStyles as s } from './styles'\nimport { IDropdownListItemProps } from './types'\n\nconst DropdownListItem = ({\n item,\n onSelectItem,\n selectedOption,\n styles,\n}: IDropdownListItemProps) => {\n const handleOnSelectItem = () => onSelectItem(item)\n const isSelected = !!selectedOption && selectedOption.value === item.value\n const selectedStyles = [s.buttonSelected, styles?.buttonSelected]\n\n const buttonStyles = [s.button, styles?.button]\n\n return (\n <View style={[s.rootContainer, styles?.container]}>\n <TouchableOpacity\n onPress={handleOnSelectItem}\n style={isSelected ? selectedStyles : buttonStyles}\n >\n <Text\n style={[s.text, isSelected ? styles?.textSelected : styles?.text]}\n numberOfLines={2}\n >\n {item.label}\n </Text>\n </TouchableOpacity>\n </View>\n )\n}\n\nexport default DropdownListItem\n","import { Dimensions, StyleSheet } from 'react-native'\n\nimport R from '../../res'\n\nconst { width: sWidth, height: sHeight } = Dimensions.get('window')\n\nconst DIALOG = {\n width: sWidth * 0.8,\n maxHeight: sHeight * 0.5,\n minHeight: sHeight * 0.2,\n}\n\nexport const DropdownStyles = StyleSheet.create({\n rootContainer: {\n width: 50,\n },\n button: {\n width: '100%',\n borderWidth: 2,\n height: 45,\n alignItems: 'center',\n justifyContent: 'space-between',\n flexDirection: 'row',\n paddingHorizontal: 8,\n borderColor: R.colors.black,\n },\n icon: {\n height: 14,\n width: 14,\n resizeMode: 'contain',\n tintColor: R.colors.black,\n },\n label: {\n color: R.colors.black,\n fontSize: 16,\n },\n modalContainer: {\n flex: 1,\n backgroundColor: 'rgba(0,0,0,0.8)',\n },\n modalBackgroundTouchable: {\n width: '100%',\n height: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n },\n dialog: {\n backgroundColor: R.colors.white,\n paddingVertical: 16,\n borderRadius: 2,\n alignItems: 'center',\n justifyContent: 'center',\n width: DIALOG.width,\n maxHeight: DIALOG.maxHeight,\n minHeight: DIALOG.minHeight,\n shadowColor: R.colors.black,\n shadowOffset: {\n width: 3,\n height: 2,\n },\n shadowOpacity: 0.3,\n shadowRadius: 3,\n },\n flatListContainer: {\n width: DIALOG.width,\n },\n})\n\nexport const DropdownListItemStyles = StyleSheet.create({\n rootContainer: {\n paddingVertical: 4,\n minWidth: 100,\n alignItems: 'center',\n },\n button: {\n width: '100%',\n minHeight: 35,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: R.colors.white,\n paddingHorizontal: 8,\n },\n buttonSelected: {\n width: '100%',\n minHeight: 35,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: R.colors.tint,\n paddingHorizontal: 8,\n },\n text: {\n fontSize: 18,\n fontWeight: '600',\n textAlign: 'center',\n color: R.colors.black,\n },\n})\n","//@ts-nocheck\n\nimport React, { MutableRefObject, useCallback, useEffect, useRef, useState } from 'react'\nimport {\n FlatList,\n Image,\n Modal,\n TouchableOpacity,\n TouchableWithoutFeedback,\n View,\n} from 'react-native'\n\nimport R from '../../res'\nimport DropdownListItem from '../dropdown/DropdownListItem'\nimport Input from '../input/Input'\nimport Separator from '../separator/Separator'\nimport { DropdownMaterialStyles as s } from './styles'\nimport { IDropdownItem, IDropdownMaterialProps } from './types'\n\nconst DropdownMaterial = ({\n items,\n selectedOption,\n onSelectItem,\n styles,\n materialInputProps,\n}: IDropdownMaterialProps) => {\n const [isModalVisible, setIsModalVisible] = useState(false)\n const flatListRef: MutableRefObject<FlatList> = useRef()\n\n const showModal = () => {\n requestAnimationFrame(() => {\n setIsModalVisible(true)\n })\n }\n const hideModal = () => {\n requestAnimationFrame(() => {\n setIsModalVisible(false)\n })\n }\n\n const handleOnSelectItem = (item: IDropdownItem) => {\n onSelectItem(item)\n hideModal()\n }\n\n useEffect(() => {\n if (flatListRef?.current) {\n flatListRef.current.flashScrollIndicators()\n }\n }, [isModalVisible])\n\n const renderItem = useCallback(\n ({ item }) => (\n <DropdownListItem\n item={item}\n onSelectItem={handleOnSelectItem}\n selectedOption={selectedOption}\n styles={styles?.listItem}\n />\n ),\n\n [handleOnSelectItem, selectedOption]\n )\n\n const keyExtractor = useCallback((item: IDropdownItem) => item.value.toString(), [])\n\n const renderSeparator = useCallback(() => <Separator />, [])\n\n const getItemLayout = useCallback(\n (data, index) => ({\n length: 45,\n offset: 45 * index,\n index,\n }),\n []\n )\n\n const RightComponent = useCallback(\n () => <Image source={R.icons.dropdown} style={[s.icon, styles?.icon]} />,\n [styles?.icon]\n )\n\n return (\n <View style={[s.rootContainer, styles?.container]}>\n <TouchableOpacity onPress={showModal} style={s.button}>\n <Input\n {...materialInputProps}\n value={selectedOption?.label}\n styles={styles?.input}\n disabled={true}\n pointerEvents=\"box-none\"\n disabledLineWidth={1}\n renderRightAccessory={RightComponent}\n />\n </TouchableOpacity>\n {isModalVisible && items.length > 0 && (\n <Modal presentationStyle=\"overFullScreen\" transparent={true}>\n <View style={s.modalContainer}>\n <TouchableOpacity\n activeOpacity={1}\n onPress={hideModal}\n style={s.modalBackgroundTouchable}\n >\n <TouchableWithoutFeedback>\n <View style={[s.dialog, styles?.dialog]}>\n <FlatList\n keyExtractor={keyExtractor}\n ref={flatListRef}\n indicatorStyle=\"black\"\n data={items}\n extraData={items}\n maxToRenderPerBatch={6}\n initialNumToRender={6}\n renderItem={renderItem}\n ItemSeparatorComponent={renderSeparator}\n getItemLayout={getItemLayout}\n style={[s.flatListContainer, styles?.flatListContainer]}\n />\n </View>\n </TouchableWithoutFeedback>\n </TouchableOpacity>\n </View>\n </Modal>\n )}\n </View>\n )\n}\n\nexport default DropdownMaterial\n","import { Dimensions, StyleSheet } from 'react-native'\n\nimport R from '../../res'\n\nconst { width: sWidth, height: sHeight } = Dimensions.get('window')\n\nconst DIALOG = {\n width: sWidth * 0.8,\n maxHeight: sHeight * 0.5,\n minHeight: sHeight * 0.2,\n}\n\nexport const DropdownMaterialStyles = StyleSheet.create({\n rootContainer: {\n width: '100%',\n height: 45,\n marginBottom: 32,\n },\n button: {\n height: '120%',\n },\n icon: {\n height: 14,\n width: 14,\n resizeMode: 'contain',\n tintColor: R.colors.white,\n },\n label: {\n color: R.colors.black,\n fontSize: 16,\n },\n modalContainer: {\n flex: 1,\n backgroundColor: 'rgba(0,0,0,0.8)',\n },\n modalBackgroundTouchable: {\n width: '100%',\n height: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n },\n dialog: {\n backgroundColor: R.colors.white,\n paddingVertical: 16,\n borderRadius: 2,\n alignItems: 'center',\n justifyContent: 'center',\n width: DIALOG.width,\n maxHeight: DIALOG.maxHeight,\n shadowColor: R.colors.black,\n shadowOffset: {\n width: 3,\n height: 2,\n },\n shadowOpacity: 0.3,\n shadowRadius: 3,\n },\n flatListContainer: {\n width: DIALOG.width,\n },\n})\n\nexport const DropdownListItemStyles = StyleSheet.create({\n rootContainer: {\n paddingVertical: 4,\n minWidth: 100,\n alignItems: 'center',\n },\n button: {\n width: '100%',\n minHeight: 35,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: R.colors.white,\n paddingHorizontal: 8,\n },\n buttonSelected: {\n width: '100%',\n minHeight: 35,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: R.colors.tint,\n paddingHorizontal: 8,\n },\n text: {\n fontSize: 18,\n fontWeight: '600',\n textAlign: 'center',\n color: R.colors.black,\n },\n})\n","import React, { FC, useState } from 'react'\nimport { Modal, Text, View } from 'react-native'\n\nimport Button from '../button/Button'\nimport Input from '../input/Input'\nimport s from './styles'\nimport { IEnterPasswordProps } from './types'\n\nconst EnterPassword: FC<IEnterPasswordProps> = ({\n styles,\n texts,\n onSubmit,\n isLoading,\n apiError,\n}) => {\n const [password, setPassword] = useState('')\n\n const handleOnSubmit = () => {\n if (password.length > 0) onSubmit?.(password)\n }\n\n return (\n <Modal presentationStyle=\"overFullScreen\" transparent={false}>\n <View style={styles?.rootContainer || s.rootContainer}>\n <View style={styles?.contentContainer || s.contentContainer}>\n <Text style={styles?.title || s.title}>\n {texts?.title || 'Password is required for this event'}\n </Text>\n <Input\n label={texts?.inputLabel || `Enter the event's password`}\n value={password}\n onChangeText={setPassword}\n styles={styles?.input}\n autoCapitalize=\"none\"\n />\n {!!apiError && <Text style={s.errorText || styles?.error}>{apiError}</Text>}\n <Button\n text={texts?.buttonText || 'Submit'}\n styles={styles?.button}\n onPress={handleOnSubmit}\n isLoading={isLoading}\n isDisabled={isLoading || password.length === 0}\n />\n </View>\n </View>\n </Modal>\n )\n}\n\nexport default EnterPassword\n","import { StyleSheet } from 'react-native'\n\nimport R from '../../res'\n\nexport default StyleSheet.create({\n rootContainer: {\n flex: 1,\n backgroundColor: R.colors.white,\n justifyContent: 'center',\n alignItems: 'center',\n },\n contentContainer: {\n marginHorizontal: 32,\n },\n title: {\n fontSize: 18,\n fontWeight: '800',\n marginBottom: 32,\n },\n errorText: {\n color: R.colors.danger,\n },\n})\n","import React from 'react'\nimport { Text } from 'react-native'\n\nimport Checkbox from '../checkbox/Checkbox'\nimport DatePicker from '../datePicker/DatePicker'\nimport DropdownMaterial from '../dropdownMaterial/DropdownMaterial'\nimport Input from '../input/Input'\nimport RadioGroup from '../radioGroup'\nimport styles from './styles'\nimport { IFormFieldProps } from './types'\n\nconst FormField = ({\n id,\n fieldType,\n error,\n dropdownProps,\n inputProps,\n title,\n checkboxProps,\n datePickerProps,\n radioProps,\n headerStyle,\n titleStyle,\n textStyle,\n}: IFormFieldProps) => {\n switch (fieldType) {\n case 'input':\n return (\n <Input\n value={inputProps!.value}\n id={id}\n onTextChanged={inputProps!.onTextChanged}\n label={inputProps!.label || 'Label'}\n error={error}\n {...inputProps}\n />\n )\n\n case 'dropdown':\n // Special handling for multi-select dropdown\n if (dropdownProps?.isMultiSelect && dropdownProps.selectedOptions) {\n // For multi-select, we create a display string from selected options\n const selectedText =\n dropdownProps.selectedOptions.length > 0\n ? dropdownProps.selectedOptions.map((item) => item.label).join(', ')\n : `Select ${dropdownProps?.style?.label?.text || 'items'}`\n\n // Use a fake selectedOption for the display\n const displayOption = {\n value: '',\n label: selectedText,\n }\n\n // Return with special multi-select handling\n return (\n <DropdownMaterial\n items={dropdownProps.options}\n selectedOption={displayOption}\n onSelectItem={(item) => dropdownProps.onSelectOption(id!, item)}\n materialInputProps={{\n label: dropdownProps?.style?.label?.text || 'Select Multiple',\n error: error,\n }}\n />\n )\n } else {\n // Standard single-select dropdown\n return (\n <DropdownMaterial\n items={dropdownProps!.options}\n selectedOption={dropdownProps?.selectedOption}\n onSelectItem={(item) => dropdownProps!.onSelectOption(id!, item)}\n materialInputProps={{\n label: dropdownProps?.style?.label?.text || 'Select',\n error: error,\n }}\n />\n )\n }\n\n case 'title':\n return <Text style={[styles.title, titleStyle]}>{title}</Text>\n\n case 'header':\n return <Text style={[styles.header, headerStyle]}>{title}</Text>\n\n case 'text':\n return <Text style={[styles.text, textStyle]}>{title}</Text>\n\n case 'checkbox':\n return (\n <Checkbox\n isActive={checkboxProps!.isActive}\n text={checkboxProps!.text}\n onPress={() => {\n checkboxProps!.onPress(id!)\n }}\n styles={checkboxProps?.styles}\n customTextComp={checkboxProps?.customTextComp}\n />\n )\n\n case 'datePicker':\n return (\n <DatePicker\n error={error}\n onSelectDate={datePickerProps!.onSelectDate}\n text={datePickerProps?.text || 'Select date'}\n onCancel={datePickerProps?.onCancel}\n selectedDate={datePickerProps!.selectedDate}\n />\n )\n\n case 'radio':\n return (\n <RadioGroup\n options={radioProps!.options}\n selectedValue={radioProps!.selectedValue}\n onValueChange={(value) => {\n // Just call the function directly since we're using non-null assertion\n radioProps!.onValueChange(value)\n }}\n label={radioProps?.label}\n error={error}\n styles={radioProps?.styles}\n />\n )\n }\n}\n\nexport default FormField\n","import React from 'react'\nimport { Text, TouchableOpacity, View } from 'react-native'\n\nimport { IRadioGroupProps } from './types'\n\nconst RadioGroup = ({\n options,\n selectedValue,\n onValueChange,\n label,\n error,\n styles,\n}: IRadioGroupProps) => {\n return (\n <View style={[{ marginBottom: 16 }, styles?.container]}>\n {label && (\n <Text\n style={[\n { fontSize: 16, fontWeight: '500', marginBottom: 8 },\n styles?.labelText,\n ]}\n >\n {label}\n </Text>\n )}\n {options.map((option) => {\n const isSelected = selectedValue === option.value\n return (\n <TouchableOpacity\n key={option.value}\n style={[\n {\n flexDirection: 'row',\n alignItems: 'center',\n paddingVertical: 10,\n },\n styles?.optionContainer,\n ]}\n onPress={() => {\n onValueChange(option.value)\n }}\n >\n <View\n style={[\n {\n height: 20,\n width: 20,\n borderRadius: 10,\n borderWidth: 2,\n borderColor: isSelected ? '#007BFF' : '#C4C4C4',\n justifyContent: 'center',\n alignItems: 'center',\n marginRight: 10,\n },\n styles?.radioOuter,\n isSelected && styles?.radioOuterSelected,\n ]}\n >\n {isSelected && (\n <View\n style={[\n {\n height: 10,\n width: 10,\n borderRadius: 5,\n backgroundColor: '#007BFF',\n },\n styles?.radioInner,\n ]}\n />\n )}\n </View>\n <Text style={[{}, styles?.optionText]}>{option.label}</Text>\n </TouchableOpacity>\n )\n })}\n {error && (\n <Text style={[{ color: 'red', fontSize: 12, marginTop: 5 }, styles?.errorText]}>\n {error}\n </Text>\n )}\n </View>\n )\n}\n\nexport default RadioGroup\n","import RadioGroup from './RadioGroup'\n\nexport default RadioGroup\nexport * from './types'\n","import { StyleSheet } from 'react-native'\n\nimport R from '../../res'\n\nexport default StyleSheet.create({\n dropdownContainer: {\n width: '100%',\n height: 50,\n marginBottom: 24,\n },\n dropdownButton: {\n height: 55,\n borderWidth: 1,\n borderRadius: 5,\n },\n dropdownLabel: {\n fontSize: 16,\n color: R.colors.primary,\n },\n title: {\n fontSize: 20,\n fontWeight: '700',\n marginBottom: 16,\n color: R.colors.primary,\n },\n header: {\n fontSize: 28,\n fontWeight: '800',\n marginBottom: 16,\n color: R.colors.primary,\n },\n text: {\n fontSize: 14,\n marginBottom: 16,\n color: R.colors.primary,\n },\n})\n","import React from 'react'\nimport { ActivityIndicator, Modal, Text, View } from 'react-native'\n\nimport R from '../../res'\nimport s from './styles'\nimport { ILoadingProps } from './types'\n\nconst Loading = ({ text = 'Loading...', styles, customComponent }: ILoadingProps) => {\n return (\n <Modal presentationStyle=\"overFullScreen\" transparent={true}>\n <View style={s.rootContainer}>\n <View style={[s.content, styles?.content]}>\n {customComponent ? (\n customComponent\n ) : (\n <>\n <ActivityIndicator\n size={styles?.animation?.size || 'large'}\n color={styles?.animation?.color || R.colors.black}\n />\n <Text style={[s.text, styles?.text]}>{text}</Text>\n </>\n )}\n </View>\n </View>\n </Modal>\n )\n}\n\nexport default Loading\n","import { StyleSheet } from 'react-native'\n\nimport R from '../../res'\n\nexport default StyleSheet.create({\n rootContainer: {\n flex: 1,\n backgroundColor: R.colors.transparentBlack,\n justifyContent: 'center',\n alignItems: 'center',\n },\n text: {\n color: R.colors.black,\n marginTop: 16,\n fontSize: 18,\n },\n content: {\n backgroundColor: R.colors.white,\n padding: 24,\n borderRadius: 5,\n alignItems: 'center',\n justifyContent: 'center',\n elevation: 3,\n shadowColor: 'black',\n shadowOpacity: 0.5,\n shadowRadius: 5,\n shadowOffset: {\n height: 5,\n width: 0,\n },\n },\n})\n","import React, { FC } from 'react'\nimport { Alert, View } from 'react-native'\n\nimport { Button } from '..'\nimport s from './styles'\nimport { ILoggedInProps } from './types'\n\nconst LoggedIn: FC<ILoggedInProps> = ({\n styles,\n texts,\n onPressMyOrders,\n onPressLogout,\n}) => {\n const { rootContainer, myOrdersButton, logOutButton } = {\n ...styles,\n }\n const { logoutDialog, myOrderButtonText, logOutButtonText } = { ...texts }\n const handleMyOrdersPress = async () => {\n if (onPressMyOrders) {\n onPressMyOrders()\n }\n }\n\n const handleLogOutPress = () => {\n if (onPressLogout) {\n Alert.alert(\n logoutDialog?.title || 'Do you want to log out?',\n logoutDialog?.message ||\n 'You will lose your selection and you will need to enter your credentials again.',\n [\n {\n text: logoutDialog?.confirmButton || 'Yes',\n style: 'destructive',\n onPress: onPressLogout,\n },\n {\n text: logoutDialog?.cancelButton || 'No',\n },\n ]\n )\n }\n }\n\n return (\n <View style={[s.rootContainer, rootContainer]}>\n <Button\n text={myOrderButtonText || 'MY ORDERS'}\n onPress={handleMyOrdersPress}\n styles={myOrdersButton}\n />\n <Button\n text={logOutButtonText || 'LOG OUT'}\n onPress={handleLogOutPress}\n styles={logOutButton}\n />\n </View>\n )\n}\n\nexport default LoggedIn\n","import { StyleSheet } from 'react-native'\n\nexport default StyleSheet.create({\n rootContainer: {\n flexDirection: 'row',\n justifyContent: 'space-around',\n marginVertical: 24,\n },\n})\n","import React, { FC, useRef, useState } from 'react'\nimport { Keyboard } from 'react-native'\n\nimport { LoginCore, LoginCoreHandle } from '../../core'\nimport { IUserProfilePublic } from '../../types'\nimport LoginView from './LoginView'\nimport { ILoginFields, ILoginProps, LoginContentType } from './types'\n\nconst Login: FC<ILoginProps> = ({\n onLoginSuccessful,\n onLoginError,\n isLoginDialogVisible,\n showLoginDialog,\n hideLoginDialog,\n userFirstName,\n onLogoutSuccess,\n onLogoutError,\n texts,\n styles,\n refs,\n brandImages,\n isShowPasswordButtonVisible,\n onRestorePasswordError,\n onRestorePasswordSuccess,\n}) => {\n //#region State\n const [isLoading, setIsLoading] = useState(false)\n const [loginApiError, setLoginApiError] = useState('')\n const [restorePasswordApiError, setRestorePasswordApiError] = useState('')\n const [restorePasswordSuccessMessage, setRestorePasswordSuccessMessage] = useState('')\n const [userProfileData, setUserProfileData] = useState<IUserProfilePublic>()\n const [loginContentType, setLoginContentType] = useState<LoginContentType>('login')\n const [isRestorePasswordLoading, setIsRestorePasswordLoading] = useState(false)\n //#endregion State\n\n const loginCoreRef = useRef<LoginCoreHandle>(null)\n\n //#region Handlers\n const handleOnPressForgotPassword = () => setLoginContentType('restorePassword')\n\n const handleOnPressLogin = async (fields: ILoginFields) => {\n if (loginApiError) {\n setLoginApiError('')\n }\n\n if (!loginCoreRef.current?.login) {\n return onLoginError?.({\n message: 'LoginCoreRef is not initialized',\n })\n }\n\n setIsLoading(true)\n const {\n userProfile,\n error: authorizationError,\n accessTokenData,\n } = await loginCoreRef.current.login(fields)\n\n if (authorizationError || !userProfile) {\n setIsLoading(false)\n setLoginApiError(authorizationError?.message || 'Auth error')\n return onLoginError?.(authorizationError!)\n }\n\n Keyboard.dismiss()\n setUserProfileData(userProfile)\n onLoginSuccessful({\n userProfile,\n accessTokenData,\n })\n setIsLoading(false)\n hideLoginDialog()\n }\n\n const handleOnPressLogout = async () => {\n if (!loginCoreRef.current?.logout) {\n return onLogoutError?.({ message: 'LoginCoreRef is not initialized' })\n }\n\n await loginCoreRef.current.logout()\n\n setUserProfileData(undefined)\n onLogoutSuccess?.()\n }\n\n const handleOnPressCancelRestorePasswordButton = () => setLoginContentType('login')\n\n const handleOnPressRestorePasswordButton = async (email: string) => {\n if (!loginCoreRef.current?.restorePassword) {\n return onRestorePasswordError?.({\n message: 'LoginCoreRef is not initialized',\n })\n }\n\n setIsRestorePasswordLoading(true)\n const { data: restorePasswordSuccessData, error: restorePassError } =\n await loginCoreRef.current.restorePassword(email)\n setIsRestorePasswordLoading(false)\n\n if (restorePassError || !restorePasswordSuccessData) {\n setRestorePasswordApiError(\n restorePassError?.message || 'Restore password unknown error'\n )\n setIsRestorePasswordLoading(false)\n onRestorePasswordError?.(restorePassError!)\n return\n }\n\n setLoginContentType('restorePasswordSuccess')\n\n setRestorePasswordSuccessMessage(restorePasswordSuccessData.message)\n onRestorePasswordSuccess?.()\n }\n\n const handleOnPressRestorePasswordSuccessButton = () => {\n handleHideDialog()\n }\n\n const handleHideDialog = () => {\n setLoginContentType('login')\n hideLoginDialog()\n }\n //#endregion\n\n //#region Render Main Content\n return (\n <LoginCore ref={loginCoreRef}>\n <LoginView\n showDialog={showLoginDialog}\n hideDialog={handleHideDialog}\n isDialogVisible={isLoginDialogVisible}\n onPressLogin={handleOnPressLogin}\n isLoading={isLoading}\n userProfile={userProfileData}\n onPressLogout={handleOnPressLogout}\n texts={texts}\n styles={styles}\n userFirstName={userFirstName}\n loginApiError={loginApiError}\n refs={refs}\n brandImages={brandImages}\n isShowPasswordButtonVisible={isShowPasswordButtonVisible}\n content={loginContentType}\n onPressForgotPassword={handleOnPressForgotPassword}\n restorePasswordProps={{\n apiError: restorePasswordApiError,\n onPressRestorePasswordButton: handleOnPressRestorePasswordButton,\n isLoading: isRestorePasswordLoading,\n onPressCancelButton: handleOnPressCancelRestorePasswordButton,\n }}\n resultDialogPropsProps={{\n message: restorePasswordSuccessMessage,\n onPressButton: handleOnPressRestorePasswordSuccessButton,\n }}\n />\n </LoginCore>\n )\n //#endregion Render Main Content\n}\n\nexport default Login\n","/**\n * @deprecated This component is deprecated and will be removed in a future release.\n * Please use the hooks from 'src/features/checkout-v2/hooks' instead.\n * See README.md in this directory for migration guide.\n */\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { forwardRef, useImperativeHandle } from 'react'\n\nimport {\n checkoutOrder,\n fetchCart,\n fetchCountries,\n fetchStates,\n fetchUserProfile,\n registerNewUser,\n} from '../../api/ApiClient'\nimport {\n ICartResponse,\n ICheckoutBody,\n ICountriesResponse,\n IFetchAccessTokenResponse,\n IRegisterNewUserResponse,\n IStatesResponse,\n IUserProfileResponse,\n} from '../../api/types'\nimport { refreshAccessToken as refreshAccessTokenAsync } from '../../helpers/RefreshAccessToken'\nimport {\n BillingCoreHandle,\n IBillingCoreProps,\n ICheckoutResponse,\n} from './BillingCoreTypes'\nimport BackgroundTimer from 'react-native-background-timer'\n\n/**\n * @deprecated Use the hooks from 'src/features/checkout-v2/hooks' instead\n */\nconst BillingCore = forwardRef<BillingCoreHandle, IBillingCoreProps>((props, ref) => {\n const [secondsLeft, setSecondsLeft] = useState(420)\n const [timerOn, setTimerOn] = useState(false)\n\n const handleStopTimer = useCallback(() => {\n BackgroundTimer.stop()\n BackgroundTimer.stopBackgroundTimer()\n }, [])\n\n const handleStartTimer = useCallback(() => {\n BackgroundTimer.runBackgroundTimer(() => {\n setSecondsLeft((secs) => {\n if (secs > 0) {\n return secs - 1\n } else {\n return 0\n }\n })\n }, 1000)\n }, [])\n\n const handleTimeIsUp = () => {\n BackgroundTimer.stopBackgroundTimer()\n props.onCartExpired?.()\n }\n\n useEffect(() => {\n if (secondsLeft === 0) {\n handleTimeIsUp()\n }\n props.onSecondsLeftChange?.(secondsLeft)\n }, [secondsLeft])\n\n useEffect(() => {\n if (timerOn) {\n handleStartTimer()\n } else {\n BackgroundTimer.stopBackgroundTimer()\n }\n return () => {\n BackgroundTimer.stopBackgroundTimer()\n }\n }, [handleStartTimer, timerOn])\n\n useImperativeHandle(ref, () => ({\n async checkoutOrder(body: ICheckoutBody): Promise<ICheckoutResponse> {\n const checkout = await checkoutOrder(body)\n if (!checkout.error) {\n BackgroundTimer.stopBackgroundTimer()\n }\n return checkout\n },\n\n async getCart(): Promise<ICartResponse> {\n const cart = await fetchCart()\n\n if (cart.cartData?.expiresAt) {\n setSecondsLeft(cart.cartData.expiresAt)\n setTimerOn(true)\n }\n\n return cart\n },\n\n async getCountries(): Promise<ICountriesResponse> {\n return await fetchCountries()\n },\n\n async getStates(countryId: string): Promise<IStatesResponse> {\n return await fetchStates(countryId)\n },\n\n async getUserProfile(): Promise<IUserProfileResponse> {\n return await fetchUserProfile()\n },\n\n async registerNewUser(data: FormData): Promise<IRegisterNewUserResponse> {\n return await registerNewUser(data)\n },\n\n async refreshAccessToken(refreshToken?: string): Promise<IFetchAccessTokenResponse> {\n return await refreshAccessTokenAsync(refreshToken)\n },\n\n stopCartTimer() {\n return handleStopTimer()\n },\n }))\n\n return <>{props.children}</>\n})\n\nexport default BillingCore\n","import Axios, { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios'\nimport axiosRetry from 'axios-retry'\nimport _filter from 'lodash/filter'\nimport _forEach from 'lodash/forEach'\nimport _get from 'lodash/get'\nimport _map from 'lodash/map'\nimport _mapKeys from 'lodash/mapKeys'\nimport _sortBy from 'lodash/sortBy'\n\nimport { IWaitingListFields } from '../components/waitingList/types'\nimport { IOnCheckoutSuccess } from '../containers/billingInfo/types'\nimport { Config } from '../helpers/Config'\nimport { getDomainByClientAndEnv } from '../helpers/Domains'\nimport {\n deleteAllData,\n getData,\n LocalStorageKeys,\n storeData,\n} from '../helpers/LocalStorage'\nimport { IAccountTicketsResponse, IError, IEvent, IUserProfile } from '../types'\nimport { IAddToCartResponse, ITicket, ITicketsResponseData } from '../types/ITicket'\nimport Constants from './Constants'\nimport { getApiError } from './ErrorHandler'\nimport {\n IAddToCartParams,\n IAddToWaitingListResponse,\n IAuthorizeResponse,\n ICartData,\n ICartResponse,\n ICheckoutBody,\n ICheckoutResponse,\n IClientRequest,\n ICloseSessionData,\n ICloseSessionResponse,\n ICountriesResponse,\n IEventResponse,\n IFetchAccessTokenResponse,\n IFetchTicketsParams,\n IFetchTicketsResponse,\n IFreeRegistrationData,\n IFreeRegistrationResponse,\n IMyOrderDetailsData,\n IMyOrderDetailsItem,\n IMyOrderDetailsResponse,\n IMyOrderDetailsTicket,\n IMyOrdersData,\n IMyOrdersRequestParams,\n IMyOrdersResponse,\n IOrderReview,\n IOrderReviewResponse,\n IPostReferralData,\n IPostReferralResponse,\n IPromoCodeResponse,\n IPurchaseConfirmationData,\n IPurchaseConfirmationResponse,\n IRegisterNewUserResponse,\n IRemoveTicketFromResaleData,\n IRemoveTicketFromResaleResponse,\n IResaleTicketData,\n IResaleTicketResponse,\n IResetPasswordRequestData,\n IResetPasswordResponse,\n IRestorePasswordData,\n IRestorePasswordResponse,\n IStatesResponse,\n IUpdateCheckoutResponse,\n IUserProfileResponse,\n} from './types'\n\n// Type for error response data from API\ninterface ErrorResponseData {\n message?: string | { email?: string; [key: string]: any }\n error_description?: string\n status?: number | string\n [key: string]: any\n}\n\n// Helper function to safely extract message from error response\nconst getErrorMessage = (\n data: ErrorResponseData | undefined,\n fallback: string\n): string => {\n if (!data?.message) return fallback\n return typeof data.message === 'string' ? data.message : fallback\n}\n\nconst HEADERS: { [key: string]: any } = {\n Accept: 'application/vnd.api+json',\n 'Content-Type': 'application/vnd.api+json',\n}\n\nexport const Client: IClientRequest = Axios.create({\n baseURL: Constants.BASE_URL,\n headers: HEADERS,\n timeout: Constants.TIMEOUT,\n data: {},\n}) as IClientRequest\n\naxiosRetry(Client, { retries: 3 })\n\nClient.interceptors.request.use(async (config: InternalAxiosRequestConfig) => {\n const guestToken = await getData(LocalStorageKeys.AUTH_GUEST_TOKEN)\n const accessToken = await getData(LocalStorageKeys.ACCESS_TOKEN)\n const storedTokenType = await getData(LocalStorageKeys.AUTH_TOKEN_TYPE)\n const tokenType = storedTokenType || 'Bearer'\n\n if (accessToken) {\n config.headers['Authorization'] = `${tokenType} ${accessToken}`\n }\n\n if (guestToken) {\n Client.setGuestToken(guestToken)\n config.headers['Authorization-Guest'] = guestToken\n }\n\n if (Config.CLIENT) {\n config.headers['origin'] = getDomainByClientAndEnv(Config.CLIENT, Config.ENV)\n }\n\n return config\n})\n\nClient.interceptors.response.use(\n (response: AxiosResponse) => {\n return response\n },\n async (error: AxiosError<ErrorResponseData>) => {\n if (error?.response?.status === 401) {\n error.code = error.code\n error.message = error.response.data?.error_description || error.message\n } else if (error.message) {\n error.message = error.message\n }\n\n return Promise.reject(error)\n }\n)\n\nClient.setGuestToken = (token: string) =>\n (Client.defaults.headers.common['Authorization-Guest'] = token)\n\nClient.removeGuestToken = () =>\n delete Client.defaults.headers.common['Authorization-Guest']\n\nClient.removeAccessToken = () => delete Client.defaults.headers.common.Authorization\n\nClient.setAccessToken = (token: string) =>\n (Client.defaults.headers.common.Authorization = token)\n\nClient.setBaseUrl = (baseUrl: string) => (Client.defaults.baseURL = baseUrl)\n\nClient.setTimeOut = (timeOut: number) => (Client.defaults.timeout = timeOut)\n\nClient.setDomain = (domain: string) => {\n Client.defaults.headers.common['origin'] = domain\n}\n\nClient.setContentType = (contentType: string) =>\n (Client.defaults.headers.common['Content-Type'] = contentType)\n\nexport const setCustomHeader = (response: any) => {\n const guestHeaderResponseValue = _get(response, 'headers.authorization-guest')\n\n const guestHeaderExistingValue = _get(response, 'config.headers[Authorization-Guest]')\n\n const guestHeader = guestHeaderResponseValue || guestHeaderExistingValue\n\n if (guestHeader) {\n storeData(LocalStorageKeys.AUTH_GUEST_TOKEN, guestHeader)\n Client.setGuestToken(guestHeader)\n }\n}\n\nexport const setAccessTokenHandler = async (accessToken: string) => {\n await storeData(LocalStorageKeys.ACCESS_TOKEN, accessToken)\n Client.setAccessToken(accessToken)\n}\n\n// API Authentication\nexport const authorize = async (data: FormData): Promise<IAuthorizeResponse> => {\n let responseError: IError | undefined\n let response: AxiosResponse<any> | undefined\n\n try {\n response = await Client.post(\n `/v1/oauth/authorize-rn?client_id=${Config.CLIENT_ID}`,\n data\n )\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n message: getErrorMessage(axiosError?.response?.data, 'Authorization failed'),\n code: axiosError?.response?.status,\n }\n }\n\n return {\n error: responseError,\n code: response?.data?.data?.code,\n }\n}\n\nexport const fetchAccessToken = async (\n data: FormData\n): Promise<IFetchAccessTokenResponse> => {\n let responseError: IError | undefined\n let response: AxiosResponse<any> | undefined\n\n try {\n response = await Client.post('/v1/oauth/access_token', data)\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n message: getErrorMessage(axiosError.response?.data, 'Error occurred'),\n code: axiosError.response?.status,\n }\n }\n\n const accessToken = _get(response, 'data.access_token')\n if (accessToken) {\n await storeData(LocalStorageKeys.ACCESS_TOKEN, accessToken)\n }\n const refreshToken = _get(response, 'data.refresh_token')\n if (refreshToken) {\n await storeData(LocalStorageKeys.REFRESH_TOKEN, refreshToken)\n }\n const tokenType = _get(response, 'data.token_type')\n if (tokenType) {\n await storeData(LocalStorageKeys.TOKEN_TYPE, tokenType)\n }\n const scope = _get(response, 'data.scope')\n if (scope) {\n await storeData(LocalStorageKeys.AUTH_SCOPE, scope)\n }\n\n return {\n accessTokenError: responseError,\n accessTokenData: {\n accessToken,\n refreshToken,\n tokenType,\n scope,\n },\n }\n}\n\nexport const fetchUserProfile = async (): Promise<IUserProfileResponse> => {\n const accessToken = await getData(LocalStorageKeys.ACCESS_TOKEN)\n if (!accessToken) {\n return { userProfileError: { message: 'Access token not found' } }\n }\n\n let responseError: IError | undefined\n let userProfile: IUserProfile | undefined\n let response: AxiosResponse<any> | undefined\n\n try {\n response = await Client.get('/customer/profile/', {\n headers: {\n ...HEADERS,\n Authorization: `Bearer ${accessToken}`,\n },\n })\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n message: getErrorMessage(axiosError?.response?.data, 'Error occurred'),\n code: axiosError.response?.status!,\n }\n }\n\n if (!responseError && response) {\n userProfile = response.data.data\n }\n\n return {\n userProfileError: responseError,\n userProfileData: userProfile,\n }\n}\n\n//#region Register new user\nexport const registerNewUser = async (\n data: FormData\n): Promise<IRegisterNewUserResponse> => {\n const resultData: IRegisterNewUserResponse = {\n registerNewUserResponseError: undefined,\n registerNewUserResponseData: undefined,\n }\n\n let res: AxiosResponse<any> | undefined\n\n try {\n res = await Client.post('/v1/oauth/register-rn', data, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n })\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n const messageObject = axiosError.response?.data.message\n let errorMessage = ''\n\n if (!messageObject) {\n resultData.registerNewUserResponseError = {\n message: 'Error registering user',\n }\n } else {\n if (\n typeof messageObject === 'object' &&\n 'email' in messageObject &&\n messageObject.email\n ) {\n resultData.registerNewUserResponseError = {\n isAlreadyRegistered: true,\n message:\n 'It appears this email is already attached to an account. Please log in here to complete your registration.',\n raw: axiosError.response,\n }\n } else {\n if (typeof messageObject === 'object') {\n _mapKeys(messageObject, (value) => {\n _forEach(value, (eachVal) => {\n errorMessage += `- ${eachVal} \\n`\n })\n })\n }\n resultData.registerNewUserResponseError = {\n message: errorMessage || 'Error registering user',\n }\n }\n }\n }\n\n if (res?.status === 200) {\n const userProfile = _get(res, 'data.data.attributes.user_profile')\n const accessToken = _get(res, 'data.data.attributes.access_token')\n const refreshToken = _get(res, 'data.data.attributes.refresh_token')\n const scope = _get(res, 'data.data.attributes.scope')\n const tokenType = _get(res, 'data.data.attributes.token_type')\n\n if (accessToken) {\n await storeData(LocalStorageKeys.ACCESS_TOKEN, accessToken)\n await setAccessTokenHandler(accessToken)\n }\n\n if (refreshToken) {\n await storeData(LocalStorageKeys.REFRESH_TOKEN, refreshToken)\n }\n\n if (tokenType) {\n await storeData(LocalStorageKeys.TOKEN_TYPE, tokenType)\n }\n\n if (scope) {\n await storeData(LocalStorageKeys.AUTH_SCOPE, scope)\n }\n\n resultData.registerNewUserResponseData = {\n accessTokenData: {\n accessToken: accessToken,\n refreshToken: refreshToken,\n tokenType: tokenType,\n scope: scope,\n },\n userProfile: {\n firstName: _get(userProfile, 'first_name'),\n lastName: _get(userProfile, 'last_name'),\n email: _get(userProfile, 'email'),\n },\n }\n }\n\n return resultData\n}\n//#endregion\n\n//#region Waiting List\nexport const addToWaitingList = async (\n values: IWaitingListFields\n): Promise<IAddToWaitingListResponse> => {\n if (!Config.EVENT_ID) {\n return {\n addToWaitingListError: { message: 'Event ID is not configured!' },\n }\n }\n\n const requestData = { data: { attributes: values } }\n let responseError: IError | undefined\n let response: AxiosResponse<any> | undefined\n\n try {\n response = await Client.post(\n `/v1/event/${Config.EVENT_ID}/add_to_waiting_list`,\n requestData\n )\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n message: getErrorMessage(axiosError.response?.data, 'Error occurred'),\n code: axiosError.response?.status!,\n }\n }\n\n return {\n addToWaitingListError: responseError,\n addToWaitingListData: response?.data,\n }\n}\n//#endregion\n\n//#region MyOrders\nexport const fetchMyOrders = async ({\n page,\n limit = 20,\n filter = '',\n from = '',\n}: IMyOrdersRequestParams): Promise<IMyOrdersResponse> => {\n const data: IMyOrdersData = {\n events: [],\n orders: [],\n pagination: {\n page: 0,\n limit: 0,\n totalCount: 0,\n totalPages: 0,\n },\n }\n let responseError: IError | undefined\n let response: AxiosResponse<any> | undefined\n\n const withFilterEvent = filter ? `&filter[event]=${filter}` : ''\n const withBrand = Config.BRAND ? `&filter[brand]=${Config.BRAND}` : ''\n const withSubBrands = Config.ARE_SUB_BRANDS_INCLUDED\n ? `&filter[subbrands]=${Config.ARE_SUB_BRANDS_INCLUDED}`\n : ''\n const withFrom = from ? `&filter[from]=${from}` : ''\n\n const endpoint = `/v1/account/orders/?page=${page}&limit=${limit}${withFilterEvent}${withBrand}${withSubBrands}${withFrom}`\n\n try {\n response = await Client.get(endpoint)\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = getApiError(axiosError, 'Error fetching My Orders')\n }\n\n if (response?.data) {\n const dataAttributes = response.data.data.attributes\n\n data.events = dataAttributes.purchased_events\n data.orders = dataAttributes.orders\n data.pagination.limit = dataAttributes.limit\n data.pagination.page = dataAttributes.page\n data.pagination.totalCount = dataAttributes.total_count\n data.pagination.totalPages = dataAttributes.total_pages\n data.filter = dataAttributes.filter\n data.brandFilter = dataAttributes.brand_filter\n data.subBrands = dataAttributes.sub_brands\n }\n\n return {\n myOrdersError: responseError,\n myOrdersData: data,\n }\n}\n//#endregion\n\n//#region OrderDetails\nexport const fetchOrderDetails = async (\n orderId: string\n): Promise<IMyOrderDetailsResponse> => {\n let responseError: IError | undefined\n let responseData: IMyOrderDetailsData | undefined\n let response: AxiosResponse<any> | undefined\n\n try {\n response = await Client.get(`/v1/account/order/${orderId}`)\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n message: getErrorMessage(\n axiosError.response?.data,\n 'Error while fetching order details'\n ),\n code: axiosError.response?.status,\n }\n }\n\n if (!responseError && response) {\n const { attributes } = response.data.data\n let items: IMyOrderDetailsItem[] | undefined\n\n if (attributes.items?.ticket_types) {\n items = _map(attributes.items.ticket_types, (item) => {\n return {\n name: item.name,\n currency: item.currency,\n price: item.price,\n discount: item.discount,\n quantity: item.quantity,\n total: item.total,\n isActive: item.active,\n hash: item.hash,\n }\n })\n }\n\n const tickets: IMyOrderDetailsTicket[] = _map(attributes.tickets, (item) => {\n return {\n hash: item.hash,\n ticketType: item.ticket_type,\n holderName: item.holder_name,\n status: item.status,\n pdfLink: item.pdf_link,\n qrData: item.qr_data,\n isSellable: item.is_sellable,\n holderEmail: item.holder_email,\n holderPhone: item.holder_phone,\n description: item.description,\n descriptionPlain: item.description_plain,\n currency: item.currency,\n eventName: item.event_name,\n isOnSale: item.is_on_sale,\n resaleFeeAmount: item.resale_fee_amount,\n ticketTypeHash: item.ticket_type_hash,\n isTable: item.is_table,\n }\n })\n responseData = {\n header: {\n currency: attributes.currency,\n date: attributes.date,\n isReferralDisabled: attributes.disable_referral,\n eventEndDate: attributes.event_end_date,\n eventStartDate: attributes.event_start_date,\n eventId: attributes.event_id,\n eventName: attributes.event_name,\n eventSalesEndDate: attributes.event_sales_end_date,\n eventSalesStartDate: attributes.event_sales_start_date,\n eventUrl: attributes.event_url,\n isVenueHidden: attributes.hide_venue,\n id: attributes.id,\n image: attributes.image,\n shareLink: attributes.personal_share_link,\n salesReferred: attributes.sales_referred,\n total: attributes.total,\n hideVenueUntil: attributes.hide_venue_until,\n timeZone: attributes.timezone,\n venue: {\n city: attributes.venue_city,\n country: attributes.venue_country,\n googlePlaceId: attributes.venue_google_place_id || undefined,\n latitude: attributes.venue_latitude || undefined,\n longitude: attributes.venue_longitude || undefined,\n name: attributes.venue_name || undefined,\n postalCode: attributes.venue_postal_code || undefined,\n state: attributes.venue_state,\n street: attributes.venue_street || undefined,\n streetNumber: attributes.venue_street_number || undefined,\n },\n },\n items: items,\n tickets: tickets,\n }\n }\n\n return {\n orderDetailsError: responseError,\n orderDetailsData: responseData,\n }\n}\n\n//#endregion\n\n//#region Tickets\n// PromoCode higher priority than ReferredId\nexport const fetchTickets = async ({\n promoCode,\n referredId,\n}: IFetchTicketsParams): Promise<IFetchTicketsResponse> => {\n if (!Config.EVENT_ID) {\n return {\n error: {\n message: 'Event ID is not configured!',\n },\n }\n }\n\n const eventId = Config.EVENT_ID.toString()\n const headers = {\n 'Promotion-Event': eventId,\n 'Promotion-Code': promoCode,\n 'Referrer-Id': referredId,\n }\n\n let responseError\n let response: AxiosResponse<any> | undefined\n\n if (!referredId) {\n delete headers['Referrer-Id']\n }\n\n if (!promoCode) {\n //@ts-ignore\n delete headers['Promotion-Code']\n }\n\n if (!promoCode && !referredId) {\n //@ts-ignore\n delete headers['Promotion-Event']\n }\n\n // If there are promoCode and referredId, then we need to remove the Referrer-Id header\n if (promoCode && referredId && headers['Referrer-Id']) {\n delete headers['Referrer-Id']\n }\n\n try {\n response = await Client.get(`v1/event/${eventId}/tickets/`, {\n //@ts-ignore\n headers: headers,\n })\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n if (axiosError.response) {\n responseError = {\n code: axiosError.response.status!,\n message: axiosError.response.data.message,\n }\n } else {\n responseError = {\n message: axiosError.message,\n }\n }\n }\n\n if (responseError) {\n return {\n error: responseError,\n }\n }\n\n const attributes = _get(response, 'data.data.attributes.tickets')\n const ticketsAttributes = _filter(attributes, (item) => typeof item === 'object')\n const promoCodeResult: IPromoCodeResponse = {\n message: _get(response, 'data.data.attributes.PromoCodeValidationMessage'),\n isValid: _get(response, 'data.data.attributes.ValidPromoCode'),\n }\n\n const tickets = (Object.values(ticketsAttributes) || []) as ITicket[]\n const guestHeaderValue = _get(response, 'headers.authorization-guest')\n if (guestHeaderValue) {\n setCustomHeader(response)\n }\n\n return {\n tickets: _sortBy(tickets, 'sortOrder'),\n error: responseError,\n promoCodeResult: promoCodeResult,\n isInWaitingList: _get(response, 'data.data.attributes.showWaitingList'),\n isAccessCodeRequired: _get(response, 'data.data.attributes.is_access_code'),\n }\n}\n//#endregion Tickets\n\nexport const addToCart = async (data: IAddToCartParams): Promise<IAddToCartResponse> => {\n if (!Config.EVENT_ID) {\n return {\n error: { message: 'Event ID is not configured!' },\n }\n }\n\n let responseError: IError | undefined\n let response: AxiosResponse<any> | undefined\n\n try {\n response = await Client.post(`v1/event/${Config.EVENT_ID}/add-to-cart/`, {\n data,\n })\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n code: axiosError.response?.status!,\n message: getErrorMessage(axiosError.response?.data, 'Error occurred'),\n }\n }\n\n let responseData: ITicketsResponseData | undefined\n if (!responseError && response) {\n setCustomHeader(response)\n const { attributes } = response.data\n\n responseData = {\n isBillingRequired: !attributes?.skip_billing_page,\n isNameRequired: attributes?.names_required ?? false,\n isAgeRequired: attributes?.age_required ?? false,\n isPhoneRequired: attributes?.phone_required ?? false,\n minimumAge: attributes?.age_required ? (attributes?.minimum_age ?? 18) : undefined,\n isTicketFree: attributes?.free_ticket ?? false,\n isPhoneHidden: attributes?.hide_phone_field && false,\n }\n }\n\n return { data: responseData, error: responseError }\n}\n\nexport const fetchEvent = async (): Promise<IEventResponse> => {\n if (!Config.EVENT_ID) {\n return {\n eventError: {\n message: 'Event ID is not configured!',\n },\n }\n }\n\n let responseError: IError | undefined\n let event: IEvent | undefined\n let response: AxiosResponse<any> | undefined\n\n try {\n response = await Client.get(`v1/event/${Config.EVENT_ID}`, {\n headers: HEADERS,\n })\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n code:\n typeof axiosError?.response?.data.status === 'number'\n ? axiosError.response.data.status\n : undefined,\n message:\n typeof axiosError.response?.data.message === 'string'\n ? axiosError.response.data.message\n : undefined,\n }\n }\n\n if (response?.status === 200) {\n event = response.data.data.attributes\n }\n\n if (event?.country) {\n await storeData(LocalStorageKeys.EVENT_COUNTRY, event.country)\n }\n\n return {\n eventError: responseError,\n eventData: event,\n }\n}\n\nexport const postReferralVisit = async (\n referralId: string\n): Promise<IPostReferralResponse> => {\n if (!Config.EVENT_ID) {\n return {\n postReferralError: {\n message: 'Event ID is not configured!',\n },\n }\n }\n\n const eventId = Config.EVENT_ID.toString()\n const referralIdNumber = parseInt(referralId, 10)\n let responseError: IError | undefined\n let responseData: IPostReferralData | undefined\n let response: AxiosResponse<any> | undefined\n\n try {\n response = await Client.post(`v1/event/${eventId}/referrer/`, {\n referrer: referralIdNumber,\n })\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n if (axiosError.response?.data.errors && axiosError.response?.data.errors.length > 0) {\n responseError = {\n code: axiosError.response?.data.errors[0].status,\n message: axiosError.response?.data.errors[0].details,\n }\n } else {\n responseError = {\n message: getErrorMessage(axiosError.response?.data, 'Error occurred'),\n code: axiosError.response?.status!,\n }\n }\n\n if (axiosError.response?.status === 422 && responseError.message === undefined) {\n responseError.message = 'Cannot process request'\n }\n }\n\n if (response?.data && response.data.status === 200) {\n responseData = {\n message: response.data.message,\n status: response.data.status,\n }\n }\n\n return {\n postReferralData: responseData,\n postReferralError: responseError,\n }\n}\n//#region Unlock Password Protected Event\nexport const unlockPasswordProtectedEvent = async (\n password: string\n): Promise<IEventResponse> => {\n if (!Config.EVENT_ID) {\n return {\n eventError: {\n message: 'Event ID is not configured!',\n },\n }\n }\n\n const eventId = Config.EVENT_ID.toString()\n let responseError: IError | undefined\n let responseData: any | undefined\n let response: AxiosResponse<any> | undefined\n\n const body = {\n attributes: {\n data: {\n password: password,\n },\n },\n }\n\n try {\n response = await Client.post(`v1/event/${eventId}/authenticate`, body)\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n message: getErrorMessage(axiosError.response?.data, 'Error while unlocking Event'),\n code: axiosError?.response?.status,\n }\n }\n\n if (response?.data) {\n responseData = {\n message: response.data.message,\n status: response.data.status,\n }\n\n const guestHeaderValue = _get(response, 'headers.authorization-guest')\n if (guestHeaderValue) {\n setCustomHeader(response)\n }\n }\n\n return {\n eventData: responseData,\n eventError: responseError,\n }\n}\n//#endregion Unlock Password Protected Event\n\n//#region Billing Information\nexport const fetchCountries = async (): Promise<ICountriesResponse> => {\n let responseError: IError | undefined\n let response: AxiosResponse<any> | undefined\n\n try {\n response = await Client.get('/countries/list')\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n message: getErrorMessage(axiosError.response?.data, 'Error occurred'),\n code: axiosError.response?.status!,\n }\n }\n\n if (response?.status === 200) {\n setCustomHeader(response)\n }\n\n return {\n countriesData: response?.data.data,\n countriesError: responseError,\n }\n}\n\nexport const fetchStates = async (countryId: string): Promise<IStatesResponse> => {\n let responseError: IError | undefined\n let response: AxiosResponse<any> | undefined\n\n try {\n response = await Client.get(`/countries/${countryId}/states/`)\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n code: axiosError.response?.status!,\n message: getErrorMessage(axiosError.response?.data, 'Error occurred'),\n }\n }\n\n if (response?.status === 200) {\n setCustomHeader(response)\n }\n\n return {\n statesError: responseError,\n statesData: response?.data?.data,\n }\n}\n\nexport const fetchCart = async (): Promise<ICartResponse> => {\n let responseError: IError | undefined\n let cartData = {} as ICartData\n let res: AxiosResponse<any> | undefined\n\n try {\n res = await Client.get('v1/cart/')\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n code: axiosError.response?.status!,\n message: getErrorMessage(axiosError.response?.data, 'Error occurred'),\n }\n }\n\n const data = res?.data.data\n if (data?.attributes) {\n const attr = data?.attributes\n const quantityString = _get(attr, 'cart[0].quantity', '1')\n const tfOptIn = _get(attr, 'ttfOptIn', false)\n const isMarketingOptedIn = _get(attr, 'optedIn', false)\n const expiresAt = _get(attr, 'expiresAt', 420)\n const eventId = _get(attr, 'eventId', null)\n\n cartData = {\n quantity: parseInt(quantityString, 10),\n isMarketingOptedIn:\n typeof isMarketingOptedIn === 'number'\n ? isMarketingOptedIn > 0\n : isMarketingOptedIn,\n isTfOptInHidden: _get(attr, 'hide_ttf_opt_in', false),\n isTfOptIn: typeof tfOptIn === 'number' ? tfOptIn > 0 : tfOptIn,\n expiresAt: expiresAt,\n }\n\n return {\n success: true,\n cartError: responseError,\n cartData,\n eventId: eventId,\n }\n } else {\n responseError = {\n message: 'Error fetching cart',\n }\n }\n\n return {\n cartError: responseError,\n cartData: cartData,\n }\n}\n\nexport const checkoutOrder = async (data: ICheckoutBody): Promise<ICheckoutResponse> => {\n const accessToken = await getData(LocalStorageKeys.ACCESS_TOKEN)\n\n if (!accessToken) {\n return {\n error: {\n message: 'Access token not found',\n },\n }\n }\n let responseError: IError | undefined\n let res: AxiosResponse<any> | undefined\n\n try {\n res = await Client.post(\n 'v1/on-checkout/',\n { data },\n {\n headers: {\n ...HEADERS,\n Authorization: `Bearer ${accessToken}`,\n },\n }\n )\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n code: axiosError.response?.status!,\n message: getErrorMessage(axiosError.response?.data, 'Error occurred'),\n }\n }\n\n if (!res || !res.data) {\n return { error: responseError }\n }\n\n const checkoutResponseData: IOnCheckoutSuccess = {\n id: res.data.data.attributes.id,\n hash: res.data.data.attributes.hash,\n total: res.data.data.attributes.total,\n status: res.data.data.attributes.status,\n }\n\n return {\n error: responseError,\n data: checkoutResponseData,\n }\n}\n//#endregion\n//#region Checkout\nexport const fetchEventConditions = async () => {\n if (!Config.EVENT_ID) {\n return {\n error: {\n message: 'Event ID is not configured!',\n },\n }\n }\n\n let responseError: IError | undefined\n let response: AxiosResponse<any> | undefined\n\n try {\n response = await Client.get(`v1/event/${Config.EVENT_ID}/conditions`)\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n message:\n typeof axiosError.response?.data.message === 'string'\n ? axiosError.response.data.message\n : 'Error fetching event conditions',\n code: axiosError.response?.status,\n }\n }\n\n return {\n error: responseError,\n data: response?.data?.data?.attributes,\n }\n}\n\nexport const fetchOrderReview = async (hash: string): Promise<IOrderReviewResponse> => {\n let responseError: IError | undefined\n let response: AxiosResponse<any> | undefined\n\n try {\n response = await Client.get(`v1/order/${hash}/review/`)\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n message: getErrorMessage(axiosError.response?.data, 'Error occurred'),\n code: axiosError.response?.status!,\n }\n }\n\n let resData: IOrderReview | undefined\n\n if (!responseError) {\n const attributes = _get(response, 'data.data.attributes')\n const { cart, order_details, payment_method, billing_info } = attributes\n\n if (!payment_method.stripe_client_secret && order_details.total !== '0.00') {\n responseError = {\n message: 'Stripe is not configured',\n }\n } else {\n const {\n tickets: [ticket],\n } = order_details\n\n resData = {\n expiresAt: attributes.expires_at,\n reviewData: {\n event: cart[0]?.product_name,\n price: ticket?.price,\n ticketType: ticket?.name,\n total: order_details?.total,\n numberOfTickets: ticket?.quantity,\n currency: order_details?.currency,\n },\n paymentData: {\n id: payment_method.id,\n name: payment_method.name,\n stripeClientSecret: payment_method.stripe_client_secret,\n stripeConnectedAccount:\n payment_method.stripe_connected_account?.length > 0\n ? payment_method.stripe_connected_account\n : undefined,\n stripePublishableKey: payment_method.stripe_publishable_key,\n },\n addressData: {\n city: billing_info.city,\n line1: billing_info.street_address,\n state: billing_info.state ? billing_info.state.toString() : '',\n postalCode: billing_info.zip,\n },\n billingData: {\n firstName: billing_info.first_name,\n lastName: billing_info.last_name,\n isActAsBillingInfo: billing_info.as_act_billing_info,\n city: billing_info.city,\n company: billing_info.company,\n country: billing_info.country,\n email: billing_info.email,\n isBusiness: billing_info.is_business,\n phone: billing_info.phone,\n state: billing_info.state,\n streetAddress: billing_info.street_address,\n zipCode: billing_info.zip,\n },\n cart: attributes.cart,\n cartTotalPrice: attributes.cart_total_price,\n couponCode: attributes.coupon_code,\n discount: attributes.discount,\n estimatedTax: attributes.estimated_tax,\n estimatedTotal: attributes.estimated_total,\n isSeatMapAllowed: attributes.flagSeatMapAllowed,\n isShippingRequired: attributes.shipping_required,\n shippingInfo: attributes.shipping_info,\n orderDetails: attributes.order_details,\n isOptedId: attributes.opted_id,\n isTtfOptedIn: attributes.hide_ttf_opt_in,\n eventDetails: attributes.event_details,\n countries: attributes.countries,\n }\n }\n }\n return {\n orderReviewError: responseError,\n orderReviewData: resData,\n }\n}\n\n// Update checkout with add-ons and pricing\nexport const updateCheckout = async (data: any): Promise<IUpdateCheckoutResponse> => {\n let responseError: IError | undefined\n let responseData: any | undefined\n let response: AxiosResponse<any> | undefined\n\n try {\n response = await Client.post('v1/checkout', {\n data,\n })\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n message: getErrorMessage(axiosError.response?.data, 'Error updating checkout'),\n code: axiosError.response?.status,\n }\n }\n\n if (response?.data) {\n responseData = response.data\n }\n\n return {\n success: !responseError,\n error: responseError,\n data: responseData,\n }\n}\n\n// Get add-ons for event\nexport const getAddons = async (eventId: string): Promise<any> => {\n let responseError: IError | undefined\n let addonsData: any = {}\n let response: AxiosResponse<any> | undefined\n\n try {\n response = await Client.get(`v1/event/${eventId}/add-ons`)\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n message: getErrorMessage(axiosError.response?.data, 'Error fetching add-ons'),\n code: axiosError.response?.status,\n }\n }\n\n if (response?.data?.data?.attributes) {\n addonsData = response.data.data.attributes\n }\n\n return {\n data: addonsData,\n error: responseError,\n success: !responseError,\n }\n}\n\n// Get payment data and order review\nexport const getPaymentData = async (hash: string): Promise<any> => {\n let responseError: IError | undefined\n let responseData: any | undefined\n let response: AxiosResponse<any> | undefined\n\n try {\n response = await Client.get(`v1/order/${hash}/review`)\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n message: getErrorMessage(axiosError.response?.data, 'Error fetching payment data'),\n code: axiosError.response?.status,\n }\n }\n\n if (response?.data) {\n responseData = response.data\n }\n\n return {\n success: !responseError,\n error: responseError,\n data: responseData,\n }\n}\n\nexport const postOnPaymentSuccess = async (orderHash: string) => {\n let responseError: IError | undefined\n let response: AxiosResponse<any> | undefined\n\n try {\n response = await Client.post(`v1/order/${orderHash}/success`)\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n message: getErrorMessage(\n axiosError.response?.data,\n 'Error while notifying Payment Success'\n ),\n code: axiosError.response?.status,\n }\n }\n\n return {\n error: responseError,\n data: response?.data,\n }\n}\n\nexport const postOnFreeRegistration = async (\n orderHash: string\n): Promise<IFreeRegistrationResponse> => {\n let responseError: IError | undefined\n let responseData: IFreeRegistrationData | undefined\n let res: AxiosResponse<any> | undefined\n\n try {\n res = await Client.post(`v1/order/${orderHash}/complete_free_registration`)\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n message: getErrorMessage(axiosError.response?.data, 'Error occurred'),\n code: axiosError.response?.status,\n }\n }\n\n if (res?.data) {\n const orderDetails = res.data.data.attributes.order_details\n responseData = {\n id: orderDetails.id,\n customerId: orderDetails.customer_id,\n total: orderDetails.total,\n currency: orderDetails.currency,\n orderHash: orderDetails.order_hash,\n }\n }\n return {\n freeRegistrationError: responseError,\n freeRegistrationData: responseData,\n }\n}\n//#endregion\n\n//#region Purchase Confirmation\nexport const fetchPurchaseConfirmation = async (\n orderHash: string\n): Promise<IPurchaseConfirmationResponse> => {\n let responseError: IError | undefined\n let data: IPurchaseConfirmationData | undefined\n let response: AxiosResponse<any> | undefined\n\n try {\n response = await Client.get(`/v1/order/${orderHash}/payment/complete`)\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n message: getErrorMessage(axiosError.response?.data, 'Error occurred'),\n code: axiosError.response?.status,\n }\n }\n\n if (response?.data?.data.attributes) {\n const resData = response.data.data.attributes\n data = {\n conversionPixels: resData.conversion_pixels,\n currency: resData.currency,\n customConfirmationPageText: resData.custom_confirmation_page_text,\n customerId: resData.customer_id,\n isReferralDisabled: resData.disable_referral,\n eventDate: resData.event_date,\n eventDescription: resData.event_description,\n eventType: resData.event_type,\n message: resData.message,\n orderTotal: resData.order_total,\n personalShareLink: resData.personal_share_link,\n productId: resData.product_id,\n productName: resData.product_name,\n productImage: resData.product_image,\n productPrice: resData.product_price,\n productUrl: resData.product_url,\n personalShareSales: resData.personal_share_sales,\n }\n }\n\n return {\n purchaseConfirmationError: responseError,\n purchaseConfirmationData: data,\n }\n}\n//#endregion\n\n//#region Resale Tickets\nexport const resaleTicket = async (\n data: FormData,\n orderHash: string\n): Promise<IResaleTicketResponse> => {\n let responseError: IError | undefined\n let responseData: IResaleTicketData | undefined\n let response: AxiosResponse<any> | undefined\n\n try {\n response = await Client.post(`v1/ticket/${orderHash}/sell`, data)\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n message: getErrorMessage(axiosError.response?.data, 'Error while re-sale ticket'),\n }\n }\n\n if (response?.data && response.data.status) {\n responseData = {\n message: response.data.message,\n }\n }\n\n return {\n resaleTicketData: responseData,\n resaleTicketError: responseError,\n }\n}\n\nexport const removeTicketFromResale = async (\n orderHash: string\n): Promise<IRemoveTicketFromResaleResponse> => {\n let responseError: IError | undefined\n let responseData: IRemoveTicketFromResaleData | undefined\n let response: AxiosResponse<any> | undefined\n\n try {\n response = await Client.delete(`v1/ticket/${orderHash}/sell`)\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n message:\n typeof axiosError.response?.data.message === 'string'\n ? axiosError.response.data.message\n : 'Error removing ticket from resale',\n }\n }\n\n if (response?.data.message && response.data.status === 200) {\n responseData = {\n message: response.data.message,\n }\n }\n\n return {\n removeTicketFromResaleData: responseData,\n removeTicketFromResaleError: responseError,\n }\n}\n//#endregion\n\n//#region Logout\nexport const closeSession = async (): Promise<ICloseSessionResponse> => {\n let responseData: ICloseSessionData | undefined\n let responseError: IError | undefined\n let response: AxiosResponse<any> | undefined\n\n try {\n response = await Client.delete('/auth')\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n message:\n typeof axiosError.response?.data.message === 'string'\n ? axiosError.response.data.message\n : 'Error while closing session',\n }\n }\n\n if (response?.data && response.data.status && response.data.status === 200) {\n responseData = {\n message: response.data.message || 'Session closed successfully',\n }\n }\n\n await deleteAllData()\n\n Client.removeGuestToken()\n Client.removeAccessToken()\n\n return {\n closeSessionData: responseData,\n closeSessionError: responseError,\n }\n}\n//endregion Logout\n\n//#region Restore Password\nexport const requestRestorePassword = async (\n email: string\n): Promise<IRestorePasswordResponse> => {\n let responseError: IError | undefined\n let successData: IRestorePasswordData | undefined\n let response: AxiosResponse<any> | undefined\n\n try {\n response = await Client.post(`v1/oauth/restore-password-rn`, {\n email: email,\n })\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n message: getErrorMessage(\n axiosError.response?.data,\n 'Error while restoring password'\n ),\n code: axiosError.response?.status,\n }\n }\n\n if (!responseError && response?.status === 200) {\n successData = {\n message: response.data.message,\n status: response.data.status,\n }\n }\n\n return {\n data: successData,\n error: responseError,\n }\n}\n//#endregion\n\n//#region Request Password\nexport const requestResetPassword = async (\n data: IResetPasswordRequestData\n): Promise<IResetPasswordResponse> => {\n let responseError: IError | undefined\n let responseData: any | undefined\n let response: AxiosResponse<any> | undefined\n\n try {\n response = await Client.post(`/auth/reset-password`, data)\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = {\n message:\n typeof axiosError.response?.data.message === 'string'\n ? axiosError.response.data.message\n : 'Reset password error',\n code:\n typeof axiosError.response?.data.status === 'number'\n ? axiosError.response.data.status\n : undefined,\n }\n }\n\n if (!responseError && response?.status === 200) {\n responseData = {\n message: response.data.message,\n status: response.status,\n }\n }\n\n return {\n error: responseError,\n data: responseData,\n }\n}\n//#endregion Request Password\n\n//#region Account Tickets\nexport const fetchAccountTickets = async ({\n page = 1,\n limit = 20,\n filter = '',\n from = '',\n}: IMyOrdersRequestParams): Promise<IAccountTicketsResponse> => {\n let responseError: IError | undefined\n let response: AxiosResponse<any> | undefined\n\n const withFilterEvent = filter ? `&filter[event]=${filter}` : ''\n const withBrand = Config.BRAND ? `&filter[brand]=${Config.BRAND}` : ''\n const withSubBrands = Config.ARE_SUB_BRANDS_INCLUDED\n ? `&filter[subbrands]=${Config.ARE_SUB_BRANDS_INCLUDED}`\n : ''\n const withFrom = from ? `&filter[from]=${from}` : ''\n\n const endpoint = `/v1/account/tickets/?page=${page}&limit=${limit}${withFilterEvent}${withBrand}${withSubBrands}${withFrom}`\n\n try {\n response = await Client.get(endpoint)\n } catch (error) {\n const axiosError = error as AxiosError<ErrorResponseData>\n responseError = getApiError(axiosError)\n }\n\n if (responseError) {\n return {\n error: responseError,\n }\n }\n\n if (response?.data) {\n return {\n data: response.data.data,\n }\n }\n\n return {\n error: {\n message: 'No data was received in Account Tickets.',\n },\n }\n}\n//#endregion Account Tickets\n","import _forEach from 'lodash/forEach'\n\nimport { Client } from '../api/ApiClient'\nimport Constants from '../api/Constants'\nimport { getDomainByClientAndEnv } from './Domains'\nimport { LocalStorageKeys, storeData } from './LocalStorage'\nimport { LogLevel } from '../utils/Logger'\n\nexport type EnvType = 'PROD' | 'DEV' | 'STAG'\n\nexport interface IConfigAuth {\n ACCESS_TOKEN: string\n REFRESH_TOKEN: string\n TOKEN_TYPE: string\n SCOPE: string\n}\n\nexport interface IConfig {\n EVENT_ID?: string | number\n CLIENT?: string\n ENV?: EnvType\n CLIENT_ID?: string\n CLIENT_SECRET?: string\n TIMEOUT?: number\n BRAND?: string\n ARE_SUB_BRANDS_INCLUDED?: boolean\n AUTH?: IConfigAuth\n logLevel?: LogLevel\n [key: string]: string | number | boolean | undefined | IConfigAuth\n}\n\nexport const Config: IConfig = {} as IConfig\n\nexport const setConfig = async (configs: IConfig): Promise<string | undefined> => {\n _forEach(configs, (value, key) => {\n Config[key] = value\n })\n\n if (Config.ENV) {\n if (Config.ENV === 'PROD') {\n Client.setBaseUrl(Constants.BASE_URL)\n } else if (Config.ENV === 'DEV') {\n Client.setBaseUrl(Constants.BASE_URL_DEV)\n } else if (Config.ENV === 'STAG') {\n Client.setBaseUrl(Constants.BASE_URL_STAG)\n }\n } else {\n Client.setBaseUrl(Constants.BASE_URL)\n }\n\n if (Config.TIMEOUT) {\n Client.setTimeOut(Config.TIMEOUT)\n }\n\n if (Config.CLIENT) {\n Client.setDomain(getDomainByClientAndEnv(Config.CLIENT, Config.ENV))\n }\n\n if (!Config.CLIENT_SECRET) {\n Config.CLIENT_SECRET = Constants.CLIENT_SECRET\n }\n if (!Config.Client_ID) {\n Config.CLIENT_ID = Constants.CLIENT_ID\n }\n\n if (!Config.ARE_SUB_BRANDS_INCLUDED) {\n Config.ARE_SUB_BRANDS_INCLUDED = false\n }\n\n Config.IS_BILLING_STREET_NAME_REQUIRED = true\n\n if (Config.AUTH) {\n await storeData(LocalStorageKeys.ACCESS_TOKEN, Config.AUTH.ACCESS_TOKEN)\n await storeData(LocalStorageKeys.AUTH_TOKEN_TYPE, Config.AUTH.TOKEN_TYPE || 'Bearer')\n await storeData(LocalStorageKeys.AUTH_SCOPE, Config.AUTH.SCOPE)\n await storeData(LocalStorageKeys.REFRESH_TOKEN, Config.AUTH.REFRESH_TOKEN)\n Client.setAccessToken(Config.AUTH.ACCESS_TOKEN)\n }\n\n return undefined\n}\n","export default {\n BASE_URL: 'https://www.ticketfairy.com/api',\n BASE_URL_DEV: 'https://sandbox.ticketfairy.com/api',\n BASE_URL_STAG: 'https://test.ticketfairy.com/api',\n CLIENT_ID: 'e9d8f8922797b4621e562255afe90dbf',\n CLIENT_SECRET: 'b89c191eff22fdcf84ac9bfd88d005355a151ec2c83b26b9',\n\n PRIVACY_POLICY_LINK: 'https://www.ticketfairy.com/privacy-policy/',\n TIMEOUT: 60000,\n}\n","import { EnvType } from './Config'\n\nexport const getDomainByClientAndEnv = (\n client: string = 'ttf',\n env: EnvType = 'PROD'\n): string => {\n //@ts-ignore\n const brand = domains[client] ?? 'ttf'\n let origin = ''\n\n if (typeof brand === 'string') {\n //@ts-ignore\n origin = domains[brand][env] ?? 'https://www.ticketfairy.com'\n } else {\n origin = brand[env]\n }\n\n return origin\n}\n\nconst domains = {\n mana: {\n DEV: 'https://manacommon.com',\n STAG: 'https://manacommon.com',\n PROD: 'https://manacommon.com',\n },\n ttf: {\n DEV: 'https://sandbox.ticketfairy.com',\n STAG: 'https://test.ticketfairy.com',\n PROD: 'https://www.ticketfairy.com',\n },\n}\n","import AsyncStorage from '@react-native-async-storage/async-storage'\nimport { jwtDecode } from 'jwt-decode'\n\nexport const LocalStorageKeys = {\n AUTH_GUEST_TOKEN: 'AUTH_GUEST_TOKEN',\n USER_DATA: 'USER_DATA',\n ACCESS_TOKEN: 'ACCESS_TOKEN',\n CHECKOUT_DATA: 'CHECKOUT_DATA',\n REFRESH_TOKEN: 'REFRESH_TOKEN',\n TOKEN_TYPE: 'TOKEN_TYPE',\n SCOPE: 'SCOPE',\n RESET_PASS_TOKEN: 'RESET_PASS_TOKEN',\n AUTH_SCOPE: 'AUTH_SCOPE',\n AUTH_TOKEN_TYPE: 'AUTH_TOKEN_TYPE',\n EVENT_COUNTRY: 'EVENT_COUNTRY',\n}\n\nexport interface IStoredUserData {\n id: string\n firstName: string\n lastName: string\n email: string\n}\n\nexport const storeData = async (key: string, value: string) => {\n try {\n await AsyncStorage.setItem(key, value)\n } catch (ex) {\n return undefined\n }\n}\n\nexport const getData = async (key: string) => {\n try {\n const value = await AsyncStorage.getItem(key)\n if (value !== null) {\n return value\n }\n } catch (ex) {\n return undefined\n }\n}\n\nexport const deleteData = async (key: string) => {\n try {\n const value = await AsyncStorage.removeItem(key)\n if (value !== null) {\n return value\n }\n } catch (ex) {\n return undefined\n }\n}\n\nexport const deleteUserData = async () => {\n try {\n const value = await AsyncStorage.multiRemove([\n LocalStorageKeys.ACCESS_TOKEN,\n LocalStorageKeys.REFRESH_TOKEN,\n LocalStorageKeys.TOKEN_TYPE,\n LocalStorageKeys.AUTH_TOKEN_TYPE,\n LocalStorageKeys.SCOPE,\n LocalStorageKeys.USER_DATA,\n LocalStorageKeys.CHECKOUT_DATA,\n LocalStorageKeys.RESET_PASS_TOKEN,\n LocalStorageKeys.AUTH_SCOPE,\n ])\n\n if (value !== null) {\n return value\n }\n } catch (ex) {\n return undefined\n }\n}\n\nexport const deleteAllData = async () => {\n try {\n const value = await AsyncStorage.multiRemove([\n LocalStorageKeys.ACCESS_TOKEN,\n LocalStorageKeys.AUTH_GUEST_TOKEN,\n LocalStorageKeys.USER_DATA,\n LocalStorageKeys.CHECKOUT_DATA,\n LocalStorageKeys.REFRESH_TOKEN,\n LocalStorageKeys.RESET_PASS_TOKEN,\n LocalStorageKeys.AUTH_TOKEN_TYPE,\n LocalStorageKeys.AUTH_SCOPE,\n LocalStorageKeys.SCOPE,\n LocalStorageKeys.TOKEN_TYPE,\n LocalStorageKeys.EVENT_COUNTRY,\n ])\n\n if (value !== null) {\n return value\n }\n } catch (ex) {\n return undefined\n }\n}\n\nexport const checkStoredData = async () => {\n try {\n const values = await AsyncStorage.multiGet([\n LocalStorageKeys.ACCESS_TOKEN,\n LocalStorageKeys.AUTH_GUEST_TOKEN,\n LocalStorageKeys.USER_DATA,\n LocalStorageKeys.CHECKOUT_DATA,\n LocalStorageKeys.REFRESH_TOKEN,\n LocalStorageKeys.RESET_PASS_TOKEN,\n LocalStorageKeys.AUTH_TOKEN_TYPE,\n LocalStorageKeys.AUTH_SCOPE,\n LocalStorageKeys.SCOPE,\n LocalStorageKeys.TOKEN_TYPE,\n LocalStorageKeys.EVENT_COUNTRY,\n ])\n return values\n } catch (ex) {\n console.log('Local Storage GetData Error - checkStoredData')\n }\n}\n\nexport const isStoredTokenValid = async () => {\n const token = await getData(LocalStorageKeys.ACCESS_TOKEN)\n if (!token) {\n return false\n }\n\n try {\n const decodedToken = jwtDecode<{ exp?: number }>(token)\n\n // Check if exp is missing or invalid\n if (!decodedToken || typeof decodedToken.exp !== 'number') {\n await deleteData(LocalStorageKeys.ACCESS_TOKEN)\n await deleteData(LocalStorageKeys.USER_DATA)\n return false\n }\n\n // Check if token is expired\n if (decodedToken.exp < Date.now() / 1000) {\n await deleteData(LocalStorageKeys.ACCESS_TOKEN)\n await deleteData(LocalStorageKeys.USER_DATA)\n return false\n }\n\n return true\n } catch {\n // Token is malformed or cannot be decoded\n await deleteData(LocalStorageKeys.ACCESS_TOKEN)\n await deleteData(LocalStorageKeys.USER_DATA)\n return false\n }\n}\n","import { AxiosError } from 'axios'\n\nimport { IError } from '../types'\n\nconst ERROR = 'Something went wrong!'\n\ninterface ErrorResponseData {\n message?: string | { email?: string; [key: string]: any }\n [key: string]: any\n}\n\nexport const getApiError = (\n error: AxiosError<ErrorResponseData>,\n defaultMessage?: string\n): IError => {\n const errorJSON = error.toJSON()\n\n if (error.response) {\n const message = error.response?.data?.message\n return {\n message: typeof message === 'string' ? message : defaultMessage || ERROR,\n code: error.response?.status,\n }\n } else {\n if (error.code === 'ECONNABORTED') {\n return {\n // @ts-ignore\n message: errorJSON.message || 'Connection time out',\n }\n }\n }\n\n return {\n message: defaultMessage || ERROR,\n }\n}\n","import { Config } from '../../helpers/Config'\n\nexport const getFetchAccessTokenBody = (authorizationCode: string): FormData => {\n const bodyFormDataToken = new FormData()\n bodyFormDataToken.append('code', authorizationCode)\n bodyFormDataToken.append('scope', 'profile')\n bodyFormDataToken.append('grant_type', 'authorization_code')\n bodyFormDataToken.append('client_id', Config.CLIENT_ID)\n bodyFormDataToken.append('client_secret', Config.CLIENT_SECRET)\n\n return bodyFormDataToken\n}\n\nexport const getRefreshAccessTokenBody = (refreshToken: string): FormData => {\n const bodyFormDataToken = new FormData()\n bodyFormDataToken.append('grant_type', 'refresh_token')\n bodyFormDataToken.append('client_id', Config.CLIENT_ID)\n bodyFormDataToken.append('client_secret', Config.CLIENT_SECRET)\n bodyFormDataToken.append('refresh_token', refreshToken)\n\n return bodyFormDataToken\n}\n","import { fetchAccessToken } from '../api/ApiClient'\nimport { IFetchAccessTokenResponse } from '../api/types'\nimport { getRefreshAccessTokenBody } from '../core/LoginCore/LoginCoreHelper'\nimport { getData, LocalStorageKeys } from './LocalStorage'\n\nexport const refreshAccessToken = async (\n refreshToken?: string\n): Promise<IFetchAccessTokenResponse> => {\n let token = await getData(LocalStorageKeys.REFRESH_TOKEN)\n if (refreshToken) {\n token = refreshToken\n }\n if (!token) {\n return {\n accessTokenError: {\n message: 'There is not stored or passed Refresh Token',\n },\n }\n }\n\n const refreshTokenBody = getRefreshAccessTokenBody(token)\n const response = await fetchAccessToken(refreshTokenBody)\n\n return response\n}\n","/**\n * @deprecated This component is deprecated and will be removed in a future release.\n * Please use the hooks from 'tf-checkout-react-native' instead.\n * Example: import { useCheckoutFlow } from 'tf-checkout-react-native'\n * See README.md in this directory for migration guide.\n */\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { forwardRef, useImperativeHandle } from 'react'\nimport BackgroundTimer from 'react-native-background-timer'\n\nimport {\n fetchEventConditions,\n fetchOrderDetails,\n fetchOrderReview,\n postOnFreeRegistration,\n postOnPaymentSuccess,\n} from '../../api/ApiClient'\nimport {\n IFetchAccessTokenResponse,\n IFreeRegistrationResponse,\n IMyOrderDetailsResponse,\n IOrderReviewResponse,\n} from '../../api/types'\nimport { refreshAccessToken as refreshAccessTokenAsync } from '../../helpers/RefreshAccessToken'\nimport { CheckoutCoreHandle, ICheckoutCoreProps } from './CheckoutCoreTypes'\n\n/**\n * @deprecated Use the hooks from 'tf-checkout-react-native' instead.\n * Example: import { useCheckoutFlow } from 'tf-checkout-react-native'\n */\nconst CheckoutCore = forwardRef<CheckoutCoreHandle, ICheckoutCoreProps>((props, ref) => {\n const [secondsLeft, setSecondsLeft] = useState(420)\n const [timerOn, setTimerOn] = useState(false)\n\n const handleStopTimer = useCallback(() => {\n BackgroundTimer.stop()\n BackgroundTimer.stopBackgroundTimer()\n }, [])\n\n const handleStartTimer = useCallback(() => {\n BackgroundTimer.runBackgroundTimer(() => {\n setSecondsLeft((secs) => {\n if (secs > 0) {\n return secs - 1\n } else {\n return 0\n }\n })\n }, 1000)\n }, [])\n\n const handleTimeIsUp = () => {\n BackgroundTimer.stopBackgroundTimer()\n props.onCartExpired?.()\n }\n\n useEffect(() => {\n if (secondsLeft === 0) {\n handleTimeIsUp()\n }\n props.onSecondsLeftChange?.(secondsLeft)\n }, [secondsLeft])\n\n useEffect(() => {\n if (timerOn) {\n handleStartTimer()\n } else {\n BackgroundTimer.stopBackgroundTimer()\n }\n return () => {\n BackgroundTimer.stopBackgroundTimer()\n }\n }, [handleStartTimer, timerOn])\n\n useImperativeHandle(ref, () => ({\n async getEventConditions(): Promise<any> {\n return await fetchEventConditions()\n },\n\n async getPurchaseOrderDetails(orderId: string): Promise<IMyOrderDetailsResponse> {\n return await fetchOrderDetails(orderId)\n },\n\n async getOrderReview(orderHash: string): Promise<IOrderReviewResponse> {\n const res = await fetchOrderReview(orderHash)\n if (res.orderReviewData) {\n setSecondsLeft(res.orderReviewData.expiresAt)\n setTimerOn(true)\n }\n return res\n },\n\n async freeRegistration(orderHash: string): Promise<IFreeRegistrationResponse> {\n return await postOnFreeRegistration(orderHash)\n },\n\n async paymentSuccess(orderHash: string): Promise<any> {\n return await postOnPaymentSuccess(orderHash)\n },\n\n async refreshAccessToken(refreshToken?: string): Promise<IFetchAccessTokenResponse> {\n return await refreshAccessTokenAsync(refreshToken)\n },\n\n stopCartTimer() {\n return handleStopTimer()\n },\n }))\n\n return <>{props.children}</>\n})\n\nexport default CheckoutCore\n","import React, { forwardRef, useImperativeHandle } from 'react'\n\nimport {\n authorize,\n closeSession,\n fetchAccessToken,\n fetchUserProfile,\n requestResetPassword,\n requestRestorePassword,\n} from '../../api/ApiClient'\nimport { ICloseSessionResponse, IResetPasswordRequestData } from '../../api/types'\nimport { ILoginFields } from '../../components/login/types'\nimport { IStoredUserData, LocalStorageKeys, storeData } from '../../helpers/LocalStorage'\nimport { IUserProfilePublic } from '../../types'\nimport { ICoreProps } from '../CoreProps'\nimport { getFetchAccessTokenBody } from './LoginCoreHelper'\nimport { ILoginCoreResponse, LoginCoreHandle } from './LoginCoreTypes'\n\nconst LoginCore = forwardRef<LoginCoreHandle, ICoreProps>((props, ref) => {\n useImperativeHandle(ref, () => ({\n // #region Login\n async login({ email, password }: ILoginFields): Promise<ILoginCoreResponse> {\n const bodyFormData = new FormData()\n bodyFormData.append('email', email)\n bodyFormData.append('password', password)\n\n const { code: authorizationCode, error: authorizationError } =\n await authorize(bodyFormData)\n\n if (authorizationError) {\n return {\n error: {\n ...authorizationError,\n extraData: { endpoint: 'authorize' },\n },\n }\n }\n\n if (!authorizationCode) {\n return {\n error: {\n message: 'There is no authorization code',\n extraData: { endpoint: 'authorize' },\n },\n }\n }\n\n const { accessTokenError, accessTokenData } = await fetchAccessToken(\n getFetchAccessTokenBody(authorizationCode)\n )\n\n if (accessTokenError) {\n return {\n error: {\n ...accessTokenError,\n extraData: {\n endpoint: 'accessToken',\n },\n },\n }\n }\n\n const { userProfileError, userProfileData } = await fetchUserProfile()\n\n if (userProfileError) {\n return {\n error: {\n ...userProfileError,\n extraData: {\n endpoint: 'userProfile',\n },\n },\n }\n }\n\n if (!userProfileData) {\n return {\n error: {\n message: 'There is no user profile',\n extraData: {\n endpoint: 'userProfile',\n },\n },\n }\n }\n\n const storedUserData: IStoredUserData = {\n id: userProfileData!.id,\n firstName: userProfileData!.firstName,\n lastName: userProfileData!.lastName,\n email: userProfileData!.email,\n }\n\n const userPublicData: IUserProfilePublic = {\n customerId: userProfileData.id,\n firstName: userProfileData.firstName,\n lastName: userProfileData.lastName,\n email: userProfileData.email,\n phone: userProfileData.phone,\n streetAddress: userProfileData.streetAddress,\n zipCode: userProfileData.zipCode,\n countryId: userProfileData.countryId,\n city: userProfileData.city,\n state: userProfileData.state,\n company: userProfileData.company,\n stateId: userProfileData.stateId,\n dateOfBirth: userProfileData.dateOfBirth,\n }\n\n await storeData(LocalStorageKeys.USER_DATA, JSON.stringify(storedUserData))\n\n return { userProfile: userPublicData, accessTokenData: accessTokenData }\n },\n // #endregion Login\n\n // #region Logout\n async logout(): Promise<ICloseSessionResponse> {\n return await closeSession()\n },\n // #endregion Logout\n\n // #region Restore Password\n async restorePassword(email: string) {\n const response = await requestRestorePassword(email)\n return response\n },\n // #endregion Restore Password\n\n // #region Reset Password\n async resetPassword(data: IResetPasswordRequestData) {\n const response = await requestResetPassword(data)\n return response\n },\n // #endregion Reset Password\n }))\n\n return <>{props.children}</>\n})\n\nexport default LoginCore\n","import React from 'react'\nimport { forwardRef, useImperativeHandle } from 'react'\n\nimport {\n fetchAccountTickets,\n fetchMyOrders,\n fetchOrderDetails,\n} from '../../api/ApiClient'\nimport {\n IFetchAccessTokenResponse,\n IMyOrderDetailsResponse,\n IMyOrdersRequestParams,\n IMyOrdersResponse,\n} from '../../api/types'\nimport { refreshAccessToken as refreshAccessTokenAsync } from '../../helpers/RefreshAccessToken'\nimport { IAccountTicketsResponse } from '../../types'\nimport { ICoreProps } from '../CoreProps'\nimport { MyOrdersCoreHandle } from './MyOrdersCoreTypes'\n\nconst MyOrdersCore = forwardRef<MyOrdersCoreHandle, ICoreProps>((props, ref) => {\n useImperativeHandle(ref, () => ({\n async getMyOrders(params: IMyOrdersRequestParams): Promise<IMyOrdersResponse> {\n return await fetchMyOrders(params)\n },\n\n async getOrderDetails(orderId: string): Promise<IMyOrderDetailsResponse> {\n return await fetchOrderDetails(orderId)\n },\n\n async refreshAccessToken(refreshToken?: string): Promise<IFetchAccessTokenResponse> {\n return await refreshAccessTokenAsync(refreshToken)\n },\n\n async getAccountTickets(\n params: IMyOrdersRequestParams\n ): Promise<IAccountTicketsResponse> {\n return await fetchAccountTickets(params)\n },\n }))\n\n return <>{props.children}</>\n})\n\nexport default MyOrdersCore\n","import React, { forwardRef, useImperativeHandle } from 'react'\n\nimport { removeTicketFromResale, resaleTicket } from '../../api/ApiClient'\nimport {\n IFetchAccessTokenResponse,\n IRemoveTicketFromResaleResponse,\n IResaleTicketResponse,\n} from '../../api/types'\nimport { refreshAccessToken as refreshAccessTokenAsync } from '../../helpers/RefreshAccessToken'\nimport { ICoreProps } from '../CoreProps'\nimport { OrderDetailsCoreHandle } from './OrderDetailsCoreTypes'\n\nconst OrderDetailsCore = forwardRef<OrderDetailsCoreHandle, ICoreProps>((props, ref) => {\n useImperativeHandle(ref, () => ({\n async resaleTicket(\n data: FormData,\n orderHash: string\n ): Promise<IResaleTicketResponse> {\n return await resaleTicket(data, orderHash)\n },\n\n async removeTicketFromResale(\n orderHash: string\n ): Promise<IRemoveTicketFromResaleResponse> {\n return await removeTicketFromResale(orderHash)\n },\n\n async refreshAccessToken(refreshToken?: string): Promise<IFetchAccessTokenResponse> {\n return await refreshAccessTokenAsync(refreshToken)\n },\n }))\n\n return <>{props.children}</>\n})\n\nexport default OrderDetailsCore\n","import React, { forwardRef, useCallback, useImperativeHandle } from 'react'\nimport BackgroundTimer from 'react-native-background-timer'\n\nimport { fetchPurchaseConfirmation } from '../../api/ApiClient'\nimport { IFetchAccessTokenResponse } from '../../api/types'\nimport { refreshAccessToken as refreshAccessTokenAsync } from '../../helpers/RefreshAccessToken'\nimport { ICoreProps } from '../CoreProps'\nimport { PurchaseConfirmationCoreHandle } from './PurchaseConfirmationCoreTypes'\n\nconst PurchaseConfirmationCore = forwardRef<PurchaseConfirmationCoreHandle, ICoreProps>(\n (props, ref) => {\n const handleStopTimer = useCallback(() => {\n BackgroundTimer.stop()\n BackgroundTimer.stopBackgroundTimer()\n }, [])\n\n useImperativeHandle(ref, () => ({\n async getPurchaseConfirmation(orderHash: string): Promise<any> {\n return await fetchPurchaseConfirmation(orderHash)\n },\n\n async refreshAccessToken(\n refreshToken?: string\n ): Promise<IFetchAccessTokenResponse> {\n return await refreshAccessTokenAsync(refreshToken)\n },\n\n stopCartTimer() {\n return handleStopTimer()\n },\n }))\n\n return <>{props.children}</>\n }\n)\n\nexport default PurchaseConfirmationCore\n","import React, { forwardRef, useImperativeHandle } from 'react'\n\nimport { requestResetPassword } from '../../api/ApiClient'\nimport { IResetPasswordRequestData, IResetPasswordResponse } from '../../api/types'\nimport { ICoreProps } from '../CoreProps'\nimport { ResetPasswordCoreHandle } from './ResetPasswordCoreTypes'\n\nconst ResetPasswordCore = forwardRef<ResetPasswordCoreHandle, ICoreProps>(\n (props, ref) => {\n useImperativeHandle(ref, () => ({\n async postResetPassword(\n data: IResetPasswordRequestData\n ): Promise<IResetPasswordResponse> {\n return await requestResetPassword(data)\n },\n }))\n return <>{props.children}</>\n }\n)\n\nexport default ResetPasswordCore\n","import React from 'react'\nimport { forwardRef, useImperativeHandle } from 'react'\n\nimport { IFetchAccessTokenResponse } from '../../api/types'\nimport { refreshAccessToken as refreshAccessTokenAsync } from '../../helpers/RefreshAccessToken'\nimport { ICoreProps } from '../CoreProps'\nimport { SessionHandleType } from './SessionCoreTypes'\n\nconst SessionHandle = forwardRef<SessionHandleType, ICoreProps>((props, ref) => {\n useImperativeHandle(ref, () => ({\n async refreshAccessToken(refreshToken?: string): Promise<IFetchAccessTokenResponse> {\n return await refreshAccessTokenAsync(refreshToken)\n },\n\n async reloadData() {\n return null\n },\n }))\n\n return <>{props.children}</>\n})\n\nexport default SessionHandle\n","import { jwtDecode } from 'jwt-decode'\nimport _find from 'lodash/find'\nimport _groupBy from 'lodash/groupBy'\nimport _map from 'lodash/map'\nimport _mapKeys from 'lodash/mapKeys'\nimport _sortBy from 'lodash/sortBy'\nimport React, { forwardRef, useImperativeHandle } from 'react'\n\nimport {\n addToCart,\n closeSession,\n fetchAccountTickets,\n fetchEvent,\n fetchTickets,\n postReferralVisit,\n unlockPasswordProtectedEvent,\n} from '../../api/ApiClient'\nimport {\n IAddToCartParams,\n ICloseSessionResponse,\n IEventResponse,\n IFetchAccessTokenResponse,\n IMyOrdersRequestParams,\n IPostReferralResponse,\n} from '../../api/types'\nimport { Config } from '../../helpers/Config'\nimport { deleteData, getData, LocalStorageKeys } from '../../helpers/LocalStorage'\nimport { refreshAccessToken as refreshAccessTokenAsync } from '../../helpers/RefreshAccessToken'\nimport { IAccountTicketsResponse, IAddToCartResponse, ITicket } from '../../types'\nimport { ICoreProps } from '../CoreProps'\nimport {\n IBookTicketsOptions,\n IGetTicketsOptions,\n IGetTicketsPayload,\n IGroupedTickets,\n TicketsCoreHandle,\n} from './TicketsCoreTypes'\n\nconst TicketsCore = forwardRef<TicketsCoreHandle, ICoreProps>((props, ref) => {\n useImperativeHandle(ref, () => ({\n async getTickets({\n promoCode,\n areTicketsSortedBySoldOut,\n areTicketsGrouped,\n referredId,\n }: IGetTicketsOptions): Promise<IGetTicketsPayload> {\n const groupTickets = (tickets: ITicket[]) => {\n // Create an array of tickets with the GroupName set\n const ticketsWithGroupName = _map(tickets, (ticket) => {\n return {\n ...ticket,\n groupName: ticket.groupName || '',\n }\n })\n const groupedTickets = _groupBy(ticketsWithGroupName, 'groupName')\n const ticketsSections: IGroupedTickets[] = []\n _mapKeys(groupedTickets, (val, key) => {\n ticketsSections.push({\n title: key,\n data: val,\n })\n })\n\n return ticketsSections\n }\n // PromoCode higher priority than ReferredId\n\n const ticketsResponse = await fetchTickets({\n promoCode: promoCode,\n referredId: referredId,\n })\n\n if (ticketsResponse.error || !ticketsResponse.tickets) {\n return ticketsResponse\n }\n\n const sortedTickets = areTicketsSortedBySoldOut\n ? _sortBy(_sortBy(ticketsResponse.tickets, 'sortOrder'), 'soldOut')\n : _sortBy(ticketsResponse.tickets, 'sortOrder')\n\n const areGroupsShown = !!_find(sortedTickets, (ticket) => ticket.groupName)\n\n if (!areTicketsSortedBySoldOut) {\n if (!areTicketsGrouped) {\n return {\n ...ticketsResponse,\n tickets: sortedTickets,\n areGroupsShown: false,\n }\n }\n if (areGroupsShown) {\n return {\n ...ticketsResponse,\n tickets: groupTickets(sortedTickets),\n areGroupsShown: areGroupsShown,\n }\n } else {\n return {\n ...ticketsResponse,\n tickets: sortedTickets,\n areGroupsShown: areGroupsShown,\n }\n }\n } else {\n // Sort tickets by sold out\n if (!areTicketsGrouped) {\n return {\n ...ticketsResponse,\n tickets: sortedTickets,\n areGroupsShown: false,\n }\n } else {\n if (areGroupsShown) {\n return {\n ...ticketsResponse,\n tickets: groupTickets(sortedTickets),\n areGroupsShown: areGroupsShown,\n }\n }\n return {\n ...ticketsResponse,\n tickets: sortedTickets,\n areGroupsShown: areGroupsShown,\n }\n }\n }\n },\n\n async getEvent(): Promise<IEventResponse> {\n return await fetchEvent()\n },\n\n async unlockPasswordProtectedEvent(password: string): Promise<IEventResponse> {\n return await unlockPasswordProtectedEvent(password)\n },\n\n async addToCart({\n quantity,\n optionName,\n ticketId,\n price,\n }: IBookTicketsOptions): Promise<IAddToCartResponse> {\n if (!Config.EVENT_ID) {\n return {\n error: {\n message: 'Event ID is not configured',\n },\n }\n }\n const parsedEventId =\n typeof Config.EVENT_ID === 'string'\n ? parseInt(Config.EVENT_ID, 10)\n : Config.EVENT_ID\n\n const data: IAddToCartParams = {\n attributes: {\n alternative_view_id: null,\n product_cart_quantity: quantity,\n product_options: {\n [optionName]: ticketId,\n },\n product_id: parsedEventId,\n ticket_types: {\n [ticketId]: {\n product_options: {\n [optionName]: ticketId,\n ticket_price: price,\n },\n quantity: quantity,\n },\n },\n },\n }\n return await addToCart(data)\n },\n\n async getIsUserLoggedIn(): Promise<boolean> {\n const token = await getData(LocalStorageKeys.ACCESS_TOKEN)\n\n if (!token) {\n return false\n }\n\n const decodedToken = jwtDecode<{ exp: number }>(token)\n if (decodedToken && decodedToken.exp < Date.now() / 1000) {\n await deleteData(LocalStorageKeys.ACCESS_TOKEN)\n await deleteData(LocalStorageKeys.USER_DATA)\n return false\n }\n\n return true\n },\n\n async logout(): Promise<ICloseSessionResponse> {\n return await closeSession()\n },\n\n async postReferralVisit(referralId: string): Promise<IPostReferralResponse> {\n return await postReferralVisit(referralId)\n },\n\n async refreshAccessToken(refreshToken?: string): Promise<IFetchAccessTokenResponse> {\n return await refreshAccessTokenAsync(refreshToken)\n },\n\n async getAccountTickets(\n params: IMyOrdersRequestParams\n ): Promise<IAccountTicketsResponse> {\n return await fetchAccountTickets(params)\n },\n }))\n\n return <>{props.children}</>\n})\n\nexport default TicketsCore\n","import React, { forwardRef, useImperativeHandle } from 'react'\n\nimport { addToWaitingList } from '../../api/ApiClient'\nimport { IAddToWaitingListResponse, IFetchAccessTokenResponse } from '../../api/types'\nimport { IWaitingListFields } from '../../components/waitingList/types'\nimport { refreshAccessToken as refreshAccessTokenAsync } from '../../helpers/RefreshAccessToken'\nimport { ICoreProps } from '../CoreProps'\nimport {\n IAddToWaitingListCoreParams,\n WaitingListCoreHandle,\n} from './WaitingListCoreTypes'\n\nconst WaitingListCore = forwardRef<WaitingListCoreHandle, ICoreProps>((props, ref) => {\n useImperativeHandle(ref, () => ({\n async addToWaitingList(\n params: IAddToWaitingListCoreParams\n ): Promise<IAddToWaitingListResponse> {\n const fields: IWaitingListFields = {\n ticketTypeId: '',\n quantity: '',\n ...params,\n }\n\n return await addToWaitingList(fields)\n },\n\n async refreshAccessToken(refreshToken?: string): Promise<IFetchAccessTokenResponse> {\n return await refreshAccessTokenAsync(refreshToken)\n },\n }))\n\n return <>{props.children}</>\n})\n\nexport default WaitingListCore\n","import React, { FC, useMemo, useState } from 'react'\nimport { Alert, Image, Modal, Text, TouchableOpacity, View } from 'react-native'\n\nimport { useDebounced } from '../../helpers/Debounced'\nimport { validateEmail, validateMinLength } from '../../helpers/Validators'\nimport R from '../../res'\nimport Button from '../button/Button'\nimport RestorePassword from '../restorePassword/RestorePassword'\nimport ResultDialog from '../restorePassword/ResultDialog'\nimport LoginForm from './components/LoginForm'\nimport s from './styles'\nimport { ILoginViewProps, ILoginViewState } from './types'\n\nconst initialState: ILoginViewState = {\n loginEmail: '',\n loginPassword: '',\n}\n\nconst LoginView: FC<ILoginViewProps> = ({\n showDialog,\n hideDialog,\n isDialogVisible,\n onPressLogin,\n isLoading,\n onPressLogout,\n styles,\n texts,\n userFirstName,\n loginApiError,\n brandImages,\n isShowPasswordButtonVisible,\n content,\n onPressForgotPassword,\n restorePasswordProps,\n resultDialogPropsProps,\n}) => {\n const [data, setData] = useState<ILoginViewState>(initialState)\n const { loginEmail, loginPassword } = data\n\n const loginEmailError = useDebounced(loginEmail, validateEmail)\n const loginPasswordError = useDebounced(loginPassword, (value: string) =>\n validateMinLength(value, 6, 'Password')\n )\n\n const handleOnPressLogin = () => {\n onPressLogin({\n email: loginEmail,\n password: loginPassword,\n })\n }\n\n const logoutTitle = texts?.logoutDialog?.title\n ? texts.logoutDialog.title\n : 'Are you sure that you want to logout?'\n\n const logoutMessage = texts?.logoutDialog?.message\n ? texts.logoutDialog.message\n : 'You will need to enter your login data again to place the order.'\n\n const logoutConfirm = texts?.logoutDialog?.confirm\n ? texts.logoutDialog.confirm\n : 'Yes, logout'\n\n const logoutCancel = texts?.logoutDialog?.cancel ? texts.logoutDialog.cancel : 'No'\n\n const line1 = texts?.line1 || 'Got a TICKETFAIRY account?'\n\n const line2 = texts?.line2 || 'Login & skip ahead:'\n\n const handleLogout = () => {\n setData(initialState)\n if (onPressLogout) {\n onPressLogout()\n }\n }\n\n const checkIsLoginDataValid = (): boolean => {\n if (loginEmailError) {\n return false\n }\n if (loginPasswordError) {\n return false\n }\n return true\n }\n\n const LoggedComponent = () => (\n <View style={styles?.loggedIn?.container}>\n <Text style={styles?.loggedIn?.placeholder}>\n {texts?.loggedIn?.loggedAs || 'Logged in as:'}{' '}\n <Text style={styles?.loggedIn?.value}>{userFirstName}</Text>\n </Text>\n <Text style={styles?.loggedIn?.message}>\n {texts?.loggedIn?.notYou || 'Not you?'}\n </Text>\n <Button\n text={texts?.logoutButton || 'LOGOUT'}\n onPress={handleOnPressLogout}\n styles={{ container: s.button, ...styles?.loggedIn?.button }}\n />\n </View>\n )\n\n const GuestComponent = () => (\n <>\n {texts?.message ? (\n <Text style={styles?.guest?.message}>{texts?.message}</Text>\n ) : (\n <View style={styles?.guest?.linesContainer}>\n <Text style={styles?.guest?.line1}>{line1}</Text>\n <Text style={styles?.guest?.line2}>{line2}</Text>\n </View>\n )}\n <Button\n styles={{ container: s.button, ...styles?.guest?.loginButton }}\n text={texts?.loginButton || 'LOGIN'}\n onPress={showDialog}\n />\n </>\n )\n\n const BrandImages = useMemo(\n () => (\n <View style={brandImages?.containerStyle}>\n <Image\n source={brandImages?.image1 || R.images.brand}\n style={[s.brand, brandImages?.image1Style]}\n />\n\n {brandImages?.image2 && (\n <Image source={brandImages.image2} style={brandImages?.image2Style} />\n )}\n </View>\n ),\n [\n brandImages?.containerStyle,\n brandImages?.image1,\n brandImages?.image1Style,\n brandImages?.image2,\n brandImages?.image2Style,\n ]\n )\n\n //#region Button Press\n const handleOnPressLogout = () => {\n Alert.alert(logoutTitle, logoutMessage, [\n {\n text: logoutConfirm,\n onPress: handleLogout,\n style: 'destructive',\n },\n {\n text: logoutCancel,\n },\n ])\n }\n //#endregion Button Press\n\n //#region Text Changed\n const handleOnLoginEmailChanged = (text: string) =>\n setData({ ...data, loginEmail: text })\n\n const handleOnLoginPasswordChanged = (text: string) =>\n setData({ ...data, loginPassword: text })\n //#endregion Text Changed\n\n const renderContent = (): React.ReactElement => {\n switch (content) {\n case 'login':\n return (\n <LoginForm\n email={loginEmail}\n emailError={loginEmailError}\n onEmailChanged={handleOnLoginEmailChanged}\n password={loginPassword}\n passwordError={loginPasswordError}\n onPasswordChanged={handleOnLoginPasswordChanged}\n onPressLoginButton={handleOnPressLogin}\n onPressForgotPassword={onPressForgotPassword}\n viewProps={{\n styles: styles,\n texts: texts,\n }}\n loginApiError={loginApiError}\n isLoginButtonDisabled={!checkIsLoginDataValid()}\n isLoading={isLoading}\n brandImages={BrandImages}\n isShowPasswordButtonVisible={isShowPasswordButtonVisible}\n />\n )\n\n case 'restorePassword':\n return (\n <RestorePassword\n onPressRestorePasswordButton={\n restorePasswordProps.onPressRestorePasswordButton\n }\n onPressCancelButton={restorePasswordProps.onPressCancelButton}\n styles={styles?.restorePassword}\n texts={texts?.restorePassword}\n isLoading={restorePasswordProps.isLoading}\n />\n )\n\n case 'restorePasswordSuccess':\n return (\n <ResultDialog\n onPressButton={() => {\n resultDialogPropsProps?.onPressButton()\n }}\n message={resultDialogPropsProps?.message}\n />\n )\n\n default:\n return (\n <LoginForm\n email={loginEmail}\n emailError={loginEmailError}\n onEmailChanged={handleOnLoginEmailChanged}\n password={loginPassword}\n passwordError={loginPasswordError}\n onPasswordChanged={handleOnLoginPasswordChanged}\n onPressLoginButton={handleOnPressLogin}\n onPressForgotPassword={onPressForgotPassword}\n viewProps={{\n styles: styles,\n texts: texts,\n }}\n loginApiError={loginApiError}\n isLoginButtonDisabled={!checkIsLoginDataValid()}\n isLoading={isLoading}\n brandImages={BrandImages}\n isShowPasswordButtonVisible={isShowPasswordButtonVisible}\n />\n )\n }\n }\n\n //#region Render main component\n return (\n <View style={s.rootContainer}>\n {userFirstName ? LoggedComponent() : GuestComponent()}\n\n {isDialogVisible && (\n <Modal transparent={true} presentationStyle=\"overFullScreen\">\n <View style={s.touchableContainer}>\n <TouchableOpacity style={s.dismissibleArea} onPress={hideDialog}>\n <TouchableOpacity>{renderContent()}</TouchableOpacity>\n </TouchableOpacity>\n </View>\n </Modal>\n )}\n </View>\n )\n //#endregion Render main component\n}\n\nexport default LoginView\n","import { useEffect, useState } from 'react'\nconst DELAY = 300\n\nexport const useDebounced = (value: string, validate: (value: string) => string) => {\n const [debouncedValue, setDebouncedValue] = useState(value)\n const [error, setError] = useState<string>()\n useEffect(\n () => {\n // Update debounced value after delay\n const handler = setTimeout(() => {\n setDebouncedValue(value)\n if (debouncedValue) {\n setError(validate(value))\n }\n }, DELAY)\n\n // Cancel the timeout if value changes (also on delay change or unmount)\n // This is how we prevent debounced value from updating if value is changed ...\n // .. within the delay period. Timeout gets cleared and restarted.\n return () => {\n clearTimeout(handler)\n }\n },\n [debouncedValue, validate, value] // Only re-call effect if value or delay changes\n )\n return error\n}\n","export const emailRegex =\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n\n//https://www.twilio.com/docs/glossary/what-e164\nexport const phoneRegex = /^\\+[1-9]\\d{1,14}$/\n\nconst emptyRegex = /^\\s+$/\n\nexport const validateEmpty = (value?: string | number, message?: string): string => {\n if (!value) {\n return message || 'Required'\n }\n\n if (typeof value === 'string') {\n return emptyRegex.test(value) ? message || 'Required' : ''\n }\n return ''\n}\n\nexport const validateMinLength = (\n value: string,\n minLength: number,\n fieldName: string = 'Field'\n) =>\n value.length < minLength ? `${fieldName} requires at least ${minLength} characters` : ''\n\nexport const validateEmail = (email: string, equalTo?: string) => {\n if (!email) {\n return 'Required'\n }\n\n let validation = ''\n\n if (equalTo) {\n validation = email === equalTo ? '' : 'Emails must match'\n }\n if (validation) {\n return validation\n }\n return !emailRegex.test(email) ? 'Please enter a valid email address' : ''\n}\n\nexport const validatePasswords = (password?: string, equalTo?: string) => {\n if (!password) {\n return 'Required'\n }\n\n let validation = ''\n if (equalTo) {\n validation = password === equalTo ? '' : 'Passwords must match'\n }\n if (validation) {\n return validation\n }\n validation = validateEmpty(password)\n if (validation) {\n return validation\n }\n\n return validateMinLength(password, 6, 'Password')\n}\n\nexport const validateAge = (dateOfBirth?: Date, minimumAge: number = 18): string => {\n if (!dateOfBirth) {\n return 'Required'\n }\n\n const today = new Date()\n const age = today.getFullYear() - dateOfBirth.getFullYear()\n return age < minimumAge ? `You must be at least ${minimumAge} years old` : ''\n}\n\ninterface IValidatePhoneNumber {\n phoneNumber?: string\n customError?: string\n countryCode?: string\n}\n\nexport const validatePhoneNumber = ({\n phoneNumber,\n customError,\n countryCode,\n}: IValidatePhoneNumber) => {\n if (!phoneNumber) {\n return customError || 'Please enter a phone number'\n }\n\n if (phoneNumber === countryCode)\n return customError || 'Please enter a valid phone number'\n\n return !phoneRegex.test(`${phoneNumber}`)\n ? customError || 'Please enter a valid phone number'\n : ''\n}\n\nexport const validateDropDownEmpty = (selectedOptionId?: string | number): string => {\n if (!selectedOptionId) return 'Required'\n\n if (typeof selectedOptionId === 'string') {\n return selectedOptionId === '-1' ? 'Required' : ''\n }\n\n if (typeof selectedOptionId === 'number') {\n return selectedOptionId === -1 ? 'Required' : ''\n }\n\n return ''\n}\n","import React, { FC, useState } from 'react'\nimport { Text, View } from 'react-native'\n\nimport { useDebounced } from '../../helpers/Debounced'\nimport { validateEmail } from '../../helpers/Validators'\nimport Button from '../button/Button'\nimport Input from '../input/Input'\nimport { restorePasswordStyles as s } from './styles'\nimport { IRestorePasswordProps } from './types'\n\nconst RestorePassword: FC<IRestorePasswordProps> = ({\n styles,\n texts,\n isLoading,\n onPressRestorePasswordButton,\n onPressCancelButton,\n apiError,\n}) => {\n const [email, setEmail] = useState('')\n const emailError = useDebounced(email, validateEmail)\n\n const handleOnPressRestoreButton = () => {\n onPressRestorePasswordButton(email)\n }\n\n return (\n <View style={[s.rootContainer, styles?.rootContainer]}>\n <Text style={[s.title, styles?.title]}>\n {texts?.title || 'Enter your email to restore your password'}\n </Text>\n\n <Input\n label={texts?.inputLabel || 'Email'}\n error={emailError}\n keyboardType=\"email-address\"\n value={email}\n onChangeText={setEmail}\n autoCapitalize=\"none\"\n styles={styles?.input}\n />\n\n {!!apiError && <Text style={styles?.apiError}>{apiError}</Text>}\n\n <Button\n text={texts?.restorePasswordButton || 'RESTORE PASSWORD'}\n onPress={handleOnPressRestoreButton}\n isLoading={isLoading}\n isDisabled={isLoading || !!emailError || email.length === 0}\n styles={styles?.restorePasswordButton}\n />\n\n {!isLoading && (\n <Button\n text={texts?.cancelButton || 'CANCEL'}\n onPress={onPressCancelButton}\n styles={styles?.cancelRestorePasswordButton}\n />\n )}\n </View>\n )\n}\n\nexport default RestorePassword\n","import { StyleSheet } from 'react-native'\n\nimport R from '../../res'\n\nexport const restorePasswordStyles = StyleSheet.create({\n rootContainer: {\n paddingVertical: 32,\n width: '80%',\n backgroundColor: R.colors.white,\n borderRadius: 2,\n paddingHorizontal: 16,\n alignItems: 'center',\n },\n title: {\n color: R.colors.black,\n fontSize: 18,\n fontWeight: '800',\n },\n})\n\nexport const restorePasswordSuccessStyles = StyleSheet.create({\n rootContainer: {\n paddingVertical: 32,\n width: '80%',\n backgroundColor: R.colors.white,\n borderRadius: 2,\n paddingHorizontal: 16,\n alignItems: 'center',\n },\n title: {\n color: R.colors.black,\n fontSize: 18,\n fontWeight: '800',\n },\n message: {\n color: R.colors.black,\n },\n})\n","import React, { FC } from 'react'\nimport { Text, View } from 'react-native'\n\nimport Button from '../button/Button'\nimport { restorePasswordSuccessStyles as s } from './styles'\nimport { IResultDialogProps } from './types'\n\nconst ResultDialog: FC<IResultDialogProps> = ({\n styles,\n texts,\n message,\n onPressButton,\n}) => (\n <View style={[s.rootContainer, styles?.rootContainer]}>\n <Text style={[s.title, styles?.title]}>{texts?.title || 'Email Sent!'}</Text>\n\n {!!texts?.message && (\n <Text style={[s.message, styles?.message]}>{texts.message}</Text>\n )}\n {!!message && <Text>{message}</Text>}\n\n <Button text={texts?.button || 'OK'} onPress={onPressButton!} />\n </View>\n)\n\nexport default ResultDialog\n","import React, { FC } from 'react'\nimport { Text, View } from 'react-native'\n\nimport Button from '../../button/Button'\nimport Input from '../../input/Input'\nimport s from '../styles'\nimport { ILoginFormProps } from './types'\n\nconst LoginForm: FC<ILoginFormProps> = ({\n viewProps,\n email,\n emailError,\n onEmailChanged,\n password,\n passwordError,\n onPasswordChanged,\n loginApiError,\n isShowPasswordButtonVisible,\n onPressForgotPassword,\n isLoginButtonDisabled,\n isLoading,\n onPressLoginButton,\n brandImages,\n}) => {\n const { styles, texts } = viewProps || {}\n\n return (\n <View style={[s.dialog, styles?.dialog?.container]}>\n <Text style={[s.dialogTitle, styles?.dialog?.title]}>\n {texts?.dialog?.title || 'Login'}\n </Text>\n\n {brandImages}\n\n {!!texts?.dialog?.message && (\n <Text style={[s.message, styles?.dialog?.message]}>{texts.dialog.message}</Text>\n )}\n\n <Input\n label={texts?.dialog?.emailLabel || 'Email'}\n error={emailError}\n keyboardType=\"email-address\"\n value={email}\n onChangeText={onEmailChanged}\n autoCapitalize=\"none\"\n styles={styles?.dialog?.input}\n />\n <Input\n label={texts?.dialog?.passwordLabel || 'Password'}\n error={passwordError}\n keyboardType=\"default\"\n value={password}\n onChangeText={onPasswordChanged}\n autoCapitalize=\"none\"\n secureTextEntry={true}\n isShowPasswordButtonVisible={isShowPasswordButtonVisible}\n styles={styles?.dialog?.input}\n />\n\n {!!loginApiError && (\n <Text style={[s.error, styles?.dialog?.apiError]}>{loginApiError}</Text>\n )}\n\n <Text\n onPress={onPressForgotPassword}\n style={[s.forgotPassword, styles?.dialog?.forgotPassword]}\n >\n {texts?.dialog?.forgotPassword || 'Forgot Password'}\n </Text>\n\n <Button\n styles={\n isLoginButtonDisabled\n ? {\n container: [s.loginButton],\n ...styles?.dialog?.loginButtonDisabled,\n }\n : {\n container: [s.loginButton],\n ...styles?.dialog?.loginButton,\n }\n }\n text={texts?.dialog?.loginButton || 'LOGIN'}\n onPress={onPressLoginButton}\n isLoading={isLoading}\n isDisabled={isLoginButtonDisabled}\n />\n </View>\n )\n}\n\nexport default LoginForm\n","import { StyleSheet } from 'react-native'\n\nimport R from '../../res'\nexport default StyleSheet.create({\n rootContainer: {\n paddingVertical: 16,\n },\n title: {\n fontWeight: '800',\n },\n button: {\n marginVertical: 16,\n },\n touchableContainer: {\n flex: 1,\n },\n dismissibleArea: {\n flex: 1,\n backgroundColor: R.colors.transparentBlack,\n justifyContent: 'center',\n alignItems: 'center',\n },\n dialog: {\n paddingVertical: 32,\n width: '80%',\n backgroundColor: R.colors.white,\n borderRadius: 2,\n paddingHorizontal: 16,\n alignItems: 'center',\n },\n dialogTitle: {\n color: R.colors.black,\n fontSize: 18,\n fontWeight: '800',\n },\n emailInput: {\n marginBottom: 16,\n },\n loginButton: {\n height: 45,\n width: '100%',\n marginTop: 16,\n },\n brand: {\n width: 200,\n height: 50,\n resizeMode: 'contain',\n marginBottom: 16,\n tintColor: R.colors.white,\n },\n message: {\n color: R.colors.black,\n marginBottom: 24,\n marginTop: -8,\n },\n error: {\n color: R.colors.danger,\n fontWeight: '600',\n },\n forgotPassword: {\n color: R.colors.black,\n },\n})\n","import InputPhone from '@sesamsolutions/phone-input'\nimport React, { FC, useCallback, useEffect, useRef, useState } from 'react'\nimport { Platform, View } from 'react-native'\n\nimport Input from '../input/Input'\nimport s from './/styles'\nimport { IOnChangePhoneNumberPayload, IPhoneInputProps } from './types'\n\nconst PhoneInput: FC<IPhoneInputProps> = ({\n phoneNumber,\n onChangePhoneNumber,\n onBlur,\n styles,\n error,\n texts,\n country = 'US',\n}) => {\n const [localValue, setLocalValue] = useState('')\n const isUserInitiatedRef = useRef(false)\n\n useEffect(() => {\n if (!isUserInitiatedRef.current) {\n setLocalValue(phoneNumber)\n }\n isUserInitiatedRef.current = false\n }, [phoneNumber])\n\n const handleOnChangeInputPhone = useCallback(\n (payload: IOnChangePhoneNumberPayload) => {\n isUserInitiatedRef.current = true\n setLocalValue(payload.input)\n onChangePhoneNumber(payload)\n },\n [onChangePhoneNumber]\n )\n\n return (\n <View style={[s.rootContainer, styles?.rootContainer]}>\n <Input\n onChangeText={(text) => {\n isUserInitiatedRef.current = true\n setLocalValue(text)\n }}\n onBlur={onBlur}\n label={texts?.label || 'Phone number'}\n keyboardType=\"phone-pad\"\n value={localValue}\n styles={{\n container: s.phoneInputContainer,\n ...styles?.input,\n color: error ? styles?.input?.errorColor : styles?.input?.baseColor,\n }}\n labelOffset={{ x1: -32 }}\n renderLeftAccessory={() => (\n <View style={(s.countryContainer, styles?.country?.container)}>\n <InputPhone\n initialCountry={country}\n onChange={handleOnChangeInputPhone}\n style={s.countryButton}\n textStyle={s.textInput}\n value={localValue}\n dismissKeyboard={false}\n />\n </View>\n )}\n error={error}\n />\n </View>\n )\n}\n\nexport default PhoneInput\n","import { Platform, StyleSheet } from 'react-native'\n\nimport R from '../../res'\n\nexport default StyleSheet.create({\n rootContainer: {\n flexDirection: 'row',\n width: '100%',\n },\n countryContainer: {\n marginBottom: 0,\n paddingBottom: 0,\n width: Platform.OS === 'ios' ? 32 : 16,\n },\n countryButton: {\n width: Platform.OS === 'ios' ? 32 : 32,\n overflow: 'hidden',\n marginBottom: -8,\n paddingBottom: 0,\n borderBottomWidth: 0,\n borderBottomColor: R.colors.transparent,\n zIndex: 4,\n },\n phoneInputContainer: {\n flex: 1,\n },\n textInput: {\n width: 0,\n borderBottomWidth: 0,\n },\n})\n","import React, { FC, useState } from 'react'\nimport { Image, Text, TextInput, TouchableOpacity, View } from 'react-native'\n\nimport R from '../../res'\nimport Button from '../button/Button'\nimport s from './styles'\nimport { IPromoCodeProps } from './types'\n\nconst PromoCode: FC<IPromoCodeProps> = ({\n onPressApply,\n promoCodeValidationMessage,\n isPromoCodeValid,\n styles,\n texts,\n isAccessCodeEnabled,\n closeButtonIcon,\n}) => {\n const [isActive, setIsActive] = useState(false)\n const [promoCode, setPromoCode] = useState('')\n\n const activate = () => setIsActive(true)\n const deactivate = (): string => {\n const code = promoCode\n setIsActive(false)\n setPromoCode('')\n return code\n }\n\n const handleOnPressPromoCode = () => {\n activate()\n }\n\n const handleOnPressApply = () => {\n onPressApply(promoCode)\n }\n\n const isCodeValid = () => {\n if (typeof isPromoCodeValid === 'boolean') {\n return isPromoCodeValid\n } else if (typeof isPromoCodeValid === 'number') {\n return isPromoCodeValid > 0\n }\n }\n\n const isApplyButtonDisabled = promoCode.length === 0\n const submitButton = texts?.apply\n ? texts.apply\n : isAccessCodeEnabled\n ? 'ENTER'\n : 'APPLY'\n\n const resultMessageValidStyle = [s.validMessage, styles?.validMessage]\n const resultMessageErrorStyle = [s.errorMessage, styles?.errorMessage]\n const resultMessageStyle = isCodeValid()\n ? resultMessageValidStyle\n : resultMessageErrorStyle\n const resultMessage = isCodeValid()\n ? texts?.validMessage || 'Valid promo code'\n : texts?.errorMessage || promoCodeValidationMessage\n\n return (\n <View style={[{}, styles?.rootContainer]}>\n {isActive || isAccessCodeEnabled ? (\n <View style={styles?.contentWrapper}>\n <View style={[s.content, styles?.content]}>\n <TextInput\n placeholder={texts?.inputPlaceHolder || 'Enter promo code'}\n placeholderTextColor={styles?.inputPlaceholderColor || R.colors.disabled}\n value={promoCode}\n style={[s.input, styles?.input]}\n onChangeText={(text) => setPromoCode(text)}\n autoCapitalize=\"none\"\n underlineColorAndroid={R.colors.transparent}\n />\n\n <TouchableOpacity\n style={[s.cancelButton, styles?.cancelButton]}\n onPress={deactivate}\n >\n <Image\n source={closeButtonIcon || R.icons.error}\n style={[s.cancelIcon, styles?.cancelIcon]}\n />\n </TouchableOpacity>\n <Button\n text={texts?.apply || submitButton}\n styles={\n isApplyButtonDisabled ? styles?.applyDisabledButton : styles?.applyButton\n }\n onPress={handleOnPressApply}\n isDisabled={isApplyButtonDisabled}\n />\n </View>\n {!!resultMessage && <Text style={resultMessageStyle}>{resultMessage}</Text>}\n </View>\n ) : (\n <Button\n text={texts?.mainButton || 'Got a promo code? Click here'}\n onPress={handleOnPressPromoCode}\n styles={{\n text: [s.mainButtonText, styles?.mainButton?.text],\n container: [s.mainButtonContainer, styles?.mainButton?.container],\n button: styles?.mainButton?.button,\n }}\n />\n )}\n </View>\n )\n}\n\nexport default PromoCode\n","import { StyleSheet } from 'react-native'\n\nimport R from '../../res'\n\nexport default StyleSheet.create({\n content: {\n flexDirection: 'row',\n width: '100%',\n alignItems: 'center',\n backgroundColor: R.colors.listBackground,\n },\n input: {\n paddingHorizontal: 8,\n minWidth: 100,\n flex: 0.8,\n borderColor: R.colors.black,\n color: R.colors.black,\n height: 45,\n fontSize: 16,\n },\n applyButton: {\n backgroundColor: R.colors.primary,\n paddingHorizontal: 8,\n flex: 0.4,\n },\n applyText: {\n fontWeight: '400',\n fontSize: 14,\n color: R.colors.white,\n },\n cancelButton: {\n padding: 4,\n flex: 0.2,\n marginLeft: 4,\n },\n cancelIcon: {\n width: 20,\n height: 20,\n tintColor: R.colors.white,\n },\n errorMessage: {\n color: R.colors.danger,\n },\n validMessage: {\n color: R.colors.validGreen,\n },\n mainButtonContainer: {},\n mainButtonText: {\n fontWeight: '400',\n fontSize: 14,\n textAlign: 'center',\n color: R.colors.white,\n },\n messageContainer: {\n padding: 8,\n backgroundColor: 'gainsboro',\n alignItems: 'center',\n },\n title: {\n marginVertical: 16,\n fontWeight: '600',\n },\n})\n","import React, { FC } from 'react'\nimport { Text, TouchableOpacity, View } from 'react-native'\n\nimport s from './styles'\nimport { IRadioButtonProps } from './types'\n\nconst RadioButton: FC<IRadioButtonProps> = ({\n styles,\n text = 'Radio button',\n value = true,\n onValueChange,\n}) => (\n <TouchableOpacity\n onPress={onValueChange}\n style={[s.rootContainer, styles?.rootContainer]}\n >\n <View style={[s.contentContainer, styles?.contentContainer]}>\n <View style={[s.radio, styles?.radio]}>\n {value && <View style={[s.indicator, styles?.indicator]} />}\n </View>\n <Text style={styles?.text}>{text}</Text>\n </View>\n </TouchableOpacity>\n)\n\nexport default RadioButton\n","import { StyleSheet } from 'react-native'\n\nimport R from '../../res'\n\nconst RADIO_SIZE = 20\nconst RADIO_RADIUS = RADIO_SIZE / 2\nconst INDICATOR_SIZE = RADIO_SIZE * 0.6\nconst INDICATOR_RADIUS = INDICATOR_SIZE / 2\n\nexport default StyleSheet.create({\n rootContainer: {\n marginVertical: 4,\n },\n contentContainer: {\n flexDirection: 'row',\n },\n radio: {\n height: RADIO_SIZE,\n width: RADIO_SIZE,\n borderRadius: RADIO_RADIUS,\n borderWidth: 1,\n marginRight: 8,\n justifyContent: 'center',\n alignItems: 'center',\n },\n indicator: {\n width: INDICATOR_SIZE,\n height: INDICATOR_SIZE,\n borderRadius: INDICATOR_RADIUS,\n backgroundColor: R.colors.black,\n },\n})\n","import {\n CardForm,\n initStripe,\n InitStripeParams,\n PaymentIntent,\n useConfirmPayment,\n} from '@stripe/stripe-react-native'\nimport React, { forwardRef, useCallback, useEffect, useImperativeHandle } from 'react'\n\nimport styles from './styles'\nimport { IStripePaymentProps, StripePaymentHandle } from './types'\n\nconst StripePayment = forwardRef<StripePaymentHandle, IStripePaymentProps>(\n (props, ref) => {\n const { confirmPayment, loading } = useConfirmPayment()\n\n const handleOnChangeConfirmPaymentLoading = useCallback(\n (isLoading: boolean) => {\n props.onChangeConfirmPaymentLoading?.(isLoading)\n },\n [props]\n )\n\n useEffect(() => {\n handleOnChangeConfirmPaymentLoading(loading)\n }, [handleOnChangeConfirmPaymentLoading, loading])\n\n useImperativeHandle(ref, () => ({\n async initStripe(params: InitStripeParams): Promise<any> {\n return await initStripe(params)\n },\n\n async confirmPayment(\n stripeClientSecret: string,\n params: PaymentIntent.ConfirmParams\n ): Promise<any> {\n return await confirmPayment(stripeClientSecret, params)\n },\n }))\n\n return (\n <CardForm\n onFormComplete={props.onChangePaymentInfo}\n style={[styles.cardForm, props.style]}\n cardStyle={props.cardStyle}\n />\n )\n }\n)\n\nexport default StripePayment\n","import { StyleSheet } from 'react-native'\n\nexport default StyleSheet.create({\n cardForm: {\n height: 300,\n },\n})\n","import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react'\nimport { Alert } from 'react-native'\n\nimport { IFetchAccessTokenResponse } from '../../api/types'\nimport { WaitingListCore, WaitingListCoreHandle } from '../../core'\nimport { SessionCoreHandleType } from '../../core/Session/SessionCoreTypes'\nimport { IAddToWaitingListCoreParams } from '../../core/WaitingListCore/WaitingListCoreTypes'\nimport { useDebounced } from '../../helpers/Debounced'\nimport { validateEmail, validateEmpty } from '../../helpers/Validators'\nimport { IWaitingListProps } from './types'\nimport WaitingListView from './WaitingListView'\n\nconst WaitingList = forwardRef<SessionCoreHandleType, IWaitingListProps>(\n (\n {\n styles,\n texts,\n onAddToWaitingListError,\n onAddToWaitingListSuccess,\n onLoadingChange,\n areAlertsEnabled,\n },\n ref\n ) => {\n //#region State\n const [isSuccess, setIsSuccess] = useState<boolean | undefined>(undefined)\n const [isLoading, setIsLoading] = useState<boolean>(false)\n const [firstName, setFirstName] = useState('')\n const [lastName, setLastName] = useState('')\n const [email, setEmail] = useState('')\n\n const firstNameError = useDebounced(firstName, validateEmpty)\n const lastNameError = useDebounced(lastName, validateEmpty)\n const emailError = useDebounced(email, validateEmail)\n //#endregion State\n\n const handleSetFirstName = (val: string) => setFirstName(val)\n const handleSetLastName = (val: string) => setLastName(val)\n const handleSetEmail = (val: string) => setEmail(val)\n\n //#region Ref\n const waitingListCoreRef = useRef<WaitingListCoreHandle>(null)\n //#endregion Ref\n\n const showAlert = (message: string) => {\n if (areAlertsEnabled) {\n Alert.alert('', message)\n }\n }\n\n //#region Imperative Handler\n useImperativeHandle(ref, () => ({\n async refreshAccessToken(refreshToken: string): Promise<IFetchAccessTokenResponse> {\n const { accessTokenError, accessTokenData } =\n await waitingListCoreRef.current!.refreshAccessToken(refreshToken)\n\n return {\n accessTokenData,\n accessTokenError,\n }\n },\n\n async reloadData() {},\n }))\n //#endregion Imperative Handler\n\n //#region Handlers\n const handleOnPressButton = async () => {\n if (!waitingListCoreRef.current) {\n showAlert('WaitingListCore is not initialized')\n return onAddToWaitingListError?.({\n message: 'WaitingListCore is not initialized',\n })\n }\n\n const values: IAddToWaitingListCoreParams = {\n firstName: firstName,\n lastName: lastName,\n email: email,\n }\n\n setIsLoading(true)\n\n const { addToWaitingListData, addToWaitingListError } =\n await waitingListCoreRef.current.addToWaitingList(values)\n\n setIsLoading(false)\n if (addToWaitingListError) {\n setIsSuccess(false)\n showAlert(addToWaitingListError.message)\n onAddToWaitingListError?.(addToWaitingListError)\n return\n }\n\n if (addToWaitingListData) {\n onAddToWaitingListSuccess?.()\n setIsSuccess(true)\n }\n }\n\n const onLoadingChangeCallback = useCallback(\n (loading: boolean) => {\n onLoadingChange?.(loading)\n },\n [onLoadingChange]\n )\n //#endregion Handlers\n\n useEffect(() => {\n onLoadingChangeCallback(isLoading)\n }, [isLoading, onLoadingChangeCallback])\n\n //#region RENDER\n return (\n <WaitingListCore ref={waitingListCoreRef}>\n <WaitingListView\n data={{\n firstName: firstName,\n lastName: lastName,\n email: email,\n firstNameError: firstNameError,\n lastNameError: lastNameError,\n emailError: emailError,\n onChangeEmail: handleSetEmail,\n onChangeFirstName: handleSetFirstName,\n onChangeLastName: handleSetLastName,\n }}\n onPressButton={handleOnPressButton}\n isSuccess={isSuccess}\n styles={styles}\n texts={texts}\n isLoading={isLoading}\n />\n </WaitingListCore>\n )\n //#endregion RENDER\n }\n)\n\nexport default WaitingList\n","import React, { FC } from 'react'\nimport { Text, View } from 'react-native'\n\nimport { Button, Input } from '..'\nimport s from './styles'\nimport { IWaitingListViewProps } from './types'\n\nconst WaitingListView: FC<IWaitingListViewProps> = ({\n styles,\n texts,\n onPressButton,\n data,\n isSuccess,\n isLoading,\n}) => {\n const {\n firstName,\n lastName,\n email,\n emailError,\n lastNameError,\n firstNameError,\n onChangeEmail,\n onChangeFirstName,\n onChangeLastName,\n } = data\n\n const getIsDataValid = () =>\n firstName.length > 0 &&\n lastName.length > 0 &&\n email.length > 0 &&\n !emailError &&\n !lastNameError &&\n !firstNameError\n\n const isDataValid = getIsDataValid()\n\n const buttonStyle = isDataValid\n ? styles?.button\n : styles?.buttonDisabled\n ? styles?.buttonDisabled\n : styles?.button\n\n return (\n <View style={styles?.rootContainer}>\n {isSuccess ? (\n <View style={styles?.success?.container}>\n <Text style={styles?.success?.title}>\n {texts?.successTitle || `You've been added to the waiting list!`}\n </Text>\n <Text style={styles?.success?.message}>\n {texts?.successMessage || `You'll be notified if tickets become available.`}\n </Text>\n </View>\n ) : (\n <>\n <Text style={[s.title, styles?.title]}>{texts?.title || 'Waiting list'}</Text>\n <Input\n label={texts?.firstName || 'First name'}\n value={firstName}\n onChangeText={onChangeFirstName}\n error={firstNameError}\n styles={styles?.input}\n />\n <Input\n label={texts?.lastName || 'Last name'}\n value={lastName}\n onChangeText={onChangeLastName}\n error={lastNameError}\n styles={styles?.input}\n />\n <Input\n label={texts?.email || 'Email'}\n keyboardType=\"email-address\"\n autoCapitalize=\"none\"\n value={email}\n onChangeText={onChangeEmail}\n error={emailError}\n styles={styles?.input}\n />\n <Button\n onPress={onPressButton}\n text={texts?.button || 'ADD TO WAITING LIST'}\n styles={buttonStyle}\n isDisabled={!isDataValid}\n isLoading={isLoading}\n />\n </>\n )}\n </View>\n )\n}\n\nexport default WaitingListView\n","import { StyleSheet } from 'react-native'\n\nexport default StyleSheet.create({\n title: {\n fontSize: 20,\n fontWeight: '800',\n marginBottom: 24,\n },\n})\n","import _every from 'lodash/every'\nimport _find from 'lodash/find'\nimport _forEach from 'lodash/forEach'\nimport _map from 'lodash/map'\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport { ActivityIndicator, Alert, Image, Linking, Text, View } from 'react-native'\nimport DeviceCountry, { TYPE_ANY } from 'react-native-device-country'\nimport { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view'\n\nimport Constants from '../../api/Constants'\nimport {\n ICheckoutBody,\n ICheckoutTicketHolder,\n IFetchAccessTokenResponse,\n IRegisterNewUserBody,\n} from '../../api/types'\nimport {\n Button,\n CartTimer,\n Checkbox,\n DatePicker,\n DropdownMaterial,\n Input,\n Loading,\n Login,\n PhoneInput,\n} from '../../components'\nimport { IDropdownItem } from '../../components/dropdown/types'\nimport { ILoginSuccessData } from '../../components/login/types'\nimport { IOnChangePhoneNumberPayload } from '../../components/phoneInput/types'\nimport { BillingCore, BillingCoreHandle, SessionHandle } from '../../core'\nimport { SessionHandleType } from '../../core/Session/SessionCoreTypes'\nimport { Config } from '../../helpers/Config'\nimport { getCountryDialCode } from '../../helpers/CountryCodes'\nimport { useDebounced } from '../../helpers/Debounced'\nimport { getData, LocalStorageKeys } from '../../helpers/LocalStorage'\nimport { emptyPhone } from '../../helpers/StringsHelper'\nimport {\n validateAge,\n validateDropDownEmpty,\n validateEmail,\n validateEmpty,\n validatePasswords,\n validatePhoneNumber,\n} from '../../helpers/Validators'\nimport R from '../../res'\nimport { IError, IUserProfile, IUserProfilePublic } from '../../types'\nimport s from './styles'\nimport {\n IBillingFormFieldsData,\n IBillingProps,\n ITicketHolderField,\n SkippingStatusType,\n} from './types'\n\n/*\n Fields to hide when ticket is free\n - Billing Street Address\n - City\n - State/County\n - Post Code/Zip\n - Country\n*/\n\nconst Billing = forwardRef<SessionHandleType, IBillingProps>(\n (\n {\n styles,\n texts,\n cartProps: {\n isAgeRequired,\n isNameRequired,\n isPhoneRequired,\n minimumAge,\n isBillingRequired,\n isTicketFree,\n isPhoneHidden,\n },\n loginBrandImages,\n skipBillingConfig,\n areAlertsEnabled = true,\n areLoadingIndicatorsEnabled = true,\n onLoadingChange,\n onLoginError,\n onLoginSuccess,\n onRegisterError,\n onRegisterSuccess,\n onCheckoutSuccess,\n onCheckoutError,\n onFetchUserProfileSuccess,\n onFetchUserProfileError,\n onFetchCartError,\n onFetchCartSuccess,\n onFetchCountriesError,\n onFetchCountriesSuccess,\n onFetchStatesError,\n onFetchStatesSuccess,\n onSkippingStatusChange,\n onLogoutSuccess,\n onLogoutError,\n onCartExpired,\n shouldCartTimerNotMinimizeOnTap,\n config = {\n isCheckoutAlwaysButtonEnabled: false,\n shouldHideTicketHolderSectionOnSingleTicket: false,\n },\n },\n ref\n ) => {\n //#region State\n const [isLoading, setIsLoading] = useState<boolean>(false)\n const [isSubmittingData, setIsSubmittingData] = useState<boolean>(false)\n const [loggedUserFirstName, setLoggedUserFirstName] = useState<string>('')\n const [loginMessage, setLoginMessage] = useState('')\n const [firstName, setFirstName] = useState('')\n const [lastName, setLastName] = useState('')\n const [email, setEmail] = useState('')\n const [emailConfirmation, setEmailConfirmation] = useState('')\n const [password, setPassword] = useState('')\n const [passwordConfirmation, setPasswordConfirmation] = useState('')\n const [isSubToTicketFairy, setIsSubToTicketFairy] = useState(false)\n const [isSubToBrand, setIsSubToBrand] = useState(false)\n const [phone, setPhone] = useState('')\n const [street, setStreet] = useState('')\n const [city, setCity] = useState('')\n const [countryId, setCountryId] = useState('')\n const [stateId, setStateId] = useState('')\n const [postalCode, setPostalCode] = useState('')\n const [dateOfBirth, setDateOfBirth] = useState<Date | undefined>(undefined)\n const [selectedCountry, setSelectedCountry] = useState<IDropdownItem | undefined>(\n undefined\n )\n const [selectedState, setSelectedState] = useState<IDropdownItem | undefined>(\n undefined\n )\n\n const [ticketHoldersData, setTicketHoldersData] = useState<ITicketHolderField[]>([])\n\n const [numberOfTicketHolders, setNumberOfTicketHolders] = useState<\n number | undefined\n >(0)\n\n const [states, setStates] = useState<IDropdownItem[]>([])\n const [countries, setCountries] = useState<IDropdownItem[]>([])\n\n const [isLoginDialogVisible, setIsLoginDialogVisible] = useState(false)\n const [skippingStatus, setSkippingStatus] = useState<SkippingStatusType>(undefined)\n const [isTtfCheckboxHidden, setIsTtfCheckboxHidden] = useState(false)\n //#endregion State\n\n //#region Labels\n const holderLabels = useMemo(() => {\n if (\n numberOfTicketHolders === 1 &&\n config.shouldHideTicketHolderSectionOnSingleTicket\n ) {\n return null\n }\n\n const optional = isNameRequired ? '' : texts?.form?.optional || '(optional)'\n return {\n firstName: texts?.form?.holderFirstName\n ? `${texts.form.holderFirstName} ${optional}`\n : `First Name ${optional}`,\n lastName: texts?.form?.holderLastName\n ? `${texts.form.holderLastName} ${optional}`\n : `Last Name ${optional}`,\n email: texts?.form?.holderEmail\n ? `${texts.form.holderEmail} ${texts?.form?.optional || '(optional)'}`\n : `Email ${optional}`,\n phone: texts?.form?.holderPhone\n ? `${texts.form.holderPhone} ${texts?.form?.optional || '(optional)'}`\n : `Phone ${optional}`,\n }\n }, [isNameRequired, texts, numberOfTicketHolders])\n\n const brandCheckBoxText =\n texts?.form?.isSubToBrand ||\n 'I would like to be updated on news, events and offers.'\n\n const phoneLabel = useMemo(() => {\n const optionalPhone = isPhoneRequired ? '' : texts?.form?.optional || ' (optional)'\n return texts?.form?.phone\n ? `${texts?.form?.phone} ${optionalPhone}`\n : `Phone ${optionalPhone}`\n }, [isPhoneRequired, texts])\n\n const addressLabel = useMemo(() => {\n const optionalAddress = Config.IS_BILLING_STREET_NAME_REQUIRED\n ? ''\n : texts?.form?.optional || ' (optional)'\n\n return texts?.form?.street\n ? `${texts.form.street} ${optionalAddress}`\n : `Street ${optionalAddress}`\n }, [texts])\n //#endregion Labels\n\n // Cart expiration timer\n const [secondsLeft, setSecondsLeft] = React.useState(420)\n\n //#region Errors state\n const firstNameError = useDebounced(firstName, validateEmpty)\n const lastNameError = useDebounced(lastName, validateEmpty)\n const emailError = useDebounced(email, () => validateEmail(email, emailConfirmation))\n const confirmEmailError = useDebounced(emailConfirmation, () =>\n validateEmail(emailConfirmation, email)\n )\n const passwordError = useDebounced(password, () =>\n validatePasswords(password, passwordConfirmation)\n )\n const confirmPasswordError = useDebounced(passwordConfirmation, () =>\n validatePasswords(passwordConfirmation, password)\n )\n const [phoneError, setPhoneError] = useState('')\n const streetError = useDebounced(street, validateEmpty)\n const cityError = useDebounced(city, validateEmpty)\n const postalCodeError = useDebounced(postalCode, validateEmpty)\n const [ttfPrivacyPolicyError, setTtfPrivacyPolicyError] = useState('')\n\n const [firstNameErrorState, setFirstNameErrorState] = useState('')\n const [lastNameErrorState, setLastNameErrorState] = useState('')\n const [streetErrorState, setStreetErrorState] = useState('')\n const [dateOfBirthError, setDateOfBirthError] = useState('')\n const [emailErrorState, setEmailErrorState] = useState('')\n const [emailConfirmationErrorState, setEmailConfirmationErrorState] = useState('')\n const [cityErrorState, setCityErrorState] = useState('')\n const [postalCodeErrorState, setPostalCodeErrorState] = useState('')\n const [countryErrorState, setCountryErrorState] = useState('')\n const [stateErrorState, setStateErrorState] = useState('')\n const [passwordErrorState, setPasswordErrorState] = useState('')\n const [confirmPasswordErrorState, setConfirmPasswordErrorState] = useState('')\n\n const requiredText = texts?.required || 'Required'\n\n //#endregion Errors state\n //#endregion\n\n const getSkippingStatus = (numOfTickets: number): SkippingStatusType => {\n // DO NOT SKIP IF\n // * User is not logged in.\n // * Event Collect_names is turned on and tickets are more than one.\n // * Event validate_age is turned on.\n // * phone_required is turned on and customer does not have a phone number.\n\n if (isBillingRequired || skippingStatus === 'fail') {\n return 'false'\n }\n\n if ((isNameRequired && numOfTickets > 1) || isAgeRequired) {\n return 'false'\n } else {\n return 'skipping'\n }\n }\n\n //#region Refs\n const storedToken = useRef('')\n const storedProfileData = useRef({} as IUserProfilePublic)\n const phoneErrorCounter = useRef(0)\n const billingCoreRef = useRef<BillingCoreHandle>(null)\n const sessionHandleRef = useRef<SessionHandleType>(null)\n const phoneCountryCode = useRef('')\n const errorsRef = useRef({\n firstName: '',\n lastName: '',\n email: '',\n confirmEmail: '',\n password: '',\n confirmPassword: '',\n dateOfBirth: '',\n phone: '',\n street: '',\n city: '',\n country: '',\n zipCode: '',\n state: '',\n privacy: '',\n })\n\n //#endregion\n\n //#region Imperative Handler\n useImperativeHandle(ref, () => ({\n async refreshAccessToken(refreshToken: string): Promise<IFetchAccessTokenResponse> {\n if (!sessionHandleRef.current) {\n return {\n accessTokenError: {\n message: 'Session Handle ref is not initialized',\n },\n }\n }\n\n const { accessTokenError, accessTokenData } =\n await sessionHandleRef.current!.refreshAccessToken(refreshToken)\n if (!accessTokenError && accessTokenData?.accessToken) {\n await fetchData()\n }\n return {\n accessTokenData,\n accessTokenError,\n }\n },\n\n async reloadData() {\n await fetchData()\n },\n }))\n //#endregion Imperative Handler\n\n //#region Handlers\n const handleSetPhoneError = useCallback(\n (error: string) => {\n if (isPhoneRequired && phone.length > 0) {\n setPhoneError(error)\n }\n },\n [isPhoneRequired, phone.length]\n )\n\n const handleOnChangePhoneNumber = (payload: IOnChangePhoneNumberPayload) => {\n setPhone(payload.input)\n\n if (payload.isValid) {\n errorsRef.current.phone = ''\n setPhoneError('')\n\n return\n }\n\n if (!payload.isValid && phoneErrorCounter.current > 0) {\n errorsRef.current.phone =\n texts?.form?.phoneInput?.customError || 'Invalid phone number'\n\n return handleSetPhoneError(\n texts?.form?.phoneInput?.customError || 'Invalid phone number'\n )\n }\n\n phoneErrorCounter.current = phoneErrorCounter.current + 1\n }\n\n const handleOnLoadingChange = useCallback(\n (loading: boolean) => {\n if (onLoadingChange) {\n onLoadingChange(loading)\n }\n },\n [onLoadingChange]\n )\n\n const handleOnSkippingStatusChange = useCallback(\n (status: SkippingStatusType) => {\n onSkippingStatusChange?.(status)\n },\n [onSkippingStatusChange]\n )\n\n const showAlert = (text: string) => {\n if (areAlertsEnabled) {\n Alert.alert('', text)\n }\n }\n\n const showLoginDialog = () => setIsLoginDialogVisible(true)\n const hideLoginDialog = () => setIsLoginDialogVisible(false)\n\n const handleIsSubToBrandToggle = () => {\n setIsSubToBrand(!isSubToBrand)\n }\n\n const handleIsSubToTicketFairyToggle = () => {\n const newValue = !isSubToTicketFairy\n\n if (newValue) {\n errorsRef.current.privacy = ''\n setTtfPrivacyPolicyError('')\n } else {\n errorsRef.current.privacy = requiredText\n setTtfPrivacyPolicyError(requiredText)\n }\n\n setIsSubToTicketFairy(newValue)\n }\n\n const handleOpenPrivacyLink = async () => {\n const canOpenLink = await Linking.canOpenURL(Constants.PRIVACY_POLICY_LINK)\n if (canOpenLink) {\n await Linking.openURL(Constants.PRIVACY_POLICY_LINK)\n }\n }\n\n const handleSetFormDataFromUserProfile = (\n userProfile: IUserProfilePublic,\n accessToken?: string\n ) => {\n storedProfileData.current = userProfile\n setFirstName(userProfile.firstName)\n setLastName(userProfile.lastName)\n setEmail(userProfile.email)\n setEmailConfirmation(userProfile.email)\n setPhone(userProfile.phone)\n setStreet(userProfile.streetAddress)\n setCity(userProfile.city)\n setPostalCode(userProfile.zipCode)\n setCountryId(userProfile.countryId)\n setStateId(userProfile.stateId)\n setLoggedUserFirstName(userProfile.firstName)\n\n let dob: Date | undefined\n\n if (userProfile.dateOfBirth) {\n const dobSplitted = userProfile.dateOfBirth.split('-')\n dob = new Date(\n parseInt(dobSplitted[0]!, 10),\n parseInt(dobSplitted[1]!, 10) - 1,\n parseInt(dobSplitted[2]!, 10)\n )\n handleOnSelectDate(dob)\n }\n\n const thData = [...ticketHoldersData]\n thData.forEach((th, index) => {\n th.firstName = index === 0 ? userProfile.firstName : ''\n th.lastName = index === 0 ? userProfile.lastName : ''\n th.email = index === 0 ? userProfile.email : ''\n th.phone = index === 0 ? userProfile.phone : ''\n })\n setTicketHoldersData(thData)\n\n if (accessToken) {\n storedToken.current = accessToken\n }\n\n showErrorMessages({\n firstName: userProfile.firstName,\n lastName: userProfile.lastName,\n email: userProfile.email,\n confirmEmail: userProfile.email,\n street: userProfile.streetAddress,\n city: userProfile.city,\n selectedCountry: userProfile.countryId\n ? {\n label: '',\n value: userProfile.countryId,\n }\n : undefined,\n selectedState: userProfile.stateId\n ? {\n label: '',\n value: userProfile.stateId,\n }\n : undefined,\n postalCode: userProfile.zipCode,\n dateOfBirth: dob,\n phoneNumber: userProfile.phone,\n isRegistering: !loggedUserFirstName && !storedToken.current,\n ticketHolderData: ticketHoldersData,\n })\n }\n\n const clearFormErrors = () => {\n setFirstNameErrorState('')\n setLastNameErrorState('')\n setEmailErrorState('')\n setEmailConfirmationErrorState('')\n setDateOfBirthError('')\n setPhoneError('')\n setStreetErrorState('')\n setCityErrorState('')\n setCountryErrorState('')\n setPostalCodeErrorState('')\n setStateErrorState('')\n setTtfPrivacyPolicyError('')\n errorsRef.current = {\n firstName: '',\n lastName: '',\n email: '',\n confirmEmail: '',\n password: '',\n confirmPassword: '',\n dateOfBirth: '',\n phone: '',\n street: '',\n city: '',\n country: '',\n zipCode: '',\n state: '',\n privacy: '',\n }\n }\n\n const handleOnLoginSuccess = async ({\n userProfile,\n accessTokenData,\n }: ILoginSuccessData) => {\n clearFormErrors()\n\n let countryCode = 'US'\n const accessToken = await getData(LocalStorageKeys.ACCESS_TOKEN)\n const usrProfile = { ...userProfile }\n\n onLoginSuccess?.({\n userProfile,\n accessTokenData,\n })\n\n try {\n const deviceCountry = await DeviceCountry.getCountryCode(TYPE_ANY)\n countryCode = deviceCountry.code.toUpperCase()\n } catch (err) {\n countryCode = 'US'\n }\n\n if (!userProfile.phone) {\n usrProfile.phone = ''\n } else {\n if (!usrProfile.phone?.includes('+')) {\n usrProfile.phone = `${getCountryDialCode(countryCode)}${usrProfile.phone}`\n }\n }\n\n if (!isBillingRequired && skippingStatus === 'fail') {\n setSkippingStatus('skipping')\n\n const phoneValidError = validatePhoneNumber({\n phoneNumber: userProfile.phone,\n customError: texts?.form?.phoneInput?.customError,\n })\n\n if (phoneValidError && isPhoneRequired) {\n setIsLoading(false)\n handleSetPhoneError(\n texts?.invalidPhoneNumberError || 'Please enter a valid phone number'\n )\n }\n\n await performCheckout(\n getCheckoutBodyWhenSkipping({\n userProfile: usrProfile,\n ticketsQuantity: numberOfTicketHolders || 1,\n })\n )\n }\n handleSetFormDataFromUserProfile(usrProfile, accessToken)\n }\n\n const handleOnLoginError = (error: IError) => {\n onLoginError?.(error)\n }\n\n const handleOnLogoutSuccess = async () => {\n setFirstName('')\n setLastName('')\n setEmail('')\n setEmailConfirmation('')\n setPhone('')\n setStreet('')\n setCity('')\n setPostalCode('')\n setPassword('')\n setPasswordConfirmation('')\n setCountryId('')\n setStateId('')\n handleOnSelectDate(undefined)\n\n setSelectedCountry({\n value: '-1',\n label: texts?.form?.country || 'Country',\n code: '__',\n })\n setStates([\n {\n value: '-1',\n label: texts?.form?.state || 'State/County',\n },\n ])\n setIsSubToTicketFairy(false)\n setIsSubToBrand(false)\n storedToken.current = ''\n setLoggedUserFirstName('')\n\n const thData = [...ticketHoldersData]\n thData.forEach((th) => {\n th.firstName = ''\n th.lastName = ''\n th.email = ''\n th.phone = ''\n th.firstNameError = ''\n th.lastNameError = ''\n })\n setTicketHoldersData(thData)\n onLogoutSuccess?.()\n }\n\n //#region Handlers input changed\n const handleOnSelectDate = (newDate: Date | undefined) => {\n setDateOfBirth(newDate)\n\n if (dateOfBirthError.length > 0 && newDate) {\n setDateOfBirthError('')\n }\n\n if (minimumAge) {\n const ageError = validateAge(newDate, minimumAge)\n setDateOfBirthError(ageError)\n } else {\n if (!newDate) {\n setDateOfBirthError(requiredText)\n }\n }\n }\n\n const handleOnStreetChanged = (text: string) => {\n if (streetErrorState.length > 0 && text.length > 0) {\n setStreetErrorState('')\n }\n setStreet(text)\n }\n\n const handleOnCityChanged = (text: string) => {\n if (cityErrorState.length > 0 && text.length > 0) {\n setCityErrorState('')\n }\n setCity(text)\n }\n\n const handleOnFirstNameChanged = (text: string) => {\n if (firstNameErrorState.length > 0 && text.length > 0) {\n setFirstNameErrorState('')\n }\n setFirstName(text)\n }\n\n const handleOnLastNameChanged = (text: string) => {\n if (lastNameErrorState.length > 0 && text.length > 0) {\n setLastNameErrorState('')\n }\n setLastName(text)\n }\n\n const handleOnEmailChanged = (text: string) => {\n if (emailErrorState.length > 0 && text.length > 0) {\n setEmailErrorState('')\n }\n setEmail(text)\n }\n\n const handleOnEmailConfirmationChanged = (text: string) => {\n if (emailConfirmationErrorState.length > 0 && text.length > 0) {\n setEmailConfirmationErrorState('')\n }\n setEmailConfirmation(text)\n }\n\n const handleOnPostalCodeChanged = (text: string) => {\n if (postalCodeErrorState.length > 0 && text.length > 0) {\n setPostalCodeErrorState('')\n }\n setPostalCode(text)\n }\n\n const handleOnStateChanged = (itm: IDropdownItem) => {\n if (stateErrorState.length > 0 && itm.value !== '-1') {\n setStateErrorState('')\n } else if (itm.value === '-1') {\n setStateErrorState(requiredText)\n }\n setSelectedState(itm)\n }\n\n const handleOnCountryChanged = (itm: IDropdownItem) => {\n if (countryErrorState.length > 0 && itm.value !== '-1') {\n setCountryErrorState('')\n } else if (itm.value === '-1') {\n setCountryErrorState(requiredText)\n }\n setSelectedCountry(itm)\n }\n\n const handleOnPasswordChanged = (text: string) => {\n if (passwordErrorState.length > 0 && text.length > 0) {\n setPasswordErrorState('')\n }\n setPassword(text)\n }\n\n const handleOnConfirmPasswordChanged = (text: string) => {\n if (confirmPasswordErrorState.length > 0 && text.length > 0) {\n setConfirmPasswordErrorState('')\n }\n setPasswordConfirmation(text)\n }\n //#endregion Handlers input changed\n\n //#endregion\n\n //#region Form validation\n const checkIsStoredPhoneNumberFormat = (storedPhoneNumber?: string) => {\n if (!storedPhoneNumber) {\n handleSetPhoneError(\n texts?.invalidPhoneNumberError || 'Please enter a valid phone number'\n )\n return false\n }\n\n if (!storedPhoneNumber.includes('+')) {\n handleSetPhoneError(\n texts?.invalidPhoneNumberError || 'Please enter a valid phone number'\n )\n return false\n }\n return true\n }\n\n const showErrorMessages = (data: IBillingFormFieldsData) => {\n if (secondsLeft === 0) {\n return false\n }\n\n const validateFirstName = validateEmpty(data.firstName)\n const validateLastName = validateEmpty(data.lastName)\n\n const validateEmails = validateEmail(data.email, data.confirmEmail)\n const validateEmailsConfirmation = validateEmail(data.confirmEmail, data.email)\n\n if (isTicketFree) {\n setFirstNameErrorState(validateFirstName)\n setLastNameErrorState(validateLastName)\n errorsRef.current.firstName = validateFirstName\n errorsRef.current.lastName = validateLastName\n\n setEmailErrorState(validateEmails)\n setEmailConfirmationErrorState(validateEmailsConfirmation)\n errorsRef.current.email = validateEmails\n errorsRef.current.confirmEmail = validateEmailsConfirmation\n\n if (data.isRegistering) {\n const validatePassword = validatePasswords(data.password, data.confirmPassword)\n const validatePasswordConfirmation = validatePasswords(\n data.confirmPassword,\n data.password\n )\n\n setPasswordErrorState(validatePassword)\n setConfirmPasswordErrorState(validatePasswordConfirmation)\n\n errorsRef.current.password = validatePassword\n errorsRef.current.confirmPassword = validatePasswordConfirmation\n }\n\n if (isAgeRequired) {\n if (minimumAge) {\n const birthdayValidation = validateAge(data.dateOfBirth, minimumAge)\n setDateOfBirthError(birthdayValidation)\n errorsRef.current.dateOfBirth = birthdayValidation\n } else {\n setDateOfBirthError(data.dateOfBirth ? '' : requiredText)\n errorsRef.current.dateOfBirth = data.dateOfBirth ? '' : requiredText\n }\n }\n\n if (isPhoneRequired && !isPhoneHidden) {\n const validatePhone = validatePhoneNumber({\n phoneNumber: data.phoneNumber,\n customError: texts?.form?.phoneInput?.customError,\n countryCode: phoneCountryCode.current,\n })\n setPhoneError(validatePhone)\n errorsRef.current.phone = validatePhone\n }\n\n errorsRef.current.privacy = isSubToTicketFairy ? '' : requiredText\n\n if (isNameRequired) {\n const ticketHoldersDataCopy = [...data.ticketHolderData]\n _map(data.ticketHolderData, (th, index) => {\n if (isNameRequired) {\n ticketHoldersDataCopy[index].firstNameError = validateEmpty(th.firstName)\n ticketHoldersDataCopy[index].lastNameError = validateEmpty(th.lastName)\n }\n })\n\n setTicketHoldersData(ticketHoldersDataCopy)\n }\n\n return\n } // end of Ticket Free\n\n const validateStreet = validateEmpty(data.street)\n const validateCity = validateEmpty(data.city)\n const validatePostalCode = validateEmpty(data.postalCode)\n\n setStreetErrorState(validateStreet)\n setCityErrorState(validateCity)\n setPostalCodeErrorState(validatePostalCode)\n setFirstNameErrorState(validateFirstName)\n setLastNameErrorState(validateLastName)\n setEmailErrorState(validateEmails)\n setEmailConfirmationErrorState(validateEmailsConfirmation)\n\n errorsRef.current.street = validateStreet\n errorsRef.current.city = validateCity\n errorsRef.current.zipCode = validatePostalCode\n errorsRef.current.firstName = validateFirstName\n errorsRef.current.lastName = validateLastName\n errorsRef.current.email = validateEmails\n errorsRef.current.confirmEmail = validateEmailsConfirmation\n\n if (data.isRegistering) {\n const validatePassword = validatePasswords(data.password, data.confirmPassword)\n const validatePasswordConfirmation = validatePasswords(\n data.confirmPassword,\n data.password\n )\n\n setPasswordErrorState(validatePassword)\n setConfirmPasswordErrorState(validatePasswordConfirmation)\n\n errorsRef.current.password = validatePassword\n errorsRef.current.confirmPassword = validatePasswordConfirmation\n }\n\n const countryValidation = validateDropDownEmpty(data.selectedCountry?.value)\n\n setCountryErrorState(countryValidation)\n errorsRef.current.country = countryValidation\n\n if (isAgeRequired) {\n if (minimumAge) {\n const birthdayValidation = validateAge(data.dateOfBirth, minimumAge)\n setDateOfBirthError(birthdayValidation)\n errorsRef.current.dateOfBirth = birthdayValidation\n } else {\n setDateOfBirthError(data.dateOfBirth ? '' : requiredText)\n errorsRef.current.dateOfBirth = data.dateOfBirth ? '' : requiredText\n }\n }\n\n const validateState = validateDropDownEmpty(data.selectedState?.value)\n\n setStateErrorState(validateState)\n errorsRef.current.state = validateState\n\n if (isPhoneRequired && !isPhoneHidden) {\n const validatePhone = validatePhoneNumber({\n phoneNumber: data.phoneNumber,\n customError: texts?.form?.phoneInput?.customError,\n countryCode: phoneCountryCode.current,\n })\n\n setPhoneError(validatePhone)\n errorsRef.current.phone = validatePhone\n }\n\n //setTtfPrivacyPolicyError(isSubToTicketFairy ? '' : requiredText)\n errorsRef.current.privacy = isSubToTicketFairy ? '' : requiredText\n\n if (isNameRequired) {\n const ticketHoldersDataCopy = [...data.ticketHolderData]\n _map(data.ticketHolderData, (th, index) => {\n if (isNameRequired) {\n ticketHoldersDataCopy[index].firstNameError = validateEmpty(th.firstName)\n ticketHoldersDataCopy[index].lastNameError = validateEmpty(th.lastName)\n }\n })\n\n setTicketHoldersData(ticketHoldersDataCopy)\n }\n }\n\n const checkBasicDataValid = (): boolean => {\n if (secondsLeft === 0) {\n return false\n }\n\n if (isTicketFree) {\n if (\n errorsRef.current.firstName ||\n errorsRef.current.lastName ||\n errorsRef.current.email ||\n errorsRef.current.confirmEmail\n ) {\n return false\n }\n } else {\n if (\n errorsRef.current.firstName ||\n errorsRef.current.lastName ||\n errorsRef.current.email ||\n errorsRef.current.confirmEmail ||\n errorsRef.current.city ||\n errorsRef.current.zipCode ||\n errorsRef.current.state ||\n errorsRef.current.country ||\n errorsRef.current.street\n ) {\n return false\n }\n }\n\n if (isPhoneRequired && !isPhoneHidden && errorsRef.current.phone) {\n if (isLoading) {\n setIsLoading(false)\n }\n\n return false\n }\n\n return true\n }\n\n const fillAllRequiredFieldsAlert =\n texts?.form?.fillAllRequiredFieldsAlert ||\n 'You must fill all Ticket Holder required fields'\n\n const checkExtraDataValid = (): string => {\n if (!isTtfCheckboxHidden && !isSubToTicketFairy) {\n setTtfPrivacyPolicyError(\n texts?.form?.ttfPrivacyPolicyRequiredError || requiredText\n )\n return 'Please review the errors'\n }\n\n if (isAgeRequired) {\n if (!dateOfBirth) {\n setDateOfBirthError(requiredText)\n return 'Please enter your date of birth'\n }\n\n if (minimumAge) {\n const ageValidationMessage = validateAge(dateOfBirth, minimumAge)\n if (ageValidationMessage) {\n setDateOfBirthError(ageValidationMessage)\n return ageValidationMessage\n }\n }\n }\n\n if (!isNameRequired) {\n return ''\n }\n\n if (\n ticketHoldersData.length === 1 &&\n config.shouldHideTicketHolderSectionOnSingleTicket\n ) {\n return ''\n }\n\n return _every(\n _map(\n ticketHoldersData,\n (th) => validateEmpty(th.firstName) || validateEmpty(th.lastName)\n ),\n (itm) => itm === ''\n )\n ? ''\n : fillAllRequiredFieldsAlert\n }\n //#endregion\n\n //#region Submit form\n const handleOnRegisterFail = (rawError: any) => {\n onRegisterError?.(rawError)\n }\n\n const performCheckout = async (checkoutBodyWhenSkipping?: ICheckoutBody) => {\n if (!billingCoreRef.current) {\n return onCheckoutError?.({ message: 'BillingCore is not ready' })\n }\n\n const checkoutBody = checkoutBodyWhenSkipping || getCheckoutBody()\n\n setIsSubmittingData(true)\n const { error: checkoutError, data: checkoutData } =\n await billingCoreRef.current.checkoutOrder(checkoutBody)\n setIsLoading(false)\n setIsSubmittingData(false)\n\n if (checkoutError) {\n onCheckoutError?.(checkoutError)\n setSkippingStatus('false')\n return showAlert(checkoutError.message)\n }\n\n if (!checkoutData) {\n onCheckoutError?.({ message: 'Checkout returned not data' })\n setSkippingStatus('false')\n return showAlert('Checkout returned not data')\n }\n\n setSkippingStatus('success')\n billingCoreRef.current.stopCartTimer()\n onCheckoutSuccess(checkoutData)\n }\n\n const getRegisterFormData = (data: IRegisterNewUserBody): FormData => {\n const bodyFormData = new FormData()\n _forEach(data.attributes, (item: any, key: string) => {\n bodyFormData.append(key, item)\n })\n return bodyFormData\n }\n\n const performNewUserRegister = async () => {\n if (!billingCoreRef.current) {\n showAlert('BillingCore is not ready')\n return onRegisterError?.({ message: 'BillingCore is not initialized' })\n }\n\n setIsSubmittingData(true)\n\n const registerUserBody = getRegisterNewUserBody()\n const registerForm = getRegisterFormData(registerUserBody)\n\n const { registerNewUserResponseData, registerNewUserResponseError } =\n await billingCoreRef.current.registerNewUser(registerForm)\n\n if (registerNewUserResponseError) {\n setIsSubmittingData(false)\n if (registerNewUserResponseError.isAlreadyRegistered) {\n setLoginMessage(registerNewUserResponseError.message!)\n showLoginDialog()\n return handleOnRegisterFail(registerNewUserResponseError.raw)\n }\n handleOnRegisterFail(registerNewUserResponseError.raw)\n return showAlert(registerNewUserResponseError.message!)\n }\n\n if (!registerNewUserResponseData) {\n setIsSubmittingData(false)\n handleOnRegisterFail('Register user returned no data')\n return showAlert('Register user returned no data')\n }\n\n storedToken.current = registerNewUserResponseData.accessTokenData.accessToken\n\n onRegisterSuccess?.(registerNewUserResponseData)\n\n await performCheckout()\n }\n\n const getRegisterNewUserBody = (): IRegisterNewUserBody => {\n const phoneNumber = isPhoneRequired ? phone : emptyPhone(phone)\n\n const body: IRegisterNewUserBody = isTicketFree\n ? {\n attributes: {\n email: email,\n first_name: firstName,\n last_name: lastName,\n password: password,\n phone: phoneNumber,\n password_confirmation: passwordConfirmation,\n client_id: Config.CLIENT_ID!,\n client_secret: Config.CLIENT_SECRET!,\n check_cart_expiration: true,\n },\n }\n : {\n attributes: {\n city: city,\n country: parseInt(selectedCountry!.value as string, 10),\n email: email,\n first_name: firstName,\n last_name: lastName,\n password: password,\n phone: phoneNumber,\n state: parseInt(selectedState!.value as string, 10),\n street_address: street,\n zip: postalCode,\n password_confirmation: passwordConfirmation,\n client_id: Config.CLIENT_ID!,\n client_secret: Config.CLIENT_SECRET!,\n check_cart_expiration: true,\n },\n }\n\n if (body.attributes.phone === undefined) {\n delete body.attributes.phone\n }\n\n if (isAgeRequired && dateOfBirth) {\n body.attributes.dob_day = dateOfBirth.getDate()\n body.attributes.dob_month = dateOfBirth.getMonth() + 1\n body.attributes.dob_year = dateOfBirth.getFullYear()\n }\n\n return body\n }\n\n const getCheckoutBody = (): ICheckoutBody => {\n const parsedTicketHolders: ICheckoutTicketHolder[] = []\n\n if (config.shouldHideTicketHolderSectionOnSingleTicket && numberOfTicketHolders) {\n parsedTicketHolders.push({\n first_name: firstName,\n last_name: lastName,\n phone: phone,\n email: email,\n })\n } else {\n for (let i = 0; i <= numberOfTicketHolders! - 1; i++) {\n const individualHolder = {\n first_name: ticketHoldersData[i]?.firstName || '',\n last_name: ticketHoldersData[i]?.lastName || '',\n phone: ticketHoldersData[i]?.phone || '',\n email: ticketHoldersData[i]?.email || '',\n }\n parsedTicketHolders.push(individualHolder)\n }\n }\n\n const formattedPhone = isPhoneRequired ? phone : emptyPhone(phone)\n\n const checkoutBody: ICheckoutBody = isTicketFree\n ? {\n attributes: {\n confirm_email: emailConfirmation,\n email: email,\n first_name: firstName,\n last_name: lastName,\n password: password,\n phone: formattedPhone,\n ticket_holders: parsedTicketHolders,\n ttf_opt_in: isSubToTicketFairy,\n brand_opt_in: isSubToBrand,\n },\n }\n : {\n attributes: {\n city: city,\n confirm_email: emailConfirmation,\n country: parseInt(selectedCountry!.value as string, 10),\n email: email,\n first_name: firstName,\n last_name: lastName,\n password: password,\n phone: formattedPhone,\n state: parseInt(selectedState!.value as string, 10),\n street_address: street,\n zip: postalCode,\n ticket_holders: parsedTicketHolders,\n ttf_opt_in: isSubToTicketFairy,\n brand_opt_in: isSubToBrand,\n },\n }\n\n if (isAgeRequired && dateOfBirth) {\n checkoutBody.attributes.dob_day = dateOfBirth.getDate()\n checkoutBody.attributes.dob_month = dateOfBirth.getMonth() + 1\n checkoutBody.attributes.dob_year = dateOfBirth.getFullYear()\n }\n\n if (checkoutBody.attributes.phone === undefined) {\n delete checkoutBody.attributes.phone\n }\n\n return checkoutBody\n }\n\n const getCheckoutBodyWhenSkipping = ({\n userProfile,\n ticketsQuantity,\n }: {\n userProfile: IUserProfilePublic\n ticketsQuantity: number\n }): ICheckoutBody => {\n const parsedTicketHolders: ICheckoutTicketHolder[] = []\n const hFirstName = userProfile.firstName\n const hLastName = userProfile.lastName\n const hPhone = userProfile.phone\n const hEmail = userProfile.email\n\n for (let i = 0; i <= ticketsQuantity - 1; i++) {\n const individualHolder = i\n ? {\n first_name: '',\n last_name: '',\n phone: '',\n email: '',\n }\n : {\n first_name: hFirstName,\n last_name: hLastName,\n phone: hPhone,\n email: hEmail,\n }\n\n parsedTicketHolders.push(individualHolder)\n }\n\n const checkoutBody: ICheckoutBody = isTicketFree\n ? {\n attributes: {\n confirm_email: userProfile.email,\n email: userProfile.email,\n first_name: userProfile.firstName,\n last_name: userProfile.lastName,\n phone: userProfile.phone,\n ticket_holders: parsedTicketHolders,\n ttf_opt_in: isSubToTicketFairy,\n brand_opt_in: isSubToBrand,\n password: password,\n },\n }\n : {\n attributes: {\n city: userProfile.city,\n confirm_email: userProfile.email,\n country: parseInt(userProfile.countryId, 10),\n email: userProfile.email,\n first_name: userProfile.firstName,\n last_name: userProfile.lastName,\n phone: userProfile.phone,\n state: parseInt(userProfile.stateId, 10),\n street_address: userProfile.streetAddress,\n zip: userProfile.zipCode,\n ticket_holders: parsedTicketHolders,\n ttf_opt_in: isSubToTicketFairy,\n brand_opt_in: isSubToBrand,\n password: password,\n },\n }\n\n if (checkoutBody.attributes.phone === undefined) {\n delete checkoutBody.attributes.phone\n }\n\n return checkoutBody\n }\n\n const onSubmit = async () => {\n showErrorMessages({\n firstName: firstName,\n lastName: lastName,\n email: email,\n confirmEmail: emailConfirmation,\n password: password,\n confirmPassword: passwordConfirmation,\n street: street,\n city: city,\n selectedCountry: selectedCountry,\n selectedState: selectedState,\n postalCode: postalCode,\n dateOfBirth: dateOfBirth,\n phoneNumber: phone,\n isRegistering: !loggedUserFirstName && !storedToken.current,\n ticketHolderData: ticketHoldersData,\n })\n\n const isBasicDataValid = checkBasicDataValid()\n const isExtraDataValidErrors = checkExtraDataValid()\n\n if (isExtraDataValidErrors || !isBasicDataValid) {\n return\n }\n\n if (loggedUserFirstName && storedToken.current) {\n await performCheckout()\n } else {\n await performNewUserRegister()\n }\n }\n //#endregion\n\n const setCountryByEvent = async () => {\n const eventCountry = await getData(LocalStorageKeys.EVENT_COUNTRY)\n\n if (!eventCountry) {\n return\n }\n\n if (countries.length > 1 && eventCountry) {\n const selectedCountryItem = _find(countries, (item) => {\n const stringValue = item.code as string\n return stringValue.toUpperCase() === eventCountry?.toUpperCase()\n })\n setSelectedCountry(selectedCountryItem)\n }\n }\n\n //#region Fetch Initial Data\n const fetchData = async () => {\n if (!billingCoreRef.current) {\n onFetchCartError?.({ message: 'BillingCoreRef not initialized' })\n return showAlert('BillingCoreRef not initialized')\n }\n\n setIsLoading(true)\n\n let usrPrfl: IUserProfile | undefined\n const usrTkn = await getData(LocalStorageKeys.ACCESS_TOKEN)\n let skippingStatusInner: SkippingStatusType\n\n const { countriesData, countriesError } =\n await billingCoreRef.current.getCountries()\n\n if (countriesError) {\n setSkippingStatus('fail')\n setIsLoading(false)\n onFetchCountriesError?.(countriesError)\n return showAlert(countriesError.message || 'Error fetching countries')\n }\n\n onFetchCountriesSuccess?.(countriesData!)\n\n const parsedCountries: IDropdownItem[] = _map(countriesData, (item) => {\n return { label: item.name, value: item.id, code: item.code }\n })\n\n if (usrTkn) {\n storedToken.current = usrTkn\n const { userProfileError, userProfileData } =\n await billingCoreRef.current.getUserProfile()\n\n if (userProfileError || !userProfileData) {\n setSkippingStatus('fail')\n setIsLoading(false)\n onFetchUserProfileError?.(userProfileError!)\n\n return showAlert(userProfileError?.message || 'Error fetching user profile')\n }\n\n onFetchUserProfileSuccess?.({\n firstName: userProfileData.firstName,\n lastName: userProfileData.lastName,\n })\n\n usrPrfl = userProfileData\n } else {\n skippingStatusInner = 'fail'\n parsedCountries.unshift({\n value: '-1',\n label: texts?.form?.country || 'Country',\n code: '__',\n })\n setSelectedCountry({\n value: '-1',\n label: texts?.form?.country || 'Country',\n code: '__',\n })\n }\n\n const { cartData, cartError } = await billingCoreRef.current.getCart()\n\n if (cartError || !cartData) {\n setSkippingStatus('fail')\n setIsLoading(false)\n onFetchCartError?.(cartError || { message: 'Error fetching cart' })\n return showAlert(cartError?.message || 'Error fetching cart')\n }\n\n onFetchCartSuccess?.()\n\n if (skippingStatusInner === 'fail') {\n setSkippingStatus('fail')\n } else {\n setSkippingStatus(getSkippingStatus(cartData.quantity))\n }\n\n setNumberOfTicketHolders(cartData.quantity)\n setIsSubToBrand(cartData.isMarketingOptedIn)\n setIsSubToTicketFairy(cartData.isTfOptIn || false)\n setIsTtfCheckboxHidden(cartData.isTfOptInHidden || false)\n\n if (cartData.expiresAt) {\n setSecondsLeft(cartData.expiresAt)\n }\n\n const tHolders: ITicketHolderField[] = []\n for (let i = 0; i < cartData.quantity; i++) {\n tHolders.push({\n firstName: i === 0 && usrPrfl ? usrPrfl.firstName : '',\n lastName: i === 0 && usrPrfl ? usrPrfl.lastName : '',\n email: i === 0 && usrPrfl ? usrPrfl.email : '',\n phone: i === 0 && usrPrfl ? usrPrfl.phone : '',\n firstNameError: '',\n lastNameError: '',\n })\n }\n\n let phoneCountry = 'US'\n let phoneCountryDialCode = '+1'\n const eventCountry = await getData(LocalStorageKeys.EVENT_COUNTRY)\n\n if (eventCountry) {\n phoneCountry = eventCountry.toUpperCase()\n phoneCountryDialCode = getCountryDialCode(phoneCountry)\n } else {\n try {\n const deviceCountry = await DeviceCountry.getCountryCode(TYPE_ANY)\n phoneCountry = deviceCountry.code.toUpperCase()\n phoneCountryDialCode = getCountryDialCode(phoneCountry)\n } catch (err) {\n phoneCountry = 'US'\n }\n }\n\n if (usrPrfl) {\n if (!isPhoneHidden && isPhoneRequired) {\n if (!checkIsStoredPhoneNumberFormat(usrPrfl.phone)) {\n setPhoneError(\n texts?.invalidPhoneNumberError || 'Please enter a valid phone number'\n )\n skippingStatusInner = 'fail'\n setSkippingStatus('fail')\n setIsLoading(false)\n } else {\n // We can perform Checkout process since phone is valid\n if (!isBillingRequired && usrTkn && cartData) {\n const checkoutBody: ICheckoutBody = getCheckoutBodyWhenSkipping({\n userProfile: usrPrfl,\n ticketsQuantity: cartData.quantity,\n })\n return await performCheckout(checkoutBody)\n } else {\n if (skippingStatusInner === 'skipping') {\n setSkippingStatus('fail')\n }\n }\n }\n } else {\n // We can perform Checkout process since phone is valid\n if (!isBillingRequired && usrTkn && cartData) {\n const checkoutBody: ICheckoutBody = getCheckoutBodyWhenSkipping({\n userProfile: usrPrfl,\n ticketsQuantity: cartData.quantity,\n })\n return await performCheckout(checkoutBody)\n } else {\n if (skippingStatusInner === 'skipping') {\n setSkippingStatus('fail')\n }\n }\n }\n\n const userPhone = usrPrfl.phone === null ? phoneCountryDialCode : usrPrfl.phone\n\n if (userPhone.length <= 5) {\n phoneCountryCode.current = userPhone\n }\n\n handleSetFormDataFromUserProfile({\n ...usrPrfl,\n phone: userPhone,\n })\n } else {\n // There is no user profile data\n phoneCountryCode.current = phoneCountryDialCode\n setPhone(phoneCountryDialCode)\n }\n\n setCountries(parsedCountries)\n setTicketHoldersData(tHolders)\n setIsSubmittingData(false)\n setIsLoading(false)\n }\n //#endregion Fetch Initial Data\n\n //#region Effects\n useEffect(() => {\n handleOnLoadingChange(isLoading)\n }, [isLoading, handleOnLoadingChange])\n\n useEffect(() => {\n handleOnSkippingStatusChange(skippingStatus)\n }, [handleOnSkippingStatusChange, skippingStatus])\n\n useEffect(() => {\n if (countryId) {\n if (countries.length > 1) {\n const selectedCountryItem = _find(countries, (item) => item.value === countryId)\n setSelectedCountry(selectedCountryItem)\n }\n } else {\n setCountryByEvent()\n }\n }, [countries, countryId])\n\n useEffect(() => {\n const getStates = async () => {\n if (!selectedCountry) {\n return\n }\n\n if (!billingCoreRef.current) {\n onFetchCartError?.({ message: 'BillingCoreRef not initialized' })\n return showAlert('BillingCoreRef not initialized')\n }\n\n const { statesData, statesError } = await billingCoreRef.current.getStates(\n selectedCountry.value.toString()\n )\n\n if (statesError) {\n onFetchStatesError?.(statesError!)\n return showAlert(statesError?.message || 'Error fetching states')\n }\n\n const parsedStates: IDropdownItem[] = _map(statesData, (item, index) => {\n return { label: item, value: index }\n })\n\n onFetchStatesSuccess?.()\n setStates(parsedStates)\n }\n\n if (selectedCountry && selectedCountry.value !== '-1') {\n getStates()\n }\n }, [selectedCountry])\n\n useEffect(() => {\n if (states.length > 1 && stateId) {\n const selectedStateItem = _find(states, (item) => item.value === stateId)\n if (!selectedStateItem) {\n return setSelectedState({\n value: '-1',\n label: texts?.form?.state || 'State/County',\n })\n }\n setSelectedState(selectedStateItem)\n } else {\n setSelectedState({\n value: '-1',\n label: texts?.form?.state || 'State/County',\n })\n }\n }, [stateId, states])\n\n useEffect(() => {\n setCountries([\n {\n value: '-1',\n label: texts?.form?.country || 'Country',\n },\n ])\n setStates([\n {\n value: '-1',\n label: texts?.form?.state || 'State/County',\n },\n ])\n fetchData()\n }, [])\n //#endregion\n\n const isDataValid = checkBasicDataValid()\n\n const isButtonDisabled = config.isCheckoutAlwaysButtonEnabled ? false : !isDataValid\n\n //#region RENDER\n const renderTicketHolders = () => {\n if (!numberOfTicketHolders || !holderLabels || ticketHoldersData.length === 0) {\n return null\n }\n\n const tHolders = []\n for (let i = 0; i < numberOfTicketHolders; i++) {\n const thItemTitle = texts?.form?.ticketHolderItem || 'Ticket Holder'\n tHolders.push(\n <View key={`ticketHolder.${i}`}>\n <Text style={styles?.ticketHolderItemHeader}>\n {thItemTitle} {i + 1}\n </Text>\n <Input\n label={holderLabels.firstName}\n value={ticketHoldersData[i].firstName}\n onChangeText={(text) => {\n const copyTicketHolders = [...ticketHoldersData]\n copyTicketHolders[i].firstName = text\n copyTicketHolders[i].firstNameError = validateEmpty(text)\n\n setTicketHoldersData(copyTicketHolders)\n }}\n error={ticketHoldersData[i].firstNameError}\n styles={styles?.inputStyles}\n />\n <Input\n label={holderLabels.lastName}\n value={ticketHoldersData[i].lastName}\n onChangeText={(text) => {\n const copyTicketHolders = [...ticketHoldersData]\n copyTicketHolders[i].lastName = text\n copyTicketHolders[i].lastNameError = validateEmpty(text)\n\n setTicketHoldersData(copyTicketHolders)\n }}\n error={ticketHoldersData[i].lastNameError}\n styles={styles?.inputStyles}\n />\n <Input\n label={holderLabels.email}\n value={ticketHoldersData[i].email}\n onChangeText={(text) => {\n const copyTicketHolders = [...ticketHoldersData]\n copyTicketHolders[i].email = text\n setTicketHoldersData(copyTicketHolders)\n }}\n keyboardType=\"email-address\"\n styles={styles?.inputStyles}\n autoCapitalize=\"none\"\n />\n <Input\n label={holderLabels.phone}\n value={ticketHoldersData[i].phone}\n onChangeText={(text) => {\n const copyTicketHolders = [...ticketHoldersData]\n copyTicketHolders[i].phone = text\n setTicketHoldersData(copyTicketHolders)\n }}\n keyboardType=\"phone-pad\"\n styles={styles?.inputStyles}\n />\n </View>\n )\n }\n\n return (\n <>\n <Text style={styles?.ticketHoldersTitle}>\n {texts?.form?.ticketHoldersTitle || 'Ticket Holders'}\n </Text>\n {tHolders}\n </>\n )\n }\n\n const renderCheckingOut = () => {\n const skippingStyles = skipBillingConfig?.styles\n return (\n <View style={[s.skippingRootContainer, skippingStyles?.rootContainer]}>\n <View style={[s.skippingDialogContainer, skippingStyles?.dialogContainer]}>\n <Image\n source={skipBillingConfig?.brandImage || R.images.brand}\n style={[s.skippingBrandImage, skippingStyles?.brandImage]}\n />\n <Text style={[s.skippingMessage, skippingStyles?.text]}>\n {texts?.skippingMessage || 'Checking out...'}\n </Text>\n {!!skipBillingConfig?.isActivityIndicatorVisible && (\n <ActivityIndicator\n color={skippingStyles?.activityIndicator?.color || R.colors.black}\n size={skippingStyles?.activityIndicator?.size || 'large'}\n />\n )}\n </View>\n </View>\n )\n }\n\n const renderContent = () => (\n <>\n <KeyboardAwareScrollView extraScrollHeight={32}>\n <View style={styles?.rootContainer}>\n <Login\n onLoginSuccessful={handleOnLoginSuccess}\n onLoginError={handleOnLoginError}\n onLogoutSuccess={handleOnLogoutSuccess}\n onLogoutError={onLogoutError}\n isLoginDialogVisible={isLoginDialogVisible}\n showLoginDialog={showLoginDialog}\n hideLoginDialog={hideLoginDialog}\n userFirstName={loggedUserFirstName}\n texts={{ ...texts?.loginTexts, message: loginMessage }}\n styles={styles?.loginStyles}\n brandImages={loginBrandImages}\n />\n <Text style={styles?.screenTitle}>\n {texts?.form?.getYourTicketsTitle || 'Get Your Tickets'}\n </Text>\n\n <Input\n label={texts?.form?.firstName || 'First name'}\n value={firstName}\n onChangeText={handleOnFirstNameChanged}\n error={firstNameError || firstNameErrorState}\n styles={styles?.inputStyles}\n />\n <Input\n label={texts?.form?.lastName || 'Last name'}\n value={lastName}\n onChangeText={handleOnLastNameChanged}\n error={lastNameError || lastNameErrorState}\n styles={styles?.inputStyles}\n />\n\n <Text style={styles?.texts}>\n {texts?.form?.emailsAdvice ||\n `IMPORTANT: Please double check that your email address is correct.\\nIt's where we send your confirmation and e-tickets to!`}\n </Text>\n\n <Input\n label={texts?.form?.email || 'Email'}\n value={email}\n onChangeText={handleOnEmailChanged}\n keyboardType=\"email-address\"\n error={emailError || emailErrorState}\n styles={styles?.inputStyles}\n autoCapitalize=\"none\"\n />\n <Input\n label={texts?.form?.confirmEmail || 'Confirm email'}\n value={emailConfirmation}\n onChangeText={handleOnEmailConfirmationChanged}\n keyboardType=\"email-address\"\n error={confirmEmailError || emailConfirmationErrorState}\n styles={styles?.inputStyles}\n autoCapitalize=\"none\"\n />\n {isAgeRequired && (\n <DatePicker\n text={texts?.form?.dateOfBirth || 'Date of Birth'}\n onSelectDate={handleOnSelectDate}\n selectedDate={dateOfBirth}\n styles={styles?.datePicker}\n error={dateOfBirthError}\n />\n )}\n {!loggedUserFirstName && (\n <>\n <Text style={styles?.passwordTitle}>\n {texts?.form?.choosePassword ||\n 'Choose a password for your new TICKETFAIRY account'}\n </Text>\n <Input\n label={texts?.form?.password || 'Password'}\n isSecure\n onChangeText={handleOnPasswordChanged}\n error={passwordError || passwordErrorState}\n styles={styles?.inputStyles}\n autoCapitalize=\"none\"\n secureTextEntry={true}\n textContentType=\"oneTimeCode\"\n />\n <Input\n label={texts?.form?.confirmPassword || 'Confirm password'}\n isSecure\n onChangeText={handleOnConfirmPasswordChanged}\n error={confirmPasswordError || confirmPasswordErrorState}\n styles={styles?.inputStyles}\n autoCapitalize=\"none\"\n secureTextEntry={true}\n textContentType=\"oneTimeCode\"\n />\n </>\n )}\n\n {!isPhoneHidden && (\n <PhoneInput\n phoneNumber={phone}\n onChangePhoneNumber={handleOnChangePhoneNumber}\n styles={styles?.phoneInputStyles}\n error={phoneError}\n texts={{\n label: phoneLabel,\n ...texts?.form?.phoneInput,\n }}\n />\n )}\n\n {!isTicketFree && (\n <>\n <Input\n label={addressLabel}\n value={street}\n onChangeText={handleOnStreetChanged}\n error={streetError || streetErrorState}\n styles={styles?.inputStyles}\n />\n <Input\n label={texts?.form?.city || 'City'}\n value={city}\n onChangeText={handleOnCityChanged}\n error={cityError || cityErrorState}\n styles={styles?.inputStyles}\n />\n <DropdownMaterial\n items={countries}\n onSelectItem={handleOnCountryChanged}\n selectedOption={selectedCountry}\n styles={styles?.dropdownMaterialStyles}\n materialInputProps={{\n label: texts?.form?.country || 'Country',\n error: countryErrorState,\n }}\n />\n <Input\n label={texts?.form?.zipCode || 'Postal Code / Zip Code'}\n value={postalCode}\n onChangeText={handleOnPostalCodeChanged}\n error={postalCodeError || postalCodeErrorState}\n styles={styles?.inputStyles}\n />\n <DropdownMaterial\n items={states}\n onSelectItem={handleOnStateChanged}\n selectedOption={selectedState}\n styles={styles?.dropdownMaterialStyles}\n materialInputProps={{\n label: texts?.form?.state || 'State',\n error: stateErrorState,\n }}\n />\n </>\n )}\n <Checkbox\n onPress={handleIsSubToBrandToggle}\n text={brandCheckBoxText}\n isActive={isSubToBrand}\n styles={styles?.checkboxStyles}\n />\n\n {!isTtfCheckboxHidden && (\n <Checkbox\n onPress={handleIsSubToTicketFairyToggle}\n isActive={isSubToTicketFairy}\n customTextComp={\n <Text\n style={[\n styles?.customCheckbox?.text,\n !!ttfPrivacyPolicyError && {\n color: styles?.customCheckbox?.errorColor,\n },\n ]}\n >\n {texts?.form?.isSubToTicketFairy ||\n `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 `}\n <Text\n style={styles?.privacyPolicyLinkStyle}\n onPress={handleOpenPrivacyLink}\n >\n {texts?.form?.privacyPolicy || 'Privacy Policy'}\n </Text>\n .\n </Text>\n }\n styles={{ error: s.ttfPolicyError, ...styles?.checkboxStyles }}\n error={ttfPrivacyPolicyError}\n />\n )}\n\n {renderTicketHolders()}\n\n <Button\n onPress={onSubmit}\n text={texts?.checkoutButton || 'CHECKOUT'}\n isDisabled={isButtonDisabled}\n isLoading={isSubmittingData}\n styles={\n isButtonDisabled\n ? {\n button: s.submitButtonDisabled,\n ...styles?.checkoutButtonDisabled,\n }\n : {\n container: [s.submitButton, styles?.checkoutButton?.container],\n text: styles?.checkoutButton?.text,\n button: styles?.checkoutButton?.button,\n }\n }\n />\n </View>\n {areLoadingIndicatorsEnabled && isLoading && <Loading />}\n </KeyboardAwareScrollView>\n <CartTimer\n secondsLeft={secondsLeft}\n styles={styles?.cartTimer}\n texts={texts?.cartTimer}\n shouldNotMinimize={shouldCartTimerNotMinimizeOnTap}\n />\n </>\n )\n\n return (\n <BillingCore\n ref={billingCoreRef}\n onSecondsLeftChange={setSecondsLeft}\n onCartExpired={onCartExpired}\n >\n <SessionHandle ref={sessionHandleRef}>\n {skippingStatus === 'skipping' && areLoadingIndicatorsEnabled\n ? renderCheckingOut()\n : renderContent()}\n </SessionHandle>\n </BillingCore>\n )\n //#endregion\n }\n)\n\nexport default Billing\n","import _find from 'lodash/find'\n\nexport const getCountryDialCode = (country: string) =>\n _find(countryCodes, (item) => item.code.toUpperCase() === country.toUpperCase())\n ?.dial_code || '+1'\n\nexport const countryCodes = [\n {\n name: {\n en: 'Afghanistan',\n ru: 'Афганистан',\n pl: 'Afganistan',\n ua: 'Афганістан',\n cz: 'Afghánistán',\n by: '',\n pt: 'Afeganistão',\n },\n dial_code: '+93',\n code: 'AF',\n flag: '🇦🇫',\n },\n {\n name: {\n en: 'Albania',\n ru: 'Албания',\n pl: 'Albania',\n ua: 'Албанія',\n cz: 'Albánie',\n by: '',\n pt: 'Albânia',\n },\n dial_code: '+355',\n code: 'AL',\n flag: '🇦🇱',\n },\n {\n name: {\n en: 'Algeria',\n ru: 'Алжир',\n pl: 'Algieria',\n ua: 'Алжир',\n cz: 'Alžírsko',\n by: '',\n pt: 'Argélia',\n },\n dial_code: '+213',\n code: 'DZ',\n flag: '🇩🇿',\n },\n {\n name: {\n en: 'American Samoa',\n ru: 'Американское Самоа',\n pl: 'Samoa Amerykańskie',\n ua: 'Американське Самоа',\n cz: 'Americká Samoa',\n by: '',\n pt: 'Samoa',\n },\n dial_code: '+1684',\n code: 'AS',\n flag: '🇦🇸',\n },\n {\n name: {\n en: 'Andorra',\n ru: 'Андорра',\n pl: 'Andora',\n ua: 'Андорра',\n cz: 'Andorra',\n by: '',\n pt: 'Andorra',\n },\n dial_code: '+376',\n code: 'AD',\n flag: '🇦🇩',\n },\n {\n name: {\n en: 'Angola',\n ru: 'Ангола',\n pl: 'Angola',\n ua: 'Ангола',\n cz: 'Angola',\n by: '',\n pt: 'Angola',\n },\n dial_code: '+244',\n code: 'AO',\n flag: '🇦🇴',\n },\n {\n name: {\n en: 'Anguilla',\n ru: 'Ангилья',\n pl: 'Anguilla',\n ua: 'Ангілья',\n cz: 'Anguilla',\n by: '',\n pt: 'Anguila',\n },\n dial_code: '+1264',\n code: 'AI',\n flag: '🇦🇮',\n },\n {\n name: {\n en: 'Antarctica',\n ru: 'Антарктида',\n pl: 'Antarktyda',\n ua: 'Антарктида',\n cz: 'Antarktida',\n by: '',\n pt: 'Antarctica',\n },\n dial_code: '+672',\n code: 'AQ',\n flag: '🇦🇶',\n },\n {\n name: {\n en: 'Antigua and Barbuda',\n ru: 'Антигуа и Барбуда',\n pl: 'Antigua i Barbuda',\n ua: 'Антигуа та Барбуда',\n cz: 'Antigua a Barbuda',\n by: '',\n pt: 'Antiga e Barbuda',\n },\n dial_code: '+1268',\n code: 'AG',\n flag: '🇦🇬',\n },\n {\n name: {\n en: 'Argentina',\n ru: 'Аргентина',\n pl: 'Argentyna',\n ua: 'Аргентина',\n cz: 'Argentina',\n by: '',\n pt: 'Argentina',\n },\n dial_code: '+54',\n code: 'AR',\n flag: '🇦🇷',\n },\n {\n name: {\n en: 'Armenia',\n ru: 'Армения',\n pl: 'Armenia',\n ua: 'Вірменія',\n cz: 'Arménie',\n by: '',\n pt: 'Arménia',\n },\n dial_code: '+374',\n code: 'AM',\n flag: '🇦🇲',\n },\n {\n name: {\n en: 'Aruba',\n ru: 'Аруба',\n pl: 'Aruba',\n ua: 'Аруба',\n cz: 'Aruba',\n by: '',\n pt: 'Aruba',\n },\n dial_code: '+297',\n code: 'AW',\n flag: '🇦🇼',\n },\n {\n name: {\n en: 'Australia',\n ru: 'Австралия',\n pl: 'Australia',\n ua: 'Австралія',\n cz: 'Austrálie',\n by: '',\n pt: 'Austrália',\n },\n dial_code: '+61',\n code: 'AU',\n flag: '🇦🇺',\n },\n {\n name: {\n en: 'Austria',\n ru: 'Австрия',\n pl: 'Austria',\n ua: 'Австрія',\n cz: 'Rakousko',\n by: '',\n pt: 'Áustria',\n },\n dial_code: '+43',\n code: 'AT',\n flag: '🇦🇹',\n },\n {\n name: {\n en: 'Azerbaijan',\n ru: 'Азербайджан',\n pl: 'Azerbejdżan',\n ua: 'Азербайджан',\n cz: 'Ázerbajdžán',\n by: '',\n pt: 'Azerbaijão',\n },\n dial_code: '+994',\n code: 'AZ',\n flag: '🇦🇿',\n },\n {\n name: {\n en: 'Bahamas',\n ru: 'Багамские Острова',\n pl: 'Bahamy',\n ua: 'Багамські острови',\n cz: 'Bahamy',\n by: '',\n pt: 'Baamas',\n },\n dial_code: '+1242',\n code: 'BS',\n flag: '🇧🇸',\n },\n {\n name: {\n en: 'Bahrain',\n ru: 'Бахрейн',\n pl: 'Bahrajn',\n ua: 'Бахрейн',\n cz: 'Bahrajn',\n by: '',\n pt: 'Barém',\n },\n dial_code: '+973',\n code: 'BH',\n flag: '🇧🇭',\n },\n {\n name: {\n en: 'Bangladesh',\n ru: 'Бангладеш',\n pl: 'Bangladesz',\n ua: 'Бангладеш',\n cz: 'Bangladéš',\n by: '',\n pt: 'Bangladeche',\n },\n dial_code: '+880',\n code: 'BD',\n flag: '🇧🇩',\n },\n {\n name: {\n en: 'Barbados',\n ru: 'Барбадос',\n pl: 'Barbados',\n ua: 'Барбадос',\n cz: 'Barbados',\n by: '',\n pt: 'Barbados',\n },\n dial_code: '+1246',\n code: 'BB',\n flag: '🇧🇧',\n },\n {\n name: {\n en: 'Belarus',\n ru: 'Белоруссия',\n pl: 'Białoruś',\n ua: 'Білорусь',\n cz: 'Bělorusko',\n by: '',\n pt: 'Bielorrússia',\n },\n dial_code: '+375',\n code: 'BY',\n flag: '🇧🇾',\n },\n {\n name: {\n en: 'Belgium',\n ru: 'Бельгия',\n pl: 'Belgia',\n ua: 'Бельгія',\n cz: 'Belgie',\n by: '',\n pt: 'Bélgica',\n },\n dial_code: '+32',\n code: 'BE',\n flag: '🇧🇪',\n },\n {\n name: {\n en: 'Belize',\n ru: 'Белиз',\n pl: 'Belize',\n ua: 'Беліз',\n cz: 'Belize',\n by: '',\n pt: 'Belize',\n },\n dial_code: '+501',\n code: 'BZ',\n flag: '🇧🇿',\n },\n {\n name: {\n en: 'Benin',\n ru: 'Бенин',\n pl: 'Benin',\n ua: 'Бенін',\n cz: 'Benin',\n by: '',\n pt: 'Benim',\n },\n dial_code: '+229',\n code: 'BJ',\n flag: '🇧🇯',\n },\n {\n name: {\n en: 'Bermuda',\n ru: 'Бермуды',\n pl: 'Bermudy',\n ua: 'Бермуди',\n cz: 'Bermudy',\n by: '',\n pt: 'Bermudas',\n },\n dial_code: '+1441',\n code: 'BM',\n flag: '🇧🇲',\n },\n {\n name: {\n en: 'Bhutan',\n ru: 'Бутан',\n pl: 'Bhutan',\n ua: 'Бутан',\n cz: 'Bhútán',\n by: '',\n pt: 'Butão',\n },\n dial_code: '+975',\n code: 'BT',\n flag: '🇧🇹',\n },\n {\n name: {\n en: 'Bolivia',\n ru: 'Боливия',\n pl: 'Boliwia',\n ua: 'Болівія',\n cz: 'Bolívie',\n by: '',\n pt: 'Bolívia',\n },\n dial_code: '+591',\n code: 'BO',\n flag: '🇧🇴',\n },\n {\n name: {\n en: 'Bosnia and Herzegovina',\n ru: 'Босния и Герцеговина',\n pl: 'Bośnia i Hercegowina',\n ua: 'Боснія і Герцеговина',\n cz: 'Bosna a Hercegovina',\n by: '',\n pt: 'Bósnia e Herzegovina',\n },\n dial_code: '+387',\n code: 'BA',\n flag: '🇧🇦',\n },\n {\n name: {\n en: 'Botswana',\n ru: 'Ботсвана',\n pl: 'Botswana',\n ua: 'Ботсвана',\n cz: 'Botswana',\n by: '',\n pt: 'Botsuana',\n },\n dial_code: '+267',\n code: 'BW',\n flag: '🇧🇼',\n },\n {\n name: {\n en: 'Brazil',\n ru: 'Бразилия',\n pl: 'Brazylia',\n ua: 'Бразилія',\n cz: 'Brazílie',\n by: '',\n pt: 'Brasil',\n },\n dial_code: '+55',\n code: 'BR',\n flag: '🇧🇷',\n },\n {\n name: {\n en: 'British Indian Ocean Territory',\n ru: 'Британская территория Индийского океана',\n pl: 'Brytyjskie Terytorium Oceanu Indyjskiego',\n ua: 'Британська територія в Індійському океані',\n cz: 'Britské území v Indickém oceánu',\n by: '',\n pt: 'Território Britânico do Oceano Índico',\n },\n dial_code: '+246',\n code: 'IO',\n flag: '🇮🇴',\n },\n {\n name: {\n en: 'Brunei Darussalam',\n ru: 'Бруней-Даруссалам',\n pl: 'Brunei Darussalam',\n ua: 'Бруней-Даруссалам',\n cz: 'Brunej Darussalam',\n by: '',\n pt: 'Brunei',\n },\n dial_code: '+673',\n code: 'BN',\n flag: '🇧🇳',\n },\n {\n name: {\n en: 'Bulgaria',\n ru: 'Болгария',\n pl: 'Bułgaria',\n ua: 'Болгарія',\n cz: 'Bulharsko',\n by: '',\n pt: 'Bulgária',\n },\n dial_code: '+359',\n code: 'BG',\n flag: '🇧🇬',\n },\n {\n name: {\n en: 'Burkina Faso',\n ru: 'Буркина-Фасо',\n pl: 'Burkina Faso',\n ua: 'Буркіна-Фасо',\n cz: 'Burkina Faso',\n by: '',\n pt: 'Burquina Faso',\n },\n dial_code: '+226',\n code: 'BF',\n flag: '🇧🇫',\n },\n {\n name: {\n en: 'Burundi',\n ru: 'Бурунди',\n pl: 'Burundi',\n ua: 'Бурунді',\n cz: 'Burundi',\n by: '',\n pt: 'Burúndi',\n },\n dial_code: '+257',\n code: 'BI',\n flag: '🇧🇮',\n },\n {\n name: {\n en: 'Cambodia',\n ru: 'Камбоджа',\n pl: 'Kambodża',\n ua: 'Камбоджа',\n cz: 'Kambodža',\n by: '',\n pt: 'Camboja',\n },\n dial_code: '+855',\n code: 'KH',\n flag: '🇰🇭',\n },\n {\n name: {\n en: 'Cameroon',\n ru: 'Камерун',\n pl: 'Kamerun',\n ua: 'Камерун',\n cz: 'Kamerun',\n by: '',\n pt: 'Camarões',\n },\n dial_code: '+237',\n code: 'CM',\n flag: '🇨🇲',\n },\n {\n name: {\n en: 'Canada',\n ru: 'Канада',\n pl: 'Kanada',\n ua: 'Канада',\n cz: 'Kanada',\n by: '',\n pt: 'Canadá',\n },\n dial_code: '+1',\n code: 'CA',\n flag: '🇨🇦',\n },\n {\n name: {\n en: 'Cape Verde',\n ru: 'Кабо-Верде',\n pl: 'Wyspy Zielonego Przylądka',\n ua: 'Кабо-Верде',\n cz: 'Kapverdy',\n by: '',\n pt: 'Cabo Verde',\n },\n dial_code: '+238',\n code: 'CV',\n flag: '🇨🇻',\n },\n {\n name: {\n en: 'Cayman Islands',\n ru: 'Каймановы острова',\n pl: 'Kajmany',\n ua: 'Кайманові острови',\n cz: 'Kajmanské ostrovy',\n by: '',\n pt: 'Ilhas Caimão',\n },\n dial_code: '+345',\n code: 'KY',\n flag: '🇰🇾',\n },\n {\n name: {\n en: 'Central African Republic',\n ru: 'Центрально-Африканская Республика',\n pl: 'Republika Środkowoafrykańska',\n ua: 'Центральноафриканська Республіка',\n cz: 'Středoafrická republika',\n by: '',\n pt: 'República Centro-Africana',\n },\n dial_code: '+236',\n code: 'CF',\n flag: '🇨🇫',\n },\n {\n name: {\n en: 'Chad',\n ru: 'Чад',\n pl: 'Czad',\n ua: 'Чад',\n cz: 'Čad',\n by: '',\n pt: 'Chade',\n },\n dial_code: '+235',\n code: 'TD',\n flag: '🇹🇩',\n },\n {\n name: {\n en: 'Chile',\n ru: 'Чили',\n pl: 'Chile',\n ua: 'Чилі',\n cz: 'Chile',\n by: '',\n pt: 'Chile',\n },\n dial_code: '+56',\n code: 'CL',\n flag: '🇨🇱',\n },\n {\n name: {\n en: 'China',\n ru: 'Китай',\n pl: 'Chiny',\n ua: 'Китай',\n cz: 'Čína',\n by: '',\n pt: 'China',\n },\n dial_code: '+86',\n code: 'CN',\n flag: '🇨🇳',\n },\n {\n name: {\n en: 'Christmas Island',\n ru: 'Остров Рождества',\n pl: 'Wyspa Bożego Narodzenia',\n ua: 'Острів Різдва',\n cz: 'Vánoční ostrov',\n by: '',\n pt: 'Ilha do Natal',\n },\n dial_code: '+61',\n code: 'CX',\n flag: '🇨🇽',\n },\n {\n name: {\n en: 'Cocos (Keeling) Islands',\n ru: 'Кокосовые (Килинг) острова',\n pl: 'Wyspy Kokosowe (Keelinga)',\n ua: 'Кокосові (Кілінг) острови',\n cz: 'Kokosové (Keelingovy) ostrovy',\n by: '',\n pt: 'Ilhas dos Cocos',\n },\n dial_code: '+61',\n code: 'CC',\n flag: '🇨🇨',\n },\n {\n name: {\n en: 'Colombia',\n ru: 'Колумбия',\n pl: 'Kolumbia',\n ua: 'Колумбія',\n cz: 'Kolumbie',\n by: '',\n pt: 'Colômbia',\n },\n dial_code: '+57',\n code: 'CO',\n flag: '🇨🇴',\n },\n {\n name: {\n en: 'Comoros',\n ru: 'Коморские острова',\n pl: 'Komory',\n ua: 'Коморські острови',\n cz: 'Komory',\n by: '',\n pt: 'Comores',\n },\n dial_code: '+269',\n code: 'KM',\n flag: '🇰🇲',\n },\n {\n name: {\n en: 'Congo',\n ru: 'Конго',\n pl: 'Kongo',\n ua: 'Конго',\n cz: 'Kongo',\n by: '',\n pt: 'Congo-Brazzaville',\n },\n dial_code: '+242',\n code: 'CG',\n flag: '🇨🇬',\n },\n {\n name: {\n en: 'Congo, The Democratic Republic of the',\n ru: 'Конго, Демократическая Республика',\n pl: 'Kongo, Republika Demokratyczna',\n ua: 'Конго, Демократична Республіка',\n cz: 'Kongo, Demokratická Republika',\n by: '',\n pt: 'Congo-Kinshasa',\n },\n dial_code: '+243',\n code: 'CD',\n flag: '🇨🇩',\n },\n {\n name: {\n en: 'Cook Islands',\n ru: 'Острова Кука',\n pl: 'Wyspy Cooka',\n ua: 'Острови Кука',\n cz: 'Cookovy ostrovy',\n by: '',\n pt: 'Ilhas Cook',\n },\n dial_code: '+682',\n code: 'CK',\n flag: '🇨🇰',\n },\n {\n name: {\n en: 'Costa Rica',\n ru: 'Коста-Рика',\n pl: 'Kostaryka',\n ua: 'Коста-Ріка',\n cz: 'Kostarika',\n by: '',\n pt: 'Costa Rica',\n },\n dial_code: '+506',\n code: 'CR',\n flag: '🇨🇷',\n },\n {\n name: {\n en: \"Cote d'Ivoire\",\n ru: \"Кот-д'Ивуар\",\n pl: 'Wybrzeże Kości Słoniowej',\n ua: \"Кот-д'Івуар\",\n cz: 'Pobřeží slonoviny',\n by: '',\n pt: 'Costa do Marfim',\n },\n dial_code: '+225',\n code: 'CI',\n flag: '🇨🇮',\n },\n {\n name: {\n en: 'Croatia',\n ru: 'Хорватия',\n pl: 'Chorwacja',\n ua: 'Хорватія',\n cz: 'Chorvatsko',\n by: '',\n pt: 'Croácia',\n },\n dial_code: '+385',\n code: 'HR',\n flag: '🇭🇷',\n },\n {\n name: {\n en: 'Cuba',\n ru: 'Куба',\n pl: 'Kuba',\n ua: 'Куба',\n cz: 'Kuba',\n by: '',\n pt: 'Cuba',\n },\n dial_code: '+53',\n code: 'CU',\n flag: '🇨🇺',\n },\n {\n name: {\n en: 'Cyprus',\n ru: 'Кипр',\n pl: 'Cypr',\n ua: 'Кіпр',\n cz: 'Kypr',\n by: '',\n pt: 'Chipre',\n },\n dial_code: '+537',\n code: 'CY',\n flag: '🇨🇾',\n },\n {\n name: {\n en: 'Czech Republic',\n ru: 'Чехия',\n pl: 'Republika Czeska',\n ua: 'Чеська Республіка',\n cz: 'Česká republika',\n by: '',\n pt: 'República Checa',\n },\n dial_code: '+420',\n code: 'CZ',\n flag: '🇨🇿',\n },\n {\n name: {\n en: 'Denmark',\n ru: 'Дания',\n pl: 'Dania',\n ua: 'Данія',\n cz: 'Dánsko',\n by: '',\n pt: 'Dinamarca',\n },\n dial_code: '+45',\n code: 'DK',\n flag: '🇩🇰',\n },\n {\n name: {\n en: 'Djibouti',\n ru: 'Джибути',\n pl: 'Dżibuti',\n ua: 'Джибуті',\n cz: 'Džibuti',\n by: '',\n pt: 'Jibuti',\n },\n dial_code: '+253',\n code: 'DJ',\n flag: '🇩🇯',\n },\n {\n name: {\n en: 'Dominica',\n ru: 'Доминика',\n pl: 'Dominika',\n ua: 'Домініка',\n cz: 'Dominika',\n by: '',\n pt: 'Domínica',\n },\n dial_code: '+1767',\n code: 'DM',\n flag: '🇩🇲',\n },\n {\n name: {\n en: 'Dominican Republic',\n ru: 'Доминиканская Респблика',\n pl: 'Republika Dominikany',\n ua: 'Домініканська республіка',\n cz: 'Dominikánská republika',\n by: '',\n pt: 'República Dominicana',\n },\n dial_code: '+1849',\n code: 'DO',\n flag: '🇩🇴',\n },\n {\n name: {\n en: 'Ecuador',\n ru: 'Эквадор',\n pl: 'Ekwador',\n ua: 'Еквадор',\n cz: 'Ekvádor',\n by: '',\n pt: 'Equador',\n },\n dial_code: '+593',\n code: 'EC',\n flag: '🇪🇨',\n },\n {\n name: {\n en: 'Egypt',\n ru: 'Египет',\n pl: 'Egipt',\n ua: 'Єгипет',\n cz: 'Egypt',\n by: '',\n pt: 'Egipto',\n },\n dial_code: '+20',\n code: 'EG',\n flag: '🇪🇬',\n },\n {\n name: {\n en: 'El Salvador',\n ru: 'Сальвадор',\n pl: 'Salwador',\n ua: 'Сальвадор',\n cz: 'El Salvador',\n by: '',\n pt: 'Salvador',\n },\n dial_code: '+503',\n code: 'SV',\n flag: '🇸🇻',\n },\n {\n name: {\n en: 'Equatorial Guinea',\n ru: 'Экваториальная Гвинея',\n pl: 'Gwinea Równikowa',\n ua: 'Екваторіальна Гвінея',\n cz: 'Rovníková Guinea',\n by: '',\n pt: 'Guiné Equatorial',\n },\n dial_code: '+240',\n code: 'GQ',\n flag: '🇬🇶',\n },\n {\n name: {\n en: 'Eritrea',\n ru: 'Эритрея',\n pl: 'Erytrea',\n ua: 'Еритрея',\n cz: 'Eritrea',\n by: '',\n pt: 'Eritreia',\n },\n dial_code: '+291',\n code: 'ER',\n flag: '🇪🇷',\n },\n {\n name: {\n en: 'Estonia',\n ru: 'Эстония',\n pl: 'Estonia',\n ua: 'Естонія',\n cz: 'Estonsko',\n by: '',\n pt: 'Estónia',\n },\n dial_code: '+372',\n code: 'EE',\n flag: '🇪🇪',\n },\n {\n name: {\n en: 'Ethiopia',\n ru: 'Эфиопия',\n pl: 'Etiopia',\n ua: 'Ефіопія',\n cz: 'Etiopie',\n by: '',\n pt: 'Etiópia',\n },\n dial_code: '+251',\n code: 'ET',\n flag: '🇪🇹',\n },\n {\n name: {\n en: 'Falkland Islands (Malvinas)',\n ru: 'Фолклендские острова (Malvinas)',\n pl: 'Falklandy (Malwiny)',\n ua: 'Фолклендські острови (Мальвінські острови)',\n cz: 'Falklandské ostrovy (Malvíny)',\n by: '',\n pt: 'Ilhas Falkland',\n },\n dial_code: '+500',\n code: 'FK',\n flag: '🇫🇰',\n },\n {\n name: {\n en: 'Faroe Islands',\n ru: 'Фарерские острова',\n pl: 'Wyspy Owcze',\n ua: 'Фарерські острови',\n cz: 'Faerské ostrovy',\n by: '',\n pt: 'Faroé',\n },\n dial_code: '+298',\n code: 'FO',\n flag: '🇫🇴',\n },\n {\n name: {\n en: 'Fiji',\n ru: 'Фиджи',\n pl: 'Fidżi',\n ua: 'Фіджі',\n cz: 'Fidži',\n by: '',\n pt: 'Fiji',\n },\n dial_code: '+679',\n code: 'FJ',\n flag: '🇫🇯',\n },\n {\n name: {\n en: 'Finland',\n ru: 'Финляндия',\n pl: 'Finlandia',\n ua: 'Фінляндія',\n cz: 'Finsko',\n by: '',\n pt: 'Finlândia',\n },\n dial_code: '+358',\n code: 'FI',\n flag: '🇫🇮',\n },\n {\n name: {\n en: 'France',\n ru: 'Франция',\n pl: 'Francja',\n ua: 'Франція',\n cz: 'Francie',\n by: '',\n pt: 'França',\n },\n dial_code: '+33',\n code: 'FR',\n flag: '🇫🇷',\n },\n {\n name: {\n en: 'French Guiana',\n ru: 'Французская Гвиана',\n pl: 'Gujana Francuska',\n ua: 'Французька Гвіана',\n cz: 'Francouzská Guyana',\n by: '',\n pt: 'Guiana Francesa',\n },\n dial_code: '+594',\n code: 'GF',\n flag: '🇬🇫',\n },\n {\n name: {\n en: 'French Polynesia',\n ru: 'Французская Полинезия',\n pl: 'Polinezja Francuska',\n ua: 'Французька Полінезія',\n cz: 'Francouzská Polynésie',\n by: '',\n pt: 'Polinésia Francesa',\n },\n dial_code: '+689',\n code: 'PF',\n flag: '🇵🇫',\n },\n {\n name: {\n en: 'Gabon',\n ru: 'Габон',\n pl: 'Gabon',\n ua: 'Габон',\n cz: 'Gabon',\n by: '',\n pt: 'Gabão',\n },\n dial_code: '+241',\n code: 'GA',\n flag: '🇬🇦',\n },\n {\n name: {\n en: 'Gambia',\n ru: 'Гамбия',\n pl: 'Gambia',\n ua: 'Гамбія',\n cz: 'Gambie',\n by: '',\n pt: 'Gâmbia',\n },\n dial_code: '+220',\n code: 'GM',\n flag: '🇬🇲',\n },\n {\n name: {\n en: 'Georgia',\n ru: 'Грузия',\n pl: 'Gruzja',\n ua: 'Грузія',\n cz: 'Gruzie',\n by: '',\n pt: 'Geórgia',\n },\n dial_code: '+995',\n code: 'GE',\n flag: '🇬🇪',\n },\n {\n name: {\n en: 'Germany',\n ru: 'Германия',\n pl: 'Niemcy',\n ua: 'Німеччина',\n cz: 'Německo',\n by: '',\n pt: 'Alemanha',\n },\n dial_code: '+49',\n code: 'DE',\n flag: '🇩🇪',\n },\n {\n name: {\n en: 'Ghana',\n ru: 'Гана',\n pl: 'Ghana',\n ua: 'Гана',\n cz: 'Ghana',\n by: '',\n pt: 'Gana',\n },\n dial_code: '+233',\n code: 'GH',\n flag: '🇬🇭',\n },\n {\n name: {\n en: 'Gibraltar',\n ru: 'Гибралтар',\n pl: 'Gibraltar',\n ua: 'Гібралтар',\n cz: 'Gibraltar',\n by: '',\n pt: 'Gibraltar',\n },\n dial_code: '+350',\n code: 'GI',\n flag: '🇬🇮',\n },\n {\n name: {\n en: 'Greece',\n ru: 'Греция',\n pl: 'Grecja',\n ua: 'Греція',\n cz: 'Řecko',\n by: '',\n pt: 'Grécia',\n },\n dial_code: '+30',\n code: 'GR',\n flag: '🇬🇷',\n },\n {\n name: {\n en: 'Greenland',\n ru: 'Гренландия',\n pl: 'Grenlandia',\n ua: 'Гренландія',\n cz: 'Grenlandia',\n by: '',\n pt: 'Gronelândia',\n },\n dial_code: '+299',\n code: 'GL',\n flag: '🇬🇱',\n },\n {\n name: {\n en: 'Grenada',\n ru: 'Гренада',\n pl: 'Grenada',\n ua: 'Гренада',\n cz: 'Grenada',\n by: '',\n pt: 'Granada',\n },\n dial_code: '+1473',\n code: 'GD',\n flag: '🇬🇩',\n },\n {\n name: {\n en: 'Guadeloupe',\n ru: 'Гваделупа',\n pl: 'Gwadelupa',\n ua: 'Гваделупа',\n cz: 'Guadeloupe',\n by: '',\n pt: 'Guadalupe',\n },\n dial_code: '+590',\n code: 'GP',\n flag: '🇬🇵',\n },\n {\n name: {\n en: 'Guam',\n ru: 'Гуам',\n pl: 'Guam',\n ua: 'Гуам',\n cz: 'Guam',\n by: '',\n pt: 'Guame',\n },\n dial_code: '+1671',\n code: 'GU',\n flag: '🇬🇺',\n },\n {\n name: {\n en: 'Guatemala',\n ru: 'Гватемала',\n pl: 'Gwatemala',\n ua: 'Гватемала',\n cz: 'Guatemala',\n by: '',\n pt: 'Guatemala',\n },\n dial_code: '+502',\n code: 'GT',\n flag: '🇬🇹',\n },\n {\n name: {\n en: 'Guernsey',\n ru: 'Гернси',\n pl: 'Guernsey',\n ua: 'Гернсі',\n cz: 'Guernsey',\n by: '',\n pt: 'Guernsey',\n },\n dial_code: '+44',\n code: 'GG',\n flag: '🇬🇬',\n },\n {\n name: {\n en: 'Guinea',\n ru: 'Гвинея',\n pl: 'Gwinea',\n ua: 'Гвінея',\n cz: 'Guinea',\n by: '',\n pt: 'Guiné',\n },\n dial_code: '+224',\n code: 'GN',\n flag: '🇬🇳',\n },\n {\n name: {\n en: 'Guinea-Bissau',\n ru: 'Гвинея-Бисау',\n pl: 'Gwinea Bissau',\n ua: 'Гвінея-Бісау',\n cz: 'Guinea-Bissau',\n by: '',\n pt: 'Guiné-Bissau',\n },\n dial_code: '+245',\n code: 'GW',\n flag: '🇬🇼',\n },\n {\n name: {\n en: 'Guyana',\n ru: 'Гайана',\n pl: 'Gujana',\n ua: 'Гайана',\n cz: 'Guyana',\n by: '',\n pt: 'Guiana',\n },\n dial_code: '+595',\n code: 'GY',\n flag: '🇬🇾',\n },\n {\n name: {\n en: 'Haiti',\n ru: 'Гаити',\n pl: 'Haiti',\n ua: 'Гаїті',\n cz: 'Haiti',\n by: '',\n pt: 'Haiti',\n },\n dial_code: '+509',\n code: 'HT',\n flag: '🇭🇹',\n },\n {\n name: {\n en: 'Holy See (Vatican City State)',\n ru: 'Святой Престол (Vatican City State)',\n pl: 'Stolica Apostolska (Państwo Watykańskie)',\n ua: 'Святий Престол (Ватикан)',\n cz: 'Svatý stolec (Vatikánský městský stát)',\n by: '',\n pt: 'Vaticano',\n },\n dial_code: '+379',\n code: 'VA',\n flag: '🇻🇦',\n },\n {\n name: {\n en: 'Honduras',\n ru: 'Гондурас',\n pl: 'Honduras',\n ua: 'Гондурас',\n cz: 'Honduras',\n by: '',\n pt: 'Honduras',\n },\n dial_code: '+504',\n code: 'HN',\n flag: '🇭🇳',\n },\n {\n name: {\n en: 'Hong Kong',\n ru: 'Гонконг',\n pl: 'Hongkong',\n ua: 'Гонконг',\n cz: 'Hongkong',\n by: '',\n pt: 'Hong Kong',\n },\n dial_code: '+852',\n code: 'HK',\n flag: '🇭🇰',\n },\n {\n name: {\n en: 'Hungary',\n ru: 'Венгрия',\n pl: 'Węgry',\n ua: 'Угорщина',\n cz: 'Maďarsko',\n by: '',\n pt: 'Hungria',\n },\n dial_code: '+36',\n code: 'HU',\n flag: '🇭🇺',\n },\n {\n name: {\n en: 'Iceland',\n ru: 'Исландия',\n pl: 'Islandia',\n ua: 'Ісландія',\n cz: 'Island',\n by: '',\n pt: 'Islândia',\n },\n dial_code: '+354',\n code: 'IS',\n flag: '🇮🇸',\n },\n {\n name: {\n en: 'India',\n ru: 'Индия',\n pl: 'Indie',\n ua: 'Індія',\n cz: 'Indie',\n by: '',\n pt: 'Índia',\n },\n dial_code: '+91',\n code: 'IN',\n flag: '🇮🇳',\n },\n {\n name: {\n en: 'Indonesia',\n ru: 'Индонезия',\n pl: 'Indonezja',\n ua: 'Індонезія',\n cz: 'Indonésie',\n by: '',\n pt: 'Indonésia',\n },\n dial_code: '+62',\n code: 'ID',\n flag: '🇮🇩',\n },\n {\n name: {\n en: 'Iran, Islamic Republic of',\n ru: 'Иран, Исламская Республика',\n pl: 'Iran, Republika Islamska',\n ua: 'Іран, Ісламська Республіка',\n cz: 'Írán, Islámská Republika',\n by: '',\n pt: 'Irão',\n },\n dial_code: '+98',\n code: 'IR',\n flag: '🇮🇷',\n },\n {\n name: {\n en: 'Iraq',\n ru: 'Ирак',\n pl: 'Irak',\n ua: 'Ірак',\n cz: 'Irák',\n by: '',\n pt: 'Iraque',\n },\n dial_code: '+964',\n code: 'IQ',\n flag: '🇮🇶',\n },\n {\n name: {\n en: 'Ireland',\n ru: 'Ирландия',\n pl: 'Irlandia',\n ua: 'Ірландія',\n cz: 'Irsko',\n by: '',\n pt: 'Irlanda',\n },\n dial_code: '+353',\n code: 'IE',\n flag: '🇮🇪',\n },\n {\n name: {\n en: 'Isle of Man',\n ru: 'Остров Мэн',\n pl: 'Wyspa Man',\n ua: 'Острів Мен',\n cz: 'Isle of Man',\n by: '',\n pt: 'Ilha de Man',\n },\n dial_code: '+44',\n code: 'IM',\n flag: '🇮🇲',\n },\n {\n name: {\n en: 'Israel',\n ru: 'Израиль',\n pl: 'Izrael',\n ua: 'Ізраїль',\n cz: 'Izrael',\n by: '',\n pt: 'Israel',\n },\n dial_code: '+972',\n code: 'IL',\n flag: '🇮🇱',\n },\n {\n name: {\n en: 'Italy',\n ru: 'Италия',\n pl: 'Włochy',\n ua: 'Італія',\n cz: 'Itálie',\n by: '',\n pt: 'Itália',\n },\n dial_code: '+39',\n code: 'IT',\n flag: '🇮🇹',\n },\n {\n name: {\n en: 'Jamaica',\n ru: 'Ямайка',\n pl: 'Jamajka',\n ua: 'Ямайка',\n cz: 'Jamaica',\n by: '',\n pt: 'Jamaica',\n },\n dial_code: '+1876',\n code: 'JM',\n flag: '🇯🇲',\n },\n {\n name: {\n en: 'Japan',\n ru: 'Япония',\n pl: 'Japonia',\n ua: 'Японія',\n cz: 'Japonsko',\n by: '',\n pt: 'Japão',\n },\n dial_code: '+81',\n code: 'JP',\n flag: '🇯🇵',\n },\n {\n name: {\n en: 'Jersey',\n ru: 'Джерси',\n pl: 'Jersey',\n ua: 'Джерсі',\n cz: 'Trikot',\n by: '',\n pt: 'Jersey',\n },\n dial_code: '+44',\n code: 'JE',\n flag: '🇯🇪',\n },\n {\n name: {\n en: 'Jordan',\n ru: 'Иордания',\n pl: 'Jordania',\n ua: 'Йорданія',\n cz: 'Jordán',\n by: '',\n pt: 'Jordânia',\n },\n dial_code: '+962',\n code: 'JO',\n flag: '🇯🇴',\n },\n {\n name: {\n en: 'Kazakhstan',\n ru: 'Казахстан',\n pl: 'Kazachstan',\n ua: 'Казахстан',\n cz: 'Kazachstán',\n by: '',\n pt: 'Cazaquistão',\n },\n dial_code: '+77',\n code: 'KZ',\n flag: '🇰🇿',\n },\n {\n name: {\n en: 'Kenya',\n ru: 'Кения',\n pl: 'Kenia',\n ua: 'Кенія',\n cz: 'Keňa',\n by: '',\n pt: 'Quénia',\n },\n dial_code: '+254',\n code: 'KE',\n flag: '🇰🇪',\n },\n {\n name: {\n en: 'Kiribati',\n ru: 'Кирибати',\n pl: 'Kiribati',\n ua: 'Kiribati',\n cz: 'Kiribati',\n by: '',\n pt: 'Quiribáti',\n },\n dial_code: '+686',\n code: 'KI',\n flag: '🇰🇮',\n },\n {\n name: {\n en: \"Korea, Democratic People's Republic of\",\n ru: 'Корея, Народно-Демократическая Республика',\n pl: 'Korea, Republika Ludowo-Demokratyczna',\n ua: 'Корея, Народно-Демократична Республіка',\n cz: 'Korea, Demokratická lidová republika',\n by: '',\n pt: 'Coreia do Norte',\n },\n dial_code: '+850',\n code: 'KP',\n flag: '🇰🇵',\n },\n {\n name: {\n en: 'Korea, Republic of',\n ru: 'Республика Корея',\n pl: 'Republika Korei',\n ua: 'Корея, Республіка',\n cz: 'Korea, republika',\n by: '',\n pt: 'Coreia do Sul',\n },\n dial_code: '+82',\n code: 'KR',\n flag: '🇰🇷',\n },\n {\n name: {\n en: 'Kuwait',\n ru: 'Кувейт',\n pl: 'Kuwejt',\n ua: 'Кувейт',\n cz: 'Kuvajt',\n by: '',\n pt: 'Kuwait',\n },\n dial_code: '+965',\n code: 'KW',\n flag: '🇰🇼',\n },\n {\n name: {\n en: 'Kyrgyzstan',\n ru: 'Kyrgyzstan',\n pl: 'Kirgistan',\n ua: 'Киргизстан',\n cz: 'Kyrgyzstán',\n by: '',\n pt: 'Quirguizistão',\n },\n dial_code: '+996',\n code: 'KG',\n flag: '🇰🇬',\n },\n {\n name: {\n en: \"Lao People's Democratic Republic\",\n ru: 'Лаосская Народно-Демократическая Республика',\n pl: 'Laotańska Republika Ludowo-Demokratyczna',\n ua: 'Лаоська Народно-Демократична Республіка',\n cz: 'Laoská lidově demokratická republika',\n by: '',\n pt: 'Laos',\n },\n dial_code: '+856',\n code: 'LA',\n flag: '🇱🇦',\n },\n {\n name: {\n en: 'Latvia',\n ru: 'Латвия',\n pl: 'Łotwa',\n ua: 'Латвія',\n cz: 'Lotyšsko',\n by: '',\n pt: 'Letónia',\n },\n dial_code: '+371',\n code: 'LV',\n flag: '🇱🇻',\n },\n {\n name: {\n en: 'Lebanon',\n ru: 'Ливан',\n pl: 'Liban',\n ua: 'Ліван',\n cz: 'Libanon',\n by: '',\n pt: 'Líbano',\n },\n dial_code: '+961',\n code: 'LB',\n flag: '🇱🇧',\n },\n {\n name: {\n en: 'Lesotho',\n ru: 'Лесото',\n pl: 'Lesoto',\n ua: 'Лесото',\n cz: 'Lesotho',\n by: '',\n pt: 'Lesoto',\n },\n dial_code: '+266',\n code: 'LS',\n flag: '🇱🇸',\n },\n {\n name: {\n en: 'Liberia',\n ru: 'Либерия',\n pl: 'Liberia',\n ua: 'Ліберія',\n cz: 'Libérie',\n by: '',\n pt: 'Libéria',\n },\n dial_code: '+231',\n code: 'LR',\n flag: '🇱🇷',\n },\n {\n name: {\n en: 'Libyan Arab Jamahiriya',\n ru: 'Ливийская Арабская Джамахирия',\n pl: 'Libijska Arabska Dżamahirija',\n ua: 'Лівійська Арабська Джамахірія',\n cz: 'Libyjský Arab Jamahiriya',\n by: '',\n pt: 'Líbia',\n },\n dial_code: '+218',\n code: 'LY',\n flag: '🇱🇾',\n },\n {\n name: {\n en: 'Liechtenstein',\n ru: 'Лихтенштейн',\n pl: 'Liechtenstein',\n ua: 'Ліхтенштейн',\n cz: 'Lichtenštejnsko',\n by: '',\n pt: 'Listenstaine',\n },\n dial_code: '+423',\n code: 'LI',\n flag: '🇱🇮',\n },\n {\n name: {\n en: 'Lithuania',\n ru: 'Литва',\n pl: 'Litwa',\n ua: 'Литва',\n cz: 'Litva',\n by: '',\n pt: 'Lituânia',\n },\n dial_code: '+370',\n code: 'LT',\n flag: '🇱🇹',\n },\n {\n name: {\n en: 'Luxembourg',\n ru: 'Люксембург',\n pl: 'Luksemburg',\n ua: 'Люксембург',\n cz: 'Lucembursko',\n by: '',\n pt: 'Luxemburgo',\n },\n dial_code: '+352',\n code: 'LU',\n flag: '🇱🇺',\n },\n {\n name: {\n en: 'Macao',\n ru: 'Макао',\n pl: 'Makao',\n ua: 'Макао',\n cz: 'Macao',\n by: '',\n pt: 'Macau',\n },\n dial_code: '+853',\n code: 'MO',\n flag: '🇲🇴',\n },\n {\n name: {\n en: 'Macedonia, The Former Yugoslav Republic of',\n ru: 'Македония, Бывшая Югославская Республика',\n pl: 'Macedonia, Była Jugosłowiańska Republika',\n ua: 'Македонія, колишня югославська республіка',\n cz: 'Makedonie, Bývalá jugoslávská republika',\n by: '',\n pt: 'Macedónia',\n },\n dial_code: '+389',\n code: 'MK',\n flag: '🇲🇰',\n },\n {\n name: {\n en: 'Madagascar',\n ru: 'Мадагаскар',\n pl: 'Madagaskar',\n ua: 'Мадагаскар',\n cz: 'Madagaskar',\n by: '',\n pt: 'Madagáscar',\n },\n dial_code: '+261',\n code: 'MG',\n flag: '🇲🇬',\n },\n {\n name: {\n en: 'Malawi',\n ru: 'Малави',\n pl: 'Malawi',\n ua: 'Малаві',\n cz: 'Malawi',\n by: '',\n pt: 'Malávi',\n },\n dial_code: '+265',\n code: 'MW',\n flag: '🇲🇼',\n },\n {\n name: {\n en: 'Malaysia',\n ru: 'Малайзия',\n pl: 'Malezja',\n ua: 'Малайзія',\n cz: 'Malajsie',\n by: '',\n pt: 'Malásia',\n },\n dial_code: '+60',\n code: 'MY',\n flag: '🇲🇾',\n },\n {\n name: {\n en: 'Maldives',\n ru: 'Мальдивы',\n pl: 'Malediwy',\n ua: 'Мальдіви',\n cz: 'Maledivy',\n by: '',\n pt: 'Maldivas',\n },\n dial_code: '+960',\n code: 'MV',\n flag: '🇲🇻',\n },\n {\n name: {\n en: 'Mali',\n ru: 'Мали',\n pl: 'Mali',\n ua: 'Малі',\n cz: 'Mali',\n by: '',\n pt: 'Mali',\n },\n dial_code: '+223',\n code: 'ML',\n flag: '🇲🇱',\n },\n {\n name: {\n en: 'Malta',\n ru: 'Мальта',\n pl: 'Malta',\n ua: 'Мальта',\n cz: 'Malta',\n by: '',\n pt: 'Malta',\n },\n dial_code: '+356',\n code: 'MT',\n flag: '🇲🇹',\n },\n {\n name: {\n en: 'Marshall Islands',\n ru: 'Маршалловы острова',\n pl: 'Wyspy Marshalla',\n ua: 'Маршаллові острови',\n cz: 'Marshallovy ostrovy',\n by: '',\n pt: 'Ilhas Marshall',\n },\n dial_code: '+692',\n code: 'MH',\n flag: '🇲🇭',\n },\n {\n name: {\n en: 'Martinique',\n ru: 'Мартиника',\n pl: 'Martynika',\n ua: 'Мартініка',\n cz: 'Martinik',\n by: '',\n pt: 'Martinica',\n },\n dial_code: '+596',\n code: 'MQ',\n flag: '🇲🇶',\n },\n {\n name: {\n en: 'Mauritania',\n ru: 'Мавритания',\n pl: 'Mauretania',\n ua: 'Мавританія',\n cz: 'Mauretánie',\n by: '',\n pt: 'Mauritânia',\n },\n dial_code: '+222',\n code: 'MR',\n flag: '🇲🇷',\n },\n {\n name: {\n en: 'Mauritius',\n ru: 'Маврикий',\n pl: 'Mauritius',\n ua: 'Маврикій',\n cz: 'Mauricius',\n by: '',\n pt: 'Maurícia',\n },\n dial_code: '+230',\n code: 'MU',\n flag: '🇲🇺',\n },\n {\n name: {\n en: 'Mayotte',\n ru: 'Майотта',\n pl: 'Majotta',\n ua: 'Майотта',\n cz: 'Mayotte',\n by: '',\n pt: 'Mayotte',\n },\n dial_code: '+262',\n code: 'YT',\n flag: '🇾🇹',\n },\n {\n name: {\n en: 'Mexico',\n ru: 'Мексика',\n pl: 'Meksyk',\n ua: 'Мексика',\n cz: 'Mexiko',\n by: '',\n pt: 'México',\n },\n dial_code: '+52',\n code: 'MX',\n flag: '🇲🇽',\n },\n {\n name: {\n en: 'Micronesia, Federated States of',\n ru: 'Микронезия, Федеративные Штаты',\n pl: 'Mikronezja, Sfederowane Stany',\n ua: 'Мікронезія, Федеративні Штати',\n cz: 'Mikronésie, federativní státy',\n by: '',\n pt: 'Micronésia',\n },\n dial_code: '+691',\n code: 'FM',\n flag: '🇫🇲',\n },\n {\n name: {\n en: 'Moldova, Republic of',\n ru: 'Молдова, Республика',\n pl: 'Mołdawia, Republika',\n ua: 'Молдова, республіка',\n cz: 'Moldavsko, republika',\n by: '',\n pt: 'Moldávia',\n },\n dial_code: '+373',\n code: 'MD',\n flag: '🇲🇩',\n },\n {\n name: {\n en: 'Monaco',\n ru: 'Монако',\n pl: 'Monako',\n ua: 'Монако',\n cz: 'Monako',\n by: '',\n pt: 'Mónaco',\n },\n dial_code: '+377',\n code: 'MC',\n flag: '🇲🇨',\n },\n {\n name: {\n en: 'Mongolia',\n ru: 'Монголия',\n pl: 'Mongolia',\n ua: 'Монголія',\n cz: 'Mongolsko',\n by: '',\n pt: 'Mongólia',\n },\n dial_code: '+976',\n code: 'MN',\n flag: '🇲🇳',\n },\n {\n name: {\n en: 'Montenegro',\n ru: 'Черногория',\n pl: 'Czarnogóra',\n ua: 'Чорногорія',\n cz: 'Černá Hora',\n by: '',\n pt: 'Montenegro',\n },\n dial_code: '+382',\n code: 'ME',\n flag: '🇲🇪',\n },\n {\n name: {\n en: 'Montserrat',\n ru: 'Монтсеррат',\n pl: 'Montserrat',\n ua: 'Монтсеррат',\n cz: 'Montserrat',\n by: '',\n pt: 'Monserrate',\n },\n dial_code: '+1664',\n code: 'MS',\n flag: '🇲🇸',\n },\n {\n name: {\n en: 'Morocco',\n ru: 'Марокко',\n pl: 'Maroko',\n ua: 'Марокко',\n cz: 'Maroko',\n by: '',\n pt: 'Marrocos',\n },\n dial_code: '+212',\n code: 'MA',\n flag: '🇲🇦',\n },\n {\n name: {\n en: 'Mozambique',\n ru: 'Мозамбик',\n pl: 'Mozambik',\n ua: 'Мозамбік',\n cz: 'Mosambik',\n by: '',\n pt: 'Moçambique',\n },\n dial_code: '+258',\n code: 'MZ',\n flag: '🇲🇿',\n },\n {\n name: {\n en: 'Myanmar',\n ru: 'Мьянма',\n pl: 'Myanmar',\n ua: \"М'янма\",\n cz: 'Myanmar',\n by: '',\n pt: 'Birmânia',\n },\n dial_code: '+95',\n code: 'MM',\n flag: '🇲🇲',\n },\n {\n name: {\n en: 'Namibia',\n ru: 'Намибия',\n pl: 'Namibia',\n ua: 'Намібія',\n cz: 'Namibie',\n by: '',\n pt: 'Namíbia',\n },\n dial_code: '+264',\n code: 'NA',\n flag: '🇳🇦',\n },\n {\n name: {\n en: 'Nauru',\n ru: 'Науру',\n pl: 'Nauru',\n ua: 'Науру',\n cz: 'Nauru',\n by: '',\n pt: 'Nauru',\n },\n dial_code: '+674',\n code: 'NR',\n flag: '🇳🇷',\n },\n {\n name: {\n en: 'Nepal',\n ru: 'Непал',\n pl: 'Nepal',\n ua: 'Непал',\n cz: 'Nepál',\n by: '',\n pt: 'Nepal',\n },\n dial_code: '+977',\n code: 'NP',\n flag: '🇳🇵',\n },\n {\n name: {\n en: 'Netherlands',\n ru: 'Нидерланды',\n pl: 'Holandia',\n ua: 'Нідерланди',\n cz: 'Holandsko',\n by: '',\n pt: 'Países Baixos',\n },\n dial_code: '+31',\n code: 'NL',\n flag: '🇳🇱',\n },\n {\n name: {\n en: 'Netherlands Antilles',\n ru: 'Нидерландские Антильские острова',\n pl: 'Antyle Holenderskie',\n ua: 'Нідерландські Антильські острови',\n cz: 'Nizozemské Antily',\n by: '',\n pt: 'Antilhas Neerlandesas',\n },\n dial_code: '+599',\n code: 'AN',\n flag: '🇦🇳',\n },\n {\n name: {\n en: 'New Caledonia',\n ru: 'Новая Каледония',\n pl: 'Nowa Kaledonia',\n ua: 'Нова Каледонія',\n cz: 'Nová Kaledonie',\n by: '',\n pt: 'Nova Caledónia',\n },\n dial_code: '+687',\n code: 'NC',\n flag: '🇳🇨',\n },\n {\n name: {\n en: 'New Zealand',\n ru: 'Новая Зеландия',\n pl: 'Nowa Zelandia',\n ua: 'Нова Зеландія',\n cz: 'Nový Zéland',\n by: '',\n pt: 'Nova Zelândia',\n },\n dial_code: '+64',\n code: 'NZ',\n flag: '🇳🇿',\n },\n {\n name: {\n en: 'Nicaragua',\n ru: 'Никарагуа',\n pl: 'Nikaragua',\n ua: 'Нікарагуа',\n cz: 'Nikaragua',\n by: '',\n pt: 'Nicarágua',\n },\n dial_code: '+505',\n code: 'NI',\n flag: '🇳🇮',\n },\n {\n name: {\n en: 'Niger',\n ru: 'Нигер',\n pl: 'Niger',\n ua: 'Нігер',\n cz: 'Niger',\n by: '',\n pt: 'Níger',\n },\n dial_code: '+227',\n code: 'NE',\n flag: '🇳🇪',\n },\n {\n name: {\n en: 'Nigeria',\n ru: 'Нигерия',\n pl: 'Nigeria',\n ua: 'Нігерія',\n cz: 'Nigérie',\n by: '',\n pt: 'Nigéria',\n },\n dial_code: '+234',\n code: 'NG',\n flag: '🇳🇬',\n },\n {\n name: {\n en: 'Niue',\n ru: 'Ниуэ',\n pl: 'Niue',\n ua: 'Ніуе',\n cz: 'Niue',\n by: '',\n pt: 'Niue',\n },\n dial_code: '+683',\n code: 'NU',\n flag: '🇳🇺',\n },\n {\n name: {\n en: 'Norfolk Island',\n ru: 'Остров Норфолк',\n pl: 'Wyspa Norfolk',\n ua: 'Острів Норфолк',\n cz: 'Ostrov Norfolk',\n by: '',\n pt: 'Ilha Norfolk',\n },\n dial_code: '+672',\n code: 'NF',\n flag: '🇳🇫',\n },\n {\n name: {\n en: 'Northern Mariana Islands',\n ru: 'Северные Марианские острова',\n pl: 'Mariany Północne',\n ua: 'Північні Маріанські острови',\n cz: 'Severní Mariany',\n by: '',\n pt: 'Marianas do Norte',\n },\n dial_code: '+1670',\n code: 'MP',\n flag: '🇲🇵',\n },\n {\n name: {\n en: 'Norway',\n ru: 'Норвегия',\n pl: 'Norwegia',\n ua: 'Норвегія',\n cz: 'Norsko',\n by: '',\n pt: 'Noruega',\n },\n dial_code: '+47',\n code: 'NO',\n flag: '🇳🇴',\n },\n {\n name: {\n en: 'Oman',\n ru: 'Оман',\n pl: 'Oman',\n ua: 'Оман',\n cz: 'Omán',\n by: '',\n pt: 'Omã',\n },\n dial_code: '+968',\n code: 'OM',\n flag: '🇴🇲',\n },\n {\n name: {\n en: 'Pakistan',\n ru: 'Пакистан',\n pl: 'Pakistan',\n ua: 'Пакистан',\n cz: 'Pákistán',\n by: '',\n pt: 'Paquistão',\n },\n dial_code: '+92',\n code: 'PK',\n flag: '🇵🇰',\n },\n {\n name: {\n en: 'Palau',\n ru: 'Палау',\n pl: 'Palau',\n ua: 'Палау',\n cz: 'Palau',\n by: '',\n pt: 'Palau',\n },\n dial_code: '+680',\n code: 'PW',\n flag: '🇵🇼',\n },\n {\n name: {\n en: 'Palestinian Territory, Occupied',\n ru: 'Палестинская Территория, Оккупированная',\n pl: 'Teretorium Paleństynskie, Okupowane',\n ua: 'Палестинська територія, окупована',\n cz: 'Palestinské území, obsazené',\n by: '',\n pt: 'Território Palestino, Ocupado',\n },\n dial_code: '+970',\n code: 'PS',\n flag: '🇵🇸',\n },\n {\n name: {\n en: 'Panama',\n ru: 'Панама',\n pl: 'Panama',\n ua: 'Панама',\n cz: 'Panama',\n by: '',\n pt: 'Panamá',\n },\n dial_code: '+507',\n code: 'PA',\n flag: '🇵🇦',\n },\n {\n name: {\n en: 'Papua New Guinea',\n ru: 'Папуа - Новая Гвинея',\n pl: 'Papua Nowa Gwinea',\n ua: 'Папуа-Нова Гвінея',\n cz: 'Papua-Nová Guinea',\n by: '',\n pt: 'Papua-Nova Guiné',\n },\n dial_code: '+675',\n code: 'PG',\n flag: '🇵🇬',\n },\n {\n name: {\n en: 'Paraguay',\n ru: 'Парагвай',\n pl: 'Paragwaj',\n ua: 'Парагвай',\n cz: 'Paraguay',\n by: '',\n pt: 'Paraguai',\n },\n dial_code: '+595',\n code: 'PY',\n flag: '🇵🇾',\n },\n {\n name: {\n en: 'Peru',\n ru: 'Перу',\n pl: 'Peru',\n ua: 'Перу',\n cz: 'Peru',\n by: '',\n pt: 'Peru',\n },\n dial_code: '+51',\n code: 'PE',\n flag: '🇵🇪',\n },\n {\n name: {\n en: 'Philippines',\n ru: 'Филиппины',\n pl: 'Filipiny',\n ua: 'Філіппіни',\n cz: 'Filipíny',\n by: '',\n pt: 'Filipinas',\n },\n dial_code: '+63',\n code: 'PH',\n flag: '🇵🇭',\n },\n {\n name: {\n en: 'Pitcairn',\n ru: 'Питкэрн',\n pl: 'Pitcairn',\n ua: 'Піткерн',\n cz: 'Pitcairn',\n by: '',\n pt: 'Pitcairn',\n },\n dial_code: '+872',\n code: 'PN',\n flag: '🇵🇳',\n },\n {\n name: {\n en: 'Poland',\n ru: 'Польша',\n pl: 'Polska',\n ua: 'Польща',\n cz: 'Polsko',\n by: '',\n pt: 'Polónia',\n },\n dial_code: '+48',\n code: 'PL',\n flag: '🇵🇱',\n },\n {\n name: {\n en: 'Portugal',\n ru: 'Португалия',\n pl: 'Portugalia',\n ua: 'Португалія',\n cz: 'Portugalsko',\n by: '',\n pt: 'Portugal',\n },\n dial_code: '+351',\n code: 'PT',\n flag: '🇵🇹',\n },\n {\n name: {\n en: 'Puerto Rico',\n ru: 'Пуэрто-Рико',\n pl: 'Portoryko',\n ua: 'Пуерто Ріко',\n cz: 'Portoriko',\n by: '',\n pt: 'Porto Rico',\n },\n dial_code: '+1939',\n code: 'PR',\n flag: '🇵🇷',\n },\n {\n name: {\n en: 'Qatar',\n ru: 'Катар',\n pl: 'Katar',\n ua: 'Катар',\n cz: 'Katar',\n by: '',\n pt: 'Catar',\n },\n dial_code: '+974',\n code: 'QA',\n flag: '🇶🇦',\n },\n {\n name: {\n en: 'Romania',\n ru: 'Румыния',\n pl: 'Rumunia',\n ua: 'Румунія',\n cz: 'Rumunsko',\n by: '',\n pt: 'Roménia',\n },\n dial_code: '+40',\n code: 'RO',\n flag: '🇷🇴',\n },\n {\n name: {\n en: 'Russia',\n ru: 'Россия',\n pl: 'Rosja',\n ua: 'Росія',\n cz: 'Rusko',\n by: '',\n pt: 'Rússia',\n },\n dial_code: '+7',\n code: 'RU',\n flag: '🇷🇺',\n },\n {\n name: {\n en: 'Rwanda',\n ru: 'Руанда',\n pl: 'Rwanda',\n ua: 'Руанда',\n cz: 'Rwanda',\n by: '',\n pt: 'Ruanda',\n },\n dial_code: '+250',\n code: 'RW',\n flag: '🇷🇼',\n },\n {\n name: {\n en: 'Réunion',\n ru: 'Реюньон',\n pl: 'Réunion',\n ua: 'Реюньйон',\n cz: 'Réunion',\n by: '',\n pt: 'Reunião',\n },\n dial_code: '+262',\n code: 'RE',\n flag: '🇷🇪',\n },\n {\n name: {\n en: 'Saint Barthélemy',\n ru: 'Святой Варфоломей',\n pl: 'Saint Barthelemy',\n ua: 'Сен-Бартелемі',\n cz: 'Svatý Bartoloměj',\n by: '',\n pt: 'São Bartolomeu',\n },\n dial_code: '+590',\n code: 'BL',\n flag: '🇧🇱',\n },\n {\n name: {\n en: 'Saint Helena, Ascension and Tristan Da Cunha',\n ru: 'Святой Елены, Вознесения и Тристан-да-Кунья',\n pl: 'Święta Helena, Wniebowstąpienie i Tristan Da Cunha',\n ua: 'Свята Олена, Вознесіння і Трістан Да Кунья',\n cz: 'Svatá Helena, Nanebevstoupení a Tristan Da Cunha',\n by: '',\n pt: 'Santa Helena',\n },\n dial_code: '+290',\n code: 'SH',\n flag: '🇸🇭',\n },\n {\n name: {\n en: 'Saint Kitts and Nevis',\n ru: 'Сент-Китс и Невис',\n pl: 'Saint Kitts i Nevis',\n ua: 'Сент-Кітс і Невіс',\n cz: 'Svatý Kryštof a Nevis',\n by: '',\n pt: 'São Cristóvão e Neves',\n },\n dial_code: '+1869',\n code: 'KN',\n flag: '🇰🇳',\n },\n {\n name: {\n en: 'Saint Lucia',\n ru: 'Санкт-Люсия',\n pl: 'święta Lucia',\n ua: 'Сент-Люсія',\n cz: 'Svatá Lucie',\n by: '',\n pt: 'Santa Lúcia',\n },\n dial_code: '+1758',\n code: 'LC',\n flag: '🇱🇨',\n },\n {\n name: {\n en: 'Saint Martin',\n ru: 'Сен-Мартен',\n pl: 'święty Marcin',\n ua: 'Святий Мартін',\n cz: 'Svatý Martin',\n by: '',\n pt: 'São Martinho',\n },\n dial_code: '+590',\n code: 'MF',\n flag: '🇲🇫',\n },\n {\n name: {\n en: 'Saint Pierre and Miquelon',\n ru: 'Сен-Пьер и Микелон',\n pl: 'Saint-Pierre i Miquelon',\n ua: \"Сен-П'єр і Мікелон\",\n cz: 'Svatý Pierre a Miquelon',\n by: '',\n pt: 'São Pedro e Miquelon',\n },\n dial_code: '+508',\n code: 'PM',\n flag: '🇵🇲',\n },\n {\n name: {\n en: 'Saint Vincent and the Grenadines',\n ru: 'Святой Винсент и Гренадины',\n pl: 'Saint Vincent i Grenadyny',\n ua: 'Сент-Вінсент і Гренадини',\n cz: 'Svatý Vincenc a Grenadiny',\n by: '',\n pt: 'São Vicente e Granadinas',\n },\n dial_code: '+1784',\n code: 'VC',\n flag: '🇻🇨',\n },\n {\n name: {\n en: 'Samoa',\n ru: 'Самоа',\n pl: 'Samoa',\n ua: 'Самоа',\n cz: 'Samoa',\n by: '',\n pt: 'Samoa',\n },\n dial_code: '+685',\n code: 'WS',\n flag: '🇼🇸',\n },\n {\n name: {\n en: 'San Marino',\n ru: 'Сан-Марино',\n pl: 'San Marino',\n ua: 'Сан-Марино',\n cz: 'San Marino',\n by: '',\n pt: 'São Marinho',\n },\n dial_code: '+378',\n code: 'SM',\n flag: '🇸🇲',\n },\n {\n name: {\n en: 'Sao Tome and Principe',\n ru: 'Сан-Томе и Принсипи',\n pl: 'Wyspy Świętego Tomasza i Książęca',\n ua: 'Сан-Томе і Принсіпі',\n cz: 'Svatý Tomáš a Princův ostrov',\n by: '',\n pt: 'São Tomé e Príncipe',\n },\n dial_code: '+239',\n code: 'ST',\n flag: '🇸🇹',\n },\n {\n name: {\n en: 'Saudi Arabia',\n ru: 'Саудовская Аравия',\n pl: 'Arabia Saudyjska',\n ua: 'Саудівська Аравія',\n cz: 'Saudská arábie',\n by: '',\n pt: 'Arábia Saudita',\n },\n dial_code: '+966',\n code: 'SA',\n flag: '🇸🇦',\n },\n {\n name: {\n en: 'Senegal',\n ru: 'Сенегал',\n pl: 'Senegal',\n ua: 'Сенегал',\n cz: 'Senegal',\n by: '',\n pt: 'Senegal',\n },\n dial_code: '+221',\n code: 'SN',\n flag: '🇸🇳',\n },\n {\n name: {\n en: 'Serbia',\n ru: 'Сербия',\n pl: 'Serbia',\n ua: 'Сербія',\n cz: 'Srbsko',\n by: '',\n pt: 'Sérvia',\n },\n dial_code: '+381',\n code: 'RS',\n flag: '🇷🇸',\n },\n {\n name: {\n en: 'Seychelles',\n ru: 'Сейшельские острова',\n pl: 'Seszele',\n ua: 'Сейшельські острови',\n cz: 'Seychely',\n by: '',\n pt: 'Seicheles',\n },\n dial_code: '+248',\n code: 'SC',\n flag: '🇸🇨',\n },\n {\n name: {\n en: 'Sierra Leone',\n ru: 'Сьерра-Леоне',\n pl: 'Sierra Leone',\n ua: 'Сьєрра-Леоне',\n cz: 'Sierra Leone',\n by: '',\n pt: 'Serra Leoa',\n },\n dial_code: '+232',\n code: 'SL',\n flag: '🇸🇱',\n },\n {\n name: {\n en: 'Singapore',\n ru: 'Сингапур',\n pl: 'Singapur',\n ua: 'Сінгапур',\n cz: 'Singapur',\n by: '',\n pt: 'Singapura',\n },\n dial_code: '+65',\n code: 'SG',\n flag: '🇸🇬',\n },\n {\n name: {\n en: 'Slovakia',\n ru: 'Словакия',\n pl: 'Słowacja',\n ua: 'Словаччина',\n cz: 'Slovensko',\n by: '',\n pt: 'Eslováquia',\n },\n dial_code: '+421',\n code: 'SK',\n flag: '🇸🇰',\n },\n {\n name: {\n en: 'Slovenia',\n ru: 'Словения',\n pl: 'Słowenia',\n ua: 'Словенія',\n cz: 'Slovinsko',\n by: '',\n pt: 'Eslovénia',\n },\n dial_code: '+386',\n code: 'SI',\n flag: '🇸🇮',\n },\n {\n name: {\n en: 'Solomon Islands',\n ru: 'Соломоновы острова',\n pl: 'Wyspy Salomona',\n ua: 'Соломонові острови',\n cz: 'Solomonovy ostrovy',\n by: '',\n pt: 'Ilhas Salomão',\n },\n dial_code: '+677',\n code: 'SB',\n flag: '🇸🇧',\n },\n {\n name: {\n en: 'Somalia',\n ru: 'Сомали',\n pl: 'Somali',\n ua: 'Сомалі',\n cz: 'Somálsko',\n by: '',\n pt: 'Somália',\n },\n dial_code: '+252',\n code: 'SO',\n flag: '🇸🇴',\n },\n {\n name: {\n en: 'South Africa',\n ru: 'Южная Африка',\n pl: 'Afryka Południowa',\n ua: 'Південна Африка',\n cz: 'Jižní Afrika',\n by: '',\n pt: 'África do Sul',\n },\n dial_code: '+27',\n code: 'ZA',\n flag: '🇿🇦',\n },\n {\n name: {\n en: 'South Georgia and the South Sandwich Islands',\n ru: 'Южная Георгия и Южные Сандвичевы острова',\n pl: 'Georgia Południowa i Sandwich Południowy',\n ua: 'Південна Джорджія та Південні Сандвічеві острови',\n cz: 'Jižní Georgie a Jižní Sandwichovy ostrovy',\n by: '',\n pt: 'Geórgia do Sul e Sandwich do Sul',\n },\n dial_code: '+500',\n code: 'GS',\n flag: '🇬🇸',\n },\n {\n name: {\n en: 'Spain',\n ru: 'Испания',\n pl: 'Hiszpania',\n ua: 'Іспанія',\n cz: 'Španělsko',\n by: '',\n pt: 'Espanha',\n },\n dial_code: '+34',\n code: 'ES',\n flag: '🇪🇸',\n },\n {\n name: {\n en: 'Sri Lanka',\n ru: 'Шри-Ланка',\n pl: 'Sri Lanka',\n ua: 'Шрі Ланка',\n cz: 'Srí Lanka',\n by: '',\n pt: 'Sri Lanca',\n },\n dial_code: '+94',\n code: 'LK',\n flag: '🇱🇰',\n },\n {\n name: {\n en: 'Sudan',\n ru: 'Судан',\n pl: 'Sudan',\n ua: 'Судан',\n cz: 'Súdán',\n by: '',\n pt: 'Sudão',\n },\n dial_code: '+249',\n code: 'SD',\n flag: '🇸🇩',\n },\n {\n name: {\n en: 'Suriname',\n ru: 'Суринам',\n pl: 'Surinam',\n ua: 'Суринам',\n cz: 'Surinam',\n by: '',\n pt: 'Suriname',\n },\n dial_code: '+597',\n code: 'SR',\n flag: '🇸🇷',\n },\n {\n name: {\n en: 'Svalbard and Jan Mayen',\n ru: 'Шпицберген и Ян Майен',\n pl: 'Svalbard i Jan Mayen',\n ua: 'Шпіцберген та Ян Маєн',\n cz: 'Špicberky a Jan Mayen',\n by: '',\n pt: 'Svalbard e Jan Mayen',\n },\n dial_code: '+47',\n code: 'SJ',\n flag: '🇸🇯',\n },\n {\n name: {\n en: 'Swaziland',\n ru: 'Свазиленд',\n pl: 'Suazi',\n ua: 'Свазіленд',\n cz: 'Svazijsko',\n by: '',\n pt: 'Suazilândia',\n },\n dial_code: '+268',\n code: 'SZ',\n flag: '🇸🇿',\n },\n {\n name: {\n en: 'Sweden',\n ru: 'Швеция',\n pl: 'Szwecja',\n ua: 'Швеція',\n cz: 'Švédsko',\n by: '',\n pt: 'Suécia',\n },\n dial_code: '+46',\n code: 'SE',\n flag: '🇸🇪',\n },\n {\n name: {\n en: 'Switzerland',\n ru: 'Швейцария',\n pl: 'Szwajcaria',\n ua: 'Швейцарія',\n cz: 'Švýcarsko',\n by: '',\n pt: 'Suíça',\n },\n dial_code: '+41',\n code: 'CH',\n flag: '🇨🇭',\n },\n {\n name: {\n en: 'Syrian Arab Republic',\n ru: 'Сирийская Арабская Республика',\n pl: 'Republika Syryjsko-Arabska',\n ua: 'Сирійська Арабська Республіка',\n cz: 'Syrská Arabská republika',\n by: '',\n pt: 'Síria',\n },\n dial_code: '+963',\n code: 'SY',\n flag: '🇸🇾',\n },\n {\n name: {\n en: 'Taiwan, Province of China',\n ru: 'Тайвань, провинция Китая',\n pl: 'Tajwan, prowincja Chin',\n ua: 'Тайвань, провінція Китаю',\n cz: 'Tchaj-wan, provincie Číny',\n by: '',\n pt: 'Taiwan',\n },\n dial_code: '+886',\n code: 'TW',\n flag: '🇹🇼',\n },\n {\n name: {\n en: 'Tajikistan',\n ru: 'Таджикистан',\n pl: 'Tadżykistan',\n ua: 'Таджикистан',\n cz: 'Tádžikistán',\n by: '',\n pt: 'Tajiquistão',\n },\n dial_code: '+992',\n code: 'TJ',\n flag: '🇹🇯',\n },\n {\n name: {\n en: 'Tanzania, United Republic of',\n ru: 'Танзания, Объединенная Республика',\n pl: 'Tanzania, Zjednoczona Republika',\n ua: \"Танзанія, Об'єднана республіка\",\n cz: 'Tanzanie, Velká republika',\n by: '',\n pt: 'Tanzânia',\n },\n dial_code: '+255',\n code: 'TZ',\n flag: '🇹🇿',\n },\n {\n name: {\n en: 'Thailand',\n ru: 'Таиланд',\n pl: 'Tajlandia',\n ua: 'Таїланд',\n cz: 'Thajsko',\n by: '',\n pt: 'Tailândia',\n },\n dial_code: '+66',\n code: 'TH',\n flag: '🇹🇭',\n },\n {\n name: {\n en: 'Timor-Leste',\n ru: 'Восточный Тимор',\n pl: 'Timor Wschodni',\n ua: 'Восточний Тимор',\n cz: 'Východní Timor',\n by: '',\n pt: 'Timor Leste',\n },\n dial_code: '+670',\n code: 'TL',\n flag: '🇹🇱',\n },\n {\n name: {\n en: 'Togo',\n ru: 'Того',\n pl: 'Togo',\n ua: 'Того',\n cz: 'Togo',\n by: '',\n pt: 'Togo',\n },\n dial_code: '+228',\n code: 'TG',\n flag: '🇹🇬',\n },\n {\n name: {\n en: 'Tokelau',\n ru: 'Токелау',\n pl: 'Tokelau',\n ua: 'Токелау',\n cz: 'Tokelau',\n by: '',\n pt: 'Tokelau',\n },\n dial_code: '+690',\n code: 'TK',\n flag: '🇹🇰',\n },\n {\n name: {\n en: 'Tonga',\n ru: 'Тонга',\n pl: 'Tonga',\n ua: 'Тонга',\n cz: 'Tonga',\n by: '',\n pt: 'Tonga',\n },\n dial_code: '+676',\n code: 'TO',\n flag: '🇹🇴',\n },\n {\n name: {\n en: 'Trinidad and Tobago',\n ru: 'Тринидад и Тобаго',\n pl: 'Trynidad i Tobago',\n ua: 'Тринідад і Тобаго',\n cz: 'Trinidad a Tobago',\n by: '',\n pt: 'Trindade e Tobago',\n },\n dial_code: '+1868',\n code: 'TT',\n flag: '🇹🇹',\n },\n {\n name: {\n en: 'Tunisia',\n ru: 'Тунис',\n pl: 'Tunezja',\n ua: 'Туніс',\n cz: 'Tunisko',\n by: '',\n pt: 'Tunísia',\n },\n dial_code: '+216',\n code: 'TN',\n flag: '🇹🇳',\n },\n {\n name: {\n en: 'Turkey',\n ru: 'Турция',\n pl: 'Turcja',\n ua: 'Туреччина',\n cz: 'Turecko',\n by: '',\n pt: 'Turquia',\n },\n dial_code: '+90',\n code: 'TR',\n flag: '🇹🇷',\n },\n {\n name: {\n en: 'Turkmenistan',\n ru: 'Туркменистан',\n pl: 'Turkmenia',\n ua: 'Туркменістан',\n cz: 'Turkmenistán',\n by: '',\n pt: 'Turquemenistão',\n },\n dial_code: '+993',\n code: 'TM',\n flag: '🇹🇲',\n },\n {\n name: {\n en: 'Turks and Caicos Islands',\n ru: 'Острова Теркс и Кайкос',\n pl: 'Wyspy Turks i Caicos',\n ua: 'Острови Теркс і Кайкос',\n cz: 'ostrovy Turks a Cacois',\n by: '',\n pt: 'Ilhas Turcas e Caicos',\n },\n dial_code: '+1649',\n code: 'TC',\n flag: '🇹🇨',\n },\n {\n name: {\n en: 'Tuvalu',\n ru: 'Тувалу',\n pl: 'Tuvalu',\n ua: 'Тувалу',\n cz: 'Tuvalu',\n by: '',\n pt: 'Tuvalu',\n },\n dial_code: '+688',\n code: 'TV',\n flag: '🇹🇻',\n },\n {\n name: {\n en: 'Uganda',\n ru: 'Уганда',\n pl: 'Uganda',\n ua: 'Уганда',\n cz: 'Uganda',\n by: '',\n pt: 'Uganda',\n },\n dial_code: '+256',\n code: 'UG',\n flag: '🇺🇬',\n },\n {\n name: {\n en: 'Ukraine',\n ru: 'Украина',\n pl: 'Ukraina',\n ua: 'Україна',\n cz: 'Ukrajina',\n by: '',\n pt: 'Ucrânia',\n },\n dial_code: '+380',\n code: 'UA',\n flag: '🇺🇦',\n },\n {\n name: {\n en: 'United Arab Emirates',\n ru: 'Объединенные Арабские Эмираты',\n pl: 'Zjednoczone Emiraty Arabskie',\n ua: \"Об'єднані Арабські Емірати\",\n cz: 'Spojené arabské emiráty',\n by: '',\n pt: 'Emiratos Árabes Unidos',\n },\n dial_code: '+971',\n code: 'AE',\n flag: '🇦🇪',\n },\n {\n name: {\n en: 'United Kingdom',\n ru: 'Объединенное Королевство',\n pl: 'Zjednoczone Królestwo',\n ua: \"Об'єднане Королівство\",\n cz: 'Spojené království',\n by: '',\n pt: 'Reino Unido',\n },\n dial_code: '+44',\n code: 'GB',\n flag: '🇬🇧',\n },\n {\n name: {\n en: 'United States',\n ru: 'Соединенные Штаты',\n pl: 'Stany Zjednoczone',\n ua: 'Сполучені Штати',\n cz: 'Spojené státy',\n by: '',\n pt: 'Estados Unidos',\n },\n dial_code: '+1',\n code: 'US',\n flag: '🇺🇸',\n },\n {\n name: {\n en: 'Uruguay',\n ru: 'Уругвай',\n pl: 'Urugwaj',\n ua: 'Уругвай',\n cz: 'Uruguay',\n by: '',\n pt: 'Uruguai',\n },\n dial_code: '+598',\n code: 'UY',\n flag: '🇺🇾',\n },\n {\n name: {\n en: 'Uzbekistan',\n ru: 'Узбекистан',\n pl: 'Uzbekistan',\n ua: 'Узбекистан',\n cz: 'Uzbekistán',\n by: '',\n pt: 'Usbequistão',\n },\n dial_code: '+998',\n code: 'UZ',\n flag: '🇺🇿',\n },\n {\n name: {\n en: 'Vanuatu',\n ru: 'Вануату',\n pl: 'Vanuatu',\n ua: 'Вануату',\n cz: 'Vanuatu',\n by: '',\n pt: 'Vanuatu',\n },\n dial_code: '+678',\n code: 'VU',\n flag: '🇻🇺',\n },\n {\n name: {\n en: 'Venezuela, Bolivarian Republic of',\n ru: 'Венесуэла, Боливарианская Республика',\n pl: 'Wenezuela, Republika Boliwariańska',\n ua: 'Венесуела, Боліваріанська Республіка',\n cz: 'Venezuela, Bolívarovská republika',\n by: '',\n pt: 'Venezuela',\n },\n dial_code: '+58',\n code: 'VE',\n flag: '🇻🇪',\n },\n {\n name: {\n en: 'Viet Nam',\n ru: 'Вьетнам',\n pl: 'Wietnam',\n ua: \"В'єтнам\",\n cz: 'Vietnam',\n by: '',\n pt: 'Vietname',\n },\n dial_code: '+84',\n code: 'VN',\n flag: '🇻🇳',\n },\n {\n name: {\n en: 'Virgin Islands, British',\n ru: 'Виргинские острова, Британские',\n pl: 'Wyspy Dziewicze, Brytyjskie',\n ua: 'Віргінські острови, Британські',\n cz: 'Panenské ostrovy, Britové',\n by: '',\n pt: 'Ilhas Virgens Britânicas',\n },\n dial_code: '+1284',\n code: 'VG',\n flag: '🇻🇬',\n },\n {\n name: {\n en: 'Virgin Islands, U.S.',\n ru: 'Американские Виргинские острова',\n pl: 'Wyspy Dziewicze Stanów Zjednoczonych',\n ua: 'Віргінські острови, США',\n cz: 'Panenské ostrovy, USA',\n by: '',\n pt: 'Ilhas Virgens Americanas',\n },\n dial_code: '+1340',\n code: 'VI',\n flag: '🇻🇮',\n },\n {\n name: {\n en: 'Wallis and Futuna',\n ru: 'Уоллис и Футуна',\n pl: 'Wallis i Futuna',\n ua: 'Уолліс і Футуна',\n cz: 'Wallis a Futuna',\n by: '',\n pt: 'Wallis e Futuna',\n },\n dial_code: '+681',\n code: 'WF',\n flag: '🇼🇫',\n },\n {\n name: {\n en: 'Yemen',\n ru: 'Йемен',\n pl: 'Jemen',\n ua: 'Ємен',\n cz: 'Jemen',\n by: '',\n pt: 'Iémen',\n },\n dial_code: '+967',\n code: 'YE',\n flag: '🇾🇪',\n },\n {\n name: {\n en: 'Zambia',\n ru: 'Замбия',\n pl: 'Zambia',\n ua: 'Замбія',\n cz: 'Zambie',\n by: '',\n pt: 'Zâmbia',\n },\n dial_code: '+260',\n code: 'ZM',\n flag: '🇿🇲',\n },\n {\n name: {\n en: 'Zimbabwe',\n ru: 'Зимбабве',\n pl: 'Zimbabwe',\n ua: 'Зімбабве',\n cz: 'Zimbabwe',\n by: '',\n pt: 'Zimbabué',\n },\n dial_code: '+263',\n code: 'ZW',\n flag: '🇿🇼',\n },\n {\n name: {\n en: 'Åland Islands',\n ru: 'Аландские острова',\n pl: 'Wyspy Alandzkie',\n ua: 'Аландські острови',\n cz: 'Alandy',\n by: '',\n pt: 'Ilhas Aland',\n },\n dial_code: '+358',\n code: 'AX',\n flag: '🇦🇽',\n },\n]\n","import axios, { AxiosInstance } from 'axios'\n\nimport { getCookieByName } from '../../utils/cookies'\nimport { storage } from '../../utils/storage'\n\nconst headers: { [key: string]: string } = {\n Accept: 'application/vnd.api+json',\n 'Content-Type': 'application/vnd.api+json',\n}\n\nconst authGuestToken = storage.getItem('auth_guest_token')\nif (authGuestToken) {\n headers['Authorization-Guest'] = authGuestToken\n}\n\nexport const setAxiosHeader = (key: string, value: string | number) => {\n headers[key] = `${value}`\n}\n\ninterface IPublicRequest extends AxiosInstance {\n setBaseUrl: (baseUrl: string) => void\n setGuestToken: (guestToken: string) => void\n}\n\nexport const publicRequest: IPublicRequest = axios.create({\n baseURL: 'https://www.ticketfairy.com/api',\n headers,\n withCredentials: true,\n}) as IPublicRequest\n\npublicRequest.interceptors.request.use((config) => {\n if (getCookieByName('X-TF-ECOMMERCE')) {\n config.headers['X-TF-ECOMMERCE'] = getCookieByName('X-TF-ECOMMERCE')\n }\n\n return config\n})\n\npublicRequest.setBaseUrl = (baseUrl: string) =>\n (publicRequest.defaults.baseURL = baseUrl + '/api')\n\npublicRequest.setGuestToken = (guestToken: string) =>\n (publicRequest.defaults.headers.common['Authorization-Guest'] = guestToken)\n\nexport const setBaseUrl = (baseUrl: string) => {\n publicRequest.setBaseUrl(baseUrl)\n}\n","export function getDomain(\n url: string,\n subdomain?: string,\n publicSuffix?: string\n): string {\n let updatedUrl: any = url.replace(/(https?:\\/\\/)?(www.)?/i, '')\n\n if (!subdomain) {\n if (publicSuffix) {\n const updatedPublicSuffix = publicSuffix.startsWith('.')\n ? publicSuffix\n : '.' + publicSuffix\n updatedUrl = url.replace(updatedPublicSuffix, '').split('.')\n updatedUrl = updatedUrl.length > 0 ? updatedUrl[updatedUrl.length - 1] : ''\n updatedUrl += updatedPublicSuffix\n } else {\n updatedUrl = updatedUrl.split('.')\n updatedUrl = updatedUrl.slice(updatedUrl.length - 2).join('.')\n }\n }\n\n if (updatedUrl.indexOf('/') !== -1) {\n return updatedUrl.split('/')[0]\n }\n\n return updatedUrl\n}\n","import { getDomain } from './getDomain'\n\nlet generalDomain: string\n\nexport function setCustomCookie(name: string, value: string, days = 5) {\n let expires = ''\n if (days) {\n const date = new Date()\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000)\n expires = '; expires=' + date.toUTCString()\n }\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return\n }\n\n const { hostname } = window.location\n\n if (generalDomain && generalDomain.endsWith(getDomain(hostname))) {\n document.cookie =\n name + '=' + (value || '') + expires + `; path=/;domain=${generalDomain}`\n return\n }\n\n let previousDomain = undefined\n let domain = undefined\n do {\n previousDomain = domain\n domain = getDomain(hostname, undefined, previousDomain)\n document.cookie = name + '=' + (value || '') + expires + `; path=/;domain=${domain}`\n } while (getCookieByName(name) === '' && hostname !== domain)\n generalDomain = domain\n}\n\nexport function getCookieByName(cname: string) {\n if (typeof window === 'undefined' || typeof document === 'undefined') return ''\n const name = cname + '='\n const ca = document.cookie.split(';')\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i]\n while (c.charAt(0) === ' ') {\n c = c.substring(1)\n }\n if (c.indexOf(name) === 0) {\n return c.substring(name.length, c.length)\n }\n }\n return ''\n}\n\nexport function deleteCookieByName(name: string) {\n if (getCookieByName(name) === '') {\n return\n }\n\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return\n }\n\n const { hostname } = window.location\n\n if (generalDomain && generalDomain.endsWith(getDomain(hostname))) {\n document.cookie =\n name + `=; Path=/;domain=${generalDomain}; Expires=Thu, 01 Jan 1970 00:00:01 GMT;`\n return\n }\n\n let previousDomain = undefined\n let domain = undefined\n do {\n previousDomain = domain\n domain = getDomain(hostname, undefined, previousDomain)\n document.cookie =\n name + `=; Path=/;domain=${domain}; Expires=Thu, 01 Jan 1970 00:00:01 GMT;`\n } while (getCookieByName(name) !== '' && hostname !== domain)\n generalDomain = domain\n}\n","/**\n * Storage Abstraction Layer\n *\n * Provides a unified storage interface that works across platforms:\n * - Web: Uses localStorage\n * - React Native: Uses injected storage adapter (e.g., AsyncStorage wrapper)\n */\n\ninterface StorageAdapter {\n getItem(key: string): string | null\n setItem(key: string, value: string): void\n removeItem(key: string): void\n}\n\nclass UniversalStorage implements StorageAdapter {\n private adapter: StorageAdapter | null = null\n\n setAdapter(adapter: StorageAdapter) {\n this.adapter = adapter\n }\n\n private getStorage(): StorageAdapter {\n if (this.adapter) {\n return this.adapter\n }\n\n if (typeof window !== 'undefined' && window.localStorage) {\n return window.localStorage\n }\n\n console.warn(\n 'No storage adapter available. Using in-memory storage. Data will not persist.'\n )\n return this.memoryStorage\n }\n\n private memoryStorage: StorageAdapter = (() => {\n const store = new Map<string, string>()\n return {\n getItem: (key: string) => store.get(key) ?? null,\n setItem: (key: string, value: string) => {\n store.set(key, value)\n },\n removeItem: (key: string) => {\n store.delete(key)\n },\n }\n })()\n\n getItem(key: string): string | null {\n try {\n return this.getStorage().getItem(key)\n } catch (error) {\n console.error(`Storage getItem error for key \"${key}\":`, error)\n return null\n }\n }\n\n setItem(key: string, value: string): void {\n try {\n this.getStorage().setItem(key, value)\n } catch (error) {\n console.error(`Storage setItem error for key \"${key}\":`, error)\n }\n }\n\n removeItem(key: string): void {\n try {\n this.getStorage().removeItem(key)\n } catch (error) {\n console.error(`Storage removeItem error for key \"${key}\":`, error)\n }\n }\n}\n\nexport const storage = new UniversalStorage()\n\nexport type { StorageAdapter }\n","export const X_TF_ECOMMERCE = 'X-TF-ECOMMERCE'\nexport const FEES_STYLES = { TRADITIONAL: 'TRADITIONAL', DISPLAY_BOTH: 'DISPLAY_BOTH' }\nexport const DEFAULT_FEES_STYLE = FEES_STYLES.TRADITIONAL\n","import { publicRequest } from '../api/client/publicRequest'\nimport { DEFAULT_FEES_STYLE } from '../constants'\n\nexport interface IConfigs {\n BASE_URL: string\n CLIENT_ID: string\n CLIENT_SECRET: string\n STRIPE_PUBLISHABLE_KEY: string\n X_SOURCE_ORIGIN: string\n FEES_STYLE?: string\n [key: string]: string | number | undefined\n}\n\nexport const CONFIGS: IConfigs = { FEES_STYLE: DEFAULT_FEES_STYLE } as IConfigs\n\nexport const setConfigs = (\n configs: Partial<IConfigs> &\n Pick<\n IConfigs,\n | 'BASE_URL'\n | 'CLIENT_ID'\n | 'CLIENT_SECRET'\n | 'STRIPE_PUBLISHABLE_KEY'\n | 'X_SOURCE_ORIGIN'\n >\n) => {\n Object.keys(configs).forEach((key) => {\n const value = configs[key as keyof IConfigs]\n if (value !== undefined) {\n CONFIGS[key] = value\n }\n })\n\n publicRequest.setBaseUrl(CONFIGS.BASE_URL)\n}\n","export const isBrowser =\n typeof window !== 'undefined' && typeof window.document !== 'undefined'\n","import { AxiosRequestConfig, AxiosResponse } from 'axios'\n\nimport { CONFIGS } from '../../config'\nimport type { IAuthorizeRequestData, IProfileResponse } from '../../types/api/auth.d'\nimport type { IAxiosResponseData } from '../../types/api/axiosResponse.d'\nimport { isBrowser } from '../../utils/isBrowser'\nimport { storage } from '../../utils/storage'\nimport { publicRequest } from './publicRequest'\n\nexport const authorize = async (\n data: IAuthorizeRequestData\n): Promise<IProfileResponse> => {\n if (!isBrowser) {\n // Step 1 — get authorization code\n const step1 = new FormData()\n step1.append('email', data.email)\n step1.append('password', data.password)\n\n const authResponse: AxiosResponse<any, AxiosRequestConfig> =\n await publicRequest.post(\n `v1/oauth/authorize-rn?client_id=${CONFIGS.CLIENT_ID}`,\n step1,\n { headers: { 'Content-Type': 'multipart/form-data' } }\n )\n\n const code: string | undefined = authResponse.data?.data?.code\n if (!code) throw new Error('Authorization code not received')\n\n // Step 2 — exchange code for access token\n const step2 = new FormData()\n step2.append('code', code)\n step2.append('scope', 'profile')\n step2.append('grant_type', 'authorization_code')\n step2.append('client_id', CONFIGS.CLIENT_ID)\n step2.append('client_secret', CONFIGS.CLIENT_SECRET)\n\n const tokenResponse: AxiosResponse<any, AxiosRequestConfig> =\n await publicRequest.post('v1/oauth/access_token', step2, {\n headers: { 'Content-Type': 'multipart/form-data' },\n })\n\n const accessToken: string | undefined = tokenResponse.data?.access_token\n const refreshToken: string | undefined = tokenResponse.data?.refresh_token\n\n if (accessToken) {\n storage.setItem('access_token', accessToken)\n publicRequest.defaults.headers.common['Authorization'] = `Bearer ${accessToken}`\n }\n if (refreshToken) {\n storage.setItem('refresh_token', refreshToken)\n }\n\n // Step 3 — fetch profile with Bearer token\n return getProfileData()\n }\n\n // Web flow\n const response: AxiosResponse<IProfileResponse, AxiosRequestConfig> =\n await publicRequest.post(\n `/auth?clientId=${CONFIGS.CLIENT_ID}`,\n data,\n { withCredentials: true }\n )\n return response.data\n}\n\nexport const refreshAccessToken = async (): Promise<void> => {\n const refreshToken = storage.getItem('refresh_token')\n if (!refreshToken) throw new Error('No refresh token stored')\n\n const body = new FormData()\n body.append('grant_type', 'refresh_token')\n body.append('client_id', CONFIGS.CLIENT_ID)\n body.append('client_secret', CONFIGS.CLIENT_SECRET)\n body.append('refresh_token', refreshToken)\n\n const tokenResponse: AxiosResponse<any, AxiosRequestConfig> =\n await publicRequest.post('v1/oauth/access_token', body, {\n headers: { 'Content-Type': 'multipart/form-data' },\n })\n\n const accessToken: string | undefined = tokenResponse.data?.access_token\n const newRefreshToken: string | undefined = tokenResponse.data?.refresh_token\n\n if (accessToken) {\n storage.setItem('access_token', accessToken)\n publicRequest.defaults.headers.common['Authorization'] = `Bearer ${accessToken}`\n }\n if (newRefreshToken) {\n storage.setItem('refresh_token', newRefreshToken)\n }\n}\n\nexport const register = async (data: FormData): Promise<IProfileResponse> => {\n const response: AxiosResponse<IProfileResponse, AxiosRequestConfig> =\n await publicRequest.post('v1/oauth/register-rn', data, {\n headers: { 'Content-Type': 'multipart/form-data' },\n })\n return response.data\n}\n\nexport const getProfileData = async (): Promise<IProfileResponse> => {\n const response: AxiosResponse<IProfileResponse, AxiosRequestConfig> =\n await publicRequest.get('/customer/profile/', { withCredentials: isBrowser })\n return response.data\n}\n\nexport const logout = async (): Promise<IAxiosResponseData> => {\n storage.removeItem('access_token')\n storage.removeItem('refresh_token')\n delete publicRequest.defaults.headers.common['Authorization']\n\n if (isBrowser) {\n const response: AxiosResponse<IAxiosResponseData, AxiosRequestConfig> =\n await publicRequest.delete('/auth', { withCredentials: true })\n return response.data\n }\n\n return { success: true } as IAxiosResponseData\n}\n\n/**\n * Checks whether a given email address already exists via the `/ajax/contact-email` endpoint.\n *\n * The underlying API is expected to return a JSON object containing:\n * - `exists`: `1` if the email exists, `0` otherwise\n * - `error`: `1` if an error occurred, `0` otherwise\n * - `message`: an optional error message when `error === 1`\n *\n * This function normalizes that response to an object with:\n * - `exists`: a boolean indicating whether the email exists\n * - `error`: an optional string containing an error message, if any\n *\n * On network or unexpected errors, it returns `{ exists: false, error: 'Failed to check email' }`.\n *\n * @param {string} email - The email address to check for existence.\n * @returns {Promise<{ exists: boolean; error?: string }>} A promise that resolves to the normalized\n * result of the email existence check.\n */\nexport const checkEmailExists = async (\n email: string\n): Promise<{ exists: boolean; error?: string }> => {\n try {\n const formData = new FormData()\n formData.append('email', email)\n formData.append('is_checkout_flow', 'true')\n\n const baseUrl =\n CONFIGS.BASE_URL || publicRequest.defaults.baseURL?.replace('/api', '') || ''\n const url = `${baseUrl}/ajax/contact-email`\n\n const response: AxiosResponse<any, AxiosRequestConfig> = await publicRequest.post(\n url,\n formData,\n { headers: { 'Content-Type': 'multipart/form-data' } }\n )\n\n return {\n exists: response.data.exists === 1,\n error: response.data.error === 1 ? response.data.message : undefined,\n }\n } catch (error) {\n console.error('Error checking email:', error)\n return {\n exists: false,\n error: 'Failed to check email',\n }\n }\n}\n","import { AxiosError } from 'axios'\n\nimport { logout } from '../api/client/auth'\nimport type { IProfileData } from '../types/api/auth.d'\nimport { deleteCookieByName } from './cookies'\nimport { isBrowser } from './isBrowser'\nimport { storage } from './storage'\n\nexport const setLoggedUserData = (data: IProfileData) => ({\n id: data.id,\n first_name: data.firstName,\n last_name: data.lastName,\n email: data.email,\n confirmEmail: data.email,\n city: data?.city || '',\n country: data?.countryId || '',\n phone: data?.phone || '',\n street_address: data?.streetAddress || '',\n state: data?.stateId || '',\n zip: data?.zipCode || '',\n})\n\ninterface LogoutUserParams {\n onLogoutSuccess?: () => void\n onLogoutError?: (error: AxiosError) => void\n setIsLogged?: (isLogged: boolean) => void\n}\n\nexport const logoutUser = async ({\n onLogoutSuccess,\n onLogoutError,\n setIsLogged,\n}: LogoutUserParams) => {\n try {\n await logout()\n onLogoutSuccess && onLogoutSuccess()\n storage.removeItem('user_data')\n if (isBrowser) {\n setIsLogged && setIsLogged(false)\n deleteCookieByName('X-TF-ECOMMERCE')\n if (typeof document !== 'undefined') {\n const event = new window.CustomEvent('tf-logout')\n document.dispatchEvent(event)\n }\n }\n } catch (e) {\n onLogoutError && onLogoutError(e as AxiosError)\n }\n}\n","export const getQueryVariable = (variable: string) => {\n if (typeof window !== 'undefined') {\n const query = window.location.search.substring(1)\n const vars = query.split('&')\n for (let i = 0; i < vars.length; i++) {\n const pair = vars[i].split('=')\n if (pair[0] === variable) {\n return decodeURIComponent(pair[1])\n }\n }\n }\n return false\n}\n","/**\n * Shared formatting utilities\n */\n\nexport const formatCurrency = (amount: number, currency = 'USD'): string => {\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency,\n }).format(amount)\n}\n\nexport const formatDate = (date: Date): string => {\n return new Intl.DateTimeFormat('en-US').format(date)\n}\n\n/**\n * Formats a price value with currency symbol\n * @param value - The numeric value to format\n * @param currency - Currency symbol (default: 'US$')\n * @returns Formatted price string\n */\nexport const priceWithCurrency = (value = '', currency = 'US$'): string => {\n const num = parseFloat(value)\n const safe = Number.isFinite(num) ? num : 0\n const formatted = safe.toLocaleString('en-US', {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })\n return `${currency} ${formatted}`\n}\n","import { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios'\nimport _get from 'lodash/get'\n\nimport { CONFIGS } from '../../config/setConfigs'\nimport { isBrowser } from '../../utils/isBrowser'\nimport { getCookieByName, setCustomCookie } from '../../utils/cookies'\nimport { storage } from '../../utils/storage'\nimport { publicRequest } from './publicRequest'\n\npublicRequest.interceptors.request.use((config: InternalAxiosRequestConfig) => {\n const guestToken = storage.getItem('auth_guest_token')\n if (guestToken) {\n config.headers['Authorization-Guest'] = guestToken\n }\n\n const xtfCookie = getCookieByName('X-TF-ECOMMERCE')\n if (xtfCookie) {\n config.headers['X-TF-ECOMMERCE'] = xtfCookie\n }\n\n const additionalCookiesHeaderValue = isBrowser && typeof document !== 'undefined' ? (document.cookie ?? '') : ''\n if (additionalCookiesHeaderValue !== '') {\n config.headers['Additional-Cookies'] = additionalCookiesHeaderValue\n }\n\n if (CONFIGS.X_SOURCE_ORIGIN) {\n config.headers['X-Source-Origin'] = CONFIGS.X_SOURCE_ORIGIN\n }\n\n if (CONFIGS.BASE_URL) {\n config.baseURL = CONFIGS.BASE_URL + '/api'\n }\n\n // React Native: restore Bearer token from storage on every request\n // so authenticated requests work correctly after app restarts\n if (!isBrowser && !config.headers['Authorization']) {\n const accessToken = storage.getItem('access_token')\n if (accessToken) {\n config.headers['Authorization'] = `Bearer ${accessToken}`\n publicRequest.defaults.headers.common['Authorization'] = `Bearer ${accessToken}`\n }\n }\n\n return config\n})\n\npublicRequest.interceptors.response.use(\n (response: AxiosResponse) => {\n const authGuestToken: string | null = _get(\n response,\n 'headers.authorization-guest',\n ''\n )\n\n if (authGuestToken) {\n storage.setItem('auth_guest_token', authGuestToken)\n publicRequest.setGuestToken(authGuestToken)\n }\n\n const xtfCookie = _get(response, 'headers.x-tf-ecommerce')\n const url = _get(response, 'config.url')\n const method = _get(response, 'config.method')\n\n if (xtfCookie && !(url === '/auth' && method === 'delete')) {\n setCustomCookie('X-TF-ECOMMERCE', xtfCookie)\n }\n\n return response\n },\n (error: AxiosError) => {\n if (error?.response?.status === 401) {\n storage.removeItem('user_data')\n if (isBrowser) {\n const errorType = _get(error, 'response.data.error')\n if (errorType === 'invalid_token') {\n window.location.href = '/'\n }\n } else {\n // React Native: clear expired Bearer token so the app can re-authenticate\n storage.removeItem('access_token')\n storage.removeItem('refresh_token')\n delete publicRequest.defaults.headers.common['Authorization']\n }\n }\n\n const authGuestToken = _get(error, 'response.headers.authorization-guest')\n if (authGuestToken) {\n storage.setItem('auth_guest_token', authGuestToken)\n publicRequest.setGuestToken(authGuestToken)\n }\n\n return Promise.reject(error)\n }\n)\n","import { AxiosRequestConfig, AxiosResponse } from 'axios'\n\nimport type {\n ICartRequestData,\n ICartResponse,\n IGetCartResponse,\n} from '../../types/api/cart.d'\nimport { isBrowser } from '../../utils/isBrowser'\nimport { publicRequest } from './publicRequest'\n\nexport const addToCart = async (\n id: string | number,\n data: ICartRequestData\n): Promise<ICartResponse> => {\n const response: AxiosResponse<ICartResponse, AxiosRequestConfig> =\n await publicRequest.post(\n `v1/event/${id}/add-to-cart/`,\n { data },\n {\n headers: {\n ...publicRequest.defaults.headers.common,\n 'Referer-Url': isBrowser && typeof document !== 'undefined' ? document.referrer : '',\n },\n }\n )\n return response.data\n}\n\nexport const getCart = async (): Promise<IGetCartResponse> => {\n const response: AxiosResponse<IGetCartResponse, AxiosRequestConfig> =\n await publicRequest.get(`v1/cart`)\n return response.data\n}\n","import { AxiosRequestConfig, AxiosResponse } from 'axios'\n\nimport type { ICheckoutResponse } from '../../types/api/checkout.d'\nimport { publicRequest } from './publicRequest'\n\nexport const postOnCheckout = async (\n data: any,\n freeTicket = false\n): Promise<ICheckoutResponse> => {\n if (freeTicket) {\n delete data.attributes.city\n delete data.attributes.country\n delete data.attributes.state\n delete data.attributes.street_address\n }\n\n const response: AxiosResponse<ICheckoutResponse, AxiosRequestConfig> =\n await publicRequest.post(`v1/on-checkout`, { data })\n\n return response.data\n}\n\nexport const updateCheckout = async (data: any): Promise<ICheckoutResponse> => {\n const response: AxiosResponse<ICheckoutResponse, AxiosRequestConfig> =\n await publicRequest.post(`v1/checkout`, { data })\n\n return response.data\n}\n","import { AxiosRequestConfig, AxiosResponse } from 'axios'\nimport _forEach from 'lodash/forEach'\n\nimport type { IAxiosResponseData } from '../../types/api/axiosResponse.d'\nimport type {\n ICountriesResponse,\n IEventResponse,\n IRSVPRequestData,\n IRSVPResponse,\n IStatesResponse,\n ITicketData,\n ITicketsAdaptedResponse,\n ITicketsResponse,\n ITimeslotsAdaptedResponse,\n IWaitingListRequestData,\n IWaitingListResponse,\n} from '../../types/api/common.d'\nimport { getQueryVariable } from '../../utils/getQueryVariable'\nimport { isBrowser } from '../../utils/isBrowser'\nimport { storage } from '../../utils/storage'\nimport { publicRequest } from './publicRequest'\n\nexport const getEvent = async (\n id: string | number,\n pk?: string\n): Promise<IEventResponse> => {\n let referralValue = ''\n let invitationHash\n if (isBrowser) {\n const params = new URL(`${window.location}`)\n const referralId = params.searchParams.get('ttf_r') || ''\n const referral_key = storage.getItem('referral_key')\n const [, referralIdlocal] = (referral_key || '').split('.')\n referralValue = referralId || (referralIdlocal ?? '')\n invitationHash = params.searchParams.get('invitation-hash') || null\n }\n\n const response: AxiosResponse<IEventResponse, AxiosRequestConfig> =\n await publicRequest.get(`v1/event/${id}`, {\n params: { pk, invitationHash },\n headers: {\n ...publicRequest.defaults.headers.common,\n 'Referer-Url': isBrowser && typeof document !== 'undefined' ? document.referrer : '',\n 'Referrer-Id': isBrowser ? referralValue : '',\n },\n })\n return response.data\n}\n\nexport const getTickets = async (\n eventId: string | number,\n promoCode: string,\n pk?: string\n): Promise<ITicketsAdaptedResponse> => {\n const invitationHash = getQueryVariable('invitation-hash')\n const referralId = getQueryVariable('ttf_r')\n\n if (referralId) {\n storage.setItem('promoter_id', referralId)\n }\n\n const promoterId = storage.getItem('promoter_id')\n const params = { pk } as Record<string, string | number | undefined>\n\n if (invitationHash) {\n params['invitation-hash'] = invitationHash\n }\n\n const headers = publicRequest.defaults.headers.common\n\n if (promoterId) {\n headers['Promotion-Event'] = String(eventId)\n headers['Referrer-Id'] = isBrowser ? promoterId : ''\n }\n\n if (promoCode) {\n headers['Promotion-Event'] = String(eventId)\n headers['Promotion-Code'] = promoCode\n storage.removeItem('promoter_id')\n }\n\n const response: AxiosResponse<ITicketsResponse, AxiosRequestConfig> =\n await publicRequest.get(`v1/event/${eventId}/tickets/`, {\n params,\n headers,\n })\n\n const { tickets } = response.data.data.attributes\n const ticketsArr: ITicketData[] = []\n _forEach(tickets, (item) => {\n ticketsArr.push(item)\n })\n const adaptedResponse: AxiosResponse<ITicketsAdaptedResponse, AxiosRequestConfig> = {\n ...response,\n data: {\n ...response.data,\n data: {\n ...response.data.data,\n attributes: {\n ...response.data.data.attributes,\n tickets: ticketsArr,\n },\n },\n },\n }\n\n return adaptedResponse.data\n}\n\nexport const getTimeSlotsByDate = async (\n eventId: string | number,\n date: string,\n promoCode?: string,\n pk?: string\n): Promise<ITimeslotsAdaptedResponse> => {\n const invitationHash = getQueryVariable('invitation-hash')\n const referralId = getQueryVariable('ttf_r')\n\n if (referralId) {\n storage.setItem('promoter_id', referralId)\n }\n\n const promoterId = storage.getItem('promoter_id')\n const params = { pk } as Record<string, string | number | undefined>\n\n if (invitationHash) {\n params['invitation-hash'] = invitationHash\n }\n\n const headers = publicRequest.defaults.headers.common\n\n if (promoterId) {\n headers['Promotion-Event'] = String(eventId)\n headers['Referrer-Id'] = isBrowser ? promoterId : ''\n }\n\n if (promoCode) {\n headers['Promotion-Event'] = String(eventId)\n headers['Promotion-Code'] = promoCode\n storage.removeItem('promoter_id')\n }\n\n const response: AxiosResponse<ITimeslotsAdaptedResponse, AxiosRequestConfig> =\n await publicRequest.get(`v1/event/${eventId}/timeslots`, {\n params: {\n date,\n remove_past_slots: true,\n ...params,\n },\n headers,\n })\n return response.data\n}\n\nexport const getCountries = async (): Promise<ICountriesResponse> => {\n const response: AxiosResponse<ICountriesResponse, AxiosRequestConfig> =\n await publicRequest.get('/countries/list')\n return response.data\n}\n\nexport const getStates = async (countryId: string | number): Promise<IStatesResponse> => {\n const response: AxiosResponse<IStatesResponse, AxiosRequestConfig> =\n await publicRequest.get(`/countries/${countryId}/states/`)\n return response.data\n}\n\nexport const sendRSVPInfo = async (\n eventId: number,\n data: { data: IRSVPRequestData }\n): Promise<IRSVPResponse> => {\n const response: AxiosResponse<IRSVPResponse, AxiosRequestConfig> =\n await publicRequest.post(`v1/event/${eventId}/send-rsvp-info`, data)\n\n return response.data\n}\n\nexport const addToWaitingList = async (\n id: number,\n data: IWaitingListRequestData\n): Promise<IWaitingListResponse> => {\n const response: AxiosResponse<IWaitingListResponse, AxiosRequestConfig> =\n await publicRequest.post(`v1/event/${id}/add_to_waiting_list`, {\n data,\n })\n\n return response.data\n}\n\nexport const postReferralVisits = async (\n eventId: string,\n referralId: string\n): Promise<IAxiosResponseData> => {\n const response: AxiosResponse<IAxiosResponseData, AxiosRequestConfig> =\n await publicRequest.post(`v1/event/${eventId}/referrer/`, {\n referrer: `${referralId}`,\n })\n\n return response.data\n}\n\nexport const validatePhoneNumber = async (phone: string): Promise<IAxiosResponseData> => {\n const response: AxiosResponse<IAxiosResponseData, AxiosRequestConfig> =\n await publicRequest.get(`/v1/account/validate_phone?phone=${phone}`)\n\n return response.data\n}\n","import { AxiosRequestConfig, AxiosResponse } from 'axios'\n\nimport { CONFIGS } from '../../config'\nimport type { IOrderResponse, IOrdersResponse } from '../../types/api/orders.d'\nimport { publicRequest } from './publicRequest'\n\nexport const getOrders = async (\n page: number,\n limit: number,\n eventSlug: string\n): Promise<IOrdersResponse> => {\n const slug = eventSlug || CONFIGS.EVENT_SLUG || ''\n\n const response: AxiosResponse<IOrdersResponse, AxiosRequestConfig> =\n await publicRequest.get(\n `v1/account/orders/?page=${page}&limit=${limit}&filter[event]=${slug}&${\n CONFIGS.BRAND_SLUG\n ? `filter[brand]=${CONFIGS.BRAND_SLUG}&filter[subbrands]=true`\n : ''\n }`\n )\n\n return response.data\n}\n\nexport const getOrderDetails = async (orderId: string): Promise<IOrderResponse> => {\n const response: AxiosResponse<IOrderResponse, AxiosRequestConfig> =\n await publicRequest.get(`v1/account/order/${orderId}`)\n\n return response.data\n}\n","import { AxiosRequestConfig, AxiosResponse } from 'axios'\nimport _map from 'lodash/map'\nimport { nanoid } from 'nanoid/non-secure'\n\nimport type {\n ICheckoutCompleteDataResponse,\n IConditionsAdaptedData,\n IConditionsAdaptedDataResponse,\n IConditionsDataResponse,\n IFreeRegistrationDataResponse,\n IPaymentDataResponse,\n IPaymentSuccessDataResponse,\n} from '../../types/api/payment.d'\nimport { isBrowser } from '../../utils/isBrowser'\nimport { publicRequest } from './publicRequest'\n\nexport const getPaymentData = async (hash: string): Promise<IPaymentDataResponse> => {\n const response: AxiosResponse<IPaymentDataResponse, AxiosRequestConfig> =\n await publicRequest.get(`v1/order/${hash}/review`, {\n headers: { 'Referer-Url': isBrowser && typeof document !== 'undefined' ? document.referrer : '' },\n })\n\n return response.data\n}\n\nexport const handlePaymentSuccess = async (\n orderHash: string\n): Promise<IPaymentSuccessDataResponse> => {\n const response: AxiosResponse<IPaymentSuccessDataResponse, AxiosRequestConfig> =\n await publicRequest.post(`v1/order/${orderHash}/success`, undefined, {\n headers: {\n ...publicRequest.defaults.headers.common,\n 'Referer-Url': isBrowser && typeof document !== 'undefined' ? document.referrer : '',\n },\n })\n return response.data\n}\n\nexport const handleFreeSuccess = async (\n orderHash: string\n): Promise<IFreeRegistrationDataResponse> => {\n const response: AxiosResponse<IFreeRegistrationDataResponse, AxiosRequestConfig> =\n await publicRequest.post(\n `v1/order/${orderHash}/complete_free_registration`,\n undefined,\n { headers: { 'Referer-Url': isBrowser && typeof document !== 'undefined' ? document.referrer : '' } }\n )\n return response.data\n}\n\nexport const getConfirmationData = async (\n orderHash: string\n): Promise<ICheckoutCompleteDataResponse> => {\n const response: AxiosResponse<ICheckoutCompleteDataResponse, AxiosRequestConfig> =\n await publicRequest.get(`v1/order/${orderHash}/payment/complete`)\n return response.data\n}\n\nexport const getConditions = async (\n eventId: string\n): Promise<IConditionsAdaptedDataResponse> => {\n const response: AxiosResponse<IConditionsDataResponse, AxiosRequestConfig> =\n await publicRequest.get(`v1/event/${eventId}/conditions`)\n\n const adaptedData: IConditionsAdaptedData[] = _map(\n response.data.data.attributes,\n (item) => ({\n id: nanoid(),\n text: item,\n checked: false,\n })\n )\n\n const returnData: AxiosResponse<IConditionsAdaptedDataResponse, AxiosRequestConfig> = {\n ...response,\n data: {\n ...response.data,\n data: {\n ...response.data.data,\n attributes: adaptedData,\n },\n },\n }\n\n return returnData.data\n}\n","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nexport { nanoid, customAlphabet }\n","// Import and re-export from shared\nexport { priceWithCurrency } from 'tf-checkout-shared'\n\nexport const emptyPhone = (phone: string): string | undefined =>\n phone.length < 4 ? undefined : phone\n","import { StyleSheet } from 'react-native'\n\nimport R from '../../res'\n\nexport default StyleSheet.create({\n container: {\n marginHorizontal: 24,\n marginBottom: 50,\n },\n input: {\n marginBottom: 16,\n },\n submitButton: {\n marginVertical: 32,\n },\n submitButtonDisabled: {\n marginVertical: 32,\n backgroundColor: R.colors.disabled,\n },\n customCheckboxText: {\n paddingRight: 32,\n },\n privacyPolicyLink: {\n textDecorationLine: 'underline',\n color: 'blue',\n },\n\n skippingRootContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n flex: 1,\n },\n skippingDialogContainer: {\n backgroundColor: R.colors.white,\n alignItems: 'center',\n justifyContent: 'center',\n padding: 24,\n borderRadius: 5,\n elevation: 4,\n shadowColor: R.colors.black,\n shadowOffset: {\n width: 2,\n height: 4,\n },\n shadowOpacity: 0.5,\n shadowRadius: 3,\n },\n skippingBrandImage: {\n height: 90,\n width: 250,\n resizeMode: 'contain',\n tintColor: R.colors.black,\n },\n skippingMessage: {\n fontSize: 20,\n color: R.colors.black,\n fontWeight: '700',\n marginBottom: 24,\n },\n ttfPolicyError: {\n color: R.colors.danger,\n marginTop: 8,\n },\n})\n","import {\n BillingDetails,\n CardForm,\n CardFormView,\n initStripe,\n useConfirmPayment,\n} from '@stripe/stripe-react-native'\nimport _every from 'lodash/every'\nimport _forEach from 'lodash/forEach'\nimport _map from 'lodash/map'\nimport _mapKeys from 'lodash/mapKeys'\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react'\nimport { Alert, Text, View } from 'react-native'\nimport { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view'\n\nimport { IFetchAccessTokenResponse, IOrderReview } from '../../api/types'\nimport { CartTimer, Loading } from '../../components'\nimport Button from '../../components/button/Button'\nimport { IFormFieldProps } from '../../components/formField/types'\nimport { CheckoutCore, CheckoutCoreHandle, SessionHandle } from '../../core'\nimport { SessionHandleType } from '../../core/Session/SessionCoreTypes'\nimport { Config } from '../../helpers/Config'\nimport { priceWithCurrency } from '../../helpers/StringsHelper'\nimport { orderReviewItems } from './CheckoutData'\nimport Conditions from './components/Conditions'\nimport OrderReview from './components/OrderReview'\nimport s from './styles'\nimport { ICheckoutProps, IOrderDetails, IOrderItem } from './types'\n\n/** @deprecated Use CheckoutV2 instead */\nconst Checkout = forwardRef<SessionHandleType, ICheckoutProps>(\n (\n {\n checkoutData,\n onFetchOrderReviewError,\n onFetchOrderReviewSuccess,\n onFetchEventConditionsError,\n onFetchEventConditionsSuccess,\n onCheckoutCompletedError,\n onCheckoutCompletedSuccess,\n onPaymentError,\n onPaymentSuccess,\n onStripeInitializeError,\n texts,\n styles,\n onPressExit,\n areAlertsEnabled = true,\n areLoadingIndicatorsEnabled = true,\n onLoadingChange,\n onFetchOrderDetailsError,\n onFetchOrderDetailsSuccess,\n onCartExpired,\n shouldCartTimerNotMinimizeOnTap,\n },\n ref\n ) => {\n //#region State\n const { confirmPayment, loading: isLoadingPayment } = useConfirmPayment()\n const [isLoading, setIsLoading] = useState(true)\n const [orderReview, setOrderReview] = useState<IOrderReview>()\n const [conditionsTexts, setConditionsTexts] = useState<string[]>([])\n const [conditionsValues, setConditionsValues] = useState<boolean[]>([])\n const [orderInfo, setOrderInfo] = useState<IOrderItem[]>(orderReviewItems)\n const [paymentInfo, setPaymentInfo] = useState<CardFormView.Details>()\n const [isStripeConfigMissing, setIsStripeConfigMissing] = useState(false)\n const [isPaymentRequired, setIsPaymentRequired] = useState<boolean | undefined>(\n undefined\n )\n const [secondsLeft, setSecondsLeft] = useState<number | undefined>(undefined)\n //#endregion State\n\n //#region Ref\n const checkoutCoreRef = useRef<CheckoutCoreHandle>(null)\n const sessionHandleRef = useRef<SessionHandleType>(null)\n //#endregion Ref\n\n const showLoading = () => setIsLoading(true)\n const hideLoading = () => setIsLoading(false)\n\n const showAlert = (message: string) => {\n if (areAlertsEnabled) {\n Alert.alert('', message)\n }\n }\n\n const isCheckoutCoreRefReady = (): boolean => {\n if (!checkoutCoreRef.current) {\n onFetchOrderReviewError?.({\n message: 'CheckoutCore is not initialized',\n })\n showAlert('CheckoutCore is not initialized')\n return false\n }\n\n return true\n }\n\n //#region Imperative Handler\n useImperativeHandle(ref, () => ({\n async refreshAccessToken(refreshToken: string): Promise<IFetchAccessTokenResponse> {\n if (!sessionHandleRef.current) {\n return {\n accessTokenError: {\n message: 'Session Handle ref is not initialized',\n },\n }\n }\n\n const { accessTokenError, accessTokenData } =\n await sessionHandleRef.current!.refreshAccessToken(refreshToken)\n if (!accessTokenError && accessTokenData?.accessToken) {\n await fetchInitialData()\n }\n return {\n accessTokenData,\n accessTokenError,\n }\n },\n\n async reloadData() {\n await fetchInitialData()\n },\n }))\n //#endregion Imperative Handler\n\n //#region Fetch Data\n const fetchEventConditionsAsync = async () => {\n if (!isCheckoutCoreRefReady || !Config.EVENT_ID) {\n return\n }\n\n const { error: conditionsError, data: conditionsData } =\n await checkoutCoreRef.current!.getEventConditions()\n\n if (conditionsError) {\n hideLoading()\n onFetchEventConditionsError?.(conditionsError)\n\n return showAlert(conditionsError.message || 'Error while fetching conditions')\n }\n\n setConditionsValues(_map(conditionsData, () => false))\n setConditionsTexts(conditionsData)\n hideLoading()\n onFetchEventConditionsSuccess?.(conditionsData)\n }\n\n const fetchOrderReviewAsync = async () => {\n const { orderReviewData, orderReviewError } =\n await checkoutCoreRef.current!.getOrderReview(checkoutData.hash)\n hideLoading()\n\n if (orderReviewError) {\n hideLoading()\n setIsStripeConfigMissing(true)\n onFetchOrderReviewError?.(orderReviewError)\n\n return showAlert(orderReviewError?.message || 'Error while getting Order Review')\n }\n\n if (!orderReviewData) {\n onFetchOrderReviewError?.({\n message: 'No order review data found. Please try again later',\n })\n\n return showAlert('No order review data found. Please try again later')\n }\n\n hideLoading()\n onFetchOrderReviewSuccess?.(orderReviewData)\n setSecondsLeft(orderReviewData.expiresAt)\n\n const tOrderInfo = [...orderInfo]\n const currency = orderReviewData.reviewData.currency\n _forEach(tOrderInfo, (item) => {\n _mapKeys(orderReviewData.reviewData, (value, key) => {\n if (item.id === key) {\n //@ts-ignore\n item.title = texts?.orderReviewItems?.[key] ?? item.title\n if (key === 'price' || key === 'total') {\n item.value = priceWithCurrency(value, currency)\n } else {\n item.value = value\n }\n }\n })\n })\n\n setOrderInfo(tOrderInfo)\n setOrderReview(orderReviewData)\n\n if (orderReviewData?.reviewData.total !== '0.00') {\n if (!orderReviewData.paymentData?.stripePublishableKey) {\n onStripeInitializeError?.('Stripe is not configured for this event')\n\n showAlert('Stripe is not configured for this event.Please contact support.')\n return\n }\n\n setIsPaymentRequired(true)\n\n try {\n await initStripe({\n publishableKey: orderReviewData.paymentData.stripePublishableKey,\n stripeAccountId: orderReviewData.paymentData.stripeConnectedAccount,\n })\n } catch (stripeError) {\n onStripeInitializeError?.('Error initializing Stripe')\n }\n } else {\n setIsPaymentRequired(false)\n }\n }\n\n const fetchInitialData = async () => {\n showLoading()\n await fetchEventConditionsAsync()\n await fetchOrderReviewAsync()\n hideLoading()\n }\n //#endregion Fetch Data\n\n //#region Handlers\n const handleOnPressExit = () => {\n onPressExit()\n }\n\n const handleOnChangePaymentInfo = (details: CardFormView.Details) => {\n setPaymentInfo(details)\n }\n\n const handleOnCheckCondition = (index: number) => {\n const tConditionsValues = [...conditionsValues]\n tConditionsValues[index] = !conditionsValues[index]\n setConditionsValues(tConditionsValues)\n }\n\n const handleFetchOrderDetails = async () => {\n showLoading()\n const { orderDetailsData, orderDetailsError } =\n await checkoutCoreRef.current!.getPurchaseOrderDetails(checkoutData.id)\n hideLoading()\n\n if (orderDetailsError) {\n onFetchOrderDetailsError?.(orderDetailsError)\n return showAlert(\n orderDetailsError.message || 'Error while fetching order details'\n )\n }\n\n if (!orderDetailsData) {\n onFetchOrderDetailsError?.({\n code: 404,\n message: 'No order data found',\n })\n return showAlert('No order data found')\n }\n\n if (!orderDetailsData.items) {\n onFetchOrderDetailsError?.({\n message: 'No items found in order',\n })\n return showAlert('No items found in order')\n }\n\n if (!Config.EVENT_ID) {\n return onFetchOrderDetailsError?.({\n message: 'EventId not configured.',\n })\n }\n\n const eventIdNumber =\n typeof Config.EVENT_ID === 'number'\n ? Config.EVENT_ID\n : parseInt(Config.EVENT_ID, 10)\n\n const orderDetails: IOrderDetails = {\n eventId: eventIdNumber,\n ticketName: orderDetailsData.items[0].name,\n ticketCost: orderDetailsData.items[0].price,\n numberOfTickets: parseInt(orderDetailsData.items[0].quantity, 10),\n eventUserTickets: _map(orderDetailsData.tickets, (ticket) => ({\n hash: ticket.hash,\n ticketType: ticket.ticketType,\n holderEmail: ticket.holderEmail,\n holderPhone: ticket.holderPhone,\n holderName: ticket.holderName,\n qrData: ticket.qrData,\n pdfLink: ticket.pdfLink,\n description: ticket.description,\n descriptionPlain: ticket.descriptionPlain,\n })),\n }\n\n onFetchOrderDetailsSuccess?.(orderDetails)\n }\n\n const handleOnPressFreeRegistration = async () => {\n showLoading()\n const { freeRegistrationError } = await checkoutCoreRef.current!.freeRegistration(\n checkoutData.hash\n )\n\n if (freeRegistrationError) {\n hideLoading()\n onPaymentError?.(freeRegistrationError)\n\n return showAlert(freeRegistrationError.message || 'Error while registering')\n }\n\n hideLoading()\n await handleFetchOrderDetails()\n\n checkoutCoreRef.current?.stopCartTimer()\n onPaymentSuccess?.()\n }\n\n const handleOnPressPay = async () => {\n if (!orderReview) {\n onPaymentError?.({\n message: `Order data is missing ${JSON.stringify(orderReview)}`,\n })\n\n return showAlert('No order data found')\n }\n\n const { addressData } = orderReview\n\n showLoading()\n\n const billingDetails: BillingDetails = {\n name: `${orderReview.billingData.firstName} ${orderReview.billingData.lastName}`,\n address: {\n line1: addressData.line1,\n city: addressData.city,\n state: addressData.state,\n postalCode: addressData.postalCode,\n },\n }\n\n const { error: confirmPaymentError, paymentIntent } = await confirmPayment(\n orderReview.paymentData!.stripeClientSecret!,\n {\n paymentMethodType: 'Card',\n paymentMethodData: { billingDetails },\n }\n )\n\n if (confirmPaymentError || paymentIntent?.status !== 'Succeeded') {\n hideLoading()\n onCheckoutCompletedError?.({\n message: confirmPaymentError?.message || 'Error confirming payment',\n extraData: confirmPaymentError?.code,\n })\n\n return showAlert(confirmPaymentError?.message || 'Error confirming payment')\n }\n\n onCheckoutCompletedSuccess?.(checkoutData)\n\n const { error: onPaymentSuccessError } =\n await checkoutCoreRef.current!.paymentSuccess(checkoutData.hash)\n\n if (onPaymentSuccessError) {\n hideLoading()\n onPaymentError?.(onPaymentSuccessError)\n\n return showAlert(\n onPaymentSuccessError.message || 'Error while performing payment'\n )\n }\n\n hideLoading()\n await handleFetchOrderDetails()\n\n checkoutCoreRef.current?.stopCartTimer()\n onPaymentSuccess?.()\n }\n //#endregion\n\n const getConditions = (): IFormFieldProps[] =>\n _map(conditionsTexts, (conditionTxt, index) => {\n return {\n id: `condition${index}`,\n fieldType: 'checkbox',\n checkboxProps: {\n isActive: conditionsValues[index],\n text: conditionTxt,\n onPress: () => handleOnCheckCondition(index),\n },\n }\n })\n\n const onLoadingChangeCallback = useCallback(\n (loading: boolean) => {\n if (onLoadingChange) {\n onLoadingChange(loading)\n }\n },\n [onLoadingChange]\n )\n\n //#region useEffects\n useEffect(() => {\n onLoadingChangeCallback(isLoading)\n }, [isLoading, onLoadingChangeCallback])\n\n useEffect(() => {\n fetchInitialData()\n }, [])\n //#endregion\n\n const getIsDataValid = () => {\n if (secondsLeft === 0) {\n return false\n }\n const paymentValid = paymentInfo?.complete\n return paymentValid && _every(conditionsValues, (item) => item === true)\n }\n\n const isDataValid = getIsDataValid()\n\n const payButtonStyle = isDataValid\n ? styles?.payment?.button\n : styles?.payment?.buttonDisabled\n\n //#region RENDER\n return isStripeConfigMissing ? (\n <View style={[s.missingStripeContainer, styles?.missingStripeConfig?.container]}>\n <Text style={[s.missingStripeMessage, styles?.missingStripeConfig?.message]}>\n {texts?.missingStripeConfigMessage ||\n 'Payment handler is missing, please contact support'}\n </Text>\n\n <Button\n styles={styles?.missingStripeConfig?.exitButton}\n text={texts?.exitButton || 'Exit'}\n onPress={handleOnPressExit}\n />\n </View>\n ) : (\n <CheckoutCore\n ref={checkoutCoreRef}\n onSecondsLeftChange={setSecondsLeft}\n onCartExpired={onCartExpired}\n >\n <SessionHandle ref={sessionHandleRef}>\n <KeyboardAwareScrollView extraScrollHeight={32}>\n <View style={styles?.rootStyle}>\n <View>\n <Text style={[s.title, styles?.title]}>\n {texts?.title || 'GET YOUR TICKETS'}\n </Text>\n <Text style={[styles?.subTitle]}>\n {texts?.subTitle || 'Order review'}\n </Text>\n </View>\n <OrderReview orderItems={orderInfo} styles={styles?.orderReview} />\n {isPaymentRequired && !isStripeConfigMissing && (\n <View style={styles?.payment?.container}>\n <Text style={styles?.payment?.title}>\n {texts?.providePaymentInfo ||\n 'Please provide your payment information'}\n </Text>\n <CardForm\n onFormComplete={handleOnChangePaymentInfo}\n style={[s.card, styles?.payment?.cardContainer]}\n cardStyle={styles?.payment?.cardStyle}\n />\n </View>\n )}\n <Conditions {...getConditions()} />\n {isPaymentRequired && !isStripeConfigMissing && (\n <Button\n text={texts?.payButton || 'PAY'}\n onPress={handleOnPressPay}\n isLoading={isLoading || isLoadingPayment}\n isDisabled={!isDataValid}\n styles={{\n container: s.payButton,\n ...payButtonStyle,\n }}\n />\n )}\n {isPaymentRequired !== undefined && !isPaymentRequired && (\n <Button\n text={texts?.freeRegistrationButton || 'COMPLETE REGISTRATION'}\n onPress={handleOnPressFreeRegistration}\n isLoading={isLoading || isLoadingPayment}\n styles={styles?.freeRegistrationButton}\n isDisabled={secondsLeft === 0}\n />\n )}\n </View>\n {isLoading && areLoadingIndicatorsEnabled && <Loading />}\n </KeyboardAwareScrollView>\n {secondsLeft !== undefined && (\n <CartTimer\n secondsLeft={secondsLeft!}\n styles={styles?.cartTimer}\n texts={texts?.cartTimer}\n shouldNotMinimize={shouldCartTimerNotMinimizeOnTap}\n />\n )}\n </SessionHandle>\n </CheckoutCore>\n )\n //#endregion RENDER\n }\n)\n\nexport default Checkout\n","import { IOrderItem } from './types'\n\nexport const orderReviewItems: IOrderItem[] = [\n {\n id: 'event',\n title: 'EVENT',\n value: '',\n },\n {\n id: 'ticketType',\n title: 'TICKET TYPE',\n value: 'First RELEASE',\n },\n {\n id: 'numberOfTickets',\n title: 'NUMBER OF TICKETS',\n value: '',\n },\n {\n id: 'price',\n title: 'PRICE PER TICKET',\n value: '',\n },\n {\n id: 'total',\n title: 'TOTAL',\n value: '',\n },\n]\n","import _map from 'lodash/map'\nimport React from 'react'\nimport { View } from 'react-native'\n\nimport { Checkbox } from '../../../components'\nimport { IFormFieldProps } from '../../../components/formField/types'\nimport { ConditionsStyles as s } from './styles'\n\nconst ConditionItem = ({ id, checkboxProps }: IFormFieldProps) => (\n <Checkbox\n key={id}\n text={checkboxProps!.text}\n isActive={checkboxProps!.isActive}\n onPress={() => checkboxProps!.onPress(id!)}\n />\n)\n\nconst Conditions = (props: IFormFieldProps[]) => {\n return <View style={s.rootContainer}>{_map(props, ConditionItem)}</View>\n}\n\nexport default Conditions\n","import { StyleSheet } from 'react-native'\n\nexport const OrderReviewStyles = StyleSheet.create({\n rootContainer: {\n marginHorizontal: 0,\n marginVertical: 24,\n paddingVertical: 12,\n flex: 1,\n flexWrap: 'wrap',\n },\n orderItemContainer: {\n paddingVertical: 4,\n width: '100%',\n },\n orderItemTitle: {\n fontWeight: '800',\n fontSize: 16,\n },\n orderItemValue: {\n lineHeight: 20,\n },\n})\n\nexport const ConditionsStyles = StyleSheet.create({\n rootContainer: {\n marginVertical: 16,\n },\n})\n","import _map from 'lodash/map'\nimport React from 'react'\nimport { Text, View } from 'react-native'\n\nimport { IOrderItem, IOrderReviewProps } from '../types'\nimport { OrderReviewStyles as s } from './styles'\n\nconst OrderItem = ({ title, value, styles }: IOrderItem) => (\n <View style={[s.orderItemContainer, styles?.container]} key={`orderReview.${title}`}>\n <Text style={[s.orderItemTitle, styles?.title]}>{title}</Text>\n <Text style={[s.orderItemValue, styles?.value]} allowFontScaling={true}>\n {value}\n </Text>\n </View>\n)\n\nconst OrderReview = ({ orderItems, styles }: IOrderReviewProps) => (\n <View style={[s.rootContainer, styles?.rootContainer]}>\n {_map(orderItems, (item) => (\n <OrderItem\n key={`orderReview.${item.id}`}\n id={item.id}\n title={item.title}\n value={item.value}\n styles={styles?.item}\n />\n ))}\n </View>\n)\n\nexport default OrderReview\n","import { Platform, StyleSheet } from 'react-native'\n\nimport R from '../../res'\n\nexport default StyleSheet.create({\n title: {\n fontSize: 20,\n fontWeight: '700',\n marginBottom: 16,\n color: R.colors.primary,\n },\n subTitle: {\n fontSize: 14,\n fontWeight: '700',\n marginBottom: 16,\n color: R.colors.primary,\n },\n payButton: {\n width: '100%',\n marginVertical: 24,\n alignSelf: 'center',\n },\n card: {\n marginTop: 24,\n minHeight: Platform.OS === 'ios' ? 180 : 270,\n maxHeight: Platform.OS === 'ios' ? 300 : 350,\n width: '80%',\n borderRadius: 10,\n padding: 8,\n alignSelf: 'center',\n },\n missingStripeContainer: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n padding: 16,\n },\n missingStripeMessage: {\n fontSize: 16,\n color: R.colors.white,\n textAlign: 'center',\n marginBottom: 24,\n },\n})\n","import _find from 'lodash/find'\nimport _forEach from 'lodash/forEach'\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react'\nimport { Alert, PermissionsAndroid, Platform } from 'react-native'\nimport {\n DocumentDirectoryPath,\n DownloadDirectoryPath,\n downloadFile,\n DownloadFileOptions,\n} from 'react-native-fs'\n\nimport {\n IFetchAccessTokenResponse,\n IMyOrderDetailsData,\n IMyOrderDetailsTicket,\n} from '../../api/types'\nimport { BottomSheetHandle } from '../../components/bottomSheetModal/BottomSheetModal'\nimport { OrderDetailsCore, SessionHandle, SessionHandleType } from '../../core'\nimport { OrderDetailsCoreHandle } from '../../core/OrderDetailsCore/OrderDetailsCoreTypes'\nimport { getData, LocalStorageKeys } from '../../helpers/LocalStorage'\nimport { TicketActionType } from './components/TicketActions/TicketActionsTypes'\nimport { IOnPressTicketDownload } from './components/TicketListItem/TicketListItem'\nimport MyOrderDetailsView from './MyOrderDetailsView'\nimport { DownloadStatus, IMyOrderDetailsProps } from './types'\n\nconst MyOrderDetails = forwardRef<SessionHandleType, IMyOrderDetailsProps>(\n (\n {\n data,\n styles,\n texts,\n config,\n onDownloadStatusChange,\n downloadStatusIcons,\n onAndroidWritePermission,\n onLinkCopied,\n onPressResaleTicket,\n\n onRemoveTicketFromResaleSuccess,\n onRemoveTicketFromResaleError,\n moreButtonIcon,\n ticketActionsIcons,\n },\n ref\n ) => {\n //#region State\n const [isWriteStorageEnabled, setIsWriteStorageEnabled] = useState<\n boolean | undefined\n >(undefined)\n const [isLinkCopied, setIsLinkCopied] = useState(false)\n const [downloadStatus, setDownloadStatus] = useState<DownloadStatus | undefined>(\n undefined\n )\n const [orderInfo, setOrderInfo] = useState<IMyOrderDetailsData>(data)\n const [isLoading, setIsLoading] = useState(false)\n\n const [selectedTicket, setSelectedTicket] = useState<\n IMyOrderDetailsTicket | undefined\n >(undefined)\n //#endregion State\n\n //#region refs\n const sessionHandleRef = useRef<SessionHandleType>(null)\n const myOrderDetailsCoreRef = useRef<OrderDetailsCoreHandle>(null)\n const bottomSheetModalRef = useRef<BottomSheetHandle>(null)\n //#endregion\n\n const handleOnDownloadStatusChange = useCallback(\n (status?: DownloadStatus) => {\n onDownloadStatusChange?.(status)\n },\n [onDownloadStatusChange]\n )\n\n //#region Imperative Handler\n useImperativeHandle(ref, () => ({\n async refreshAccessToken(refreshToken: string): Promise<IFetchAccessTokenResponse> {\n if (!sessionHandleRef.current) {\n return {\n accessTokenError: {\n message: 'Session Handle ref is not initialized',\n },\n }\n }\n\n const { accessTokenError, accessTokenData } =\n await sessionHandleRef.current!.refreshAccessToken(refreshToken)\n\n return {\n accessTokenData,\n accessTokenError,\n }\n },\n\n async reloadData() {},\n async removeTicketFromResale() {},\n async resaleTicket() {},\n }))\n //#endregion Imperative Handler\n\n //#region Handlers\n const handleOnPressTicketDownload = async ({\n hash,\n pdfLink,\n }: IOnPressTicketDownload) => {\n const accessToken = await getData(LocalStorageKeys.ACCESS_TOKEN)\n if (!accessToken) {\n return setDownloadStatus(undefined)\n }\n if (!pdfLink) {\n return setDownloadStatus('failed')\n }\n\n //Define path to store file along with the extension\n const path =\n Platform.OS === 'ios'\n ? `${DocumentDirectoryPath}/${hash}.pdf`\n : `${DownloadDirectoryPath}/${hash}.pdf`\n\n const headers = {\n Accept: 'application/pdf',\n 'Content-Type': 'application/pdf',\n Authorization: `Bearer ${accessToken}`,\n }\n //Define options\n const options: DownloadFileOptions = {\n fromUrl: pdfLink,\n toFile: path,\n headers: headers,\n }\n setDownloadStatus('downloading')\n const response = await downloadFile(options).promise\n\n if (response.statusCode === 200) {\n setDownloadStatus('downloaded')\n } else {\n setDownloadStatus('failed')\n }\n\n setTimeout(() => {\n setDownloadStatus(undefined)\n }, 5000)\n }\n\n const handleRemoveTicketFromResale = async (ticket: IMyOrderDetailsTicket) => {\n if (!myOrderDetailsCoreRef.current) {\n return Alert.alert('MyOrderDetailsCoreRef is not initialized')\n }\n\n setIsLoading(true)\n const { removeTicketFromResaleData, removeTicketFromResaleError } =\n await myOrderDetailsCoreRef.current.removeTicketFromResale(ticket.hash)\n setIsLoading(false)\n\n if (removeTicketFromResaleError || !removeTicketFromResaleData) {\n onRemoveTicketFromResaleError?.(removeTicketFromResaleError!)\n return Alert.alert('', removeTicketFromResaleError?.message)\n }\n\n const updatedOrderInfo = { ...orderInfo }\n _forEach(updatedOrderInfo.tickets, (item) => {\n if (item.hash === ticket.hash) {\n item.isSellable = true\n item.isOnSale = false\n }\n })\n\n Alert.alert('', removeTicketFromResaleData.message)\n\n setOrderInfo(updatedOrderInfo)\n onRemoveTicketFromResaleSuccess?.(removeTicketFromResaleData.message)\n }\n\n const askToRemoveTicketFromResale = (ticket: IMyOrderDetailsTicket) => {\n Alert.alert(\n 'Withdraw ticket confirmation',\n 'Are you sure you want to withdraw your ticket from resale?',\n [\n {\n text: 'No',\n },\n {\n text: 'Yes, withdraw',\n onPress: () => handleRemoveTicketFromResale(ticket),\n },\n ]\n )\n }\n\n const handleOnPressResaleTicket = (ticket: IMyOrderDetailsTicket) => {\n const activeTicketType = _find(\n data.items,\n (ticketType) => ticketType.hash === ticket.ticketTypeHash\n )\n\n return onPressResaleTicket(ticket, activeTicketType!.isActive)\n }\n\n const handleCloseBottomSheet = () => {\n if (bottomSheetModalRef.current) {\n bottomSheetModalRef.current.close()\n }\n setSelectedTicket(undefined)\n }\n\n const handleOnActionSelected = async (action: TicketActionType) => {\n if (!selectedTicket) {\n return\n }\n\n switch (action) {\n case 'download-pdf':\n handleOnPressTicketDownload({\n hash: selectedTicket.hash,\n pdfLink: selectedTicket.pdfLink,\n })\n handleCloseBottomSheet()\n break\n\n case 'refund':\n break\n\n case 'sell':\n handleOnPressResaleTicket(selectedTicket)\n handleCloseBottomSheet()\n break\n\n case 'remove-from-sale':\n await handleRemoveTicketFromResale(selectedTicket)\n handleCloseBottomSheet()\n break\n\n default:\n console.log('Nothing is selected')\n }\n }\n\n const handleOnPressCopyLink = () => {\n setIsLinkCopied(true)\n onLinkCopied?.(true)\n setTimeout(() => {\n setIsLinkCopied(false)\n onLinkCopied?.(false)\n }, 3000)\n }\n //#endregion Handlers\n\n //#region Effects\n useEffect(() => {\n handleOnDownloadStatusChange(downloadStatus)\n }, [downloadStatus, handleOnDownloadStatusChange])\n\n useEffect(() => {\n if (Platform.OS === 'ios') {\n return\n }\n\n PermissionsAndroid.check(\n PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE\n ).then((result) => {\n setIsWriteStorageEnabled(result)\n })\n }, [])\n\n useEffect(() => {\n if (Platform.OS === 'android') {\n onAndroidWritePermission?.(isWriteStorageEnabled)\n }\n\n if (isWriteStorageEnabled === false && Platform.OS === 'android') {\n PermissionsAndroid.request(\n PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE\n ).then((result) => {\n setIsWriteStorageEnabled(result === 'granted')\n })\n }\n }, [isWriteStorageEnabled])\n //#endregion Effects\n\n //#region RENDER\n return (\n <OrderDetailsCore ref={myOrderDetailsCoreRef}>\n <SessionHandle ref={sessionHandleRef}>\n <MyOrderDetailsView\n data={data}\n styles={styles}\n texts={texts}\n isLinkCopied={isLinkCopied}\n onPressCopyLink={handleOnPressCopyLink}\n onPressTicketDownload={handleOnPressTicketDownload}\n downloadStatus={downloadStatus}\n config={config}\n downloadStatusIcons={downloadStatusIcons}\n onPressResaleTicket={handleOnPressResaleTicket}\n onPressRemoveTicketFromResale={askToRemoveTicketFromResale}\n isLoading={isLoading}\n moreButtonIcon={moreButtonIcon}\n onTicketSelection={setSelectedTicket}\n selectedTicket={selectedTicket}\n onActionSelected={handleOnActionSelected}\n ticketActionsIcons={ticketActionsIcons}\n bottomSheetModalRef={bottomSheetModalRef}\n />\n </SessionHandle>\n </OrderDetailsCore>\n )\n //#endregion RENDER\n }\n)\n\nexport default MyOrderDetails\n","import Clipboard from '@react-native-clipboard/clipboard'\nimport _map from 'lodash/map'\nimport React, { FC } from 'react'\nimport { Image, SectionList, Text, TouchableOpacity, View } from 'react-native'\n\nimport { IMyOrderDetailsItem, IMyOrderDetailsTicket } from '../../api/types'\nimport { BottomSheetModal, Loading } from '../../components'\nimport R from '../../res'\nimport Notification from './components/Notification'\nimport TicketActions from './components/TicketActions/TicketActions'\nimport { TicketActionType } from './components/TicketActions/TicketActionsTypes'\nimport TicketListItem from './components/TicketListItem/TicketListItem'\nimport s from './styles'\nimport { IMyOrderDetailsViewProps, IOrderDetailsSectionData } from './types'\n\nconst MyOrderDetailsView: FC<IMyOrderDetailsViewProps> = ({\n data: { header, items, tickets },\n styles,\n texts,\n isLinkCopied,\n onPressCopyLink,\n downloadStatus,\n config = {\n areActivityIndicatorsEnabled: true,\n areAlertsEnabled: true,\n },\n isLoading,\n\n onTicketSelection,\n selectedTicket,\n onActionSelected,\n ticketActionsIcons,\n bottomSheetModalRef,\n moreButtonIcon,\n}) => {\n //#region Handlers\n const onCopyLinkHandler = () => {\n if (isLinkCopied) {\n return\n }\n Clipboard.setString(header.shareLink)\n onPressCopyLink()\n }\n\n const handleOnTicketSelection = (ticket: IMyOrderDetailsTicket) => {\n onTicketSelection(ticket)\n }\n\n const handleHideActionsModal = () => {\n onTicketSelection(undefined)\n }\n\n const handleOnActionSelected = (actionType: TicketActionType) => {\n onActionSelected(actionType)\n }\n //#endregion\n\n const copyIconTint = styles?.header?.shareLink?.copyIconTint || R.colors.black\n const copyIconTintActive =\n styles?.header?.shareLink?.copyIconTintActive || R.colors.validGreen\n const title = texts?.title || 'ORDER DETAILS'\n const subTitle = texts?.subTitle || 'ORDER SUMMARY'\n const referralLink =\n texts?.referralLink || 'Your personal share link for this event is:'\n const itemsTotal = texts?.listItem?.total || 'Total'\n const itemsTicketType = texts?.listItem?.ticketType || 'Ticket Type: '\n const itemsPrice = texts?.listItem?.price || 'Price: '\n const itemsQuantity = texts?.listItem?.quantity || 'Quantity: '\n\n const ticketsTitle = texts?.ticketsTitle || 'Your Tickets: '\n const ticketsId = texts?.ticketItem?.ticketId || 'Ticket ID: '\n const ticketsType = texts?.ticketItem?.ticketType || 'Ticket Type: '\n const ticketsHolderName = texts?.ticketItem?.holderName || 'Ticket Holder Name: '\n const ticketsStatus = texts?.ticketItem?.status || 'Status: '\n const copyText = texts?.copyText?.copy || 'Copy'\n const copiedText = texts?.copyText?.copied || 'Copied'\n\n const soFarText = texts?.referral?.soFar || `So far, you've referred`\n const ticketsText = texts?.referral?.tickets || `tickets.`\n const sellTicket = texts?.sellTicket || 'Sell Ticket'\n const removeTicketFromResale = texts?.removeTicketFromResale || 'Remove from resale'\n const download = texts?.ticketItem?.download || `Download`\n\n const renderShareLink = () => (\n <View style={[s.shareLinkContainer, styles?.header?.shareLink?.container]}>\n <Text\n numberOfLines={1}\n ellipsizeMode=\"head\"\n style={styles?.header?.shareLink?.link}\n >\n {header.shareLink}\n </Text>\n <TouchableOpacity\n style={[s.copyContainer, styles?.header?.shareLink?.copyContainer]}\n onPress={onCopyLinkHandler}\n >\n <Text style={[s.copyText, styles?.header?.shareLink?.copyText]}>\n {isLinkCopied ? copiedText : copyText}\n </Text>\n <Image\n source={isLinkCopied ? R.icons.check : R.icons.copy}\n style={[\n s.copyIcon,\n styles?.header?.shareLink?.copyIcon,\n {\n tintColor: isLinkCopied ? copyIconTintActive : copyIconTint,\n },\n ]}\n />\n </TouchableOpacity>\n </View>\n )\n\n const renderHeader = () => (\n <View style={styles?.header?.container}>\n <Text style={styles?.header?.title}>{title}</Text>\n <Text style={styles?.header?.subTitle}>{subTitle}</Text>\n <Text style={styles?.header?.shareLink?.message}>{referralLink} </Text>\n {header?.shareLink && renderShareLink()}\n <Text style={styles?.header?.shareLink?.referrals}>\n {soFarText}{' '}\n <Text style={styles?.header?.shareLink?.referralValue}>\n {header.salesReferred}\n </Text>{' '}\n {ticketsText}\n </Text>\n </View>\n )\n\n const parsedItems: IOrderDetailsSectionData[] | undefined = items\n ? _map(items, (item) => {\n return {\n id: `${item.name}.${item.price}`,\n item: item,\n }\n })\n : undefined\n\n const parsedTickets = _map(tickets, (item) => {\n return {\n id: `${item.hash}`,\n item: item,\n }\n })\n\n const itemsData = [\n {\n title: items ? texts?.listItem?.title || 'Items' : '',\n data: parsedItems || [],\n renderItem: ({ item }: any) => renderItemComp(item),\n id: 0,\n },\n {\n title: ticketsTitle,\n data: parsedTickets,\n renderItem: ({ item }: any) => _renderTicket(item),\n id: 1,\n },\n ]\n\n const renderItemComp = ({ item }: { item: IMyOrderDetailsItem }) =>\n item ? (\n <View style={[s.listItemContainer, styles?.listItem?.container]}>\n <View style={styles?.listItem?.innerLeftContainer}>\n <Text style={styles?.listItem?.rowPlaceholder}>\n {itemsTicketType} <Text style={styles?.listItem?.rowValue}>{item.name}</Text>\n </Text>\n <View style={s.rowContainer}>\n <Text style={styles?.listItem?.rowPlaceholder}>{itemsPrice}</Text>\n <Text style={styles?.listItem?.rowValue}>\n {item.currency}\n {item.price}\n </Text>\n </View>\n <View style={s.rowContainer}>\n <Text style={styles?.listItem?.rowPlaceholder}>{itemsQuantity}</Text>\n <Text style={styles?.listItem?.rowValue}>{item.quantity}</Text>\n </View>\n </View>\n <View\n style={[s.listItemInnerRightContainer, styles?.listItem?.innerRightContainer]}\n >\n <Text style={styles?.listItem?.rowPlaceholder}>{itemsTotal}</Text>\n <Text style={styles?.listItem?.rowValue}>\n {item.currency}\n {item.total}\n </Text>\n </View>\n </View>\n ) : null\n\n const _renderTicket = ({ item }: { item: IMyOrderDetailsTicket }) => (\n <TicketListItem\n data={item}\n styles={styles?.ticketItem}\n texts={{\n ticketType: ticketsType,\n holderName: ticketsHolderName,\n ticketId: ticketsId,\n status: ticketsStatus,\n download: download,\n sellTicket: sellTicket,\n removeTicketFromResale: removeTicketFromResale,\n }}\n onPressActionsButton={handleOnTicketSelection}\n moreButtonIcon={moreButtonIcon || R.icons.more}\n />\n )\n\n return (\n <View style={[s.rootContainer, styles?.rootContainer]}>\n <SectionList\n ListHeaderComponent={renderHeader}\n //@ts-ignore\n sections={[...itemsData]}\n renderSectionHeader={({ section }) => {\n if (section.id === 0) {\n if (!items) {\n return null\n }\n }\n return <Text style={styles?.sectionHeader}>{section.title}</Text>\n }}\n renderSectionFooter={({ section }) => {\n if (section.id === 0 && parsedItems) {\n return (\n <View style={[s.sectionFooterContainer, styles?.section0Footer?.container]}>\n <Text style={styles?.section0Footer?.label}>{itemsTotal}</Text>\n <Text style={styles?.section0Footer?.value}>\n {parsedItems ? parsedItems[0].item.currency : ''} {header.total}\n </Text>\n </View>\n )\n }\n return null\n }}\n />\n {config?.areAlertsEnabled &&\n (downloadStatus === 'downloaded' || downloadStatus === 'failed') && (\n <Notification\n isSuccess={downloadStatus === 'downloaded'}\n textSuccess={texts?.downloadNotification?.successMessage}\n textError={texts?.downloadNotification?.errorMessage}\n />\n )}\n {isLoading && <Loading />}\n\n {selectedTicket && (\n <BottomSheetModal\n onClose={handleHideActionsModal}\n styles={styles?.bottomSheetModal}\n texts={texts?.bottomSheetModal}\n ref={bottomSheetModalRef}\n content={\n <TicketActions\n onSelectAction={handleOnActionSelected}\n ticket={selectedTicket}\n styles={styles?.ticketActions}\n texts={texts?.ticketActions}\n icons={ticketActionsIcons}\n />\n }\n />\n )}\n </View>\n )\n}\n\nexport default MyOrderDetailsView\n","import React, { FC } from 'react'\nimport { Image, ImageSourcePropType, Text, View } from 'react-native'\n\nimport R from '../../../res'\nimport { NotificationStyles as s } from './styles'\n\nexport interface INotificationIcons {\n success?: ImageSourcePropType\n error?: ImageSourcePropType\n}\n\nexport interface INotificationProps {\n isSuccess: boolean\n textSuccess?: string\n textError?: string\n\n icons?: INotificationIcons\n}\n\nconst Notification: FC<INotificationProps> = ({\n isSuccess,\n textSuccess = 'File downloaded successfully',\n textError = 'There was an error downloading the file',\n icons,\n}) => {\n const textToShow = isSuccess ? textSuccess : textError\n const successIcon = icons?.success || R.icons.check\n const errorIcon = icons?.error || R.icons.error\n return (\n <View style={s.rootContainer}>\n <Text style={s.text}>{textToShow}</Text>\n <Image\n source={isSuccess ? successIcon : errorIcon}\n style={isSuccess ? s.iconSuccess : s.iconError}\n />\n </View>\n )\n}\n\nexport default Notification\n","import { StyleSheet } from 'react-native'\n\nimport R from '../../../res'\n\nexport const NotificationStyles = StyleSheet.create({\n rootContainer: {\n padding: 24,\n backgroundColor: R.colors.white,\n position: 'absolute',\n bottom: 48,\n left: 24,\n right: 24,\n borderRadius: 2,\n elevation: 5,\n shadowColor: R.colors.black,\n shadowOffset: {\n width: 1,\n height: 5,\n },\n shadowRadius: 2,\n shadowOpacity: 0.2,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n text: {\n fontSize: 16,\n color: R.colors.black,\n },\n iconSuccess: {\n tintColor: R.colors.validGreen,\n height: 16,\n width: 16,\n resizeMode: 'contain',\n },\n iconError: {\n tintColor: R.colors.danger,\n height: 16,\n width: 16,\n resizeMode: 'contain',\n },\n})\n","import React, { FC } from 'react'\nimport {\n Image,\n ImageSourcePropType,\n ScrollView,\n Text,\n TouchableOpacity,\n View,\n} from 'react-native'\n\nimport { ITicketActionsProps } from './TicketActionsTypes'\n\nconst TicketActions: FC<ITicketActionsProps> = ({\n onSelectAction,\n ticket,\n icons,\n texts,\n styles,\n}) => {\n const handleOnPressDownload = () => onSelectAction('download-pdf')\n const handleOnPressSell = () => onSelectAction('sell')\n const handleOnPressRemoveFromSale = () => onSelectAction('remove-from-sale')\n\n const renderButton = (\n onPress: () => void,\n text: string,\n icon?: ImageSourcePropType\n ) => (\n <TouchableOpacity onPress={onPress} style={styles?.buttonContainer}>\n <View style={styles?.buttonContent}>\n {!!icon && <Image source={icon} style={styles?.icon} />}\n <Text style={styles?.text}>{text}</Text>\n </View>\n </TouchableOpacity>\n )\n\n const downloadPdf =\n ticket.pdfLink &&\n renderButton(\n handleOnPressDownload,\n texts?.downloadPdf || 'Download PDF',\n icons?.downloadPdf\n )\n\n const sellTicket =\n ticket.isSellable &&\n !ticket.isOnSale &&\n renderButton(handleOnPressSell, texts?.sell || 'Sell Ticket', icons?.sell)\n\n const removeFromResale =\n !ticket.isSellable &&\n ticket.isOnSale &&\n renderButton(\n handleOnPressRemoveFromSale,\n texts?.removeFromSale || 'Remove from resale',\n icons?.removeFromSale\n )\n\n return (\n <ScrollView style={[styles?.rootScrollViewContainer]}>\n {downloadPdf}\n {sellTicket}\n {removeFromResale}\n </ScrollView>\n )\n}\n\nexport default TicketActions\n","import React from 'react'\nimport { Image, Text, TouchableOpacity, View } from 'react-native'\n\nimport R from '../../../../res'\nimport s from './TicketListItemStyles'\nimport { ITicketListItemProps } from './TicketListItemTypes'\n\nexport interface IOnPressTicketDownload {\n pdfLink?: string\n hash: string\n}\n\nconst TicketListItem = ({\n styles,\n texts,\n data,\n moreButtonIcon,\n onPressActionsButton,\n}: ITicketListItemProps) => {\n const handleOnPressActionsButton = () => {\n onPressActionsButton(data)\n }\n\n return (\n <View>\n <View style={[s.rootContainer, styles?.rootContainer]}>\n <View style={styles?.leftContent}>\n <View style={s.rowContainer}>\n <Text style={styles?.rowPlaceholder}>{texts.ticketId}</Text>\n <Text style={styles?.rowValue}>{data.hash}</Text>\n </View>\n <View style={s.rowContainer}>\n <Text style={styles?.rowPlaceholder}>{texts.ticketType}</Text>\n <Text style={styles?.rowValue}>{data.ticketType}</Text>\n </View>\n <View style={s.rowContainer}>\n <Text style={styles?.rowPlaceholder}>{texts.holderName}</Text>\n <Text style={styles?.rowValue}>{data.holderName}</Text>\n </View>\n </View>\n\n <View style={[s.rightContent, styles?.rightContent]}>\n <Text style={styles?.rowPlaceholder}>\n {texts.status}\n <Text style={styles?.rowValue}>{data.status}</Text>\n </Text>\n\n <TouchableOpacity\n style={[s.moreButton, styles?.moreButton]}\n onPress={handleOnPressActionsButton}\n >\n <Image\n source={moreButtonIcon || R.icons.more}\n style={[s.moreButtonIcon, styles?.moreButtonIcon]}\n />\n </TouchableOpacity>\n </View>\n </View>\n </View>\n )\n}\n\nexport default TicketListItem\n","import { StyleSheet } from 'react-native'\n\nexport default StyleSheet.create({\n rootContainer: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n borderWidth: 2,\n marginVertical: 8,\n },\n rightContent: {\n justifyContent: 'space-between',\n alignItems: 'flex-end',\n },\n rowContainer: {\n flexDirection: 'row',\n },\n downloadButtonText: {\n fontSize: 12,\n },\n downloadButton: {\n height: 30,\n marginVertical: 8,\n },\n moreButton: {\n marginRight: 4,\n marginBottom: 4,\n },\n moreButtonIcon: {\n height: 25,\n width: 30,\n resizeMode: 'contain',\n },\n})\n","import { StyleSheet } from 'react-native'\n\nexport default StyleSheet.create({\n rootContainer: {\n flex: 1,\n },\n shareLinkContainer: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n copyContainer: {\n alignItems: 'center',\n borderWidth: 1,\n padding: 4,\n justifyContent: 'center',\n flexDirection: 'row',\n },\n copyText: {\n fontSize: 11,\n },\n copyIcon: {\n height: 16,\n width: 16,\n marginLeft: 4,\n resizeMode: 'contain',\n },\n sectionFooterContainer: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n\n listItemContainer: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n borderWidth: 2,\n marginVertical: 8,\n },\n rowContainer: {\n flexDirection: 'row',\n },\n listItemInnerRightContainer: {\n justifyContent: 'center',\n alignItems: 'flex-end',\n },\n\n ticketItemContainer: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n borderWidth: 2,\n marginVertical: 8,\n },\n ticketItemInnerRightContainer: {\n justifyContent: 'center',\n alignItems: 'flex-end',\n },\n})\n","import _map from 'lodash/map'\nimport _sortBy from 'lodash/sortBy'\nimport _uniqBy from 'lodash/uniqBy'\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react'\nimport { Alert } from 'react-native'\n\nimport {\n IFetchAccessTokenResponse,\n IMyOrdersData,\n IMyOrdersOrder,\n IMyOrdersRequestParams,\n MyOrderRequestFromType,\n} from '../../api/types'\nimport { IDropdownItem } from '../../components/dropdown/types'\nimport { MyOrdersCore, MyOrdersCoreHandle, SessionHandle } from '../../core'\nimport { SessionHandleType } from '../../core/Session/SessionCoreTypes'\nimport { IError } from '../../types'\nimport MyOrdersView from './MyOrdersView'\nimport { IMyOrdersProps } from './types'\nimport { logger } from '../../utils/Logger'\n\nconst MyOrders = forwardRef<SessionHandleType, IMyOrdersProps>(\n (\n {\n onSelectOrder,\n onFetchOrderDetailsError,\n onFetchMyOrdersError,\n onFetchMyOrdersSuccess,\n onFetchOrderDetailsSuccess,\n onLoadingChange,\n styles,\n texts,\n config,\n },\n ref\n ) => {\n //#region State\n const [isLoading, setIsLoading] = useState(true)\n const [isRefreshing, setIsRefreshing] = useState(false)\n const [isGettingEventDetails, setIsGettingEventDetails] = useState(false)\n const [myEvents, setMyEvents] = useState<IDropdownItem[]>([])\n const [selectedEvent, setSelectedEvent] = useState<IDropdownItem>({\n label: texts?.selectEventPlaceholder || 'Select event',\n value: '',\n })\n\n const [selectedTimeFilter, setSelectedTimeFilter] = useState<IDropdownItem>({\n label: texts?.selectTimeFilterPlaceholder || 'Select time filter',\n value: '',\n })\n const [myOrders, setMyOrders] = useState<IMyOrdersOrder[]>([])\n //#endregion\n\n const timeFilters: IDropdownItem[] = [\n {\n label: texts?.timeFilters?.upcoming || 'Upcoming events',\n value: 'upcoming_events',\n },\n {\n label: texts?.timeFilters?.ongoingAndUpcoming || 'Ongoing and upcoming events',\n value: 'ongoing_and_upcoming_events',\n },\n {\n label: texts?.timeFilters?.ongoing || 'Ongoing events',\n value: 'ongoing_events',\n },\n {\n label: texts?.timeFilters?.past || 'Past events',\n value: 'past_events',\n },\n ]\n\n //#region Refs\n const currentPage = useRef(1)\n const myOrdersCoreRef = useRef<MyOrdersCoreHandle>(null)\n const sessionHandleRef = useRef<SessionHandleType>(null)\n //#endregion\n\n const showAlert = (text: string) => {\n if (config?.areAlertsEnabled) {\n Alert.alert('', text)\n }\n }\n\n const isMyOrdersCoreRefReady = (): boolean => {\n if (!myOrdersCoreRef.current) {\n onFetchMyOrdersError?.({\n message: 'MyOrdersCore is not initialized',\n })\n showAlert('MyOrdersCore is not initialized')\n return false\n }\n\n return true\n }\n\n //#region Fetch data\n const getOrdersAsync = async (): Promise<undefined | IMyOrdersData> => {\n if (!isMyOrdersCoreRefReady()) {\n return\n }\n\n setIsLoading(true)\n const validSelectedEvent = selectedEvent.value === '' ? null : selectedEvent\n\n const myOrdersRequestParams: IMyOrdersRequestParams = {\n limit: 20,\n page: currentPage.current,\n filter:\n validSelectedEvent?.value.toString() === 'none'\n ? ''\n : validSelectedEvent?.value.toString(),\n from:\n selectedTimeFilter.value === 'none'\n ? ''\n : (selectedTimeFilter.value as MyOrderRequestFromType),\n }\n\n const { myOrdersData, myOrdersError } =\n await myOrdersCoreRef.current!.getMyOrders(myOrdersRequestParams)\n\n setIsLoading(false)\n\n if (myOrdersError) {\n onFetchMyOrdersError?.(myOrdersError)\n showAlert(myOrdersError.message)\n return undefined\n }\n\n if (!myOrdersData) {\n const altError: IError = {\n message: 'My orders returned no data',\n }\n onFetchMyOrdersError?.(altError)\n showAlert(altError.message)\n return undefined\n }\n\n onFetchMyOrdersSuccess?.(myOrdersData)\n\n const events = _sortBy(\n _map(myOrdersData.events, (item) => {\n return {\n label: item.event_name,\n value: item.url_name,\n }\n }),\n 'value'\n )\n\n setMyEvents(events)\n\n return myOrdersData\n }\n\n const getOrders = async () => {\n const fetchedOrders = await getOrdersAsync()\n setMyOrders(fetchedOrders?.orders ?? [])\n }\n\n const getMoreOrders = async () => {\n const fetchedOrders = await getOrdersAsync()\n const uniqOrders = _uniqBy(\n [...myOrders, ...(fetchedOrders?.orders ?? [])],\n (item) => item.id\n )\n setMyOrders(uniqOrders)\n }\n //#endregion Fetch data\n\n //#region Imperative Handler\n useImperativeHandle(ref, () => ({\n async refreshAccessToken(refreshToken: string): Promise<IFetchAccessTokenResponse> {\n logger.debug('MyOrders', 'refreshAccessToken', { refreshToken })\n if (!sessionHandleRef.current) {\n logger.debug('MyOrders', 'refreshAccessToken', {\n message: 'Session Handle ref is not initialized',\n })\n return {\n accessTokenError: {\n message: 'Session Handle ref is not initialized',\n },\n }\n }\n\n const { accessTokenError, accessTokenData } =\n await sessionHandleRef.current!.refreshAccessToken(refreshToken)\n logger.debug('MyOrders', 'refreshAccessToken', {\n accessTokenError,\n accessTokenData,\n })\n if (!accessTokenError && accessTokenData?.accessToken) {\n logger.debug('MyOrders', 'refreshAccessToken', {\n message: 'Access token refreshed successfully',\n })\n await getOrders()\n }\n return {\n accessTokenData,\n accessTokenError,\n }\n },\n\n async reloadData() {\n logger.debug('MyOrders', 'reloadData')\n await getOrders()\n },\n }))\n //#endregion Imperative Handler\n\n //#region Handlers\n const handleOnRefresh = async () => {\n setIsRefreshing(true)\n await getOrders()\n setIsRefreshing(false)\n }\n\n const handleOnLoadingChange = useCallback(\n (loading: boolean) => {\n onLoadingChange?.(loading)\n },\n [onLoadingChange]\n )\n\n const handleOnChangeTimeFilter = (item: IDropdownItem) => {\n setMyOrders([])\n setSelectedEvent({\n label: texts?.selectEventPlaceholder || 'Select event',\n value: '',\n })\n\n if (item.value !== selectedTimeFilter.value) {\n currentPage.current = 1\n setSelectedTimeFilter(item)\n }\n }\n\n const handleOnChangeEvent = (event: IDropdownItem) => {\n setMyOrders([])\n\n if (event.value !== selectedEvent.value || event.value === '') {\n currentPage.current = 1\n setSelectedEvent(event)\n }\n }\n\n const handleOnFetchMoreOrders = () => {\n if (myOrders.length < 8) {\n return\n }\n if (!isLoading) {\n currentPage.current = currentPage.current + 1\n getMoreOrders()\n }\n }\n\n const handleOnSelectOrder = async (order: IMyOrdersOrder) => {\n if (!isMyOrdersCoreRefReady()) {\n return\n }\n\n setIsGettingEventDetails(true)\n\n const { orderDetailsData, orderDetailsError } =\n await myOrdersCoreRef.current!.getOrderDetails(order.id)\n\n setIsGettingEventDetails(false)\n\n if ((!orderDetailsData || orderDetailsError) && onFetchOrderDetailsError) {\n showAlert(orderDetailsError?.message ?? 'Error fetching order details')\n return onFetchOrderDetailsError(\n orderDetailsError || {\n message: 'Order details returned no data',\n }\n )\n }\n\n if (orderDetailsData) {\n onFetchOrderDetailsSuccess?.(orderDetailsData)\n onSelectOrder(orderDetailsData)\n }\n }\n //#endregion\n\n //#region useEffect\n useEffect(() => {\n handleOnLoadingChange(isLoading || isGettingEventDetails)\n }, [handleOnLoadingChange, isLoading, isGettingEventDetails])\n\n useEffect(() => {\n const _fetchMyOrders = async () => {\n await getOrders()\n }\n _fetchMyOrders()\n }, [])\n\n useEffect(() => {\n if (selectedEvent.value !== '' || selectedTimeFilter.value !== '') {\n getOrders()\n }\n }, [selectedEvent, selectedTimeFilter])\n //#endregion useEffect\n\n //#region Return\n return (\n <MyOrdersCore ref={myOrdersCoreRef}>\n <SessionHandle ref={sessionHandleRef}>\n <MyOrdersView\n myEvents={myEvents}\n selectedEvent={selectedEvent}\n onChangeEvent={handleOnChangeEvent}\n myOrders={myOrders}\n onSelectOrder={handleOnSelectOrder}\n onRefresh={handleOnRefresh}\n isLoading={isLoading}\n isGettingEventDetails={isGettingEventDetails}\n styles={styles}\n config={config}\n onFetchMoreOrders={handleOnFetchMoreOrders}\n texts={texts}\n timeFilters={timeFilters}\n selectedTimeFilter={selectedTimeFilter}\n onChangeTimeFilter={handleOnChangeTimeFilter}\n isRefreshing={isRefreshing}\n />\n </SessionHandle>\n </MyOrdersCore>\n )\n //#endregion Return\n }\n)\n\nexport default MyOrders\n","import React, { FC, useCallback, useMemo, useRef } from 'react'\nimport {\n ActivityIndicator,\n FlatList,\n Image,\n RefreshControl,\n SafeAreaView,\n StyleProp,\n Text,\n TextStyle,\n TouchableOpacity,\n View,\n} from 'react-native'\n\nimport { IMyOrdersOrder } from '../../api/types'\nimport { Dropdown, Loading } from '../../components'\nimport { IDropdownStyles } from '../../components/dropdown/types'\nimport R from '../../res'\nimport OrderListItem from './components/OrderListItem'\nimport { MyOrdersViewStyles as s } from './styles'\nimport { IMyOrdersViewProps } from './types'\n\nconst MyOrdersView: FC<IMyOrdersViewProps> = ({\n myEvents,\n onChangeEvent,\n selectedEvent,\n myOrders,\n onSelectOrder,\n styles,\n isLoading,\n onRefresh,\n isGettingEventDetails,\n config,\n onFetchMoreOrders,\n texts,\n onChangeTimeFilter,\n timeFilters,\n selectedTimeFilter,\n isRefreshing,\n}) => {\n const onEndReachedCalledDuringMomentum = useRef(false)\n //#region Handlers\n const handleOnSelectOrder = (order: IMyOrdersOrder) => {\n if (onSelectOrder) {\n onSelectOrder(order)\n }\n }\n\n const handleOnReachEnd = () => {\n if (!onEndReachedCalledDuringMomentum.current) {\n onFetchMoreOrders()\n onEndReachedCalledDuringMomentum.current = true\n }\n }\n\n const handleOnMomentumScrollBegin = () => {\n onEndReachedCalledDuringMomentum.current = false\n }\n //#endregion Handlers\n\n //#region Renders\n const renderOrderListItem = useCallback(\n ({ item }: { item: any }) => (\n <OrderListItem\n order={item}\n onSelectOrder={handleOnSelectOrder}\n styles={styles?.orderListItem}\n />\n ),\n\n [handleOnSelectOrder]\n )\n\n const renderRefreshControl = (\n <RefreshControl\n enabled={false}\n tintColor={styles?.refreshControlColor || R.colors.primary}\n refreshing={!!isLoading}\n onRefresh={onRefresh}\n />\n )\n\n const dropdownStyles = useMemo<IDropdownStyles>(\n () => ({\n container: s.eventsDropdownContainer,\n button: s.eventsDropdownButton,\n label: {\n maxWidth: '100%',\n ...styles?.eventsDropdown?.label,\n },\n icon: {},\n dialog: {},\n flatListContainer: {},\n }),\n []\n )\n\n const onClearSelectedEvent = () =>\n onChangeEvent({\n label: texts?.selectEventPlaceholder || 'Select event',\n value: 'none',\n })\n\n const onClearSelectedTimeFilter = () =>\n onChangeTimeFilter({\n label: texts?.selectTimeFilterPlaceholder || 'Select time filter',\n value: 'none',\n })\n\n const eventsDropdown = (\n <View style={[s.eventsContainer, styles?.eventsContainer]}>\n <View style={[s.eventsSelectionContainer, styles?.eventsSelectionContainer]}>\n <Dropdown\n items={myEvents}\n onSelectItem={onChangeEvent}\n selectedOption={selectedEvent}\n styles={dropdownStyles}\n />\n <TouchableOpacity onPress={onClearSelectedEvent}>\n <Image\n source={R.icons.error}\n style={[s.clearEventSelectionIcon, styles?.clearEventSelectionIcon]}\n />\n </TouchableOpacity>\n </View>\n </View>\n )\n\n const timeFilterDropdown = (\n <View style={[s.eventsContainer, styles?.timeFilters?.container]}>\n <View style={[s.eventsSelectionContainer, styles?.timeFilters?.selectionContainer]}>\n <Dropdown\n items={timeFilters}\n onSelectItem={onChangeTimeFilter}\n selectedOption={selectedTimeFilter}\n styles={dropdownStyles}\n />\n <TouchableOpacity onPress={onClearSelectedTimeFilter}>\n <Image\n source={R.icons.error}\n style={[s.clearEventSelectionIcon, styles?.timeFilters?.clearSelectionIcon]}\n />\n </TouchableOpacity>\n </View>\n </View>\n )\n //#endregion Renders\n\n //#region Return\n return (\n <View style={[s.rootContainer, styles?.rootContainer]}>\n <SafeAreaView style={[s.safeArea, styles?.safeArea]}>\n <Text style={[s.eventsTitle, styles?.eventsTitle]}>\n {texts?.title || 'Events'}\n </Text>\n {!config?.isTimeFilterDropdownHidden && timeFilterDropdown}\n {!config?.isEventsDropdownHidden && eventsDropdown}\n <View style={[s.listContainer, styles?.listContainer]}>\n <FlatList\n data={myOrders}\n renderItem={renderOrderListItem}\n refreshControl={renderRefreshControl}\n onEndReached={handleOnReachEnd}\n onMomentumScrollBegin={handleOnMomentumScrollBegin}\n onEndReachedThreshold={0.2}\n extraData={myOrders}\n />\n {isLoading && myOrders.length > 8 && !isRefreshing && (\n <ActivityIndicator\n size={'large'}\n color={styles?.refreshControlColor || R.colors.primary}\n />\n )}\n </View>\n {config?.areActivityIndicatorsEnabled && isGettingEventDetails && <Loading />}\n </SafeAreaView>\n </View>\n )\n //#endregion Return\n}\n\nexport default MyOrdersView\n","import React, { FC } from 'react'\nimport { Image, Text, TouchableOpacity, View } from 'react-native'\n\nimport R from '../../../res'\nimport { OrderListItemStyles as s } from './styles'\nimport { IOrderListItemProps } from './types'\n\nconst OrderListItem: FC<IOrderListItemProps> = ({ order, onSelectOrder, styles }) => {\n return (\n <View style={[s.rootContainer, styles?.rootContainer]}>\n <TouchableOpacity\n onPress={() => {\n onSelectOrder(order)\n }}\n >\n <View style={[s.contentContainer, styles?.contentContainer]}>\n {/* Left side of the item */}\n <View style={[s.infoRootContainer, styles?.infoRootContainer]}>\n {/* Image content */}\n <View style={[s.imageContainer, styles?.imageContainer]}>\n <Image source={{ uri: order.image }} style={[s.image, styles?.image]} />\n </View>\n {/* Info content */}\n <View style={[s.infoContainer, styles?.infoContainer]}>\n <View style={[s.infoTopContainer, styles?.infoTopContainer]}>\n <Text style={styles?.orderId}>{order.id}</Text>\n <Text style={styles?.orderDate}>{order.date}</Text>\n </View>\n <View style={[s.infoBottomContainer, styles?.infoBottomContainer]}>\n <Text style={[s.eventName, styles?.eventName]} numberOfLines={2}>\n {order.eventName}\n </Text>\n <View style={[s.priceContainer, styles?.priceContainer]}>\n <Text style={styles?.currency}>{order.currency} </Text>\n <Text style={styles?.price}>{order.amount}</Text>\n </View>\n </View>\n </View>\n </View>\n {/* Right side of the item */}\n <View style={[s.iconNextContainer, styles?.iconNextContainer]}>\n <Image style={[s.iconNext, styles?.iconNext]} source={R.icons.next} />\n </View>\n </View>\n </TouchableOpacity>\n </View>\n )\n}\n\nexport default OrderListItem\n","import { StyleSheet } from 'react-native'\n\nimport R from '../../../res'\n\nexport const OrderListItemStyles = StyleSheet.create({\n rootContainer: {\n backgroundColor: R.colors.listBackground,\n marginVertical: 8,\n },\n contentContainer: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n imageContainer: {\n justifyContent: 'center',\n alignItems: 'center',\n marginRight: 16,\n },\n image: { height: 60, width: 60, resizeMode: 'contain' },\n infoRootContainer: {\n flexDirection: 'row',\n flex: 1,\n },\n infoContainer: {\n flex: 1,\n },\n infoTopContainer: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n marginVertical: 8,\n },\n infoBottomContainer: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n marginVertical: 8,\n alignItems: 'flex-end',\n },\n iconNext: {\n height: 24,\n width: 24,\n resizeMode: 'contain',\n },\n iconNextContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n padding: 16,\n paddingRight: 0,\n },\n priceContainer: {\n flexDirection: 'row',\n },\n eventName: {\n width: '65%',\n },\n})\n","import { StyleSheet } from 'react-native'\n\nimport R from '../../res'\n\nexport const MyOrdersViewStyles = StyleSheet.create({\n eventsContainer: {\n marginVertical: 16,\n },\n eventsTitle: {\n marginBottom: 8,\n },\n eventsDropdownContainer: {\n flex: 1,\n marginRight: 16,\n },\n eventsDropdownButton: {\n marginBottom: 0,\n },\n safeArea: {\n flex: 1,\n },\n listContainer: {\n //flex: 1,\n },\n backButtonContainer: {\n marginBottom: 24,\n },\n rootContainer: {\n flex: 1,\n },\n eventsSelectionContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n width: '100%',\n justifyContent: 'space-between',\n },\n clearEventSelectionIcon: {\n tintColor: R.colors.white,\n width: 20,\n height: 20,\n },\n})\n","import { Config } from '../helpers/Config'\n\nexport type LogLevel = 'debug' | 'info' | 'warn' | 'error'\n\ninterface LoggerOptions {\n level?: LogLevel\n showTimestamp?: boolean\n}\n\nexport class Logger {\n private readonly level: LogLevel\n private readonly showTimestamp: boolean\n public readonly debug: (...data: any[]) => void\n public readonly info: (...data: any[]) => void\n public readonly warn: (...data: any[]) => void\n public readonly error: (...data: any[]) => void\n\n constructor(options: LoggerOptions = {}) {\n this.level = options.level || 'info'\n this.showTimestamp = options.showTimestamp ?? true\n this.debug = this.shouldLog('debug')\n ? console.debug.bind('', ...this.loggerArgs('debug'))\n : () => null\n this.warn = this.shouldLog('warn')\n ? console.warn.bind('', ...this.loggerArgs('warn'))\n : () => null\n this.info = this.shouldLog('info')\n ? console.info.bind('', ...this.loggerArgs('info'))\n : () => null\n this.error = this.shouldLog('error')\n ? console.error.bind('', ...this.loggerArgs('error'))\n : () => null\n }\n\n private getTimestamp(): string {\n const date = new Date()\n const options: Intl.DateTimeFormatOptions = {\n year: '2-digit',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false,\n }\n\n return new Intl.DateTimeFormat('en-US', options).format(date)\n }\n\n private formatMessage(level: LogLevel, ...args: any[]): [string, ...any[]] {\n const timestamp = this.showTimestamp ? `[${this.getTimestamp()}]` : ''\n\n return [`${timestamp}`, ...args]\n }\n\n private shouldLog(level: LogLevel): boolean {\n const levels: LogLevel[] = ['debug', 'info', 'warn', 'error']\n\n if (levels.indexOf(this.level) < 0) {\n return false\n }\n\n return levels.indexOf(level) >= levels.indexOf(this.level)\n }\n\n private loggerArgs(level: LogLevel, ...args: any[]) {\n const [message, ...rest] = this.formatMessage(level, ...args)\n\n return [message, ...rest]\n }\n}\n\nexport const logger = new Logger({\n level: Config.logLevel || 'info',\n})\n","import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react'\nimport { Alert } from 'react-native'\n\nimport { IFetchAccessTokenResponse } from '../../api/types'\nimport {\n PurchaseConfirmationCore,\n PurchaseConfirmationCoreHandle,\n SessionHandle,\n} from '../../core'\nimport { SessionHandleType } from '../../core/Session/SessionCoreTypes'\nimport PurchaseConfirmationView from './PurchaseConfirmationView'\nimport { IPurchaseConfirmationProps } from './types'\n\nconst PurchaseConfirmation = forwardRef<SessionHandleType, IPurchaseConfirmationProps>(\n (\n {\n orderHash,\n onComplete,\n styles,\n texts,\n onFetchPurchaseConfirmationError,\n onFetchPurchaseConfirmationSuccess,\n onLoadingChange,\n areActivityIndicatorsEnabled,\n areAlertsEnabled,\n },\n ref\n ) => {\n //#region State\n const [isLoading, setIsLoading] = useState(false)\n //#endregion State\n\n const showAlert = (text: string) => {\n areAlertsEnabled && Alert.alert(text)\n }\n\n const isPurchaseConfirmationCoreRefReady = (): boolean => {\n if (!purchaseConfirmationCoreRef.current) {\n onFetchPurchaseConfirmationError?.({\n message: 'PurchaseConfirmationCore is not initialized',\n })\n showAlert('PurchaseConfirmationCore is not initialized')\n return false\n }\n\n return true\n }\n\n //#region Fetch data\n const getInitialData = async () => {\n if (!isPurchaseConfirmationCoreRefReady()) {\n return\n }\n\n purchaseConfirmationCoreRef.current?.stopCartTimer()\n setIsLoading(true)\n const { purchaseConfirmationError } =\n await purchaseConfirmationCoreRef.current!.getPurchaseConfirmation(orderHash)\n setIsLoading(false)\n\n if (purchaseConfirmationError) {\n onFetchPurchaseConfirmationError?.(purchaseConfirmationError)\n return showAlert(purchaseConfirmationError.message)\n }\n\n onFetchPurchaseConfirmationSuccess?.()\n }\n //#endregion Fetch data\n\n //#region Ref\n const purchaseConfirmationCoreRef = useRef<PurchaseConfirmationCoreHandle>(null)\n const sessionHandleRef = useRef<SessionHandleType>(null)\n //#endregion Ref\n\n const handleOnLoadingChange = useCallback(\n (loading: boolean) => {\n onLoadingChange?.(loading)\n },\n [onLoadingChange]\n )\n\n //#region Imperative Handler\n useImperativeHandle(ref, () => ({\n async refreshAccessToken(refreshToken: string): Promise<IFetchAccessTokenResponse> {\n if (!sessionHandleRef.current) {\n return {\n accessTokenError: {\n message: 'Session Handle ref is not initialized',\n },\n }\n }\n\n const { accessTokenError, accessTokenData } =\n await sessionHandleRef.current!.refreshAccessToken(refreshToken)\n if (!accessTokenError && accessTokenData?.accessToken) {\n await getInitialData()\n }\n return {\n accessTokenData,\n accessTokenError,\n }\n },\n\n async reloadData() {\n await getInitialData()\n },\n }))\n //#endregion Imperative Handler\n\n //#region useEffect\n useEffect(() => {\n handleOnLoadingChange(isLoading)\n }, [handleOnLoadingChange, isLoading])\n\n useEffect(() => {\n getInitialData()\n }, [])\n //#endregion useEffect\n\n //#region RENDER\n return (\n <PurchaseConfirmationCore ref={purchaseConfirmationCoreRef}>\n <SessionHandle ref={sessionHandleRef}>\n <PurchaseConfirmationView\n orderHash={orderHash}\n onComplete={onComplete}\n styles={styles}\n texts={texts}\n areActivityIndicatorsEnabled={areActivityIndicatorsEnabled}\n />\n </SessionHandle>\n </PurchaseConfirmationCore>\n )\n //#endregion RENDER\n }\n)\n\nexport default PurchaseConfirmation\n","import React, { FC } from 'react'\nimport { Text, View } from 'react-native'\n\nimport { Button, Loading } from '../../components'\nimport s from './styles'\nimport { IPurchaseConfirmationViewProps } from './types'\n\nconst PurchaseConfirmationView: FC<IPurchaseConfirmationViewProps> = ({\n texts,\n styles,\n onComplete,\n areActivityIndicatorsEnabled,\n isLoading,\n}) => (\n <View style={[s.rootContainer, styles?.rootContainer]}>\n <Text style={[s.title, styles?.title]}>\n {texts?.title || 'Your Tickets are Confirmed!'}\n </Text>\n\n <View style={[s.messagesContainer, styles?.message?.container]}>\n <Text style={styles?.message?.line1}>\n {texts?.message?.line1 || 'YOUR TICKETS HAVE BEEN EMAILED TO YOU \\n'}\n </Text>\n <Text style={styles?.message?.line2}>\n {texts?.message?.line2 || 'PLEASE BRING THEM WITH YOU TO THE EVENT'}\n </Text>\n </View>\n {/* \n <View style={[s.promoContainer, styles?.promo?.container]}>\n <Text style={[s.promoTitle, styles?.promo?.title]}>\n Your ticket can become{' '}\n <Text style={[s.promoTitleKeyword, styles?.promo?.titleKeyword]}>\n cheaper\n </Text>{' '}\n or even{' '}\n <Text style={[s.promoTitleKeyword, styles?.promo?.titleKeyword]}>\n FREE!\n </Text>\n </Text>\n\n <Text style={[s.promoMessage, styles?.promo?.message]}>\n <Text style={[s.promoMessageKeyword, styles?.promo?.messageKeyword]}>\n Invite friends\n </Text>{' '}\n and we'll refund up to{' '}\n <Text style={[s.promoDiscount, styles?.promo?.discount]}>\n {texts?.promo?.discount || '100%'}\n </Text>{' '}\n of your ticket money, if they buy tickets as well!\n </Text>\n </View>\n\n <View style={[s.inviteContainer, styles?.invite?.container]}>\n <Text style={[s.inviteTitle, styles?.invite?.title]}>\n {texts?.invite?.title || 'How do you invite your friends?'}\n </Text>\n <Text style={[s.inviteMessage, styles?.invite?.message]}>\n {texts?.invite?.message || 'Send them this link:'}\n </Text>\n\n <View style={[s.inviteLinkContainer, styles?.invite?.linkContainer]}>\n <Text style={[s.inviteLink, styles?.invite?.link]}>\n {referralLink || 'http://www.theticketfairy.com'}\n </Text>\n <TouchableOpacity style={[s.copyButton, styles?.invite?.copyButton]}>\n <Image\n source={R.icons.copy}\n style={[s.copyIcon, styles?.invite?.copyIcon]}\n />\n </TouchableOpacity>\n </View>\n </View> */}\n <Button\n text={texts?.exitButton || 'Exit'}\n styles={styles?.exitButton}\n onPress={onComplete}\n />\n {areActivityIndicatorsEnabled && isLoading && <Loading />}\n </View>\n)\n\nexport default PurchaseConfirmationView\n","import { StyleSheet } from 'react-native'\n\nimport R from '../../res'\n\nexport default StyleSheet.create({\n rootContainer: {\n backgroundColor: R.colors.white,\n padding: 24,\n flex: 1,\n },\n messagesContainer: {\n marginVertical: 24,\n padding: 12,\n backgroundColor: 'gainsboro',\n },\n title: {\n fontWeight: '700',\n color: R.colors.black,\n fontSize: 22,\n },\n\n promoContainer: {\n marginVertical: 24,\n },\n promoTitleKeyword: {\n fontWeight: '800',\n color: R.colors.danger,\n },\n promoTitle: {\n fontSize: 25,\n },\n promoMessage: {\n fontSize: 18,\n marginTop: 8,\n },\n promoMessageKeyword: {\n fontWeight: '600',\n },\n promoDiscount: {\n fontWeight: '700',\n color: R.colors.danger,\n },\n\n inviteContainer: {\n marginVertical: 24,\n },\n inviteTitle: {\n fontSize: 18,\n fontWeight: '500',\n marginBottom: 16,\n },\n inviteMessage: {\n fontSize: 18,\n },\n\n inviteLinkContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n marginTop: 16,\n },\n inviteLink: {\n padding: 8,\n backgroundColor: R.colors.black,\n color: R.colors.white,\n },\n copyButton: {\n backgroundColor: R.colors.black,\n alignItems: 'center',\n justifyContent: 'center',\n marginLeft: 16,\n padding: 4,\n },\n copyIcon: {\n width: 28,\n height: 28,\n resizeMode: 'contain',\n tintColor: R.colors.white,\n },\n})\n","import React, { forwardRef, useImperativeHandle, useRef, useState } from 'react'\nimport { Alert } from 'react-native'\n\nimport { IFetchAccessTokenResponse } from '../../api/types'\nimport { OrderDetailsCore, OrderDetailsCoreHandle, SessionHandle } from '../../core'\nimport { SessionHandleType } from '../../core/Session/SessionCoreTypes'\nimport { useDebounced } from '../../helpers/Debounced'\nimport { validateEmail, validateEmpty } from '../../helpers/Validators'\nimport ResaleTicketsView from './ResaleTicketsView'\nimport { IResaleTicketsProps, IResaleToWhomData, ResaleToWhomFieldIdEnum } from './types'\n\nconst sellToWhomInitialData: IResaleToWhomData = {\n toWhom: undefined,\n someoneData: {\n firstName: '',\n lastName: '',\n email: '',\n emailConfirm: '',\n },\n isTermsAgreed: false,\n}\n\nconst ResaleTickets = forwardRef<SessionHandleType, IResaleTicketsProps>(\n (\n {\n styles,\n ticket,\n onResaleTicketsSuccess,\n onResaleTicketsError,\n config = {\n areActivityIndicatorsEnabled: true,\n areAlertsEnabled: true,\n },\n isTicketTypeActive,\n },\n ref\n ) => {\n //#region refs\n const orderDetailsCoreRef = useRef<OrderDetailsCoreHandle>(null)\n const sessionHandleRef = useRef<SessionHandleType>(null)\n //#endregion\n\n //#region state\n const [isLoading, setIsLoading] = useState(false)\n const [sellToWhomData, setSellToWhomData] =\n useState<IResaleToWhomData>(sellToWhomInitialData)\n\n const {\n someoneData: { firstName, lastName, email, emailConfirm },\n isTermsAgreed,\n toWhom,\n } = sellToWhomData\n\n const firstNameError = useDebounced(firstName, validateEmpty)\n const lastNameError = useDebounced(lastName, validateEmpty)\n const emailError = useDebounced(email, () => validateEmail(email, emailConfirm))\n const emailConfirmError = useDebounced(emailConfirm, () =>\n validateEmail(emailConfirm, email)\n )\n //#endregion\n\n const showAlert = (message: string) => {\n if (config?.areAlertsEnabled) {\n Alert.alert('', message)\n }\n }\n\n //#region Imperative Handler\n useImperativeHandle(ref, () => ({\n async refreshAccessToken(refreshToken: string): Promise<IFetchAccessTokenResponse> {\n if (!sessionHandleRef.current) {\n return {\n accessTokenError: {\n message: 'Session Handle ref is not initialized',\n },\n }\n }\n\n const { accessTokenError, accessTokenData } =\n await sessionHandleRef.current!.refreshAccessToken(refreshToken)\n\n return {\n accessTokenData,\n accessTokenError,\n }\n },\n\n async reloadData() {},\n }))\n //#endregion Imperative Handler\n\n //#region handlers\n const handleOnPressSellTickets = async () => {\n if (!orderDetailsCoreRef.current) {\n showAlert('ResaleTicketsCoreRef is not initialized')\n }\n\n setIsLoading(true)\n const formData = new FormData()\n formData.append('to', toWhom)\n formData.append('first_name', firstName)\n formData.append('last_name', lastName)\n formData.append('email', email)\n formData.append('confirm_email', emailConfirm)\n formData.append('confirm', String(isTermsAgreed))\n\n const { resaleTicketData, resaleTicketError } =\n await orderDetailsCoreRef.current!.resaleTicket(formData, ticket.hash)\n\n setIsLoading(false)\n\n if (resaleTicketError || !resaleTicketData) {\n onResaleTicketsError?.(resaleTicketError!)\n return showAlert(resaleTicketError!.message)\n }\n\n showAlert(resaleTicketData.message)\n\n return onResaleTicketsSuccess(resaleTicketData, {\n ...ticket,\n isOnSale: true,\n isSellable: false,\n })\n }\n\n const handleSellToWhomDataChange = (\n id: ResaleToWhomFieldIdEnum,\n value?: string | number\n ) => {\n switch (id) {\n case ResaleToWhomFieldIdEnum.terms:\n setSellToWhomData({\n ...sellToWhomData,\n isTermsAgreed: !isTermsAgreed,\n })\n break\n case ResaleToWhomFieldIdEnum.radioIndex:\n setSellToWhomData({\n ...sellToWhomData,\n toWhom: value === 0 ? 'friend' : 'anyone',\n })\n break\n case ResaleToWhomFieldIdEnum.firstName:\n setSellToWhomData({\n ...sellToWhomData,\n someoneData: {\n ...sellToWhomData.someoneData,\n firstName: value as string,\n },\n })\n break\n case ResaleToWhomFieldIdEnum.lastName:\n setSellToWhomData({\n ...sellToWhomData,\n someoneData: {\n ...sellToWhomData.someoneData,\n lastName: value as string,\n },\n })\n break\n case ResaleToWhomFieldIdEnum.email:\n setSellToWhomData({\n ...sellToWhomData,\n someoneData: {\n ...sellToWhomData.someoneData,\n email: value as string,\n },\n })\n break\n case ResaleToWhomFieldIdEnum.emailConfirm:\n setSellToWhomData({\n ...sellToWhomData,\n someoneData: {\n ...sellToWhomData.someoneData,\n emailConfirm: value as string,\n },\n })\n break\n }\n }\n //#endregion\n\n //#region data validation\n const isDataValid = () => {\n if (toWhom === 'anyone' && isTermsAgreed) {\n return true\n }\n if (\n toWhom === 'friend' &&\n firstName &&\n lastName &&\n email &&\n emailConfirm &&\n !emailConfirmError &&\n !emailError &&\n !firstNameError &&\n !lastNameError &&\n isTermsAgreed\n ) {\n return true\n }\n\n return false\n }\n //#endregion\n\n //#region render\n return (\n <OrderDetailsCore ref={orderDetailsCoreRef}>\n <SessionHandle ref={sessionHandleRef}>\n <ResaleTicketsView\n styles={styles}\n isLoading={isLoading}\n resaleToWhomData={sellToWhomData}\n someoneDataErrors={{\n firstNameError: firstNameError,\n lastNameError: lastNameError,\n emailError: emailError,\n emailConfirmError: emailConfirmError,\n }}\n isDataValid={isDataValid()}\n onResaleToWhomDataChanged={handleSellToWhomDataChange}\n onPressResaleTickets={handleOnPressSellTickets}\n ticket={ticket}\n isTicketsTypeActive={isTicketTypeActive}\n />\n </SessionHandle>\n </OrderDetailsCore>\n )\n //#endregion\n }\n)\n\nexport default ResaleTickets\n","import React, { FC, useEffect, useMemo, useRef } from 'react'\nimport { Text, View } from 'react-native'\nimport { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view'\nimport { TextField } from '../../packages/rn-material-ui-textfield'\n\nimport { Button, Checkbox, Input, RadioButton } from '../../components'\nimport {\n IResaleTicketsViewProps,\n IResaleTicketsViewTexts,\n ResaleToWhomFieldIdEnum,\n} from './types'\n\nconst ResaleTicketsView: FC<IResaleTicketsViewProps> = ({\n styles,\n isDataValid,\n resaleToWhomData,\n onResaleToWhomDataChanged,\n someoneDataErrors,\n onPressResaleTickets,\n ticket,\n isLoading,\n texts,\n isTicketsTypeActive,\n}) => {\n //#region Texts\n const txt: IResaleTicketsViewTexts = {\n title: texts?.title || 'Resale tickets',\n orderDetails: {\n title: texts?.orderDetails?.title || 'Order details',\n eventName: texts?.orderDetails?.eventName || 'Event',\n orderedBy: texts?.orderDetails?.orderedBy || 'Ordered By',\n orderId: texts?.orderDetails?.orderId || 'Order ID',\n },\n sellToWhom: {\n title: texts?.sellToWhom?.title || 'Sell to whom?',\n anyone:\n texts?.sellToWhom?.anyone ||\n 'I will sell my ticket to anyone who wants to buy it',\n friend: texts?.sellToWhom?.friend || 'I will sell my ticket to someone I know',\n },\n terms: {\n title: texts?.terms?.title || 'Terms of resale',\n paragraph1:\n texts?.terms?.paragraph1 ||\n 'I confirm that I want to sell this ticket and that, if someone chooses to buy it, I will no longer own it or have the right to ask for it back. \\n',\n paragraph2_1:\n texts?.terms?.paragraph2_1 ||\n 'I also understand that, if no one chooses to buy it, it remains my property, is valid for entry to',\n paragraph2_2: texts?.terms?.paragraph2_2 || 'and I will not receive any refund.',\n paragraph3_1:\n texts?.terms?.paragraph3_1 ||\n 'If my ticket is sold, the original card I used to buy my ticket will be refunded with the original amount paid, minus a small handling fee of',\n paragraph3_2:\n texts?.terms?.paragraph3_2 ||\n ', and that any existing refunds due to me for referring sales for this event are no longer valid.',\n },\n agree: texts?.agree || 'I agree',\n friendForm: {\n firstName: texts?.friendForm?.firstName || 'First Name',\n lastName: texts?.friendForm?.lastName || 'Last Name',\n email: texts?.friendForm?.email || 'Email Address',\n emailConfirm: texts?.friendForm?.emailConfirm || 'Confirm Email Address',\n },\n resaleTicketsButton: texts?.resaleTicketsButton || 'Resale Ticket',\n }\n //#endregion\n\n //#region Refs\n const firstNameRef = useRef<TextField>(null)\n const lastNameRef = useRef(null)\n const emailRef = useRef(null)\n const confirmEmailRef = useRef(null)\n //#endregion\n\n //#region Styles\n const ticketBuyerFormStyles = styles?.ticketBuyerForm\n const ticketOrderDetailsStyles = styles?.ticketOrderDetails\n const termsStyles = styles?.terms\n const buttonStyles = !isDataValid\n ? styles?.resaleTicketsButtonDisabled\n : styles?.resaleTicketsButton\n //#endregion\n\n const {\n someoneData: { firstName, lastName, email, emailConfirm },\n toWhom,\n isTermsAgreed,\n } = resaleToWhomData\n\n const { firstNameError, lastNameError, emailError, emailConfirmError } =\n someoneDataErrors\n\n const Terms = useMemo(\n () => (\n <View style={termsStyles?.rootContainer}>\n <Text style={termsStyles?.title}>{txt.terms?.title}</Text>\n <Text style={termsStyles?.item}>{txt.terms?.paragraph1}</Text>\n\n <Text style={termsStyles?.item}>\n {txt.terms?.paragraph2_1}{' '}\n <Text style={termsStyles?.itemBold}>{ticket.eventName}</Text>{' '}\n {txt.terms?.paragraph2_2}\n {'\\n'}\n </Text>\n <Text style={termsStyles?.item}>\n {txt.terms?.paragraph3_1}{' '}\n <Text style={termsStyles?.itemBold}>\n {ticket.currency} {ticket.resaleFeeAmount}\n </Text>\n {txt.terms?.paragraph3_2}\n </Text>\n\n <Checkbox\n onPress={() => onResaleToWhomDataChanged(ResaleToWhomFieldIdEnum.terms)}\n isActive={isTermsAgreed}\n styles={styles?.termsCheckbox}\n text={txt.agree}\n />\n </View>\n ),\n [\n isTermsAgreed,\n onResaleToWhomDataChanged,\n styles?.termsCheckbox,\n termsStyles?.item,\n termsStyles?.itemBold,\n termsStyles?.rootContainer,\n termsStyles?.title,\n ticket.currency,\n ticket.eventName,\n ticket.resaleFeeAmount,\n txt.agree,\n txt.terms?.paragraph1,\n txt.terms?.paragraph2_1,\n txt.terms?.paragraph2_2,\n txt.terms?.paragraph3_1,\n txt.terms?.paragraph3_2,\n txt.terms?.title,\n ]\n )\n\n const OrderDetails = useMemo(\n () => (\n <View style={ticketOrderDetailsStyles?.rootContainer}>\n <Text style={ticketOrderDetailsStyles?.title}>{txt.orderDetails?.title}</Text>\n <Text style={ticketOrderDetailsStyles?.label}>{txt.orderDetails?.eventName}</Text>\n <Text style={ticketOrderDetailsStyles?.value}>{ticket.eventName}</Text>\n <Text style={ticketOrderDetailsStyles?.label}>{txt.orderDetails?.orderedBy}</Text>\n <Text style={ticketOrderDetailsStyles?.value}>{ticket.holderName}</Text>\n <Text style={ticketOrderDetailsStyles?.label}>{txt.orderDetails?.orderId}</Text>\n <Text style={ticketOrderDetailsStyles?.value}>{ticket.hash}</Text>\n </View>\n ),\n [\n ticket.eventName,\n ticket.hash,\n ticket.holderName,\n ticketOrderDetailsStyles?.label,\n ticketOrderDetailsStyles?.rootContainer,\n ticketOrderDetailsStyles?.title,\n ticketOrderDetailsStyles?.value,\n txt.orderDetails?.eventName,\n txt.orderDetails?.orderId,\n txt.orderDetails?.orderedBy,\n txt.orderDetails?.title,\n ]\n )\n\n const TicketBuyerForm = useMemo(\n () => (\n <View style={ticketBuyerFormStyles?.rootContainer}>\n <Text style={ticketBuyerFormStyles?.title}>{txt.sellToWhom?.title}</Text>\n {isTicketsTypeActive && (\n <RadioButton\n styles={ticketBuyerFormStyles?.radioButtons}\n index={0}\n text={txt.sellToWhom!.friend!}\n value={toWhom === 'friend'}\n onValueChange={() =>\n onResaleToWhomDataChanged(ResaleToWhomFieldIdEnum.radioIndex, 0)\n }\n />\n )}\n {toWhom === 'friend' && (\n <View style={ticketBuyerFormStyles?.formContainer}>\n <Input\n reference={firstNameRef}\n label={txt.friendForm!.firstName!}\n value={firstName}\n onChangeText={(text) =>\n onResaleToWhomDataChanged(ResaleToWhomFieldIdEnum.firstName, text)\n }\n styles={ticketBuyerFormStyles?.inputs}\n error={firstNameError}\n blurOnSubmit={false}\n //@ts-ignore\n onSubmitEditing={lastNameRef.current?.focus}\n returnKeyType=\"next\"\n />\n <Input\n reference={lastNameRef}\n label={txt.friendForm!.lastName!}\n value={lastName}\n onChangeText={(text) =>\n onResaleToWhomDataChanged(ResaleToWhomFieldIdEnum.lastName, text)\n }\n styles={ticketBuyerFormStyles?.inputs}\n error={lastNameError}\n blurOnSubmit={false}\n onSubmitEditing={() => {\n if (emailRef.current) {\n //@ts-ignore\n emailRef.current.focus()\n }\n }}\n returnKeyType=\"next\"\n />\n <Input\n reference={emailRef}\n label={txt.friendForm!.email!}\n autoCapitalize=\"none\"\n keyboardType=\"email-address\"\n value={email}\n onChangeText={(text) =>\n onResaleToWhomDataChanged(ResaleToWhomFieldIdEnum.email, text)\n }\n styles={ticketBuyerFormStyles?.inputs}\n error={emailError}\n blurOnSubmit={false}\n onSubmitEditing={() => {\n if (confirmEmailRef.current) {\n //@ts-ignore\n confirmEmailRef.current.focus()\n }\n }}\n returnKeyType=\"next\"\n />\n <Input\n reference={confirmEmailRef}\n label={txt.friendForm!.emailConfirm!}\n autoCapitalize=\"none\"\n keyboardType=\"email-address\"\n value={emailConfirm}\n onChangeText={(text) =>\n onResaleToWhomDataChanged(ResaleToWhomFieldIdEnum.emailConfirm, text)\n }\n styles={ticketBuyerFormStyles?.inputs}\n error={emailConfirmError}\n blurOnSubmit={true}\n returnKeyType=\"go\"\n />\n </View>\n )}\n {isTicketsTypeActive && (\n <RadioButton\n styles={ticketBuyerFormStyles?.radioButtons}\n index={1}\n text={txt.sellToWhom!.anyone!}\n value={toWhom === 'anyone'}\n onValueChange={() =>\n onResaleToWhomDataChanged(ResaleToWhomFieldIdEnum.radioIndex, 1)\n }\n />\n )}\n </View>\n ),\n [\n email,\n emailConfirm,\n emailConfirmError,\n emailError,\n firstName,\n firstNameError,\n isTicketsTypeActive,\n lastName,\n lastNameError,\n onResaleToWhomDataChanged,\n ticketBuyerFormStyles?.formContainer,\n ticketBuyerFormStyles?.inputs,\n ticketBuyerFormStyles?.radioButtons,\n ticketBuyerFormStyles?.rootContainer,\n ticketBuyerFormStyles?.title,\n toWhom,\n txt.friendForm,\n txt.sellToWhom,\n ]\n )\n\n useEffect(() => {\n if (!isTicketsTypeActive) {\n onResaleToWhomDataChanged(ResaleToWhomFieldIdEnum.radioIndex, 0)\n }\n }, [])\n\n return (\n <KeyboardAwareScrollView extraScrollHeight={32}>\n <View style={styles?.rootContainer}>\n <Text style={styles?.title}>{txt.title}</Text>\n {OrderDetails}\n {TicketBuyerForm}\n {Terms}\n <Button\n styles={buttonStyles}\n text={txt.resaleTicketsButton!}\n onPress={onPressResaleTickets}\n isDisabled={!isDataValid}\n isLoading={isLoading}\n />\n </View>\n </KeyboardAwareScrollView>\n )\n}\n\nexport default ResaleTicketsView\n","import React, { FC, useRef, useState } from 'react'\n\nimport { ResetPasswordCore, ResetPasswordCoreHandle } from '../../core'\nimport { useDebounced } from '../../helpers/Debounced'\nimport { validatePasswords } from '../../helpers/Validators'\nimport ResetPasswordView from './ResetPasswordView'\nimport { IResetPasswordProps } from './types'\n\nconst ResetPassword: FC<IResetPasswordProps> = ({\n token,\n styles,\n texts,\n onResetPasswordError,\n onResetPasswordSuccess,\n onPressCancelButton,\n onPressResetButton,\n}) => {\n //#region State\n const [newPassword, setNewPassword] = useState('')\n const [confirmNewPassword, setConfirmNewPassword] = useState('')\n const [apiError, setApiError] = useState('')\n const [apiSuccess, setApiSuccess] = useState('')\n const [isLoading, setIsLoading] = useState(false)\n //#endregion State\n\n const resetPasswordCoreRef = useRef<ResetPasswordCoreHandle>(null)\n\n const newPasswordError = useDebounced(newPassword, () =>\n validatePasswords(newPassword, confirmNewPassword)\n )\n\n const confirmNewPasswordError = useDebounced(confirmNewPassword, () =>\n validatePasswords(newPassword, confirmNewPassword)\n )\n\n const isDataValid = (): boolean => {\n if (!newPassword) {\n return false\n }\n\n if (!confirmNewPassword) {\n return false\n }\n\n if (newPassword !== confirmNewPassword) {\n return false\n }\n\n return true\n }\n\n //#region Handlers\n const handleOnPressResetPasswordButton = async () => {\n if (!resetPasswordCoreRef.current) {\n return\n }\n\n onPressResetButton?.()\n\n if (!isDataValid()) {\n return\n }\n\n setIsLoading(true)\n const response = await resetPasswordCoreRef.current.postResetPassword({\n token: token,\n password: newPassword,\n password_confirmation: confirmNewPassword,\n })\n setIsLoading(false)\n\n if (response.error) {\n setApiError(response.error.message)\n return onResetPasswordError?.(response.error)\n }\n\n setApiSuccess(response.data!.message)\n return onResetPasswordSuccess?.(response.data!)\n }\n\n const handleOnPressCancelButton = () => {\n onPressCancelButton?.()\n }\n //#endregion Handlers\n\n //#region Return\n return (\n <ResetPasswordCore ref={resetPasswordCoreRef}>\n <ResetPasswordView\n onChangePassword={setNewPassword}\n onChangePasswordConfirm={setConfirmNewPassword}\n password={newPassword}\n passwordConfirm={confirmNewPassword}\n onPressResetButton={handleOnPressResetPasswordButton}\n onPressCancelButton={handleOnPressCancelButton}\n passwordError={newPasswordError}\n passwordConfirmError={confirmNewPasswordError}\n styles={styles}\n texts={texts}\n isDataValid={isDataValid()}\n apiError={apiError}\n isLoading={isLoading}\n apiSuccess={apiSuccess}\n />\n </ResetPasswordCore>\n )\n //#endregion Return\n}\n\nexport default ResetPassword\n","import React, { FC } from 'react'\nimport { Keyboard, Pressable, Text, View } from 'react-native'\n\nimport { Button, Input } from '../../components'\nimport s from './styles'\nimport { IResetPasswordViewProps } from './types'\n\nconst ResetPasswordView: FC<IResetPasswordViewProps> = ({\n styles,\n texts,\n isLoading,\n onPressCancelButton,\n onPressResetButton,\n apiError,\n password,\n passwordConfirm,\n onChangePassword,\n onChangePasswordConfirm,\n passwordConfirmError,\n passwordError,\n isDataValid,\n apiSuccess,\n}) => (\n <Pressable style={s.pressable} onPress={Keyboard.dismiss}>\n <View style={[s.rootContainer, styles?.rootContainer]}>\n <View style={[s.contentContainer, styles?.contentContainer]}>\n <Text style={[s.dialogTitle, styles?.title]}>\n {texts?.title || 'Enter your new password'}\n </Text>\n\n <Input\n onChangeText={onChangePassword}\n styles={styles?.input}\n label={texts?.newPasswordLabel || 'New password'}\n error={passwordError}\n value={password}\n autoCapitalize=\"none\"\n secureTextEntry={true}\n isShowPasswordButtonVisible={true}\n />\n\n <Input\n onChangeText={onChangePasswordConfirm}\n styles={styles?.input}\n label={texts?.confirmNewPasswordLabel || 'Confirm new password'}\n error={passwordConfirmError}\n value={passwordConfirm}\n autoCapitalize=\"none\"\n secureTextEntry={true}\n isShowPasswordButtonVisible={true}\n />\n\n {!!apiError && <Text style={[s.apiError, styles?.apiError]}>{apiError}</Text>}\n\n {apiSuccess ? (\n <Text style={styles?.apiSuccess}>{apiSuccess}</Text>\n ) : (\n <Button\n text={texts?.resetButton || 'RESET PASSWORD'}\n onPress={onPressResetButton}\n isLoading={isLoading}\n isDisabled={!isDataValid || isLoading}\n styles={{\n container: [s.resetButtonContainer, styles?.resetButton?.container],\n ...styles?.resetButton,\n }}\n />\n )}\n\n <Button\n text={texts?.cancelButton || 'CANCEL'}\n onPress={onPressCancelButton}\n isDisabled={isLoading}\n styles={styles?.cancelButton}\n />\n </View>\n </View>\n </Pressable>\n)\n\nexport default ResetPasswordView\n","import { StyleSheet } from 'react-native'\n\nimport R from '../../res'\n\nexport default StyleSheet.create({\n pressable: {\n flex: 1,\n },\n rootContainer: {\n flex: 1,\n alignItems: 'center',\n paddingTop: 32,\n },\n contentContainer: {\n paddingVertical: 32,\n width: '80%',\n backgroundColor: R.colors.white,\n borderRadius: 5,\n paddingHorizontal: 16,\n alignItems: 'center',\n },\n dialogTitle: {\n color: R.colors.black,\n fontSize: 18,\n fontWeight: '800',\n marginBottom: 16,\n },\n resetButtonContainer: {\n marginBottom: 16,\n },\n apiError: {\n color: R.colors.danger,\n marginBottom: 16,\n },\n})\n","import _get from 'lodash/get'\nimport _isEmpty from 'lodash/isEmpty'\nimport _some from 'lodash/some'\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react'\nimport { Alert } from 'react-native'\n\nimport {\n IEventResponse,\n IFetchAccessTokenResponse,\n IPromoCodeResponse,\n} from '../../api/types'\nimport { SessionHandle, TicketsCore, TicketsCoreHandle } from '../../core'\nimport { SessionHandleType } from '../../core/Session/SessionCoreTypes'\nimport {\n IBookTicketsOptions,\n IGetTicketsPayload,\n IGroupedTickets,\n} from '../../core/TicketsCore/TicketsCoreTypes'\nimport {\n IAddToCartResponse,\n IEvent,\n IOnFetchTicketsSuccess,\n ISelectedTicket,\n ITicket,\n} from '../../types'\nimport TicketsView from './TicketsView'\nimport { IPasswordProtectedEventData, ITicketsProps } from './types'\nimport { Logger } from '../../utils/Logger'\n\nconst Tickets = forwardRef<SessionHandleType, ITicketsProps>(\n (\n {\n onAddToCartSuccess,\n onAddToCartError,\n onFetchTicketsError,\n styles,\n texts,\n isAccessCodeEnabled = false,\n isPromoEnabled = true,\n onPressMyOrders,\n onPressLogout,\n onFetchTicketsSuccess,\n onFetchEventError,\n onLoadingChange,\n onFetchEventSuccess,\n onAddToWaitingListError,\n onAddToWaitingListSuccess,\n promoCodeCloseIcon,\n isCheckingCurrentSession,\n config = {\n areTicketsGrouped: true,\n areActivityIndicatorsEnabled: true,\n areAlertsEnabled: true,\n areTicketsSortedBySoldOut: true,\n },\n referrerId,\n debugMode,\n },\n ref\n ) => {\n const logger = new Logger({ level: debugMode ? 'debug' : 'error' })\n const [isUserLogged, setIsUserLogged] = useState(false)\n const [isGettingTickets, setIsGettingTickets] = useState(false)\n const [isGettingEvent, setIsGettingEvent] = useState(false)\n const [event, setEvent] = useState<IEvent>()\n const [isBooking, setIsBooking] = useState(false)\n const [areTicketGroupsShown, setAreTicketGroupsShown] = useState(false)\n const [tickets, setTickets] = useState<ITicket[]>([])\n const [groupedTickets, setGroupedTickets] = useState<IGroupedTickets[]>([])\n const [isWaitingListVisible, setIsWaitingListVisible] = useState(false)\n const [isAccessCode, setIsAccessCode] = useState(false)\n const [selectedTicket, setSelectedTicket] = useState<ISelectedTicket>()\n const [promoCodeResponse, setPromoCodeResponse] = useState<\n IPromoCodeResponse | undefined\n >(undefined)\n const [isFirstCall, setIsFirstCall] = useState(true)\n const [passwordProtectedEventData, setPasswordProtectedEventData] = useState<\n IPasswordProtectedEventData | undefined\n >()\n\n //#region Refs\n const eventErrorCodeRef = useRef(0)\n const ticketsCoreRef = useRef<TicketsCoreHandle>(null)\n const sessionHandleRef = useRef<SessionHandleType>(null)\n const isApiErrorRef = useRef<boolean>(false)\n //#endregion Refs\n\n const showAlert = (message: string) => {\n if (config.areAlertsEnabled) {\n Alert.alert('', message)\n }\n }\n\n const isTicketOnSale = (ticketsForCheck: ITicket[]) =>\n _some(\n ticketsForCheck,\n (item: ITicket) => item.salesStarted && !item.salesEnded && !item.soldOut\n )\n\n const areTicketsOnSale = (): boolean => {\n if (event?.salesEnded) {\n return false\n }\n\n if (\n config.areTicketsGrouped &&\n areTicketGroupsShown &&\n groupedTickets.length === 0\n ) {\n return false\n }\n\n if (!config.areTicketsGrouped && tickets.length === 0) {\n return false\n }\n\n if (config.areTicketsGrouped) {\n return _some(groupedTickets, (gTicket) => isTicketOnSale(gTicket.data))\n } else {\n return isTicketOnSale(tickets)\n }\n }\n\n //#region Core Api calls\n const retrieveStoredAccessToken = async () => {\n if (!ticketsCoreRef.current) {\n return { eventError: { message: 'Ticket core is not initialized' } }\n }\n\n setIsUserLogged(await ticketsCoreRef.current.getIsUserLoggedIn())\n }\n\n const getTicketsCore = async (promoCode?: string): Promise<IGetTicketsPayload> => {\n if (!ticketsCoreRef.current) {\n return { error: { message: 'Ticket core is not initialized' } }\n }\n\n return await ticketsCoreRef.current.getTickets({\n referredId: referrerId,\n promoCode,\n areTicketsSortedBySoldOut: config.areTicketsSortedBySoldOut,\n areTicketsGrouped: config.areTicketsGrouped,\n })\n }\n\n const unlockPasswordProtectedEventCore = async (\n password: string\n ): Promise<IEventResponse> => {\n if (!ticketsCoreRef.current) {\n return { eventError: { message: 'Ticket core is not initialized' } }\n }\n\n return await ticketsCoreRef.current.unlockPasswordProtectedEvent(password)\n }\n\n const getEventCore = async (): Promise<IEventResponse> => {\n if (!ticketsCoreRef.current) {\n return { eventError: { message: 'Ticket core is not initialized' } }\n }\n\n return await ticketsCoreRef.current.getEvent()\n }\n\n const addToCartCore = async (\n data: IBookTicketsOptions\n ): Promise<IAddToCartResponse> => {\n if (!ticketsCoreRef.current) {\n return { error: { message: 'Ticket core is not initialized' } }\n }\n\n return await ticketsCoreRef.current.addToCart(data)\n }\n //#endregion Core Api calls\n\n //#region Fetch Initial Data\n const fetchInitialData = async () => {\n try {\n logger.info('Fetching initial data')\n await retrieveStoredAccessToken()\n logger.info('retrieveStoredAccessToken')\n await getEventData()\n logger.info('getEventData success')\n } catch (error) {\n logger.error('Error while fetching initial data', error)\n }\n }\n //#endregion Fetch Initial Data\n\n //#region Api Calls\n const getTickets = async (promoCode: string = '') => {\n setIsGettingTickets(true)\n isApiErrorRef.current = false\n const {\n error,\n tickets: responseTickets,\n promoCodeResult,\n isInWaitingList,\n isAccessCodeRequired,\n areGroupsShown,\n } = await getTicketsCore(promoCode)\n logger.info('getTicketsCore response', {\n error,\n tickets: responseTickets,\n promoCodeResult,\n isInWaitingList,\n isAccessCodeRequired,\n areGroupsShown,\n })\n setIsGettingTickets(false)\n\n if (error) {\n onFetchTicketsError?.(error)\n isApiErrorRef.current = true\n return showAlert('Error while getting tickets, please try again')\n }\n\n setIsWaitingListVisible(!!isInWaitingList)\n setIsAccessCode(!!isAccessCodeRequired)\n setAreTicketGroupsShown(areGroupsShown || false)\n\n if (responseTickets && !_isEmpty(responseTickets)) {\n if (config.areTicketsGrouped) {\n if (areGroupsShown) {\n setGroupedTickets(responseTickets as IGroupedTickets[])\n } else {\n setTickets(responseTickets as ITicket[])\n }\n } else {\n setTickets(responseTickets as ITicket[])\n }\n\n if (isFirstCall && promoCodeResult?.isValid) {\n setPromoCodeResponse(promoCodeResult)\n } else if (!isFirstCall) {\n setPromoCodeResponse(promoCodeResult)\n }\n\n const onFetchTicketsData: IOnFetchTicketsSuccess = {\n promoCodeResponse: {\n success: true,\n message: promoCodeResponse?.message,\n },\n tickets: responseTickets,\n isInWaitingList,\n isAccessCodeRequired,\n areTicketsGroupsShown: areGroupsShown,\n }\n\n onFetchTicketsSuccess?.(onFetchTicketsData)\n\n if (\n !isFirstCall &&\n (!promoCodeResult?.isValid || promoCodeResult.isValid === 0)\n ) {\n onFetchTicketsSuccess?.({\n ...onFetchTicketsData,\n promoCodeResponse: {\n success: false,\n message: promoCodeResult?.message,\n },\n })\n }\n }\n\n setIsFirstCall(false)\n }\n\n const getEventData = async () => {\n logger.info('Fetching event data: API call')\n if (isApiErrorRef.current === true) {\n logger.info('Fetching event data: API call: Skip, error already occurred')\n return\n }\n\n setIsGettingEvent(true)\n const { eventError, eventData } = await getEventCore()\n logger.info('Fetching event data: API call: response', {\n eventError,\n eventData,\n })\n setIsGettingEvent(false)\n\n if (eventError) {\n logger.info('Fetching event data: API call: Error', eventError)\n eventErrorCodeRef.current = eventError.code || 400\n if (eventError.code === 401) {\n logger.info('Fetching event data: API call: Error: 401')\n setPasswordProtectedEventData({\n isPasswordProtected: true,\n message: eventError.message,\n })\n } else {\n logger.info('Fetching event data: API call: Error: ' + eventError.message)\n showAlert(eventError.message)\n }\n return onFetchEventError?.(\n eventError || { message: 'There was an error while fetching event' }\n )\n }\n\n eventErrorCodeRef.current = 0\n\n if (!eventData) {\n logger.info('Fetching event data: API call: Error: No event data')\n return onFetchEventError?.({\n message: 'There was an error while fetching event',\n })\n }\n\n try {\n logger.info('Fetching tickets: getTickets()')\n await getTickets()\n } catch (error) {\n logger.info('Fetching tickets: getTickets() Error: ' + error)\n showAlert(error)\n }\n\n onFetchEventSuccess?.(eventData)\n setEvent(eventData)\n }\n\n const performBookTickets = async () => {\n if (!selectedTicket || !selectedTicket.selectedOption) {\n onAddToCartError?.({ message: 'Please select a ticket' })\n return showAlert('Please select a ticket')\n }\n\n const ticketQuantity =\n typeof selectedTicket.selectedOption.value === 'string'\n ? parseInt(selectedTicket.selectedOption.value, 10)\n : selectedTicket.selectedOption.value\n\n const ticketsOptions: IBookTicketsOptions = {\n quantity: ticketQuantity,\n optionName: _get(selectedTicket, 'optionName'),\n ticketId: _get(selectedTicket, 'id'),\n price: selectedTicket.price,\n }\n\n setIsBooking(true)\n const { data: result, error: addToCartError } = await addToCartCore(ticketsOptions)\n setIsBooking(false)\n\n if (result) {\n return onAddToCartSuccess?.(result)\n }\n\n if (addToCartError) {\n showAlert(addToCartError.message || 'Error while adding tickets to cart')\n return onAddToCartError?.(addToCartError)\n }\n }\n //#endregion Api Calls\n\n const onLoadingChangeCallback = useCallback(\n (loading: boolean) => {\n if (onLoadingChange) {\n onLoadingChange(loading)\n }\n },\n [onLoadingChange]\n )\n\n //#region UseEffects\n useEffect(() => {\n if (isGettingEvent || isGettingTickets || isBooking) {\n onLoadingChangeCallback(true)\n } else {\n onLoadingChangeCallback(false)\n }\n }, [isGettingTickets, isGettingEvent, isBooking, onLoadingChangeCallback])\n\n useEffect(() => {\n if (!isCheckingCurrentSession && isFirstCall) {\n fetchInitialData()\n }\n }, [isCheckingCurrentSession])\n //#endregion UseEffects\n\n //#region Imperative Handler\n useImperativeHandle(ref, () => ({\n async refreshAccessToken(refreshToken: string): Promise<IFetchAccessTokenResponse> {\n if (!sessionHandleRef.current) {\n return {\n accessTokenError: {\n message: 'Session Handle ref is not initialized',\n },\n }\n }\n\n const { accessTokenError, accessTokenData } =\n await sessionHandleRef.current!.refreshAccessToken(refreshToken)\n if (!accessTokenError && accessTokenData?.accessToken) {\n await fetchInitialData()\n }\n return {\n accessTokenData,\n accessTokenError,\n }\n },\n\n async reloadData() {\n await fetchInitialData()\n },\n }))\n //#endregion Imperative Handler\n\n //#region Handlers\n const handleOnPressGetTickets = () => {\n if (eventErrorCodeRef.current !== 0) {\n showAlert('Event not found')\n return onAddToCartError?.({\n code: eventErrorCodeRef.current,\n message: 'Event not found',\n })\n }\n performBookTickets()\n }\n\n const handleOnPressApplyPromoCode = async (code: string) => {\n await getTickets(code)\n }\n\n const handleOnSelectTicketOption = (ticket: ISelectedTicket) => {\n setSelectedTicket(ticket)\n }\n\n const handleOnLogout = async () => {\n if (!ticketsCoreRef.current) {\n return { error: { message: 'Ticket core is not initialized' } }\n }\n\n await ticketsCoreRef.current.logout()\n setIsUserLogged(false)\n\n await getEventData()\n onPressLogout?.()\n }\n\n const handleOnLoadingChange = (loading: boolean) => {\n onLoadingChangeCallback(loading)\n }\n\n const handleOnSubmitEventPassword = async (password: string) => {\n setPasswordProtectedEventData({\n ...passwordProtectedEventData,\n isLoading: true,\n })\n\n const { eventData, eventError } = await unlockPasswordProtectedEventCore(password)\n\n if (eventError) {\n return setPasswordProtectedEventData({\n ...passwordProtectedEventData,\n isLoading: false,\n apiError: eventError.message,\n })\n }\n\n setPasswordProtectedEventData({\n ...passwordProtectedEventData,\n isLoading: false,\n apiError: '',\n isPasswordProtected: false,\n message: '',\n })\n eventErrorCodeRef.current = 0\n\n onFetchEventSuccess?.(eventData!)\n setEvent(eventData)\n getTickets()\n }\n //#endregion\n\n //#region RENDER\n return (\n <TicketsCore ref={ticketsCoreRef}>\n <SessionHandle ref={sessionHandleRef}>\n <TicketsView\n isGettingTickets={isGettingTickets}\n tickets={tickets}\n groupedTickets={groupedTickets}\n onPressGetTickets={handleOnPressGetTickets}\n onPressApplyPromoCode={handleOnPressApplyPromoCode}\n promoCodeValidationMessage={promoCodeResponse?.message}\n isPromoCodeValid={promoCodeResponse?.isValid}\n onSelectTicketOption={handleOnSelectTicketOption}\n selectedTicket={selectedTicket}\n isBookingTickets={isBooking}\n styles={styles}\n isGettingEvent={isGettingEvent}\n texts={texts}\n event={event}\n isWaitingListVisible={isWaitingListVisible}\n isGetTicketsButtonVisible={areTicketsOnSale()}\n isAccessCodeEnabled={isAccessCodeEnabled || isAccessCode}\n isPromoEnabled={isPromoEnabled}\n isUserLogged={isUserLogged}\n onPressMyOrders={onPressMyOrders}\n onPressLogout={handleOnLogout}\n areLoadingIndicatorsEnabled={config.areActivityIndicatorsEnabled}\n onAddToWaitingListError={onAddToWaitingListError}\n onAddToWaitingListSuccess={onAddToWaitingListSuccess}\n onLoadingChange={handleOnLoadingChange}\n promoCodeCloseIcon={promoCodeCloseIcon}\n areTicketsGroupsShown={areTicketGroupsShown}\n passwordProtectedEventData={passwordProtectedEventData}\n onPressSubmitEventPassword={handleOnSubmitEventPassword}\n isCheckingCurrentSession={isCheckingCurrentSession}\n />\n </SessionHandle>\n </TicketsCore>\n )\n //#endregion RENDER\n }\n)\n\nexport default Tickets\n","import React from 'react'\nimport { FlatList, SectionList, Text, View } from 'react-native'\n\nimport {\n EnterPassword,\n Loading,\n LoggedIn,\n PromoCode,\n WaitingList,\n} from '../../components'\nimport Button from '../../components/button/Button'\nimport Separator from '../../components/separator/Separator'\nimport TicketGroupListHeader from './components/TicketGroupListHeader'\nimport CartListItem from './components/TicketListItem'\nimport s from './styles'\nimport { ITicketsViewProps } from './types'\n\nconst TicketsView = ({\n isGettingTickets,\n tickets,\n groupedTickets,\n styles,\n onPressGetTickets,\n onPressApplyPromoCode,\n promoCodeValidationMessage,\n isPromoCodeValid,\n onSelectTicketOption,\n selectedTicket,\n isBookingTickets,\n texts,\n isGettingEvent,\n event,\n isWaitingListVisible,\n isGetTicketsButtonVisible,\n isAccessCodeEnabled,\n isUserLogged,\n onPressMyOrders,\n onPressLogout,\n areLoadingIndicatorsEnabled,\n onAddToWaitingListError,\n onAddToWaitingListSuccess,\n onLoadingChange,\n areAlertsEnabled,\n promoCodeCloseIcon,\n areTicketsGroupsShown,\n passwordProtectedEventData,\n onPressSubmitEventPassword,\n}: ITicketsViewProps) => {\n const isButtonDisabled = !selectedTicket || selectedTicket.selectedOption?.value === 0\n const buttonText = texts?.getTicketsButton\n ? texts.getTicketsButton\n : isButtonDisabled\n ? 'Get tickets'\n : `Get ${selectedTicket?.selectedOption?.value} tickets`\n const title = texts?.title ? texts.title : 'GET TICKETS'\n\n return passwordProtectedEventData?.isPasswordProtected ? (\n <EnterPassword\n onSubmit={onPressSubmitEventPassword}\n styles={styles?.enterPassword}\n texts={texts?.enterPassword}\n isLoading={passwordProtectedEventData?.isLoading}\n apiError={passwordProtectedEventData?.apiError}\n />\n ) : (\n <View style={[s.container, styles?.rootContainer]}>\n <View style={[s.container, styles?.container]}>\n <View style={s.header}>\n <Text style={[s.headerText, styles?.title]}>{title}</Text>\n </View>\n <PromoCode\n onPressApply={onPressApplyPromoCode}\n promoCodeValidationMessage={promoCodeValidationMessage}\n isPromoCodeValid={isPromoCodeValid}\n isAccessCodeEnabled={isAccessCodeEnabled}\n styles={styles?.promoCode}\n texts={texts?.promoCode}\n closeButtonIcon={promoCodeCloseIcon}\n />\n {areTicketsGroupsShown ? (\n <SectionList\n sections={groupedTickets}\n style={styles?.ticketList?.listContainer}\n renderItem={({ item, index }) => (\n <CartListItem\n onSelectTicketItem={onSelectTicketOption}\n ticket={item}\n ticketNumber={index}\n selectedTicket={selectedTicket}\n styles={styles?.ticketList?.item}\n texts={texts?.listItem}\n {...item}\n />\n )}\n renderSectionHeader={(data) => (\n <TicketGroupListHeader\n text={data.section.title}\n styles={{\n container: styles?.ticketList?.sectionHeader?.container,\n text: styles?.ticketList?.sectionHeader?.title,\n }}\n />\n )}\n />\n ) : (\n <FlatList\n data={tickets}\n style={styles?.ticketList?.listContainer}\n keyExtractor={(item) => `ticket.${item.id}`}\n renderItem={({ item, index }) => (\n <CartListItem\n onSelectTicketItem={onSelectTicketOption}\n ticket={item}\n ticketNumber={index}\n selectedTicket={selectedTicket}\n styles={styles?.ticketList?.item}\n texts={texts?.listItem}\n {...item}\n />\n )}\n ItemSeparatorComponent={() => <Separator />}\n />\n )}\n {isWaitingListVisible && event?.salesStarted && (\n <WaitingList\n styles={styles?.waitingList}\n texts={texts?.waitingList}\n onAddToWaitingListSuccess={onAddToWaitingListSuccess}\n onAddToWaitingListError={onAddToWaitingListError}\n onLoadingChange={onLoadingChange}\n areAlertsEnabled={areAlertsEnabled}\n />\n )}\n {isGetTicketsButtonVisible && (\n <Button\n text={buttonText}\n onPress={onPressGetTickets}\n isUpperCase={true}\n isLoading={isBookingTickets}\n isDisabled={isButtonDisabled}\n styles={\n isButtonDisabled\n ? styles?.getTicketsButtonDisabled\n : styles?.getTicketsButtonActive\n }\n />\n )}\n {isUserLogged && (\n <LoggedIn\n onPressMyOrders={onPressMyOrders}\n styles={styles?.loggedIn}\n texts={texts?.loggedInTexts}\n onPressLogout={onPressLogout}\n />\n )}\n {(isGettingTickets || isGettingEvent) && areLoadingIndicatorsEnabled && (\n <Loading />\n )}\n </View>\n </View>\n )\n}\n\nexport default TicketsView\n","import React, { FC } from 'react'\nimport { Text, View } from 'react-native'\n\nimport { ITicketGroupListHeaderProps } from './types'\n\nconst TicketGroupListHeader: FC<ITicketGroupListHeaderProps> = ({ styles, text }) => (\n <View style={styles?.container}>\n {!!text && <Text style={styles?.text}>{text}</Text>}\n </View>\n)\n\nexport default TicketGroupListHeader\n","import _maxBy from 'lodash/maxBy'\nimport React from 'react'\nimport { Text, View } from 'react-native'\n\nimport { Dropdown } from '../../../components'\nimport { IDropdownItem } from '../../../components/dropdown/types'\nimport { priceWithCurrency } from '../../../helpers/StringsHelper'\nimport { CartListItemStyles as s } from './styles'\nimport { ITicketListItemProps } from './types'\n\nconst TicketListItem = ({\n ticket,\n ticketNumber,\n onSelectTicketItem,\n selectedTicket,\n styles,\n texts,\n}: ITicketListItemProps) => {\n const soldOutText = texts?.soldOut || 'SOLD OUT'\n const salesNotStartedText = texts?.salesNotStarted || 'Sales not started'\n const salesEnded = texts?.salesEnded || 'Sales ended'\n const feesIncludedText = texts?.inclFees || '(incl. Fees)'\n const feesExcludedText = texts?.exclFees || '(excl. Fees)'\n const freeText = texts?.free || 'Free'\n const ticketText = texts?.ticket || 'Ticket'\n const isSoldOut = ticket.sold_out || !ticket.displayTicket || ticket.soldOut\n const isSalesClosed = !ticket.salesStarted || ticket.salesEnded\n const customSoldOutMessage = texts?.soldOut || 'SOLD OUT'\n const soldOutMessage = ticket.soldOutMessage\n ? `${ticket.soldOutMessage}`.toUpperCase()\n : customSoldOutMessage\n\n const ticketsClosedMessage = !ticket.salesStarted ? salesNotStartedText : salesEnded\n\n const getSelectOptions = (\n maxCount: number = 10,\n minCount: number = 1,\n multiplier: number = 1\n ) => {\n const options = [{ label: '0', value: 0 }]\n for (let i = minCount; i <= Math.min(50, maxCount); i += multiplier) {\n options.push({ label: i.toString(), value: i })\n }\n return options\n }\n\n const dropdownOptions = getSelectOptions(\n ticket.maxQuantity,\n ticket.minQuantity,\n ticket.multiplier\n )\n\n const handleOnSelectItem = (item: IDropdownItem) => {\n onSelectTicketItem({ ...ticket, selectedOption: item })\n }\n\n const selectedOption: IDropdownItem =\n selectedTicket && ticket.id === selectedTicket.id && selectedTicket.selectedOption\n ? selectedTicket.selectedOption\n : { label: '0', value: 0 }\n\n const feesIncluded = ticket.feeIncluded ? feesIncludedText : feesExcludedText\n const showOldPrice = ticket.price !== ticket.oldPrice\n const isTicketFree = +ticket.price === 0\n const ticketPrice = isSoldOut\n ? soldOutText\n : isTicketFree\n ? freeText\n : priceWithCurrency(ticket.price.toFixed(2).toString(), ticket.priceSymbol)\n\n const maximumOption = _maxBy(dropdownOptions, (o) => o.value)?.value\n\n let rightContent = <></>\n\n if (ticket.soldOut || ticket.sold_out || !ticket.displayTicket) {\n rightContent = <Text>{soldOutMessage}</Text>\n }\n if (ticket.displayTicket) {\n rightContent = isSalesClosed ? (\n <Text>{ticketsClosedMessage}</Text>\n ) : maximumOption && maximumOption > 0 ? (\n <Dropdown\n items={dropdownOptions}\n selectedOption={selectedOption}\n onSelectItem={handleOnSelectItem}\n styles={styles?.dropdown}\n />\n ) : (\n <></>\n )\n }\n\n return (\n <View style={[s.container, styles?.container]}>\n <View style={s.leftContainer}>\n <Text style={[s.ticketNumber, styles?.ticketName]} numberOfLines={2}>\n {ticket.displayName.toUpperCase() || `${ticketText} ${ticketNumber}`}\n </Text>\n {isSoldOut ? (\n <View style={[s.soldOutContainer, styles?.soldOutContainer]}>\n <Text style={[s.soldOut, styles?.soldOutText]}>{soldOutMessage}</Text>\n </View>\n ) : (\n <>\n <View style={styles?.pricesContainer}>\n {showOldPrice && (\n <Text style={[s.oldPrice, styles?.oldPrice]}>\n {priceWithCurrency(ticket.oldPrice?.toString(), ticket.priceSymbol)}\n </Text>\n )}\n <Text style={[s.price, styles?.price]}>{ticketPrice}</Text>\n </View>\n <Text style={[s.tax, styles?.fees]}>{feesIncluded.toUpperCase()}</Text>\n </>\n )}\n </View>\n {!isSalesClosed && !isSoldOut && (\n <View style={s.rightContainer}>{rightContent}</View>\n )}\n </View>\n )\n}\n\nexport default TicketListItem\n","import { StyleSheet } from 'react-native'\n\nimport R from '../../../res'\n\nexport const CartListItemStyles = StyleSheet.create({\n container: {\n width: '100%',\n paddingVertical: 16,\n flexDirection: 'row',\n },\n ticketNumber: {\n fontWeight: '600',\n fontSize: 16,\n marginBottom: 4,\n color: R.colors.primary,\n },\n price: {\n fontWeight: '800',\n fontSize: 18,\n color: R.colors.primary,\n },\n soldOut: {\n fontWeight: '800',\n fontSize: 20,\n color: R.colors.primary,\n },\n leftContainer: {\n flex: 7,\n },\n rightContainer: {\n flex: 3,\n alignItems: 'flex-end',\n justifyContent: 'center',\n },\n tax: {\n marginTop: 4,\n fontWeight: '600',\n color: R.colors.primary,\n },\n soldOutContainer: {\n borderRadius: 2,\n borderWidth: 2,\n justifyContent: 'center',\n alignItems: 'center',\n paddingVertical: 8,\n marginTop: 8,\n borderColor: R.colors.primary,\n },\n oldPrice: {\n fontSize: 16,\n color: R.colors.danger,\n textDecorationLine: 'line-through',\n },\n})\n","import { StyleSheet } from 'react-native'\n\nimport R from '../../res'\n\nexport default StyleSheet.create({\n container: {\n flex: 1,\n },\n header: {\n paddingVertical: 16,\n },\n headerText: {\n fontSize: 22,\n color: R.colors.primary,\n fontWeight: '800',\n },\n headerTextBold: {\n fontSize: 18,\n fontWeight: '800',\n color: R.colors.primary,\n },\n})\n","/*\n * COMPOSITE HOOK FOR CHECKOUT FLOW\n *\n * This hook is used to initialize the checkout flow\n * and provide all the necessary data and functions\n * to the checkout component.\n *\n */\n\nimport {\n BillingDetails,\n initStripe,\n useConfirmPayment,\n createPaymentMethod,\n} from '@stripe/stripe-react-native'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport BackgroundTimer from 'react-native-background-timer'\n\nimport { logger } from '../../../utils/Logger'\nimport { logError } from '../../../utils/handlers'\nimport { useRegisterUser } from '../../auth/api-hooks'\nimport { CustomerProfileResponse, IRegisterUserResponse } from '../../auth/types'\nimport { storeAuthTokens } from '../../auth/utils'\nimport { useEventCustomFields } from '../../event/api-hooks'\nimport { AddOnAttribute, OrderAttribute, TicketAttribute } from '../../event/types'\nimport { useCountries, useStates } from '../../geo/api-hooks'\nimport { CheckoutFormProps, CheckoutFormValues } from '../form/types'\nimport { IOrderItem, OrderResult, UpdateCheckoutResponse } from '../types'\nimport { createCheckoutBody, createRegistrationData, priceWithCurrency } from '../utils'\nimport {\n useAddons,\n useCart,\n useCheckout,\n useEventConditions,\n useEventInfo,\n usePaymentData,\n usePaymentSuccess,\n useTickets,\n useUpdateCheckout,\n} from './api-hooks'\n\nexport interface UseCheckoutFlowProps {\n onCartExpired?: () => void\n isSinglePageCheckout?: boolean\n isAgeRequired?: boolean\n isPhoneRequired?: boolean\n isPhoneHidden?: boolean\n minimumAge?: number\n customerProfile?: CustomerProfileResponse\n onCheckoutSuccess?: (data: ICheckoutSuccessData) => void\n onCheckoutError?: (error: any) => void\n onPaymentSuccess?: (data: OrderResult) => void\n onPaymentError?: (error: any) => void\n // Return true if the form should be submitted\n onRegistrationSuccess?: (data: IRegisterUserResponse) => void\n onRegistrationError?: (error: any) => void\n}\n\nexport interface UseCheckoutFlowReturn extends Omit<CheckoutFormProps, 'scrollRef'> {\n secondsLeft: number | undefined\n eventId: string | undefined\n isInitialLoading: boolean\n isSubmitting: boolean\n isLoggedIn: boolean\n setSecondsLeft: React.Dispatch<React.SetStateAction<number | undefined>>\n setSelectedCountry: React.Dispatch<React.SetStateAction<string>>\n checkoutData: UpdateCheckoutResponse | null\n handlePayment: (input: ICheckoutSuccessData) => Promise<void>\n}\n\nexport interface ICheckoutSuccessData {\n hash: string\n total: string | number\n values: CheckoutFormValues\n}\n\nexport const useCheckoutFlow = ({\n onCartExpired,\n onCheckoutSuccess,\n onCheckoutError,\n onPaymentSuccess,\n onPaymentError,\n isAgeRequired,\n isPhoneRequired,\n isPhoneHidden,\n minimumAge,\n isSinglePageCheckout,\n customerProfile,\n onRegistrationSuccess,\n onRegistrationError,\n}: UseCheckoutFlowProps): UseCheckoutFlowReturn => {\n const cartQuery = useCart()\n const eventId = cartQuery.data?.data?.attributes?.eventId\n\n const [orderItems, setOrderItems] = useState<IOrderItem[]>([])\n const [secondsLeft, setSecondsLeft] = useState<number | undefined>(undefined)\n const [isSubmitting, setIsSubmitting] = useState(false)\n const [checkoutData, setCheckoutData] = useState<UpdateCheckoutResponse | null>(null)\n\n const [selectedCountry, setSelectedCountry] = useState<string>('1')\n const [addons, setAddons] = useState<Record<string, number>>({})\n\n const ticketsQuery = useTickets(eventId)\n const eventInfoQuery = useEventInfo(eventId)\n\n const countriesQuery = useCountries()\n\n const checkoutMutation = useCheckout()\n const paymentDataMutation = usePaymentData()\n const updateCheckoutMutation = useUpdateCheckout()\n const paymentSuccessMutation = usePaymentSuccess()\n const customFieldsQuery = useEventCustomFields(eventId)\n\n const addonsQuery = useAddons(eventId)\n const statesQuery = useStates(selectedCountry)\n const conditionsQuery = useEventConditions(eventId)\n\n const handleRegistrationError = useCallback(\n (registerError: any): boolean => {\n // Check for already registered user (422 status)\n if (registerError?.response?.status === 422) {\n const errorData = registerError.response?.data\n\n // Check all possible email error structures\n const emailErrors =\n errorData?.errors?.email ||\n errorData?.data?.message?.email ||\n (errorData?.message?.email ? errorData.message.email : null)\n\n logger.debug('[useCheckoutFlow] Email validation error:', { emailErrors })\n if (emailErrors) {\n // Show login dialog for already registered user\n const emailAlreadyRegisteredText =\n 'It appears this email is already attached to an account. Please log in here to complete your registration.'\n\n let errorMessage: string\n if (Array.isArray(emailErrors)) {\n errorMessage = emailErrors[0]\n } else if (typeof emailErrors === 'string') {\n errorMessage = emailErrors\n } else {\n errorMessage = emailAlreadyRegisteredText\n }\n\n if (errorMessage === 'The email is already used') {\n errorMessage = emailAlreadyRegisteredText\n }\n\n // Show login dialog\n onRegistrationError?.(errorMessage)\n return true // Registration handled, don't continue with checkout\n } else {\n // Other validation errors\n const errorMessages = Object.entries(errorData?.errors || {})\n .map(\n ([field, messages]) =>\n `${field}: ${Array.isArray(messages) ? messages.join(', ') : messages}`\n )\n .join('\\n')\n throw new Error(`Validation errors: ${errorMessages}`)\n }\n }\n\n // Generic error\n throw new Error(registerError?.message || 'Registration failed')\n },\n [onRegistrationError]\n )\n\n const registerUserMutation = useRegisterUser()\n\n const registerUser = useCallback(\n async (values: CheckoutFormValues): Promise<boolean> => {\n try {\n // User is already registered or logged in, skip registration\n if (customerProfile) {\n logger.debug('[useCheckoutFlow] User already logged in, skipping registration')\n return true\n }\n logger.debug('[useCheckoutFlow] Starting user registration', {\n email: values.email,\n })\n // Create and submit registration data\n const registerUserData = createRegistrationData(values, isAgeRequired)\n const result = await registerUserMutation.mutateAsync(registerUserData)\n\n // Store tokens and extract user data\n await storeAuthTokens(result.data.attributes)\n\n logger.debug('[useCheckoutFlow] User registration successful', {\n email: values.email,\n })\n // Registration successful\n onRegistrationSuccess?.(result.data)\n return true\n } catch (registerError: any) {\n logger.error('[useCheckoutFlow] User registration failed', {\n error: registerError?.message,\n email: values.email,\n })\n return !handleRegistrationError(registerError)\n }\n },\n [\n customerProfile,\n isAgeRequired,\n registerUserMutation,\n handleRegistrationError,\n onRegistrationSuccess,\n ]\n )\n\n // Extract and sort order custom fields\n const orderCustomFields = useMemo(() => {\n if (!customFieldsQuery.data?.data?.attributes) {\n return []\n }\n\n // Filter for order attributes only\n const orderAttributes = customFieldsQuery.data.data.attributes.filter(\n (attr): attr is OrderAttribute => 'order' in attr\n )\n\n // Extract fields from order attributes and sort by order property\n const fields = orderAttributes\n .map((attr) => attr.order.group.fields)\n .flat()\n .sort((a, b) => {\n // Convert order strings to numbers for comparison\n const orderA = parseInt(a.order, 10) || 0\n const orderB = parseInt(b.order, 10) || 0\n return orderA - orderB\n })\n\n return fields\n }, [customFieldsQuery.data])\n\n // Extract and sort ticket custom fields\n const ticketCustomFields = useMemo(() => {\n if (!customFieldsQuery.data?.data?.attributes) {\n return []\n }\n\n // Filter for ticket attributes only\n const ticketAttributes = customFieldsQuery.data.data.attributes.filter(\n (attr) => 'ticket' in attr\n ) as TicketAttribute[]\n\n // Extract fields from ticket attributes and sort by order property\n const fields = ticketAttributes\n .map((attr) => attr.ticket.group.fields)\n .flat()\n .sort((a, b) => {\n // Convert order strings to numbers for comparison\n const orderA = parseInt(a.order, 10) || 0\n const orderB = parseInt(b.order, 10) || 0\n return orderA - orderB\n })\n\n return fields\n }, [customFieldsQuery.data])\n\n const addonCustomFields = useMemo(() => {\n if (!customFieldsQuery.data?.data?.attributes) {\n return []\n }\n\n // Filter for addon attributes only\n const addonAttributes = customFieldsQuery.data.data.attributes.filter(\n (attr) => 'add-on' in attr\n ) as AddOnAttribute[]\n\n // Extract fields from addon attributes and sort by order property\n const fields = addonAttributes\n .map((attr) => attr['add-on'].group.fields)\n .flat()\n .sort((a, b) => {\n // Convert order strings to numbers for comparison\n const orderA = parseInt(a.order, 10) || 0\n const orderB = parseInt(b.order, 10) || 0\n return orderA - orderB\n })\n\n return fields\n }, [customFieldsQuery.data])\n\n const { confirmPayment } = useConfirmPayment()\n\n const isInitialLoading = useMemo(() => {\n if (cartQuery.isPending) return true\n if (eventInfoQuery.isPending) return true\n if (ticketsQuery.isPending) return true\n if (countriesQuery.isPending) return true\n if (customFieldsQuery.isPending) return true\n\n return false\n }, [\n cartQuery.isPending,\n eventInfoQuery.isPending,\n ticketsQuery.isPending,\n countriesQuery.isPending,\n customFieldsQuery.isPending,\n ])\n\n const defaultCustomFieldValues = useMemo(() => {\n const orderDefaults: Record<string, string | string[]> = {}\n const ticketDefaults: Record<string, string | string[]> = {}\n const addonDefaults: Record<string, string | string[]> = {}\n\n // Get the custom fields from the query response\n if (customFieldsQuery.data?.data?.attributes) {\n // Filter to only include OrderAttribute types and cast accordingly\n const orderAttributes = customFieldsQuery.data.data.attributes.filter(\n (attr): attr is OrderAttribute => 'order' in attr\n )\n\n const ticketAttributes = customFieldsQuery.data.data.attributes.filter(\n (attr): attr is TicketAttribute => 'ticket' in attr\n )\n\n const addonAttributes = customFieldsQuery.data.data.attributes.filter(\n (attr): attr is AddOnAttribute => 'add-on' in attr\n )\n // Extract fields from order attributes - now TypeScript knows these are OrderAttribute\n const orderFields = orderAttributes.map((attr) => attr.order.group.fields).flat()\n // Set default values for fields that have them\n orderFields.forEach((field) => {\n if (field.defaultValue !== undefined && field.defaultValue !== null) {\n orderDefaults[field.name] = field.defaultValue\n }\n })\n\n // Extract fields from ticket attributes - now TypeScript knows these are TicketAttribute\n const ticketFields = ticketAttributes.map((attr) => attr.ticket.group.fields).flat()\n\n ticketFields.forEach((field) => {\n if (field.defaultValue !== undefined && field.defaultValue !== null) {\n ticketDefaults[field.name] = field.defaultValue\n }\n })\n\n // Extract fields from addon attributes - now TypeScript knows these are AddOnAttribute\n const addonFields = addonAttributes\n .map((attr) => attr['add-on'].group.fields)\n .flat()\n\n addonFields.forEach((field) => {\n if (field.defaultValue !== undefined && field.defaultValue !== null) {\n addonDefaults[field.name] = field.defaultValue\n }\n })\n }\n\n return { orderDefaults, ticketDefaults, addonDefaults }\n }, [customFieldsQuery.data])\n\n // Prefill form with user profile data when available\n const initialValues = useMemo(() => {\n // Get ticket quantity from cart\n const ticketQuantity = cartQuery.data?.data?.attributes?.cart?.[0]?.quantity || 1\n // Create empty ticket holders array based on ticket quantity\n const ticketHolders = Array.from({ length: ticketQuantity }, () => ({\n firstName: '',\n lastName: '',\n email: '',\n phone: '',\n customFields: { ...defaultCustomFieldValues.ticketDefaults }, // Apply default values for ticket custom fields\n }))\n\n const availableAddons = addonsQuery.data?.data?.attributes?.add_ons || []\n\n // build addon defaults\n const addonDefaults: CheckoutFormValues['addons'] = {}\n\n availableAddons.forEach((addon) => {\n const addonId = addon.id?.toString()\n\n addonDefaults[addonId] = {\n quantity: 0,\n customFields: {},\n }\n\n // every add-on uses the same addonCustomFields list\n addonCustomFields.forEach((field) => {\n if (field.defaultValue != null) {\n addonDefaults[addonId].customFields[field.name] = Array.isArray(\n field.defaultValue\n )\n ? field.defaultValue.join(',')\n : field.defaultValue\n }\n })\n })\n\n const base: CheckoutFormValues = {\n firstName: '',\n lastName: '',\n email: '',\n emailConfirmation: '',\n phone: '',\n dateOfBirth: undefined,\n street: '',\n city: '',\n postalCode: '',\n password: '',\n passwordConfirmation: '',\n isSubToTicketFairy: false,\n isSubToBrand: false,\n isCardFormComplete: false,\n country: '-1',\n state: '-1',\n addons: addonDefaults,\n acceptedConditions: {},\n customFields: { ...defaultCustomFieldValues.orderDefaults },\n ticketHolders,\n }\n\n if (customerProfile) {\n const profile = customerProfile\n\n // Fill main user info\n base.firstName = profile.firstName || ''\n base.lastName = profile.lastName || ''\n base.email = profile.email || ''\n base.emailConfirmation = profile.email || ''\n base.phone = profile.phone || ''\n base.street = profile.streetAddress || ''\n base.city = profile.city || ''\n base.postalCode = profile.zipCode || ''\n base.country = profile.countryId || '-1'\n base.state = profile.stateId || '-1'\n base.dateOfBirth = profile.dateOfBirth || undefined\n\n // Fill first ticket holder info from the user's profile data\n if (base.ticketHolders.length > 0) {\n base.ticketHolders[0] = {\n ...base.ticketHolders[0],\n firstName: profile.firstName || '',\n lastName: profile.lastName || '',\n email: profile.email || '',\n phone: profile.phone || '',\n }\n }\n }\n\n return base\n }, [cartQuery.data?.data?.attributes?.cart, customerProfile, defaultCustomFieldValues])\n\n const countries = useMemo(() => {\n return countriesQuery.data?.data || []\n }, [countriesQuery.data?.data])\n\n const states = useMemo(() => {\n return statesQuery?.data?.data || []\n }, [statesQuery?.data?.data])\n\n const availableAddons = useMemo(() => {\n return addonsQuery.data?.data?.attributes?.add_ons || []\n }, [addonsQuery.data?.data?.attributes?.add_ons])\n\n const conditions = useMemo(() => {\n return conditionsQuery.data?.data?.attributes?.conditions || []\n }, [conditionsQuery.data?.data?.attributes?.conditions])\n\n const eventCurrency = useMemo(() => {\n return eventInfoQuery.data?.data.attributes.currency.currency\n }, [eventInfoQuery.data?.data.attributes.currency.currency])\n\n const isLoggedIn = useMemo(() => {\n return !!customerProfile\n }, [customerProfile])\n\n // Handle payment processing\n const handlePayment = useCallback(\n async (input: ICheckoutSuccessData) => {\n try {\n setIsSubmitting(true)\n logger.debug('[useCheckoutFlow] Starting payment process', {\n hash: input.hash,\n total: input.total,\n })\n\n // Get payment data\n const paymentResponse = await paymentDataMutation.mutateAsync(String(input.hash))\n const { order_details, payment_method } = paymentResponse.data.attributes\n // Check if this is a free ticket\n const isFreeTicket =\n Number(input.total) === 0 || Number(order_details.pay_now) === 0\n\n if (isFreeTicket) {\n logger.debug('[useCheckoutFlow] Processing free ticket order', {\n hash: input.hash,\n })\n // For free tickets, just confirm the order\n await paymentSuccessMutation.mutateAsync(String(input.hash))\n\n const result: OrderResult = {\n orderHash: String(input.hash),\n total: Number(input.total),\n currency: order_details.currency,\n email: input.values.email,\n }\n\n logger.debug('[useCheckoutFlow] Free ticket order confirmed', {\n hash: input.hash,\n email: input.values.email,\n })\n onPaymentSuccess?.(result)\n } else {\n logger.debug('[useCheckoutFlow] Processing paid ticket with Stripe', {\n hash: input.hash,\n amount: order_details.pay_now,\n })\n\n // Lookup country ISO-2 code from the countries list\n const selectedCountry = countries.find((c) => c.id === input.values.country)\n const countryCode = selectedCountry?.code || undefined\n\n // Lookup state code from the states list\n const selectedState = states.find((s) => s.value === input.values.state)\n const stateCode = selectedState?.code || undefined\n\n const billingDetails: BillingDetails = {\n email: input.values.email,\n name: `${input.values.firstName} ${input.values.lastName}`,\n phone: input.values.phone || undefined,\n address: {\n city: input.values.city || undefined,\n country: countryCode,\n line1: input.values.street || undefined,\n postalCode: input.values.postalCode || undefined,\n state: stateCode,\n },\n }\n\n logger.debug('[useCheckoutFlow] Confirming payment with Stripe')\n const { error: confirmError, paymentIntent } = await confirmPayment(\n payment_method.stripe_client_secret!,\n { paymentMethodType: 'Card', paymentMethodData: { billingDetails } }\n )\n\n if (confirmError || paymentIntent?.status !== 'Succeeded') {\n const errorMessage = confirmError?.message || 'Payment failed'\n logger.error('[useCheckoutFlow] Stripe payment failed', {\n error: errorMessage,\n errorCode: confirmError?.code,\n paymentIntentStatus: paymentIntent?.status,\n })\n\n // Provide user-friendly error messages\n if (\n errorMessage.includes('incomplete') ||\n errorMessage.includes('not complete')\n ) {\n throw new Error('Please complete all card details before submitting')\n }\n throw new Error(errorMessage)\n }\n\n logger.debug('[useCheckoutFlow] Stripe payment succeeded', {\n paymentIntentId: paymentIntent.id,\n })\n // Notify backend of successful payment\n await paymentSuccessMutation.mutateAsync(String(input.hash))\n\n // Notify about successful payment\n const result: OrderResult = {\n orderHash: String(input.hash),\n total: Number(input.total),\n currency: order_details.currency,\n email: input.values.email,\n paymentIntentId: paymentIntent.id,\n }\n\n logger.debug('[useCheckoutFlow] Payment process completed successfully', {\n hash: input.hash,\n email: input.values.email,\n })\n onPaymentSuccess?.(result)\n }\n } catch (error) {\n logger.error('[useCheckoutFlow] Payment process failed', {\n error: error instanceof Error ? error.message : String(error),\n })\n logError(error, 'Checkout: handlePayment')\n onPaymentError?.(error)\n throw error\n } finally {\n setIsSubmitting(false)\n }\n },\n [\n paymentDataMutation,\n paymentSuccessMutation,\n onPaymentSuccess,\n onPaymentError,\n confirmPayment,\n ]\n )\n\n const handleCheckout = useCallback(\n async (values: CheckoutFormValues) => {\n try {\n logger.debug('[useCheckoutFlow] Starting checkout process', {\n email: values.email,\n ticketHoldersCount: values.ticketHolders.length,\n })\n const checkoutBody = createCheckoutBody(values, isAgeRequired)\n const checkoutResponse = await checkoutMutation.mutateAsync(checkoutBody)\n\n const hash = checkoutResponse.data.attributes.hash\n const total = checkoutResponse.data.attributes.total\n logger.debug('[useCheckoutFlow] Checkout created successfully', {\n hash,\n total,\n email: values.email,\n })\n onCheckoutSuccess?.({ hash, total, values })\n\n return { hash, total }\n } catch (error) {\n logger.error('[useCheckoutFlow] Checkout process failed', {\n error: error instanceof Error ? error.message : String(error),\n email: values.email,\n })\n logError(error, 'Checkout: handleCheckout')\n onCheckoutError?.(error)\n throw error\n }\n },\n [checkoutMutation, isAgeRequired, onCheckoutSuccess, onCheckoutError]\n )\n\n const onSubmit = useCallback(\n async (values: CheckoutFormValues) => {\n try {\n setIsSubmitting(true)\n if (!(await registerUser(values))) return\n\n const { hash, total } = await handleCheckout(values)\n\n if (isSinglePageCheckout) {\n await handlePayment({\n hash,\n total,\n values,\n })\n }\n } catch (error) {\n logError(error, 'Checkout: onSubmit')\n } finally {\n setIsSubmitting(false)\n }\n },\n [registerUser, handleCheckout, isSinglePageCheckout, handlePayment]\n )\n\n const updateOrderItemsFromCheckoutData = useCallback(\n (\n cartPriceBreakdown: UpdateCheckoutResponse['attributes']['cart_price_breakdown']\n ) => {\n if (!cartPriceBreakdown) return\n\n // Update order items with the latest pricing information\n const updatedOrderItems: IOrderItem[] = []\n const currency = cartPriceBreakdown.currency?.currency || 'USD'\n\n // Add ticket items\n if (cartPriceBreakdown.tickets_price_breakdown) {\n cartPriceBreakdown.tickets_price_breakdown.forEach((ticket: any) => {\n updatedOrderItems.push({\n id: ticket.ticket_type_id,\n title: ticket.ticket_type_name,\n subtitle: `${ticket.quantity} x ${priceWithCurrency(\n ticket.price_per_ticket,\n currency\n )}`,\n value: priceWithCurrency(ticket.total_price.toString(), currency),\n })\n })\n }\n\n // Add add-ons\n if (\n cartPriceBreakdown.total_add_ons > 0 &&\n cartPriceBreakdown.add_ons_price_breakdown &&\n Array.isArray(cartPriceBreakdown.add_ons_price_breakdown)\n ) {\n cartPriceBreakdown.add_ons_price_breakdown.forEach((addon: any) => {\n updatedOrderItems.push({\n id: `addon_${addon.add_on_name}`,\n title: `${addon.add_on_name} (Add-on)`,\n subtitle: `${addon.quantity} x ${priceWithCurrency(\n addon.price_per_add_on,\n currency\n )}`,\n value: priceWithCurrency(addon.total_price.toString(), currency),\n })\n })\n }\n\n // Add tax if available\n if (cartPriceBreakdown.goods_tax > 0) {\n updatedOrderItems.push({\n id: 'tax',\n title: cartPriceBreakdown.goods_tax_name || 'Tax',\n value: priceWithCurrency(cartPriceBreakdown.goods_tax.toString(), currency),\n })\n }\n\n // Add total\n updatedOrderItems.push({\n id: 'total',\n title: 'Total',\n value: priceWithCurrency(cartPriceBreakdown.total.toString(), currency),\n })\n\n // Update the order items state\n setOrderItems(updatedOrderItems)\n },\n [setOrderItems]\n )\n\n // Function to update checkout with add-ons\n const updateCheckoutWithAddOns = useCallback(\n async (newAddons: { [key: string]: number } = {}) => {\n if (!eventId) {\n console.warn('Cannot update addons - no event ID')\n return\n }\n\n const mergedAddons = { ...addons, ...newAddons }\n console.log('Updating checkout with addons', {\n eventId,\n newAddons,\n mergedAddons,\n })\n\n // Remove zero quantities\n Object.entries(mergedAddons).forEach(([key, value]) => {\n if (!Number(value)) {\n delete mergedAddons[key]\n }\n })\n\n try {\n console.log('Updating checkout with addons', {\n event_id: eventId,\n add_ons: mergedAddons,\n is_from_resale: false,\n })\n // Call the API\n const response = await updateCheckoutMutation.mutateAsync({\n attributes: {\n event_id: eventId,\n add_ons: mergedAddons,\n is_from_resale: false,\n },\n })\n\n console.log('Update checkout response', JSON.stringify(response))\n\n if (response.data?.attributes) {\n const cartPriceBreakdown = response.data.attributes.cart_price_breakdown\n\n setAddons(mergedAddons)\n updateOrderItemsFromCheckoutData(cartPriceBreakdown)\n }\n } catch (error) {\n console.error('Failed to update addons', { error, eventId })\n }\n },\n [eventId, addons, updateCheckoutMutation, setAddons, updateOrderItemsFromCheckoutData]\n )\n\n // Function to handle addon changes from the form\n const onAddonChange = useCallback(\n (addonId: string, quantity: number) => {\n const updatedAddons = { [addonId]: quantity }\n updateCheckoutWithAddOns(updatedAddons)\n },\n [updateCheckoutWithAddOns]\n )\n\n const onCountryChange = useCallback(\n (countryId: string) => {\n setSelectedCountry(countryId)\n },\n [setSelectedCountry]\n )\n\n useEffect(() => {\n if (cartQuery.data?.data?.attributes?.expiresAt) {\n const expiresAt = cartQuery.data.data.attributes.expiresAt\n setSecondsLeft(expiresAt)\n\n BackgroundTimer.runBackgroundTimer(() => {\n setSecondsLeft((prev: number | undefined) => {\n if (!prev || prev <= 1) {\n BackgroundTimer.stopBackgroundTimer()\n onCartExpired?.()\n return 0\n }\n return prev - 1\n })\n }, 1000)\n\n return () => BackgroundTimer.stopBackgroundTimer()\n }\n }, [cartQuery.data, setSecondsLeft, onCartExpired])\n\n useEffect(() => {\n if (cartQuery.data?.data?.attributes) {\n const cartData = cartQuery.data.data.attributes\n const currency = (cartData.cart?.[0] as any)?.currency || 'USD'\n const eventName = eventInfoQuery.data?.data.attributes.name ?? 'Event'\n\n const items: IOrderItem[] = [\n {\n id: 'event',\n title: 'Event',\n value: eventName,\n },\n {\n id: 'tickets',\n title: 'Number of Tickets',\n value: (cartData.cart?.[0] as any)?.quantity?.toString() || '1',\n },\n ]\n\n if ((cartData.cart?.[0] as any)?.price) {\n items.push({\n id: 'price',\n title: 'Ticket Price',\n value: priceWithCurrency((cartData.cart[0] as any).price, currency),\n })\n }\n\n const total = (cartData.cart?.[0] as any)?.price || 0\n items.push({\n id: 'total',\n title: 'Total',\n value: priceWithCurrency(total, currency),\n })\n\n setOrderItems(items)\n }\n }, [cartQuery.data, eventInfoQuery.data])\n\n useEffect(() => {\n if (!eventId) return\n\n ;(async () => {\n const response = await updateCheckoutMutation.mutateAsync({\n attributes: {\n event_id: eventId,\n add_ons: addons,\n is_from_resale: false,\n },\n })\n const cartPriceBreakdown = response.data?.attributes?.cart_price_breakdown\n const additionalPaymentInformation =\n response.data?.attributes?.additional_payment_information\n\n const stripeConfig = {\n publishableKey: additionalPaymentInformation?.basic_config.apiKey,\n accountId: additionalPaymentInformation?.basic_config.accountId,\n }\n\n // await initStripe(stripeConfig);\n // setTimeout(() => {\n // setStripeInitialized(true);\n // }, 100);\n\n if (cartPriceBreakdown) {\n updateOrderItemsFromCheckoutData(cartPriceBreakdown)\n }\n\n setCheckoutData(response.data)\n })()\n }, [eventInfoQuery.data])\n\n useEffect(() => {\n if (customerProfile) {\n const profile = customerProfile\n if (profile.countryId) {\n setSelectedCountry(profile.countryId.toString())\n }\n }\n }, [setSelectedCountry, customerProfile])\n\n return {\n // Handlers\n onAddonChange,\n onCountryChange,\n onSubmit,\n\n setSecondsLeft,\n setSelectedCountry,\n\n handlePayment,\n\n // States\n states,\n eventId,\n countries,\n orderItems,\n conditions,\n secondsLeft,\n availableAddons,\n initialValues,\n eventCurrency,\n isSubmitting,\n isInitialLoading,\n isLoggedIn,\n isPhoneRequired,\n isAgeRequired,\n isPhoneHidden,\n minimumAge,\n isSinglePageCheckout,\n\n orderCustomFields,\n ticketCustomFields,\n addonCustomFields,\n checkoutData,\n }\n}\n","import axios from 'axios'\n\nexport function readableError(error: unknown) {\n if (axios.isAxiosError(error)) {\n return error.response?.data?.message || error.message\n } else if (error instanceof Error) {\n return error.message\n } else {\n return String(error)\n }\n}\n\n/**\n * Logs the most useful information from any error (Axios or otherwise).\n */\nexport function logError(\n error: unknown,\n context?: string,\n options?: { logStack?: boolean; logConfig?: boolean }\n) {\n const prefix = context ? `[${context}]` : '[Error]'\n\n if (axios.isAxiosError(error)) {\n console.error(`${prefix}: ${error.message}`)\n\n if (error.response) {\n console.error(`${prefix} Response:`, {\n status: error.response.status,\n statusText: error.response.statusText,\n data: error.response.data,\n })\n } else if (error.request) {\n console.error(`${prefix} No response received:`, error.request)\n }\n\n if (options?.logConfig) {\n console.error(`${prefix} Config:`, error.config)\n }\n } else if (error instanceof Error) {\n // Regular JS Error\n console.error(`${prefix}: ${error.message}`)\n if (options?.logStack) {\n console.error(`${prefix} Stack:`, error.stack)\n }\n } else {\n // Unknown type\n console.error(`${prefix} Unknown error:`, error)\n }\n}\n","import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'\nimport { AxiosError } from 'axios'\nimport { useCallback, useEffect, useState } from 'react'\n\nimport { ApiResponse } from '../../api/api.types'\nimport { Client } from '../../api/ApiClient'\nimport { QueryOpts } from '../../common/query.types'\nimport { isStoredTokenValid } from '../../helpers/LocalStorage'\nimport { CustomerProfileResponse, IRegisterUserResponse } from './types'\n\n/*\n * Hook to register new user\n */\nexport const useRegisterUser = () => {\n return useMutation<ApiResponse<IRegisterUserResponse>, AxiosError, FormData>({\n mutationFn: (userData) =>\n Client.post<ApiResponse<IRegisterUserResponse>>(\n 'v1/oauth/register-rn',\n userData\n ).then((response) => response.data),\n })\n}\n\n/**\n * Hook to fetch user profile\n */\nexport const useUserProfile = (\n options?: QueryOpts<ApiResponse<CustomerProfileResponse>, AxiosError>\n) => {\n const queryClient = useQueryClient()\n const [enabled, setEnabled] = useState(false)\n\n useEffect(() => {\n isStoredTokenValid().then((isValid) => setEnabled(isValid))\n }, [])\n\n const invalidate = useCallback(async () => {\n const isValid = await isStoredTokenValid()\n setEnabled(isValid)\n queryClient.invalidateQueries({ queryKey: ['userProfile'] })\n\n if (!isValid) {\n queryClient.cancelQueries({ queryKey: ['userProfile'] })\n queryClient.removeQueries({ queryKey: ['userProfile'] })\n queryClient.setQueryData(['userProfile'], undefined)\n }\n }, [queryClient])\n\n const query = useQuery<ApiResponse<CustomerProfileResponse>, AxiosError>({\n queryKey: ['userProfile'],\n queryFn: () =>\n Client.get<ApiResponse<CustomerProfileResponse>>(`customer/profile/`).then(\n (response) => response.data\n ),\n retry: false,\n enabled,\n ...options,\n })\n\n return { ...query, invalidate }\n}\n","import { setAccessTokenHandler } from '../../api/ApiClient'\nimport { LocalStorageKeys, storeData } from '../../helpers/LocalStorage'\nimport { IAuthAttributes } from './types'\n\n// Helper to store authentication tokens\nexport const storeAuthTokens = async (attributes: IAuthAttributes): Promise<void> => {\n const accessToken = attributes.access_token\n const refreshToken = attributes.refresh_token\n const tokenType = attributes.token_type\n const scope = attributes.scope\n\n if (!accessToken) return\n\n await setAccessTokenHandler(accessToken)\n\n if (refreshToken) {\n await storeData(LocalStorageKeys.REFRESH_TOKEN, refreshToken)\n }\n\n if (tokenType) {\n await storeData(LocalStorageKeys.TOKEN_TYPE, tokenType)\n }\n\n if (scope) {\n await storeData(LocalStorageKeys.AUTH_SCOPE, scope)\n }\n}\n","import { useQuery } from '@tanstack/react-query'\nimport { AxiosError } from 'axios'\n\nimport { ApiResponse } from '../../api/api.types'\nimport { Client } from '../../api/ApiClient'\nimport { QueryOpts } from '../../common/query.types'\nimport { IEventCustomFields } from './types'\n\n/**\n * Hook to fetch user profile\n */\nexport const useEventCustomFields = (\n eventId?: string,\n options?: QueryOpts<ApiResponse<IEventCustomFields>, AxiosError>\n) => {\n const query = useQuery<ApiResponse<IEventCustomFields>, AxiosError>({\n queryKey: ['eventCustomFields', eventId],\n queryFn: () =>\n Client.get<ApiResponse<IEventCustomFields>>(\n `v1/event/${eventId}/custom_fields/`\n ).then((response) => response.data),\n retry: false,\n enabled: !!eventId,\n ...options,\n })\n\n return { ...query }\n}\n","import { useQuery } from '@tanstack/react-query'\nimport { AxiosError } from 'axios'\n\nimport { ApiResponse } from '../../api/api.types'\nimport { Client } from '../../api/ApiClient'\nimport { CountriesResponse, StatesResponse } from './types'\n\n/**\n * Hook to fetch countries list\n */\nexport const useCountries = () => {\n return useQuery<ApiResponse<CountriesResponse>, AxiosError>({\n queryKey: ['countries'],\n queryFn: () =>\n Client.get<ApiResponse<CountriesResponse>>(`countries/list`).then(\n (response) => response.data\n ),\n staleTime: 1000 * 60 * 60 * 24, // 24 hours - countries rarely change\n })\n}\n\n/**\n * Hook to fetch states for a country\n */\nexport const useStates = (countryId?: string) => {\n return useQuery<ApiResponse<StatesResponse>, AxiosError>({\n queryKey: ['states', countryId],\n queryFn: () =>\n Client.get<ApiResponse<Record<string, string>>>(\n `countries/${countryId}/states/`\n ).then((response) => {\n return {\n ...response.data,\n data: Object.entries(response.data.data || {}).map(([id, name]) => ({\n label: String(name),\n value: id,\n code: id, // Use the key as the state code (ISO-2/state code)\n })),\n }\n }),\n enabled: !!countryId && countryId !== '-1',\n })\n}\n","/**\n * Utility functions for checkout flow\n */\n\nimport { Config } from '../../helpers/Config'\nimport { CustomField } from '../event/types'\nimport { FieldType } from '../form/types'\nimport { CheckoutFormValues } from './form/types'\nimport { ICheckoutBody } from './types'\n\n// Import and re-export from shared\nexport { priceWithCurrency } from 'tf-checkout-shared'\n\nexport const createRegistrationData = (\n values: CheckoutFormValues,\n isAgeRequired?: boolean\n): FormData => {\n const registerUserData = new FormData()\n\n // Basic user info\n registerUserData.append('email', values.email)\n registerUserData.append('first_name', values.firstName)\n registerUserData.append('last_name', values.lastName)\n registerUserData.append('password', values.password)\n registerUserData.append('password_confirmation', values.passwordConfirmation)\n\n // Required credentials\n registerUserData.append('client_id', Config.CLIENT_ID)\n registerUserData.append('client_secret', Config.CLIENT_SECRET)\n registerUserData.append('check_cart_expiration', 'true')\n\n // Optional fields\n if (values.phone) registerUserData.append('phone', values.phone)\n if (values.city) registerUserData.append('city', values.city)\n if (values.street) registerUserData.append('street_address', values.street)\n if (values.postalCode) registerUserData.append('zip', values.postalCode)\n\n // Address fields\n if (values.country && values.country !== '-1') {\n registerUserData.append('country', values.country)\n }\n if (values.state && values.state !== '-1') {\n registerUserData.append('state', values.state)\n }\n\n // Age verification\n if (isAgeRequired && values.dateOfBirth) {\n addDateOfBirthToFormData(registerUserData, values.dateOfBirth)\n }\n\n return registerUserData\n}\n\n// Helper to add date of birth fields to form data\nconst addDateOfBirthToFormData = (formData: FormData, dateOfBirth: string): void => {\n const dob = new Date(dateOfBirth)\n formData.append('dob_day', dob.getDate().toString())\n formData.append('dob_month', (dob.getMonth() + 1).toString())\n formData.append('dob_year', dob.getFullYear().toString())\n}\n\n// Helper to create checkout request body\nexport const createCheckoutBody = (\n values: CheckoutFormValues,\n isAgeRequired?: boolean\n): ICheckoutBody => {\n // Use the ticket holders from the form values - no fallbacks\n const ticketHolders = values.ticketHolders.map((holder) => ({\n email: holder.email,\n first_name: holder.firstName,\n last_name: holder.lastName,\n phone: holder.phone,\n }))\n\n const body: ICheckoutBody = {\n attributes: {\n city: values.city,\n confirm_email: values.emailConfirmation,\n country:\n values.country && values.country !== '-1'\n ? parseInt(values.country, 10)\n : undefined,\n email: values.email,\n first_name: values.firstName,\n last_name: values.lastName,\n password: values.password || '',\n phone: values.phone || '',\n state:\n values.state && values.state !== '-1' ? parseInt(values.state, 10) : undefined,\n street_address: values.street,\n zip: values.postalCode,\n ticket_holders: ticketHolders,\n ttf_opt_in: values.isSubToTicketFairy,\n brand_opt_in: values.isSubToBrand,\n },\n }\n\n if (values.addons && Object.keys(values.addons).length > 0) {\n body.attributes.add_ons = {}\n body.attributes.add_on_data_capture = {}\n\n Object.entries(values.addons).forEach(([addonId, addonData]) => {\n if (addonData.quantity > 0) {\n body.attributes.add_ons[addonId] = addonData.quantity\n\n if (addonData.customFields && Object.keys(addonData.customFields).length > 0) {\n body.attributes.add_on_data_capture[addonId] = {}\n\n Object.entries(addonData.customFields).forEach(([key, value]) => {\n if (value !== undefined && value !== '') {\n body.attributes.add_on_data_capture[addonId][key] = value\n }\n })\n }\n }\n })\n }\n\n // Add date of birth if required\n if (isAgeRequired && values.dateOfBirth) {\n const dob = new Date(values.dateOfBirth)\n body.attributes.dob_day = dob.getDate()\n body.attributes.dob_month = dob.getMonth() + 1\n body.attributes.dob_year = dob.getFullYear()\n }\n\n // Add custom fields if present\n if (values.customFields && Object.keys(values.customFields).length > 0) {\n body.attributes.data_capture = {}\n // Format custom fields for API\n Object.entries(values.customFields).forEach(([key, value]) => {\n if (value !== undefined && value !== '') {\n body.attributes.data_capture![key] = value\n }\n })\n }\n\n return body\n}\n\nexport const getFieldType = (type: CustomField['type']): FieldType => {\n switch (type) {\n case 'text':\n return FieldType.INPUT\n case 'textarea':\n return FieldType.TEXTAREA\n case 'phone':\n return FieldType.PHONE\n case 'radio':\n return FieldType.RADIO\n case 'select':\n return FieldType.SELECT\n case 'select_multi':\n return FieldType.SELECT_MULTI\n }\n}\n","import {\n useMutation,\n useQuery,\n useQueryClient,\n UseQueryOptions,\n} from '@tanstack/react-query'\nimport { AxiosError } from 'axios'\nimport { useCallback } from 'react'\n\nimport { ApiResponse } from '../../../api/api.types'\nimport { Client } from '../../../api/ApiClient'\nimport { logger } from '../../../utils/Logger'\nimport { ICheckoutBody } from '../../../api/types'\nimport {\n AddonsResponse,\n AddToCartResponse,\n CartResponse,\n CheckoutResponse,\n EventResponse,\n IAddToCartParams,\n PaymentDataResponse,\n PaymentSuccessResponse,\n TicketsResponse,\n UpdateCheckoutParams,\n UpdateCheckoutResponse,\n} from '../types'\n\n/**\n * Hook to fetch event information\n */\nexport const useEventInfo = (\n eventId?: string | number,\n options?: UseQueryOptions<ApiResponse<EventResponse>, AxiosError>\n) => {\n return useQuery<ApiResponse<EventResponse>, AxiosError>({\n queryKey: ['eventInfo', eventId],\n queryFn: () => {\n logger.debug('[api-hooks] Fetching event info', { eventId })\n return Client.get<ApiResponse<EventResponse>>(`v1/event/${eventId}`)\n .then((response) => {\n logger.debug('[api-hooks] Event info fetched successfully', {\n eventId,\n eventName: response.data.data?.attributes?.name,\n })\n return response.data\n })\n .catch((error) => {\n logger.error('[api-hooks] Failed to fetch event info', {\n eventId,\n error: error?.message,\n })\n throw error\n })\n },\n enabled: !!eventId,\n ...options,\n })\n}\n\n/**\n * Hook to fetch available tickets\n */\nexport const useTickets = (\n eventId?: string | number,\n options?: UseQueryOptions<ApiResponse<TicketsResponse>, AxiosError>\n) => {\n return useQuery<ApiResponse<TicketsResponse>, AxiosError>({\n queryKey: ['tickets', eventId],\n queryFn: () => {\n logger.debug('[api-hooks] Fetching tickets', { eventId })\n return Client.get<ApiResponse<TicketsResponse>>(`v1/event/${eventId}/tickets/`)\n .then((response) => {\n const ticketCount = Object.keys(\n response.data.data?.data?.attributes?.tickets || {}\n ).length\n logger.debug('[api-hooks] Tickets fetched successfully', {\n eventId,\n ticketCount,\n })\n return response.data\n })\n .catch((error) => {\n logger.error('[api-hooks] Failed to fetch tickets', {\n eventId,\n error: error?.message,\n })\n throw error\n })\n },\n enabled: !!eventId,\n ...options,\n })\n}\n\n/**\n * Hook to add items to cart\n */\nexport const useAddToCart = () => {\n return useMutation<\n ApiResponse<AddToCartResponse>,\n AxiosError,\n { eventId: string | number; ticketData: IAddToCartParams }\n >({\n mutationFn: ({ eventId, ticketData }) => {\n logger.debug('[api-hooks] Adding items to cart', {\n eventId,\n quantity: ticketData.attributes.product_cart_quantity,\n })\n return Client.post<ApiResponse<AddToCartResponse>>(\n `v1/event/${eventId}/add-to-cart/`,\n ticketData\n )\n .then((response) => {\n logger.debug('[api-hooks] Items added to cart successfully', { eventId })\n return response.data\n })\n .catch((error) => {\n logger.error('[api-hooks] Failed to add items to cart', {\n eventId,\n error: error?.message,\n })\n throw error\n })\n },\n })\n}\n\n/**\n * Hook to process checkout\n */\nexport const useCheckout = () => {\n return useMutation<ApiResponse<CheckoutResponse>, AxiosError, ICheckoutBody>({\n mutationFn: (checkoutData) => {\n logger.debug('[api-hooks] Processing checkout', {\n email: checkoutData.attributes.email,\n })\n return Client.post<ApiResponse<CheckoutResponse>>(`v1/on-checkout/`, {\n data: checkoutData,\n })\n .then((response) => {\n logger.debug('[api-hooks] Checkout processed successfully', {\n hash: response.data.data?.attributes?.hash,\n })\n return response.data\n })\n .catch((error) => {\n logger.error('[api-hooks] Checkout failed', { error: error?.message })\n throw error\n })\n },\n })\n}\n\n/**\n * Hook to update checkout with add-ons\n */\nexport const useUpdateCheckout = () => {\n return useMutation<\n ApiResponse<UpdateCheckoutResponse>,\n AxiosError,\n UpdateCheckoutParams\n >({\n mutationFn: (params) => {\n logger.debug('[api-hooks] Updating checkout with add-ons', {\n eventId: params.attributes.event_id,\n })\n return Client.post<ApiResponse<UpdateCheckoutResponse>>(`v1/checkout`, {\n data: params,\n })\n .then((response) => {\n logger.debug('[api-hooks] Checkout updated successfully')\n return response.data\n })\n .catch((error) => {\n logger.error('[api-hooks] Failed to update checkout', { error: error?.message })\n throw error\n })\n },\n })\n}\n\n/**\n * Hook to get payment data\n */\nexport const usePaymentData = () => {\n return useMutation<ApiResponse<PaymentDataResponse>, AxiosError, string>({\n mutationFn: (orderHash) => {\n logger.debug('[api-hooks] Fetching payment data', { orderHash })\n return Client.get<ApiResponse<PaymentDataResponse>>(`/v1/order/${orderHash}/review`)\n .then((response) => {\n logger.debug('[api-hooks] Payment data fetched successfully', { orderHash })\n return response.data\n })\n .catch((error) => {\n logger.error('[api-hooks] Failed to fetch payment data', {\n orderHash,\n error: error?.message,\n })\n throw error\n })\n },\n })\n}\n\n/**\n * Hook to notify backend after payment success\n */\nexport const usePaymentSuccess = () => {\n return useMutation<ApiResponse<PaymentSuccessResponse>, AxiosError, string>({\n mutationFn: (orderHash) => {\n logger.debug('[api-hooks] Confirming payment success', { orderHash })\n return Client.post<ApiResponse<PaymentSuccessResponse>>(\n `/v1/order/${orderHash}/success/`\n )\n .then((response) => {\n logger.debug('[api-hooks] Payment success confirmed', { orderHash })\n return response.data\n })\n .catch((error) => {\n logger.error('[api-hooks] Failed to confirm payment success', {\n orderHash,\n error: error?.message,\n })\n throw error\n })\n },\n })\n}\n\n/**\n * Hook to fetch cart data\n */\nexport const useCart = (\n options?: UseQueryOptions<ApiResponse<CartResponse>, AxiosError>\n) => {\n const queryClient = useQueryClient()\n const query = useQuery<ApiResponse<CartResponse>, AxiosError>({\n queryKey: ['cart'],\n queryFn: () => {\n logger.debug('[api-hooks] Fetching cart data')\n return Client.get<ApiResponse<CartResponse>>('v1/cart/')\n .then((response) => {\n const cartItems = response.data.data?.attributes?.cart?.length || 0\n logger.debug('[api-hooks] Cart data fetched successfully', { cartItems })\n return response.data\n })\n .catch((error) => {\n logger.error('[api-hooks] Failed to fetch cart', { error: error?.message })\n throw error\n })\n },\n ...options,\n })\n\n const invalidate = useCallback(\n () => queryClient.invalidateQueries({ queryKey: ['cart'] }),\n [queryClient]\n )\n\n return { ...query, invalidate }\n}\n\n/**\n * Hook to get add-ons for an event\n */\nexport const useAddons = (eventId?: string | number) => {\n return useQuery<ApiResponse<AddonsResponse>, AxiosError>({\n queryKey: ['addons', eventId],\n queryFn: () => {\n logger.debug('[api-hooks] Fetching add-ons', { eventId })\n return Client.get<ApiResponse<AddonsResponse>>(`v1/event/${eventId}/add-ons`)\n .then((response) => {\n const addonCount = response.data.data?.attributes?.add_ons?.length || 0\n logger.debug('[api-hooks] Add-ons fetched successfully', {\n eventId,\n addonCount,\n })\n return response.data\n })\n .catch((error) => {\n logger.error('[api-hooks] Failed to fetch add-ons', {\n eventId,\n error: error?.message,\n })\n throw error\n })\n },\n enabled: !!eventId,\n })\n}\n\n/**\n * Hook to get event conditions\n */\nexport interface EventConditionsResponse {\n attributes: {\n conditions: Array<{\n id: string\n name: string\n content: string\n is_required: boolean\n }>\n }\n}\n\nexport const useEventConditions = (eventId?: string | number) => {\n return useQuery<ApiResponse<EventConditionsResponse>, AxiosError>({\n queryKey: ['eventConditions', eventId],\n queryFn: () => {\n logger.debug('[api-hooks] Fetching event conditions', { eventId })\n return Client.get<ApiResponse<EventConditionsResponse>>(\n `v1/event/${eventId}/conditions`\n )\n .then((response) => {\n const conditionCount = response.data.data?.attributes?.conditions?.length || 0\n logger.debug('[api-hooks] Event conditions fetched successfully', {\n eventId,\n conditionCount,\n })\n return response.data\n })\n .catch((error) => {\n logger.error('[api-hooks] Failed to fetch event conditions', {\n eventId,\n error: error?.message,\n })\n throw error\n })\n },\n enabled: !!eventId,\n })\n}\n","import { QueryClient, QueryClientProvider } from '@tanstack/react-query'\nimport React, { JSX, useCallback, useMemo, useRef, useState } from 'react'\nimport {\n ScrollView,\n ScrollViewScrollToOptions,\n StyleProp,\n StyleSheet,\n TextStyle,\n ViewStyle,\n} from 'react-native'\nimport { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view'\n\nimport { CartTimer, FormField, Login } from '../../components'\nimport { ICartTimerStyles } from '../../components/cartTimer/types'\nimport {\n ILoginBrandImages,\n ILoginSuccessData,\n ILoginViewStyles,\n} from '../../components/login/types'\nimport { IError } from '../../types'\nimport { logger } from '../../utils/Logger'\nimport { useUserProfile } from '../auth/api-hooks'\nimport { IRegisterUserResponse } from '../auth/types'\nimport { CheckoutForm, PaymentForm } from './form'\nimport { CheckoutFormStyles } from './form/styles'\nimport { ICheckoutSuccessData, useCheckoutFlow } from './hooks/use-checkout'\nimport { CheckoutTexts, OrderResult } from './types'\nimport { StripeProvider } from '@stripe/stripe-react-native'\n\nexport interface CheckoutV2Props {\n isSinglePageCheckout?: boolean\n onCartExpired?: () => void\n onCheckoutSuccess?: (data: ICheckoutSuccessData) => void\n onCheckoutError?: (error: any) => void\n onPaymentSuccess?: (data: OrderResult) => void\n onPaymentError?: (error: any) => void\n onLoginSuccess?: (data: ILoginSuccessData) => void\n onLoginError?: (error: any) => void\n onLogoutSuccess?: () => void\n onRegistrationSuccess?: (data: IRegisterUserResponse) => void\n onRegistrationError?: (error: any) => void\n isAgeRequired?: boolean\n minimumAge?: number\n isPhoneRequired?: boolean\n isPhoneHidden?: boolean\n loginBrandImages?: ILoginBrandImages\n styles?: CheckoutStyles\n texts?: CheckoutTexts\n}\n\nexport interface CheckoutStyles {\n container?: StyleProp<ViewStyle>\n contentContainer?: StyleProp<ViewStyle>\n title?: StyleProp<TextStyle>\n login?: ILoginViewStyles\n cartTimer?: ICartTimerStyles\n form?: CheckoutFormStyles\n paymentForm?: CheckoutFormStyles\n}\n\nconst defaultStyles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: '#ffffff',\n padding: 20,\n },\n contentContainer: {\n paddingBottom: 24,\n },\n title: {\n fontSize: 24,\n fontWeight: 'bold',\n marginBottom: 20,\n },\n})\n\nexport const CheckoutController = ({\n isSinglePageCheckout = true,\n onCartExpired: _onCartExpired,\n onCheckoutSuccess: _onCheckoutSuccess,\n onCheckoutError: _onCheckoutError,\n onPaymentSuccess: _onPaymentSuccess,\n onPaymentError: _onPaymentError,\n onLoginSuccess: _onLoginSuccess,\n onLoginError: _onLoginError,\n onLogoutSuccess: _onLogoutSuccess,\n onRegistrationSuccess: _onRegistrationSuccess,\n onRegistrationError: _onRegistrationError,\n isAgeRequired = false,\n minimumAge = 18,\n isPhoneRequired = false,\n isPhoneHidden = false,\n loginBrandImages,\n styles: stylesProp,\n texts: textsProp,\n}: CheckoutV2Props) => {\n const scrollRef = useRef<{\n scrollTo: (options: ScrollViewScrollToOptions) => void\n }>(null)\n const [checkoutSuccessData, setCheckoutSuccessData] = useState<ICheckoutSuccessData>()\n const [loginMessage, setLoginMessage] = useState('')\n const [isLoginDialogVisible, setIsLoginDialogVisible] = useState(false)\n const formTexts = textsProp?.form\n const loginTexts = useMemo(() => {\n const baseLogin = textsProp?.login\n const baseDialog = baseLogin?.dialog ?? {}\n const dialogMessage = loginMessage || baseDialog.message\n\n if (!baseLogin && !dialogMessage) {\n return undefined\n }\n\n return {\n ...baseLogin,\n dialog: {\n ...baseDialog,\n message: dialogMessage,\n },\n }\n }, [loginMessage, textsProp])\n\n const cartTimerTexts = textsProp?.cartTimer\n\n const { data: userProfile, invalidate } = useUserProfile()\n\n const onCheckoutSuccess = useCallback(\n (data: ICheckoutSuccessData) => {\n setCheckoutSuccessData(data)\n _onCheckoutSuccess?.(data)\n },\n [_onCheckoutSuccess]\n )\n\n const onRegistrationSuccess = useCallback(\n (data: IRegisterUserResponse) => {\n _onRegistrationSuccess?.(data)\n invalidate()\n },\n [_onRegistrationSuccess, invalidate]\n )\n\n const onRegistrationError = useCallback(\n (error: any) => {\n logger.error('[CheckoutController] Registration failed:', { error })\n _onRegistrationError?.(error)\n // Show login dialog\n setLoginMessage(error)\n setIsLoginDialogVisible(true)\n },\n [_onRegistrationError]\n )\n\n const checkoutFlow = useCheckoutFlow({\n onCheckoutSuccess,\n onCartExpired: _onCartExpired,\n onCheckoutError: _onCheckoutError,\n onPaymentError: _onPaymentError,\n onPaymentSuccess: _onPaymentSuccess,\n onRegistrationSuccess,\n onRegistrationError,\n isPhoneRequired,\n isAgeRequired,\n isPhoneHidden,\n minimumAge,\n isSinglePageCheckout,\n customerProfile: userProfile?.data,\n })\n\n const { secondsLeft } = checkoutFlow\n\n const handleLoginError = (error: IError) => {\n logger.error('[CheckoutController] Login error:', { error })\n _onLoginError?.(error)\n }\n\n const handleLogout = () => {\n logger.debug('[CheckoutController] User logged out')\n invalidate()\n _onLogoutSuccess?.()\n }\n\n const handleLoginSuccess = useCallback(\n (data: ILoginSuccessData) => {\n logger.debug('[CheckoutController] Login successful', {\n email: data?.userProfile?.email,\n })\n invalidate()\n _onLoginSuccess?.(data)\n setIsLoginDialogVisible(false)\n },\n [_onLoginSuccess, invalidate]\n )\n\n const containerStyle = StyleSheet.flatten([\n defaultStyles.container,\n stylesProp?.container,\n ]) as StyleProp<ViewStyle>\n\n const contentContainerStyle = StyleSheet.flatten([\n defaultStyles.contentContainer,\n stylesProp?.contentContainer,\n ]) as StyleProp<ViewStyle>\n\n const titleStyle = StyleSheet.flatten([\n defaultStyles.title,\n stylesProp?.title,\n ]) as StyleProp<TextStyle>\n\n return (\n <>\n <KeyboardAwareScrollView\n innerRef={(ref) => (scrollRef.current = ref)}\n style={containerStyle}\n contentContainerStyle={contentContainerStyle}\n keyboardShouldPersistTaps=\"handled\"\n enableAutomaticScroll={false}\n extraScrollHeight={0}\n >\n {/* Login Component */}\n <Login\n onLoginSuccessful={handleLoginSuccess}\n onLoginError={handleLoginError}\n onLogoutSuccess={handleLogout}\n isLoginDialogVisible={isLoginDialogVisible}\n showLoginDialog={() => setIsLoginDialogVisible(true)}\n hideLoginDialog={() => {\n setIsLoginDialogVisible(false)\n setLoginMessage('')\n }}\n userFirstName={userProfile?.data?.firstName}\n brandImages={loginBrandImages}\n texts={loginTexts}\n styles={stylesProp?.login}\n />\n <FormField\n fieldType=\"title\"\n title={formTexts?.form?.sectionTitle || 'Personal Information'}\n titleStyle={titleStyle}\n />\n\n {/* Use our new CheckoutForm component */}\n {checkoutFlow.checkoutData?.attributes?.additional_payment_information\n ?.basic_config?.apiKey ? (\n <StripeProvider\n publishableKey={\n checkoutFlow.checkoutData.attributes.additional_payment_information\n .basic_config.apiKey\n }\n >\n {isSinglePageCheckout || !checkoutSuccessData ? (\n <CheckoutForm\n scrollRef={scrollRef}\n styles={stylesProp?.form}\n texts={formTexts}\n {...checkoutFlow}\n />\n ) : (\n <PaymentForm\n scrollRef={scrollRef}\n styles={stylesProp?.paymentForm ?? stylesProp?.form}\n texts={formTexts}\n onSubmit={async () =>\n await checkoutFlow.handlePayment(checkoutSuccessData)\n }\n orderItems={checkoutFlow.orderItems}\n />\n )}\n </StripeProvider>\n ) : null}\n </KeyboardAwareScrollView>\n\n {/* Cart Timer */}\n {typeof secondsLeft === 'number' && secondsLeft > 0 && (\n <CartTimer\n secondsLeft={secondsLeft}\n shouldNotMinimize={false}\n styles={stylesProp?.cartTimer}\n texts={cartTimerTexts}\n />\n )}\n </>\n )\n}\n\nconst queryClient = new QueryClient()\n\nexport const CheckoutProvider = ({ children }: { children: React.ReactNode }) => {\n return <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>\n}\n","import { CardForm, CardFormView } from '@stripe/stripe-react-native'\nimport { FormikProvider, useFormik } from 'formik'\nimport React, { ComponentRef, useCallback, useMemo, useRef, useState } from 'react'\nimport {\n ActivityIndicator,\n findNodeHandle,\n Text,\n TouchableOpacity,\n View,\n ViewProps,\n} from 'react-native'\n\nimport { Loading } from '../../../components'\nimport { logger } from '../../../utils/Logger'\nimport { readableError } from '../../../utils/handlers'\nimport { FormikField } from '../../form'\nimport { FieldType } from '../../form/types'\nimport AddonsContainer from '../components/AddonsContainer'\nimport Conditions from '../components/Conditions'\nimport OrderReview, { IOrderItem } from '../components/OrderReview'\nimport { createCheckoutFormConfig, formFieldsOrder } from './config'\nimport { CheckoutFormComputedStyles, mergeCheckoutFormStyles } from './styles'\nimport { mergeCheckoutFormTexts } from './texts'\nimport {\n CheckoutFormOrderSummaryTexts,\n CheckoutFormPaymentTexts,\n CheckoutFormProps,\n CheckoutFormTexts,\n PaymentFormProps,\n} from './types'\nimport { getFieldType } from '../utils'\n\nconst MemoizedAddonsContainer = React.memo(AddonsContainer)\nconst MemoizedConditions = React.memo(Conditions)\nconst MemoizedOrderReview = React.memo(OrderReview)\n\nexport const CheckoutForm: React.FC<CheckoutFormProps> = ({\n initialValues,\n isSubmitting,\n isLoggedIn,\n isAgeRequired = false,\n minimumAge,\n isTicketFree = false,\n isPhoneRequired = false,\n isPhoneHidden = false,\n countries,\n states,\n onCountryChange,\n orderItems,\n availableAddons = [],\n onAddonChange,\n onSubmit: onSubmitCallback,\n scrollRef,\n isInitialLoading,\n eventCurrency,\n conditions,\n isSinglePageCheckout = true,\n orderCustomFields = [],\n ticketCustomFields = [],\n addonCustomFields = [],\n styles: stylesProp,\n texts: textsProp,\n}) => {\n // Handle card form state for payment\n const [isCardFormComplete, setIsCardFormComplete] = useState(false)\n const [cardFormError, setCardFormError] = useState<string>()\n\n const styles = useMemo<CheckoutFormComputedStyles>(\n () => mergeCheckoutFormStyles(stylesProp),\n [stylesProp]\n )\n\n const texts = useMemo<Required<CheckoutFormTexts>>(\n () => mergeCheckoutFormTexts(textsProp),\n [textsProp]\n )\n\n const fieldComponentStyles = styles.fields\n\n const addonsStyles = useMemo(\n () => ({\n container: styles.addonSection,\n title: styles.sectionTitle,\n addonItem: styles.addonItem,\n addonInfo: styles.addonInfo,\n addonName: styles.addonName,\n addonRow: styles.addonRow,\n addonPrice: styles.addonPrice,\n addonPriceWithFees: styles.addonPriceWithFees,\n addonDescription: styles.addonDescription,\n addonSelectContainer: styles.addonSelectContainer,\n fieldComponentStyles,\n }),\n [fieldComponentStyles, styles]\n )\n\n // Initial values already include default custom field values from the hook\n const modifiedInitialValues = {\n ...initialValues,\n isCardFormComplete: isTicketFree ? true : initialValues.isCardFormComplete,\n }\n const requiredConditions = useMemo(\n () => conditions?.filter((c) => c.is_required) || [],\n [conditions]\n )\n\n const formik = useFormik({\n initialValues: modifiedInitialValues,\n onSubmit: onSubmitCallback,\n validationSchema: createCheckoutFormConfig({\n minimumAge,\n isAgeRequired,\n requirePassword: !isLoggedIn,\n isTicketFree,\n isSinglePageCheckout,\n requiredConditions,\n isPhoneRequired,\n orderCustomFields,\n ticketCustomFields,\n }),\n validateOnChange: true,\n enableReinitialize: true,\n })\n const fieldTopRef = useRef<Record<string, number>>({})\n\n // Helper: scroll to a field by key using onLayout-captured positions\n const scrollToField = (key: string, attempt: number = 0) => {\n if (key === 'isCardFormComplete' || !scrollRef.current) return\n\n let y = fieldTopRef.current[key]\n\n // Fallback for nested ticket holder fields\n if (\n !(typeof y === 'number' && Number.isFinite(y)) &&\n key.startsWith('ticketHolders[')\n ) {\n const holderMatch = key.match(/^ticketHolders\\[(\\d+)\\]/)\n const index = holderMatch ? holderMatch[1] : undefined\n if (index != null) {\n const holderKey = `ticketHolders[${index}]`\n y = fieldTopRef.current[holderKey]\n if (!(typeof y === 'number' && Number.isFinite(y))) {\n y = fieldTopRef.current.ticketHolders\n }\n }\n }\n\n if (typeof y === 'number' && Number.isFinite(y)) {\n try {\n scrollRef.current.scrollTo({ y: Math.max(0, y - 16), animated: true })\n logger.debug('[CheckoutForm] Scrolled to field', { key, position: y })\n } catch (e) {\n logger.debug('[CheckoutForm] scrollTo failed', {\n key,\n error: e instanceof Error ? e.message : String(e),\n })\n }\n } else if (attempt < 3) {\n setTimeout(() => scrollToField(key, attempt + 1), 50)\n } else {\n logger.warn('[CheckoutForm] Could not scroll to field - position not found', {\n key,\n })\n }\n }\n\n const onPressSubmit = async () => {\n logger.debug('[CheckoutForm] Form submission initiated')\n const allFields = Object.keys(initialValues)\n\n // Create touched fields with special handling for nested ticket holders\n const touchedFields = allFields.reduce(\n (acc, field) => {\n // Handle ticketHolders specially as a nested structure\n if (field === 'ticketHolders') {\n // Create a properly structured touched fields object for ticket holders\n acc[field] = formik.values.ticketHolders.map(() => ({\n firstName: true,\n lastName: true,\n email: true,\n phone: true,\n }))\n } else {\n // Mark all other fields as touched\n acc[field] = true\n }\n return acc\n },\n {} as Record<string, boolean | Record<string, boolean>[]>\n )\n\n const result = await formik.setTouched(touchedFields, true)\n const formErrors = typeof result === 'object' ? result : {}\n const paymentValid = isCardFormComplete || isTicketFree || !isSinglePageCheckout\n logger.debug('[CheckoutForm] submitting', {\n paymentValid,\n isCardFormComplete,\n isTicketFree,\n isSinglePageCheckout,\n })\n\n if (!paymentValid) {\n setCardFormError(texts.payment.errorRequired)\n }\n\n if (Object.keys(formErrors).length === 0 && paymentValid) {\n logger.debug('[CheckoutForm] Form validation passed, submitting', {\n email: formik.values.email,\n })\n formik.handleSubmit()\n return\n }\n logger.warn('[CheckoutForm] Form validation failed', {\n errors: Object.keys(formErrors),\n paymentValid,\n })\n\n const firstErroredKey = formFieldsOrder.find(\n (k) => (formErrors as any)[k as keyof typeof formErrors] != null\n )\n\n if (firstErroredKey === 'ticketHolders') {\n const thErrors = (formErrors as any).ticketHolders as Array<any>\n if (Array.isArray(thErrors)) {\n const erroredIndex = thErrors.findIndex((e) => e && Object.keys(e).length > 0)\n if (erroredIndex >= 0) {\n scrollToField(`ticketHolders[${erroredIndex}]`)\n logger.debug('[CheckoutForm] Scrolling to errored ticket holder', {\n index: erroredIndex,\n })\n return\n }\n }\n scrollToField('ticketHolders')\n } else if (firstErroredKey) {\n scrollToField(firstErroredKey)\n } else if (!paymentValid) {\n scrollToField('isCardFormComplete')\n }\n }\n\n const handleAddonChange = useCallback(\n (addonId: string, quantity: number) => {\n formik.setFieldValue(`addons.${addonId}.quantity`, quantity)\n if (quantity > 0) {\n // reapply defaults if coming from 0\n addonCustomFields.forEach((field) => {\n if (field.defaultValue != null) {\n formik.setFieldValue(\n `addons.${addonId}.customFields.${field.name}`,\n Array.isArray(field.defaultValue)\n ? field.defaultValue.join(',')\n : field.defaultValue\n )\n }\n })\n }\n onAddonChange?.(addonId, quantity)\n },\n [formik, onAddonChange]\n )\n return (\n <FormikProvider value={formik}>\n {isInitialLoading && <Loading />}\n <View style={styles.form} collapsable={false}>\n <View onLayout={(e) => (fieldTopRef.current.firstName = e.nativeEvent.layout.y)}>\n <FormikField\n field={{\n name: 'firstName',\n type: FieldType.INPUT,\n label: texts.form.firstName,\n placeholder: texts.form.firstNamePlaceholder,\n }}\n styles={fieldComponentStyles}\n />\n </View>\n <View onLayout={(e) => (fieldTopRef.current.lastName = e.nativeEvent.layout.y)}>\n <FormikField\n field={{\n name: 'lastName',\n type: FieldType.INPUT,\n label: texts.form.lastName,\n placeholder: texts.form.lastNamePlaceholder,\n }}\n styles={fieldComponentStyles}\n />\n </View>\n <View onLayout={(e) => (fieldTopRef.current.email = e.nativeEvent.layout.y)}>\n <FormikField\n field={{\n name: 'email',\n type: FieldType.INPUT,\n label: texts.form.email,\n placeholder: texts.form.emailPlaceholder,\n }}\n styles={fieldComponentStyles}\n />\n </View>\n <View\n onLayout={(e) =>\n (fieldTopRef.current.emailConfirmation = e.nativeEvent.layout.y)\n }\n >\n <FormikField\n field={{\n name: 'emailConfirmation',\n type: FieldType.INPUT,\n label: texts.form.emailConfirmation,\n placeholder: texts.form.emailConfirmationPlaceholder,\n }}\n styles={fieldComponentStyles}\n />\n </View>\n <View onLayout={(e) => (fieldTopRef.current.password = e.nativeEvent.layout.y)}>\n <FormikField\n field={{\n name: 'password',\n type: FieldType.INPUT,\n label: texts.form.password,\n placeholder: texts.form.passwordPlaceholder,\n hide: isLoggedIn,\n }}\n styles={fieldComponentStyles}\n />\n </View>\n <View\n onLayout={(e) =>\n (fieldTopRef.current.passwordConfirmation = e.nativeEvent.layout.y)\n }\n >\n <FormikField\n field={{\n name: 'passwordConfirmation',\n type: FieldType.INPUT,\n label: texts.form.passwordConfirmation,\n placeholder: texts.form.passwordConfirmationPlaceholder,\n hide: isLoggedIn,\n }}\n styles={fieldComponentStyles}\n />\n </View>\n <View onLayout={(e) => (fieldTopRef.current.phone = e.nativeEvent.layout.y)}>\n <FormikField\n field={{\n name: 'phone',\n type: FieldType.PHONE,\n label: texts.form.phone,\n placeholder: texts.form.phonePlaceholder,\n }}\n styles={fieldComponentStyles}\n />\n </View>\n <View onLayout={(e) => (fieldTopRef.current.phone = e.nativeEvent.layout.y)}>\n <FormikField\n field={{\n name: 'dateOfBirth',\n type: FieldType.DATE_PICKER,\n label: texts.form.dateOfBirth,\n placeholder: texts.form.dateOfBirthPlaceholder,\n hide: !isAgeRequired,\n }}\n styles={fieldComponentStyles}\n />\n </View>\n <View\n onLayout={(e) => (fieldTopRef.current.dateOfBirth = e.nativeEvent.layout.y)}\n >\n <FormikField\n field={{\n name: 'street',\n type: FieldType.INPUT,\n label: texts.form.street,\n placeholder: texts.form.streetPlaceholder,\n }}\n styles={fieldComponentStyles}\n />\n </View>\n <View onLayout={(e) => (fieldTopRef.current.street = e.nativeEvent.layout.y)}>\n <FormikField\n field={{\n name: 'city',\n type: FieldType.INPUT,\n label: texts.form.city,\n placeholder: texts.form.cityPlaceholder,\n }}\n styles={fieldComponentStyles}\n />\n </View>\n <View onLayout={(e) => (fieldTopRef.current.country = e.nativeEvent.layout.y)}>\n <FormikField\n field={{\n name: 'country',\n type: FieldType.SELECT,\n label: texts.form.country,\n options: countries.map((c) => ({\n value: String(c.id),\n label: c.name,\n })),\n onChange: (val) => {\n onCountryChange(val)\n },\n }}\n styles={fieldComponentStyles}\n />\n </View>\n <View onLayout={(e) => (fieldTopRef.current.country = e.nativeEvent.layout.y)}>\n <FormikField\n field={{\n name: 'state',\n type: FieldType.SELECT,\n label: texts.form.state,\n options: states,\n }}\n styles={fieldComponentStyles}\n />\n </View>\n <View onLayout={(e) => (fieldTopRef.current.postalCode = e.nativeEvent.layout.y)}>\n <FormikField\n field={{\n name: 'postalCode',\n type: FieldType.INPUT,\n label: texts.form.postalCode,\n placeholder: texts.form.postalCodePlaceholder,\n }}\n styles={fieldComponentStyles}\n />\n </View>\n {orderCustomFields.map((field) => (\n <View\n key={field.name}\n onLayout={(e) => (fieldTopRef.current[field.name] = e.nativeEvent.layout.y)}\n >\n <FormikField\n field={{\n name: `customFields.${field.name}`,\n type: getFieldType(field.type),\n label: texts.form.customFields?.[field.name]?.label ?? field.label,\n placeholder:\n texts.form.customFields?.[field.name]?.placeholder ??\n (field.description || `Enter ${field.label}`),\n options: field.options?.map((option) => ({\n value: option.value,\n label: option.name,\n })),\n }}\n styles={fieldComponentStyles}\n />\n </View>\n ))}\n <View>\n <FormikField\n field={{\n name: 'isSubToTicketFairy',\n type: FieldType.CHECKBOX,\n label: texts.marketingOptIns.ticketFairyOptIn,\n }}\n styles={fieldComponentStyles}\n />\n <FormikField\n field={{\n name: 'isSubToBrand',\n type: FieldType.CHECKBOX,\n label: texts.marketingOptIns.organizerOptIn,\n }}\n styles={fieldComponentStyles}\n />\n </View>\n <View\n collapsable={false}\n onLayout={(e) => {\n fieldTopRef.current.ticketHolders = e.nativeEvent.layout.y\n }}\n >\n <Text style={styles.sectionTitle}>{texts.ticketHolders.title}</Text>\n\n {formik.values.ticketHolders.map((_, index) => {\n const ticketLabel = (\n texts.ticketHolders.itemTitle || 'Ticket {index}'\n ).replace('{index}', String(index + 1))\n\n return (\n <View\n key={index}\n collapsable={false}\n onLayout={(e) => {\n const sectionY = fieldTopRef.current.ticketHolders ?? 0\n const holderY = sectionY + e.nativeEvent.layout.y\n fieldTopRef.current[`ticketHolders[${index}]`] = holderY\n }}\n >\n <Text style={styles.ticketHolderTitle}>{ticketLabel}</Text>\n\n <View\n collapsable={false}\n onLayout={(e) => {\n const baseY =\n fieldTopRef.current[`ticketHolders[${index}]`] ??\n fieldTopRef.current.ticketHolders ??\n 0\n fieldTopRef.current[`ticketHolders[${index}].firstName`] =\n baseY + e.nativeEvent.layout.y\n }}\n >\n <FormikField\n field={{\n name: `ticketHolders[${index}].firstName`,\n type: FieldType.INPUT,\n label: texts.ticketHolders.firstName,\n placeholder: texts.ticketHolders.firstNamePlaceholder,\n }}\n styles={fieldComponentStyles}\n />\n </View>\n\n <View\n collapsable={false}\n onLayout={(e) => {\n const baseY =\n fieldTopRef.current[`ticketHolders[${index}]`] ??\n fieldTopRef.current.ticketHolders ??\n 0\n fieldTopRef.current[`ticketHolders[${index}].lastName`] =\n baseY + e.nativeEvent.layout.y\n }}\n >\n <FormikField\n field={{\n name: `ticketHolders[${index}].lastName`,\n type: FieldType.INPUT,\n label: texts.ticketHolders.lastName,\n placeholder: texts.ticketHolders.lastNamePlaceholder,\n }}\n styles={fieldComponentStyles}\n />\n </View>\n\n <View\n collapsable={false}\n onLayout={(e) => {\n const baseY =\n fieldTopRef.current[`ticketHolders[${index}]`] ??\n fieldTopRef.current.ticketHolders ??\n 0\n fieldTopRef.current[`ticketHolders[${index}].email`] =\n baseY + e.nativeEvent.layout.y\n }}\n >\n <FormikField\n field={{\n name: `ticketHolders[${index}].email`,\n type: FieldType.INPUT,\n label: texts.ticketHolders.email,\n placeholder: texts.ticketHolders.emailPlaceholder,\n }}\n styles={fieldComponentStyles}\n />\n </View>\n\n <View\n collapsable={false}\n onLayout={(e) => {\n const baseY =\n fieldTopRef.current[`ticketHolders[${index}]`] ??\n fieldTopRef.current.ticketHolders ??\n 0\n fieldTopRef.current[`ticketHolders[${index}].phone`] =\n baseY + e.nativeEvent.layout.y\n }}\n >\n <FormikField\n field={{\n name: `ticketHolders[${index}].phone`,\n type: FieldType.PHONE,\n label: texts.ticketHolders.phone,\n placeholder: texts.ticketHolders.phonePlaceholder,\n hide: isPhoneHidden,\n }}\n styles={fieldComponentStyles}\n />\n\n {/* Ticket custom fields */}\n {ticketCustomFields.map((field) => (\n <FormikField\n key={`${index}-${field.name}`}\n field={{\n name: `ticketHolders[${index}].customFields.${field.name}`,\n type: getFieldType(field.type),\n label:\n texts.ticketHolders.customFields?.[field.name]?.label ??\n field.label,\n required: field.required,\n placeholder:\n texts.ticketHolders.customFields?.[field.name]?.placeholder ??\n (field.description || `Enter ${field.label}`),\n options: field.options?.map((option) => ({\n value: option.value,\n label: option.name,\n })),\n }}\n styles={fieldComponentStyles}\n />\n ))}\n </View>\n </View>\n )\n })}\n </View>\n <View style={styles.sectionContainer}>\n <MemoizedAddonsContainer\n addonCustomFields={addonCustomFields}\n addons={formik.values.addons}\n availableAddons={availableAddons || []}\n onAddonChange={handleAddonChange}\n currency={eventCurrency}\n styles={addonsStyles}\n texts={{\n title: texts.addons.title,\n quantityLabel: texts.addons.quantityLabel,\n priceWithFeesSuffix: texts.addons.priceWithFeesSuffix,\n }}\n />\n </View>\n {/* Event Conditions */}\n {conditions && conditions.length > 0 && (\n <View style={styles.sectionContainer}>\n <MemoizedConditions\n conditions={conditions}\n acceptedConditions={formik.values.acceptedConditions}\n onAcceptCondition={(conditionId, isAccepted) => {\n formik.setFieldValue('acceptedConditions', {\n ...formik.values.acceptedConditions,\n [conditionId]: isAccepted,\n })\n }}\n texts={{\n title: texts.conditions.title,\n viewButton: texts.conditions.viewButton,\n hideButton: texts.conditions.hideButton,\n acceptCheckbox: texts.conditions.acceptLabel,\n }}\n />\n </View>\n )}\n\n {/* Payment - only show in single-page mode and if ticket is not free */}\n {!isTicketFree && isSinglePageCheckout && (\n <View\n style={styles.sectionContainer}\n onLayout={(e) =>\n (fieldTopRef.current.isCardFormComplete = e.nativeEvent.layout.y)\n }\n >\n <Payment\n orderItems={orderItems}\n onFormComplete={(details) => {\n logger.debug('[CheckoutForm] Payment form complete', { ...details })\n if (details.complete) {\n setCardFormError(undefined)\n }\n setIsCardFormComplete(details.complete)\n }}\n error={cardFormError}\n styles={styles}\n texts={{\n orderSummary: texts.orderSummary,\n payment: texts.payment,\n }}\n />\n </View>\n )}\n\n {/* Submit Button */}\n <TouchableOpacity\n style={[styles.button, isSubmitting ? styles.buttonDisabled : {}]}\n onPress={onPressSubmit}\n disabled={isSubmitting}\n >\n {isSubmitting ? (\n <ActivityIndicator size=\"small\" color=\"#ffffff\" />\n ) : (\n <Text style={styles.buttonText}>\n {isSinglePageCheckout\n ? texts.buttons.singlePageSubmit\n : texts.buttons.goToPayment}\n </Text>\n )}\n </TouchableOpacity>\n </View>\n </FormikProvider>\n )\n}\n\ninterface PaymentProps {\n onFormComplete: (details: CardFormView.Details) => void\n error?: string\n orderItems: IOrderItem[]\n paymentViewProps?: ViewProps\n styles: CheckoutFormComputedStyles\n texts: {\n orderSummary: CheckoutFormOrderSummaryTexts\n payment: CheckoutFormPaymentTexts\n }\n}\n\nexport const Payment = ({\n onFormComplete,\n error,\n orderItems,\n paymentViewProps,\n styles,\n texts,\n}: PaymentProps) => {\n return (\n <View>\n <View style={styles.sectionContainer}>\n <Text style={styles.sectionTitle}>{texts.orderSummary.sectionTitle}</Text>\n <MemoizedOrderReview\n orderItems={orderItems}\n styles={{\n rootContainer: styles.orderReviewContainer,\n item: styles.orderReviewItem,\n }}\n />\n </View>\n\n <View style={styles.sectionContainer} {...paymentViewProps}>\n <Text style={styles.sectionTitle}>{texts.payment.sectionTitle}</Text>\n <View style={styles.paymentContainer}>\n <CardForm\n onFormComplete={(details) => {\n logger.warn('[PaymentForm] CardForm onFormComplete triggered', {\n complete: details.complete,\n details: JSON.stringify(details),\n })\n\n onFormComplete(details)\n }}\n style={styles.cardContainer}\n cardStyle={styles.cardStyle}\n autofocus={false}\n />\n\n {error ? <Text style={styles.errorText}>{error}</Text> : null}\n </View>\n </View>\n </View>\n )\n}\n\nexport const PaymentForm = ({\n orderItems,\n onSubmit,\n styles: stylesProp,\n texts: textsProp,\n}: PaymentFormProps) => {\n const [error, setError] = useState<string>()\n const [isSubmitting, setIsSubmitting] = useState(false)\n const [isCardFormComplete, setIsCardFormComplete] = useState(false)\n\n const styles = useMemo<CheckoutFormComputedStyles>(\n () => mergeCheckoutFormStyles(stylesProp),\n [stylesProp]\n )\n\n const texts = useMemo<Required<CheckoutFormTexts>>(\n () => mergeCheckoutFormTexts(textsProp),\n [textsProp]\n )\n\n const onFormComplete = (details: CardFormView.Details) => {\n logger.warn('[PaymentForm] CardForm onFormComplete triggered', {\n complete: details.complete,\n details: JSON.stringify(details),\n })\n setIsCardFormComplete(details.complete)\n\n if (details.complete) {\n setError(undefined)\n logger.debug('[PaymentForm] Card form marked as complete')\n } else {\n logger.debug('[PaymentForm] Card form incomplete')\n }\n }\n\n const onPressSubmit = async () => {\n try {\n setIsSubmitting(true)\n\n // Don't validate isCardFormComplete here - onFormComplete doesn't trigger on Android v40+\n // Let Stripe's confirmPayment handle validation instead\n logger.debug('[PaymentForm] Submitting payment', { isCardFormComplete })\n\n await onSubmit()\n } catch (e) {\n const errorMsg = readableError(e)\n logger.error('[PaymentForm] Payment submission failed', { error: errorMsg })\n setError(errorMsg)\n } finally {\n setIsSubmitting(false)\n }\n }\n\n return (\n <View>\n <Payment\n orderItems={orderItems}\n onFormComplete={onFormComplete}\n error={error}\n paymentViewProps={{}}\n styles={styles}\n texts={{\n orderSummary: texts.orderSummary,\n payment: texts.payment,\n }}\n />\n {/* Submit Button */}\n <TouchableOpacity\n style={[styles.button, isSubmitting ? styles.buttonDisabled : {}]}\n onPress={onPressSubmit}\n disabled={isSubmitting}\n >\n {isSubmitting ? (\n <ActivityIndicator size=\"small\" color=\"#ffffff\" />\n ) : (\n <Text style={styles.buttonText}>{texts.buttons.paymentSubmit}</Text>\n )}\n </TouchableOpacity>\n </View>\n )\n}\n","import { useField } from 'formik'\nimport React from 'react'\nimport { Text } from 'react-native'\n\nimport {\n Checkbox,\n DatePicker,\n DropdownMaterial,\n Input,\n PhoneInput,\n RadioGroup,\n} from '../../components'\nimport { ICheckboxStyles } from '../../components/checkbox/types'\nimport { IDatePickerStyles } from '../../components/datePicker/types'\nimport { IDropdownMaterialStyles } from '../../components/dropdownMaterial/types'\nimport { IInputStyles } from '../../components/input/types'\nimport { IPhoneInputStyles } from '../../components/phoneInput/types'\nimport { IRadioGroupStyles } from '../../components/radioGroup/types'\nimport { FieldConfig } from './types'\n\nexport interface FormikFieldComponentStyles {\n input?: IInputStyles\n select?: IDropdownMaterialStyles\n selectMulti?: IDropdownMaterialStyles\n phone?: IPhoneInputStyles\n checkbox?: ICheckboxStyles\n radio?: IRadioGroupStyles\n datePicker?: IDatePickerStyles\n}\n\ninterface FormikFieldProps<TValues extends Record<string, unknown>> {\n field: FieldConfig<TValues>\n styles?: FormikFieldComponentStyles\n}\n\nexport const FormikField = React.memo(\n <TValues extends Record<string, unknown>>({\n field,\n styles: componentStyles,\n }: FormikFieldProps<TValues>) => {\n const [formikField, meta, helpers] = useField(field.name)\n\n const value = formikField.value\n const error = meta.touched ? meta.error : undefined\n\n if (field.hide) return null\n\n const handleChange = (val: string | number | boolean | string[]) => {\n field.onChange?.(val)\n helpers.setValue(val)\n }\n\n switch (field.type) {\n case 'input':\n return (\n <Input\n id={field.name}\n value={value}\n label={field.label ?? 'Label'}\n placeholder={field.placeholder}\n error={error}\n onTextChanged={(_, val) => handleChange(val)}\n styles={componentStyles?.input}\n />\n )\n\n case 'textarea':\n return (\n <Input\n id={field.name}\n value={value}\n label={field.label ?? 'Label'}\n placeholder={field.placeholder}\n error={error}\n multiline\n numberOfLines={4}\n onTextChanged={(_, val) => handleChange(val)}\n styles={componentStyles?.input}\n />\n )\n\n case 'select': {\n const options = field.options ?? []\n return (\n <DropdownMaterial\n items={options}\n selectedOption={\n options.find((o) => o.value === value) ?? {\n value: '',\n label: field.placeholder ?? `Select ${field.label}`,\n }\n }\n onSelectItem={(item) => handleChange(item.value)}\n materialInputProps={{\n label: field.label ?? 'Select',\n error,\n }}\n styles={componentStyles?.select}\n />\n )\n }\n\n case 'select_multi': {\n const options = field.options ?? []\n const selectedValues = (Array.isArray(value) ? value : []) as string[]\n const selectedOptions = options.filter((o) => selectedValues.includes(o.value))\n const displayOption = {\n value: '',\n label:\n selectedOptions.length > 0\n ? selectedOptions.map((o) => o.label).join(', ')\n : `Select ${field.label ?? 'items'}`,\n }\n return (\n <DropdownMaterial\n items={options}\n selectedOption={displayOption}\n onSelectItem={(item) => {\n let newValues = [...selectedValues]\n if (newValues.includes(String(item.value))) {\n newValues = newValues.filter((v) => v !== item.value)\n } else {\n newValues.push(String(item.value))\n }\n handleChange(newValues)\n }}\n materialInputProps={{\n label: field.label ?? 'Select Multiple',\n error,\n }}\n styles={componentStyles?.selectMulti ?? componentStyles?.select}\n />\n )\n }\n\n case 'phone':\n return (\n <PhoneInput\n phoneNumber={value}\n onChangePhoneNumber={(payload) => handleChange(payload.input)}\n error={error}\n texts={{ label: field.label }}\n styles={componentStyles?.phone}\n />\n )\n\n case 'checkbox':\n return (\n <Checkbox\n isActive={!!value}\n text={field.label || ''}\n onPress={() => handleChange(!value)}\n styles={componentStyles?.checkbox}\n />\n )\n\n case 'radio':\n return (\n <RadioGroup\n options={field.options ?? []}\n selectedValue={value}\n onValueChange={(val) => handleChange(val)}\n label={field.label}\n error={error}\n styles={componentStyles?.radio}\n />\n )\n\n case 'datePicker':\n return (\n <DatePicker\n selectedDate={value ? new Date(value) : undefined}\n onSelectDate={(date) => handleChange(date.toISOString())}\n error={error}\n text={field.label || 'Select date'}\n placeholder={field.placeholder}\n styles={componentStyles?.datePicker}\n />\n )\n\n default:\n return <Text>{field.type} is not supported</Text>\n }\n }\n)\n","import React, { useCallback } from 'react'\nimport { StyleProp, Text, TextStyle, View, ViewStyle } from 'react-native'\n\nimport { IDropdownMaterialStyles } from '../../../components/dropdownMaterial/types'\nimport { AddonItem } from '../types'\nimport { getFieldType, priceWithCurrency } from '../utils'\nimport { CheckoutFormProps, CheckoutFormValues } from '../form/types'\nimport { FormikField, FormikFieldComponentStyles } from '../../form'\nimport { DropdownMaterial } from '../../../components'\n\nexport interface AddonsContainerStyles {\n container?: StyleProp<ViewStyle>\n title?: StyleProp<TextStyle>\n addonRow?: StyleProp<ViewStyle>\n addonList?: StyleProp<ViewStyle>\n addonItem?: StyleProp<ViewStyle>\n addonInfo?: StyleProp<ViewStyle>\n addonName?: StyleProp<TextStyle>\n addonPrice?: StyleProp<TextStyle>\n addonPriceWithFees?: StyleProp<TextStyle>\n\n addonDescription?: StyleProp<TextStyle>\n addonSelectContainer?: StyleProp<ViewStyle>\n dropdownMaterial?: IDropdownMaterialStyles\n fieldComponentStyles?: FormikFieldComponentStyles\n}\n\ninterface AddonsContainerProps {\n addons: CheckoutFormValues['addons']\n availableAddons: AddonItem[]\n onAddonChange: (addonId: string, quantity: number) => void\n currency?: string\n styles?: AddonsContainerStyles\n texts?: {\n title?: string\n quantityLabel?: string\n priceWithFeesSuffix?: string\n }\n addonCustomFields?: CheckoutFormProps['addonCustomFields']\n}\n\nconst AddonsContainer: React.FC<AddonsContainerProps> = ({\n addons = {},\n availableAddons = [],\n onAddonChange,\n currency,\n styles: customStyles,\n texts,\n addonCustomFields,\n}) => {\n // Generate quantity options for the dropdown\n const generateAddonQuantityOptions = useCallback((addon: AddonItem['attributes']) => {\n const options = []\n // Check different possible locations for max quantity\n const maxQty = addon.maxQuantity || '1'\n const maxQtyNum = parseInt(maxQty, 10)\n\n for (let i = 0; i <= maxQtyNum; i++) {\n options.push({\n value: i.toString(),\n label: i.toString(),\n })\n }\n\n return options\n }, [])\n\n // Don't render if no addons available\n if (!availableAddons || availableAddons.length === 0) {\n return null\n }\n\n return (\n <View style={[customStyles?.container]}>\n <Text style={[customStyles?.title]}>{texts?.title || 'Available Add-ons'}</Text>\n\n <View style={[customStyles?.addonList]}>\n {availableAddons.map((addon) => {\n // Extract addon data from the API structure\n const addonData = addon.attributes\n const addonId = addon.id || addonData.id\n\n // Get price (could be in different locations based on API structure)\n const priceWithFees = addonData.price || 0\n const addonCurrency = addonData.currency || currency\n const isAddonFree = Number(priceWithFees) === 0\n\n const basePriceFormatted = isAddonFree\n ? 'FREE'\n : priceWithCurrency((priceWithFees / 100).toString(), addonCurrency)\n\n return (\n <View key={addonId} style={[customStyles?.addonItem]}>\n <View style={[customStyles?.addonRow]}>\n <View style={[customStyles?.addonInfo]}>\n <Text style={[customStyles?.addonName]}>\n {addonData.name || 'Add-on'}\n </Text>\n <Text style={[customStyles?.addonPrice]}>\n {basePriceFormatted}\n {!isAddonFree && (\n <Text style={[customStyles?.addonPriceWithFees]}>\n {texts?.priceWithFeesSuffix || ' (with fees)'}\n </Text>\n )}\n </Text>\n {addonData.description && (\n <Text style={[customStyles?.addonDescription]}>\n {addonData.description}\n </Text>\n )}\n </View>\n <View style={[customStyles?.addonSelectContainer]}>\n <DropdownMaterial\n items={generateAddonQuantityOptions(addonData)}\n onSelectItem={(item) => {\n onAddonChange(\n addonId.toString(),\n parseInt(item.value.toString(), 10)\n )\n }}\n selectedOption={{\n value: (addons[addonId]?.quantity || 0).toString(),\n label: (addons[addonId]?.quantity || 0).toString(),\n }}\n materialInputProps={{\n label: texts?.quantityLabel || 'Qty',\n }}\n styles={customStyles?.fieldComponentStyles?.select}\n />\n </View>\n </View>\n {(addons[addonId]?.quantity ?? 0) > 0 &&\n addonCustomFields.map((field) => (\n <FormikField\n key={`${addonId}-${field.name}`}\n field={{\n name: `addons.${addonId}.customFields.${field.name}`,\n type: getFieldType(field.type),\n label: field.label,\n required: field.required,\n placeholder: field.description || `Enter ${field.label}`,\n options: field.options?.map((o) => ({\n value: o.value,\n label: o.name,\n })),\n }}\n styles={customStyles?.fieldComponentStyles}\n />\n ))}\n </View>\n )\n })}\n </View>\n </View>\n )\n}\n\nexport default AddonsContainer\n","import React, { useState } from 'react'\nimport { ScrollView, StyleSheet, Text, TouchableOpacity, View } from 'react-native'\n\nimport { Checkbox } from '../../../components'\nimport { logger } from '../../../utils/Logger'\n\nexport interface Condition {\n id: string\n name: string\n content: string\n is_required: boolean\n}\n\ninterface ConditionsProps {\n conditions: Condition[]\n acceptedConditions: Record<string, boolean>\n onAcceptCondition: (conditionId: string, isAccepted: boolean) => void\n styles?: {\n container?: object\n title?: object\n conditionButton?: object\n conditionButtonText?: object\n checkbox?: object\n conditionContent?: object\n expandedContent?: object\n }\n texts?: {\n title?: string\n viewButton?: string\n hideButton?: string\n acceptCheckbox?: string\n }\n}\n\nconst Conditions: React.FC<ConditionsProps> = ({\n conditions,\n acceptedConditions,\n onAcceptCondition,\n styles: customStyles,\n texts,\n}) => {\n // Track which conditions are expanded\n const [expandedConditions, setExpandedConditions] = useState<Record<string, boolean>>(\n {}\n )\n\n if (!conditions || conditions.length === 0) {\n return null\n }\n\n const toggleCondition = (conditionId: string) => {\n setExpandedConditions((prev) => ({\n ...prev,\n [conditionId]: !prev[conditionId],\n }))\n logger.debug('[Conditions] Condition toggled', {\n conditionId,\n expanded: !expandedConditions[conditionId],\n })\n }\n\n return (\n <View style={[styles.container, customStyles?.container]}>\n <Text style={[styles.title, customStyles?.title]}>\n {texts?.title || 'Event Conditions'}\n </Text>\n\n {conditions.map((condition) => (\n <View key={condition.id} style={styles.conditionRow}>\n <TouchableOpacity\n style={[styles.conditionButton, customStyles?.conditionButton]}\n onPress={() => toggleCondition(condition.id)}\n >\n <Text style={[styles.conditionButtonText, customStyles?.conditionButtonText]}>\n {condition.name} {condition.is_required ? '*' : ''} (\n {expandedConditions[condition.id]\n ? texts?.hideButton || 'Hide'\n : texts?.viewButton || 'View'}\n )\n </Text>\n </TouchableOpacity>\n\n {expandedConditions[condition.id] && (\n <ScrollView\n style={[styles.expandedContent, customStyles?.expandedContent]}\n nestedScrollEnabled={true}\n >\n <Text style={[styles.conditionContent, customStyles?.conditionContent]}>\n {condition.content}\n </Text>\n </ScrollView>\n )}\n\n {condition.is_required && (\n <Checkbox\n isActive={!!acceptedConditions[condition.id]}\n onPress={() =>\n onAcceptCondition(condition.id, !acceptedConditions[condition.id])\n }\n styles={customStyles?.checkbox}\n text={texts?.acceptCheckbox || 'I have read and accept these conditions'}\n />\n )}\n </View>\n ))}\n </View>\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n marginBottom: 20,\n },\n title: {\n fontSize: 18,\n fontWeight: 'bold',\n marginBottom: 10,\n },\n conditionRow: {\n marginBottom: 15,\n },\n conditionButton: {\n padding: 8,\n backgroundColor: '#f5f5f5',\n borderRadius: 4,\n marginBottom: 5,\n },\n conditionButtonText: {\n color: '#007bff',\n },\n expandedContent: {\n backgroundColor: '#f9f9f9',\n padding: 15,\n borderRadius: 4,\n marginBottom: 10,\n maxHeight: 150,\n },\n conditionContent: {\n fontSize: 14,\n lineHeight: 20,\n },\n})\n\nexport default Conditions\n","import _map from 'lodash/map'\nimport React from 'react'\nimport { StyleProp, StyleSheet, Text, TextStyle, View, ViewStyle } from 'react-native'\nimport { logger } from '../../../utils/Logger'\n\nexport interface IOrderItem {\n id: string\n title: string\n subtitle?: string\n value: string\n styles?: OrderReviewItemStyles\n}\n\nexport interface OrderReviewItemStyles {\n container?: StyleProp<ViewStyle>\n title?: StyleProp<TextStyle>\n subtitle?: StyleProp<TextStyle>\n value?: StyleProp<TextStyle>\n}\n\nexport interface OrderReviewStyles {\n item?: OrderReviewItemStyles\n rootContainer?: StyleProp<ViewStyle>\n}\n\nexport interface IOrderReviewProps {\n orderItems: IOrderItem[]\n styles?: OrderReviewStyles\n}\n\nconst styles = StyleSheet.create({\n rootContainer: {\n flex: 1,\n flexWrap: 'wrap',\n },\n orderItemContainer: {\n paddingVertical: 4,\n width: '100%',\n },\n orderItemTitle: {\n fontWeight: '800',\n fontSize: 16,\n },\n orderItemValue: {\n lineHeight: 20,\n },\n orderItemSubtitle: {\n fontSize: 12,\n color: '#666',\n marginBottom: 4,\n },\n})\n\nconst OrderItem = ({ title, subtitle, value, styles: itemStyles }: IOrderItem) => (\n <View\n style={[styles.orderItemContainer, itemStyles?.container]}\n key={`orderReview.${title}`}\n >\n <Text style={[styles.orderItemTitle, itemStyles?.title]}>{title}</Text>\n {subtitle && (\n <Text\n style={[styles.orderItemSubtitle, itemStyles?.subtitle]}\n allowFontScaling={true}\n >\n {subtitle}\n </Text>\n )}\n <Text style={[styles.orderItemValue, itemStyles?.value]} allowFontScaling={true}>\n {value}\n </Text>\n </View>\n)\n\nconst OrderReview = ({ orderItems, styles: customStyles }: IOrderReviewProps) => {\n return (\n <View style={[styles.rootContainer, customStyles?.rootContainer]}>\n {_map(orderItems, (item) => (\n <OrderItem\n key={`orderReview.${item.id}`}\n id={item.id}\n title={item.title}\n subtitle={item.subtitle}\n value={item.value}\n styles={{\n container: customStyles?.item?.container ?? item.styles?.container,\n title: customStyles?.item?.title ?? item.styles?.title,\n subtitle: customStyles?.item?.subtitle ?? item.styles?.subtitle,\n value: customStyles?.item?.value ?? item.styles?.value,\n }}\n />\n ))}\n </View>\n )\n}\n\nexport default OrderReview\n","import * as Yup from 'yup'\n\nimport { CustomField } from '../../event/types'\n\nexport const createCheckoutFormConfig = ({\n minimumAge,\n isAgeRequired,\n requirePassword,\n isTicketFree = false,\n requiredConditions = [],\n isPhoneRequired = false,\n orderCustomFields = [],\n ticketCustomFields = [],\n}: {\n minimumAge?: number\n isAgeRequired: boolean\n requirePassword: boolean\n isTicketFree?: boolean\n isSinglePageCheckout?: boolean\n requiredConditions?: Array<{ id: string }>\n isPhoneRequired?: boolean\n orderCustomFields?: CustomField[]\n ticketCustomFields?: CustomField[]\n}) =>\n Yup.object().shape({\n firstName: Yup.string().required('First name is required'),\n lastName: Yup.string().required('Last name is required'),\n email: Yup.string().email('Invalid email format').required('Email is required'),\n emailConfirmation: Yup.string()\n .oneOf([Yup.ref('email')], 'Emails must match')\n .required('Email confirmation is required'),\n dateOfBirth: isAgeRequired\n ? Yup.date()\n .required('Date of birth is required')\n .test(\n 'is-old-enough',\n `You must be at least ${minimumAge} years old`,\n (value) => {\n if (!value) return false\n\n const today = new Date()\n const birthDate = new Date(value)\n\n let age = today.getFullYear() - birthDate.getFullYear()\n const monthDiff = today.getMonth() - birthDate.getMonth()\n\n // Adjust age if birthday hasn't occurred this year yet\n if (\n monthDiff < 0 ||\n (monthDiff === 0 && today.getDate() < birthDate.getDate())\n ) {\n age--\n }\n\n return age >= (minimumAge || 0)\n }\n )\n : Yup.date().optional(),\n street: isTicketFree\n ? Yup.string()\n : Yup.string().required('Street address is required'),\n city: isTicketFree ? Yup.string() : Yup.string().required('City is required'),\n postalCode: isTicketFree\n ? Yup.string()\n : Yup.string().required('Postal code is required'),\n password: requirePassword\n ? Yup.string().required('Password is required')\n : Yup.string(),\n passwordConfirmation: requirePassword\n ? Yup.string()\n .oneOf([Yup.ref('password')], 'Passwords must match')\n .required('Password confirmation is required')\n : Yup.string().oneOf([Yup.ref('password')], 'Passwords must match'),\n phone: isPhoneRequired\n ? Yup.string().required('Phone number is required')\n : Yup.string().optional(),\n isSubToTicketFairy: Yup.boolean(),\n isSubToBrand: Yup.boolean(),\n country: isTicketFree\n ? Yup.string()\n : Yup.string().test(\n 'is-not-default',\n 'Country is required',\n (value) => value !== '-1' && !!value\n ),\n state: Yup.string(),\n acceptedConditions: Yup.object().test(\n 'required-conditions-accepted',\n 'You must accept all required conditions to proceed',\n (value) => {\n // If no required conditions, skip validation\n if (!requiredConditions || requiredConditions.length === 0) {\n return true\n }\n\n // Check that all required conditions are accepted\n return requiredConditions.every(\n (condition) => value && value[condition.id as keyof typeof value] === true\n )\n }\n ),\n\n // Ticket holders validation\n ticketHolders: Yup.array().of(\n Yup.object().shape({\n firstName: Yup.string().required('First name is required'),\n lastName: Yup.string().required('Last name is required'),\n email: Yup.string().email('Invalid email format'), // Email not required\n phone: Yup.string().optional(),\n customFields: Yup.object().test(\n 'validate-ticket-custom-fields',\n 'Please fill out all required ticket fields',\n (value: Record<string, string | string[]> | undefined) => {\n // If no ticket custom fields, validation passes\n if (!ticketCustomFields || ticketCustomFields.length === 0) {\n return true\n }\n\n // Find required fields\n const requiredFields = ticketCustomFields.filter((field) => field.required)\n\n // If no required fields, validation passes\n if (requiredFields.length === 0) {\n return true\n }\n\n // Check that all required fields have values\n return requiredFields.every((field) => {\n const fieldValue = value?.[field.name]\n\n // For arrays (multi-select), check that there's at least one item\n if (Array.isArray(fieldValue)) {\n return fieldValue.length > 0\n }\n\n // For strings, check that it's not empty\n return fieldValue !== undefined && fieldValue !== ''\n })\n }\n ),\n })\n ),\n\n // Custom fields validation\n customFields: Yup.object().test(\n 'validate-custom-fields',\n 'Please fill out all required custom fields',\n (value: Record<string, string | string[]> | undefined) => {\n // If no custom fields, validation passes\n if (!orderCustomFields || orderCustomFields.length === 0) {\n return true\n }\n\n // Find required fields\n const requiredFields = orderCustomFields.filter((field) => field.required)\n\n // If no required fields, validation passes\n if (requiredFields.length === 0) {\n return true\n }\n\n // Check that all required fields have values\n return requiredFields.every((field) => {\n const fieldValue = value?.[field.name]\n\n // For arrays (multi-select), check that there's at least one item\n if (Array.isArray(fieldValue)) {\n return fieldValue.length > 0\n }\n\n // For strings, check that it's not empty\n return fieldValue !== undefined && fieldValue !== ''\n })\n }\n ),\n })\n\nexport const formFieldsOrder = [\n 'firstName',\n 'lastName',\n 'email',\n 'emailConfirmation',\n 'password',\n 'passwordConfirmation',\n 'phone',\n 'dateOfBirth',\n 'street',\n 'city',\n 'country',\n 'postalCode',\n 'state',\n 'ticketHolders',\n 'isCardFormComplete',\n]\n","import { CardFormView } from '@stripe/stripe-react-native'\nimport { StyleProp, StyleSheet, TextStyle, ViewStyle } from 'react-native'\n\nimport type { FormikFieldComponentStyles } from '../../form'\n\nconst baseStyles = StyleSheet.create({\n form: {\n width: '100%',\n marginBottom: 50,\n },\n sectionTitle: {\n fontSize: 20,\n fontWeight: 'bold',\n marginTop: 20,\n marginBottom: 16,\n },\n sectionContainer: {\n marginVertical: 8,\n width: '100%',\n },\n paymentContainer: {\n padding: 10,\n backgroundColor: '#f9f9f9',\n borderRadius: 8,\n marginVertical: 10,\n minHeight: 180,\n },\n cardContainer: {\n height: 200,\n width: '100%',\n },\n orderReviewContainer: {\n marginVertical: 16,\n },\n // Add-ons styles\n addonSection: {\n marginVertical: 16,\n width: '100%',\n borderWidth: 1,\n borderColor: '#e0e0e0',\n borderRadius: 8,\n padding: 16,\n },\n addonRow: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n marginVertical: 12,\n paddingBottom: 12,\n borderBottomWidth: 1,\n borderBottomColor: '#f0f0f0',\n },\n addonItem: {\n flexDirection: 'column',\n gap: 16,\n },\n addonInfo: {\n flex: 1,\n marginRight: 16,\n },\n addonName: {\n fontSize: 16,\n fontWeight: 'bold',\n marginBottom: 4,\n },\n addonPrice: {\n fontSize: 15,\n color: '#333',\n marginBottom: 4,\n },\n addonPriceWithFees: {\n fontSize: 12,\n color: '#666',\n },\n addonDescription: {\n fontSize: 14,\n color: '#666',\n marginTop: 4,\n },\n addonSelectContainer: {\n width: 80,\n },\n addonMainTitle: {\n fontSize: 18,\n fontWeight: 'bold',\n textAlign: 'center',\n marginBottom: 8,\n },\n addonSubtitle: {\n fontSize: 14,\n color: '#666',\n textAlign: 'center',\n marginBottom: 16,\n },\n button: {\n backgroundColor: '#007bff',\n padding: 15,\n borderRadius: 5,\n alignItems: 'center',\n marginTop: 20,\n elevation: 3, // Android shadow\n shadowColor: '#000', // iOS shadow\n shadowOffset: { width: 0, height: 2 },\n shadowOpacity: 0.2,\n shadowRadius: 3,\n },\n buttonDisabled: {\n opacity: 0.6,\n },\n buttonText: {\n color: '#ffffff',\n fontSize: 16,\n fontWeight: 'bold',\n },\n errorContainer: {\n marginTop: 8,\n padding: 10,\n backgroundColor: '#ffebee',\n borderRadius: 5,\n },\n errorText: {\n color: '#d32f2f',\n marginBottom: 10,\n },\n ticketHolderTitle: {\n fontSize: 16,\n fontWeight: '600',\n marginBottom: 16,\n },\n})\n\nexport interface CheckoutFormStyles {\n form?: StyleProp<ViewStyle>\n sectionTitle?: StyleProp<TextStyle>\n sectionContainer?: StyleProp<ViewStyle>\n paymentContainer?: StyleProp<ViewStyle>\n cardContainer?: StyleProp<ViewStyle>\n orderReviewContainer?: StyleProp<ViewStyle>\n orderReviewItem?: {\n container?: StyleProp<ViewStyle>\n title?: StyleProp<TextStyle>\n subtitle?: StyleProp<TextStyle>\n value?: StyleProp<TextStyle>\n }\n addonRow?: StyleProp<ViewStyle>\n addonSection?: StyleProp<ViewStyle>\n addonItem?: StyleProp<ViewStyle>\n addonInfo?: StyleProp<ViewStyle>\n addonName?: StyleProp<TextStyle>\n addonPrice?: StyleProp<TextStyle>\n addonPriceWithFees?: StyleProp<TextStyle>\n addonDescription?: StyleProp<TextStyle>\n addonSelectContainer?: StyleProp<ViewStyle>\n addonMainTitle?: StyleProp<TextStyle>\n addonSubtitle?: StyleProp<TextStyle>\n button?: StyleProp<ViewStyle>\n buttonDisabled?: StyleProp<ViewStyle>\n buttonText?: StyleProp<TextStyle>\n errorContainer?: StyleProp<ViewStyle>\n errorText?: StyleProp<TextStyle>\n paymentContainerInner?: StyleProp<ViewStyle>\n cardStyle?: Partial<CardFormView.Styles>\n ticketHolderTitle?: StyleProp<TextStyle>\n fields?: FormikFieldComponentStyles\n}\n\nexport type CheckoutFormComputedStyles = ReturnType<typeof mergeCheckoutFormStyles>\n\nexport const cardStyle: CardFormView.Styles = {\n backgroundColor: '#FFFFFF',\n textColor: '#000000',\n placeholderColor: '#999999',\n borderWidth: 1,\n borderColor: '#E0E0E0',\n borderRadius: 8,\n}\n\nexport const mergeCheckoutFormStyles = (overrides?: CheckoutFormStyles) => ({\n form: StyleSheet.flatten([baseStyles.form, overrides?.form]),\n sectionTitle: StyleSheet.flatten([baseStyles.sectionTitle, overrides?.sectionTitle]),\n sectionContainer: StyleSheet.flatten([\n baseStyles.sectionContainer,\n overrides?.sectionContainer,\n ]),\n paymentContainer: StyleSheet.flatten([\n baseStyles.paymentContainer,\n overrides?.paymentContainer,\n ]),\n cardContainer: StyleSheet.flatten([baseStyles.cardContainer, overrides?.cardContainer]),\n orderReviewContainer: StyleSheet.flatten([\n baseStyles.orderReviewContainer,\n overrides?.orderReviewContainer,\n ]),\n orderReviewItem: overrides?.orderReviewItem,\n addonSection: StyleSheet.flatten([baseStyles.addonSection, overrides?.addonSection]),\n addonRow: StyleSheet.flatten([baseStyles.addonRow, overrides?.addonRow]),\n addonItem: StyleSheet.flatten([baseStyles.addonItem, overrides?.addonItem]),\n addonInfo: StyleSheet.flatten([baseStyles.addonInfo, overrides?.addonInfo]),\n addonName: StyleSheet.flatten([baseStyles.addonName, overrides?.addonName]),\n addonPrice: StyleSheet.flatten([baseStyles.addonPrice, overrides?.addonPrice]),\n addonPriceWithFees: StyleSheet.flatten([\n baseStyles.addonPriceWithFees,\n overrides?.addonPriceWithFees,\n ]),\n addonDescription: StyleSheet.flatten([\n baseStyles.addonDescription,\n overrides?.addonDescription,\n ]),\n addonSelectContainer: StyleSheet.flatten([\n baseStyles.addonSelectContainer,\n overrides?.addonSelectContainer,\n ]),\n addonMainTitle: StyleSheet.flatten([\n baseStyles.addonMainTitle,\n overrides?.addonMainTitle,\n ]),\n addonSubtitle: StyleSheet.flatten([baseStyles.addonSubtitle, overrides?.addonSubtitle]),\n button: StyleSheet.flatten([baseStyles.button, overrides?.button]),\n buttonDisabled: StyleSheet.flatten([\n baseStyles.buttonDisabled,\n overrides?.buttonDisabled,\n ]),\n buttonText: StyleSheet.flatten([baseStyles.buttonText, overrides?.buttonText]),\n errorContainer: StyleSheet.flatten([\n baseStyles.errorContainer,\n overrides?.errorContainer,\n ]),\n errorText: StyleSheet.flatten([baseStyles.errorText, overrides?.errorText]),\n paymentContainerInner: StyleSheet.flatten([overrides?.paymentContainerInner]),\n cardStyle: {\n ...cardStyle,\n ...(overrides?.cardStyle || {}),\n },\n ticketHolderTitle: StyleSheet.flatten([\n baseStyles.ticketHolderTitle,\n overrides?.ticketHolderTitle,\n ]),\n fields: overrides?.fields,\n})\n\nexport default baseStyles\n","import { CheckoutFormTexts } from './types'\n\nexport const defaultCheckoutFormTexts: Required<CheckoutFormTexts> = {\n form: {\n sectionTitle: 'Personal Information',\n firstName: 'First Name',\n firstNamePlaceholder: 'Enter your first name',\n lastName: 'Last Name',\n lastNamePlaceholder: 'Enter your last name',\n email: 'Email',\n emailPlaceholder: 'Enter your email',\n emailConfirmation: 'Confirm Email',\n emailConfirmationPlaceholder: 'Confirm your email',\n password: 'Password',\n passwordPlaceholder: 'Enter a password',\n passwordConfirmation: 'Confirm Password',\n passwordConfirmationPlaceholder: 'Confirm your password',\n phone: 'Phone Number',\n phonePlaceholder: 'Enter your phone number',\n dateOfBirth: 'Date of Birth',\n dateOfBirthPlaceholder: 'Date of Birth',\n street: 'Street Address',\n streetPlaceholder: 'Enter your street address',\n city: 'City',\n cityPlaceholder: 'Enter your city',\n country: 'Country',\n countryPlaceholder: 'Select your country',\n state: 'State',\n statePlaceholder: 'Select your state',\n postalCode: 'Postal Code',\n postalCodePlaceholder: 'Enter your postal code',\n customFields: {},\n },\n ticketHolders: {\n title: 'Ticket Holders',\n itemTitle: 'Ticket {index}',\n firstName: 'First Name *',\n firstNamePlaceholder: 'Enter first name',\n lastName: 'Last Name *',\n lastNamePlaceholder: 'Enter last name',\n email: 'Email',\n emailPlaceholder: 'Enter email address',\n phone: 'Phone Number',\n phonePlaceholder: 'Enter phone number',\n customFields: {},\n },\n marketingOptIns: {\n ticketFairyOptIn: 'Subscribe to The Ticket Fairy newsletters',\n organizerOptIn: 'Subscribe to event organizer newsletters',\n },\n addons: {\n title: 'Available Add-ons',\n quantityLabel: 'Qty',\n priceWithFeesSuffix: ' (with fees)',\n },\n orderSummary: {\n sectionTitle: 'Order Summary',\n },\n payment: {\n sectionTitle: 'Payment Details',\n errorRequired: 'Please fill your payment information',\n },\n buttons: {\n singlePageSubmit: 'Complete Checkout',\n goToPayment: 'Proceed to Payment',\n paymentSubmit: 'Complete Payment',\n },\n conditions: {\n title: 'Event Conditions',\n acceptLabel: 'I have read and accept these conditions',\n viewButton: 'View',\n hideButton: 'Hide',\n },\n}\n\nconst mergeCustomFieldMap = (\n base: Record<string, { label?: string; placeholder?: string }>,\n override?: Record<string, { label?: string; placeholder?: string }>\n): Record<string, { label?: string; placeholder?: string }> => ({\n ...base,\n ...(override ?? {}),\n})\n\nexport const mergeCheckoutFormTexts = (\n overrides?: CheckoutFormTexts\n): Required<CheckoutFormTexts> => {\n if (!overrides) {\n return defaultCheckoutFormTexts\n }\n\n return {\n form: {\n ...defaultCheckoutFormTexts.form,\n ...overrides.form,\n customFields: mergeCustomFieldMap(\n defaultCheckoutFormTexts.form.customFields || {},\n overrides.form?.customFields\n ),\n },\n ticketHolders: {\n ...defaultCheckoutFormTexts.ticketHolders,\n ...overrides.ticketHolders,\n customFields: mergeCustomFieldMap(\n defaultCheckoutFormTexts.ticketHolders.customFields || {},\n overrides.ticketHolders?.customFields\n ),\n },\n marketingOptIns: {\n ...defaultCheckoutFormTexts.marketingOptIns,\n ...overrides.marketingOptIns,\n },\n addons: {\n ...defaultCheckoutFormTexts.addons,\n ...overrides.addons,\n },\n orderSummary: {\n ...defaultCheckoutFormTexts.orderSummary,\n ...overrides.orderSummary,\n },\n payment: {\n ...defaultCheckoutFormTexts.payment,\n ...overrides.payment,\n },\n buttons: {\n ...defaultCheckoutFormTexts.buttons,\n ...overrides.buttons,\n },\n conditions: {\n ...defaultCheckoutFormTexts.conditions,\n ...overrides.conditions,\n },\n }\n}\n","import { IMyOrderDetailsTicket } from './api/types'\nimport {\n ICheckoutBody,\n IEventResponse,\n IMyOrderDetailsData,\n IMyOrdersOrder,\n IPromoCodeResponse,\n IPurchaseConfirmationData,\n IRegisterNewUserBody,\n MyOrderRequestFromType,\n} from './api/types'\nimport {\n CartTimer,\n Dropdown,\n DropdownMaterial,\n Loading,\n LoggedIn,\n Login,\n PromoCode,\n WaitingList,\n} from './components'\nimport { IDropdownStyles } from './components/dropdown/types'\nimport { ILoadingStyles } from './components/loading/types'\nimport { ILoginSuccessData } from './components/login/types'\nimport {\n BillingInfo,\n Checkout,\n MyOrderDetails,\n MyOrders,\n PurchaseConfirmation,\n ResaleTickets,\n ResetPassword,\n Tickets,\n} from './containers'\nimport { ICheckoutSuccessData } from './features/checkout-v2/hooks/use-checkout'\nimport { IConfig } from './helpers/Config'\nimport { IMyOrderDetailsProps } from './containers/myOrderDetails/types'\nimport { IMyOrdersProps } from './containers/myOrders/types'\nimport { IPurchaseConfirmationProps } from './containers/purchaseConfirmation/types'\nimport { IResaleTicketsProps } from './containers/resaleTickets/types'\nimport { IPasswordProtectedEventData, ITicketsProps } from './containers/tickets/types'\nimport {\n BillingCore,\n BillingCoreHandle,\n CheckoutCore,\n CheckoutCoreHandle,\n LoginCore,\n LoginCoreHandle,\n MyOrdersCore,\n MyOrdersCoreHandle,\n OrderDetailsCore,\n OrderDetailsCoreHandle,\n PurchaseConfirmationCore,\n PurchaseConfirmationCoreHandle,\n ResetPasswordCore,\n ResetPasswordCoreHandle,\n SessionCoreHandleType,\n SessionHandleType,\n TicketsCore,\n TicketsCoreHandle,\n WaitingListCore,\n WaitingListCoreHandle,\n} from './core'\nimport {\n IBookTicketsOptions,\n IGetTicketsPayload,\n IGroupedTickets,\n} from './core/TicketsCore/TicketsCoreTypes'\nimport { useRegisterUser, useUserProfile } from './features/auth/api-hooks'\nimport {\n CheckoutController as CheckoutV2,\n CheckoutProvider,\n CheckoutStyles,\n} from './features/checkout-v2'\nimport { CheckoutForm, PaymentForm } from './features/checkout-v2/form'\nimport {\n useAddons,\n useAddToCart,\n useCart,\n useCheckout,\n useEventConditions,\n useEventInfo,\n usePaymentData,\n usePaymentSuccess,\n useTickets,\n useUpdateCheckout,\n} from './features/checkout-v2/hooks/api-hooks'\nimport { useCheckoutFlow } from './features/checkout-v2/hooks/use-checkout'\nimport { CheckoutTexts } from './features/checkout-v2/types'\nimport { useCountries, useStates } from './features/geo/api-hooks'\nimport { setConfig } from './helpers/Config'\nimport { deleteAllData, deleteUserData } from './helpers/LocalStorage'\nimport { refreshAccessToken } from './helpers/RefreshAccessToken'\nimport {\n IAccountOrdersPurchasedEvent,\n IAccountOrdersTicket,\n IAccountTicketsAttributes,\n IAccountTicketsData,\n IAccountTicketsResponse,\n IAddToCartResponse,\n IError,\n IEvent,\n ISelectedTicket,\n ITicket,\n ITicketsResponseData,\n IUserProfile,\n} from './types'\n\nimport { LogBox, NativeModules } from 'react-native'\nimport { storage } from 'tf-checkout-shared'\nimport { reactNativeStorageAdapter } from './utils/storageAdapter'\nstorage.setAdapter(reactNativeStorageAdapter)\n\nLogBox.ignoreAllLogs()\n\nexport {\n /**\n * @deprecated Use hooks like useCart(), useCheckout(), etc. imported directly from 'tf-checkout-react-native'. See core/MIGRATION.md\n */\n BillingCore,\n /**\n * @deprecated Use hooks like useCart(), useCheckout(), etc. imported directly from 'tf-checkout-react-native'. See core/MIGRATION.md\n */\n BillingCoreHandle,\n BillingInfo,\n CartTimer,\n Checkout,\n /**\n * @deprecated Use hooks like usePaymentData(), useEventConditions(), etc. imported directly from 'tf-checkout-react-native'. See core/MIGRATION.md\n */\n CheckoutCore,\n CheckoutCoreHandle,\n /**\n * @deprecated Use hooks like usePaymentData(), useEventConditions(), etc. imported directly from 'tf-checkout-react-native'. See core/MIGRATION.md\n */\n CheckoutForm,\n CheckoutProvider,\n CheckoutStyles,\n CheckoutTexts,\n CheckoutV2,\n deleteAllData,\n deleteUserData,\n Dropdown,\n DropdownMaterial,\n IAccountOrdersPurchasedEvent,\n IAccountOrdersTicket,\n IAccountTicketsAttributes,\n IAccountTicketsData,\n IAccountTicketsResponse,\n IAddToCartResponse,\n IBookTicketsOptions,\n ICheckoutBody,\n IDropdownStyles,\n IError,\n IEvent,\n IEventResponse,\n IGetTicketsPayload,\n IGroupedTickets,\n ILoadingStyles,\n ILoginSuccessData,\n IMyOrderDetailsData,\n IMyOrderDetailsProps,\n IMyOrdersOrder,\n IMyOrdersProps,\n IPasswordProtectedEventData,\n IPromoCodeResponse,\n IPurchaseConfirmationData,\n IPurchaseConfirmationProps,\n IRegisterNewUserBody,\n IResaleTicketsProps,\n ISelectedTicket,\n ITicket,\n ITicketsProps,\n ITicketsResponseData,\n IUserProfile,\n IConfig,\n ICheckoutSuccessData,\n IMyOrderDetailsTicket,\n Loading,\n LoggedIn,\n Login,\n LoginCore,\n LoginCoreHandle,\n MyOrderDetails,\n MyOrderRequestFromType,\n MyOrders,\n MyOrdersCore,\n MyOrdersCoreHandle,\n OrderDetailsCore,\n OrderDetailsCoreHandle,\n PaymentForm,\n PromoCode,\n PurchaseConfirmation,\n PurchaseConfirmationCore,\n PurchaseConfirmationCoreHandle,\n refreshAccessToken,\n ResaleTickets,\n ResetPassword,\n ResetPasswordCore,\n ResetPasswordCoreHandle,\n SessionCoreHandleType,\n SessionHandleType,\n setConfig,\n Tickets,\n TicketsCore,\n TicketsCoreHandle,\n useAddons,\n useAddToCart,\n // New checkout hooks (replacing BillingCore and CheckoutCore functionality)\n useCart,\n useCheckout,\n useCheckoutFlow,\n useCountries,\n useEventConditions,\n useEventInfo,\n usePaymentData,\n usePaymentSuccess,\n useRegisterUser,\n useStates,\n useTickets,\n useUpdateCheckout,\n useUserProfile,\n WaitingList,\n WaitingListCore,\n WaitingListCoreHandle,\n}\nexport default NativeModules.TFCheckoutRNModule\n\nexport * from './apiv2'\n\nexport { storage, type StorageAdapter } from 'tf-checkout-shared'\n","/**\n * React Native Storage Adapter\n *\n * This adapter provides synchronous localStorage-like behavior using MMKV\n * MMKV is a fast, synchronous key-value storage for React Native\n *\n * Installation:\n * npm install react-native-mmkv\n *\n * Alternative: If you prefer AsyncStorage, you'll need to handle async operations differently\n */\n\nimport { MMKV } from 'react-native-mmkv'\nimport type { StorageAdapter } from 'tf-checkout-shared'\n\nconst mmkvStorage = new MMKV()\n\nexport const reactNativeStorageAdapter: StorageAdapter = {\n getItem: (key: string): string | null => {\n try {\n const value = mmkvStorage.getString(key)\n return value ?? null\n } catch (error) {\n console.error(`[StorageAdapter] getItem error for key \"${key}\":`, error)\n return null\n }\n },\n\n setItem: (key: string, value: string): void => {\n try {\n mmkvStorage.set(key, value)\n } catch (error) {\n console.error(`[StorageAdapter] setItem error for key \"${key}\":`, error)\n }\n },\n\n removeItem: (key: string): void => {\n try {\n mmkvStorage.delete(key)\n } catch (error) {\n console.error(`[StorageAdapter] removeItem error for key \"${key}\":`, error)\n }\n },\n}\n"],"mappings":"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","names":["Dimensions","Dimensions","styles","ref","React","Text","TouchableOpacity","View","StyleSheet","StyleSheet","jsx","React","styles","ref","View","TouchableOpacity","Text","useEffect","Image","Text","View","Dimensions","StyleSheet","Dimensions","styles_default","StyleSheet","jsx","jsxs","styles","useEffect","View","styles_default","Image","Text","Image","Text","TouchableOpacity","View","StyleSheet","styles_default","StyleSheet","Fragment","jsx","jsxs","styles","styles_default","TouchableOpacity","View","Image","Text","useState","Pressable","StyleSheet","View","React","Image","TouchableOpacity","View","StyleSheet","styles_default","StyleSheet","PropTypes","React","PureComponent","View","Animated","StyleSheet","Platform","TextPropTypes","React","View","Animated","StyleSheet","styles_default","jsx","View","styles_default","Animated","PropTypes","React","PureComponent","Animated","StyleSheet","styles_default","jsx","PureComponent","containerStyle","Animated","styles_default","PropTypes","PropTypes","React","PureComponent","Animated","TextPropTypes","StyleSheet","styles_default","jsx","PureComponent","containerStyle","Animated","styles_default","PropTypes","TextPropTypes","PropTypes","React","PureComponent","Animated","TextPropTypes","StyleSheet","styles_default","jsx","PureComponent","Animated","styles_default","PropTypes","TextPropTypes","PropTypes","React","PureComponent","Text","StyleSheet","styles_default","TextPropTypes","jsxs","PureComponent","Text","styles_default","PropTypes","TextPropTypes","StyleSheet","styles_default","jsx","jsxs","Animated","PureComponent","React","Platform","containerStyle","View","styles_default","StyleSheet","PropTypes","TextPropTypes","StyleSheet","styles_default","styles_default","React","Animated","StyleSheet","PropTypes","React","Fragment","PureComponent","View","Animated","I18nManager","StyleSheet","Platform","styles_default","jsx","jsxs","Line","PureComponent","Animated","I18nManager","Fragment","View","styles_default","PropTypes","jsx","Animated","Line","StyleSheet","jsx","styles","React","TouchableOpacity","Image","styles_default","View","StyleSheet","FONT_SIZE","styles_default","StyleSheet","jsx","jsxs","styles","useState","date","View","styles_default","Pressable","StyleSheet","useEffect","useRef","useState","Image","Text","TouchableOpacity","View","View","jsx","Text","TouchableOpacity","View","Dimensions","StyleSheet","sWidth","Dimensions","StyleSheet","jsx","styles","View","TouchableOpacity","Text","jsx","jsxs","styles","useState","useRef","useEffect","View","TouchableOpacity","Text","Image","useCallback","useEffect","useRef","useState","FlatList","Image","Modal","TouchableOpacity","TouchableWithoutFeedback","View","Dimensions","StyleSheet","sWidth","sHeight","Dimensions","DIALOG","StyleSheet","DropdownListItemStyles","jsx","jsxs","styles","useState","useRef","useEffect","useCallback","Image","View","TouchableOpacity","Modal","TouchableWithoutFeedback","FlatList","useState","Modal","Text","View","StyleSheet","styles_default","StyleSheet","jsx","jsxs","styles","useState","Modal","View","styles_default","Text","Text","Text","TouchableOpacity","View","jsx","jsxs","styles","StyleSheet","styles_default","StyleSheet","jsx","Text","styles_default","ActivityIndicator","Modal","Text","View","StyleSheet","styles_default","StyleSheet","Fragment","jsx","jsxs","styles","Modal","View","styles_default","ActivityIndicator","Text","View","StyleSheet","styles_default","jsx","jsxs","styles","View","styles_default","useRef","useState","useCallback","useEffect","useState","forwardRef","useImperativeHandle","_forEach","_forEach","headers","Fragment","jsx","forwardRef","ref","useState","useCallback","useEffect","useImperativeHandle","useCallback","useEffect","useState","forwardRef","useImperativeHandle","BackgroundTimer","Fragment","jsx","forwardRef","ref","useState","useCallback","BackgroundTimer","useEffect","useImperativeHandle","forwardRef","useImperativeHandle","Fragment","jsx","forwardRef","ref","useImperativeHandle","forwardRef","useImperativeHandle","Fragment","jsx","forwardRef","ref","useImperativeHandle","forwardRef","useImperativeHandle","Fragment","jsx","forwardRef","ref","useImperativeHandle","forwardRef","useCallback","useImperativeHandle","BackgroundTimer","Fragment","jsx","forwardRef","ref","useCallback","BackgroundTimer","useImperativeHandle","forwardRef","useImperativeHandle","Fragment","jsx","forwardRef","ref","useImperativeHandle","forwardRef","useImperativeHandle","Fragment","jsx","forwardRef","ref","useImperativeHandle","jwtDecode","_map","_mapKeys","_sortBy","forwardRef","useImperativeHandle","Fragment","jsx","forwardRef","ref","useImperativeHandle","_map","_mapKeys","_sortBy","jwtDecode","forwardRef","useImperativeHandle","Fragment","jsx","forwardRef","ref","useImperativeHandle","useState","Alert","Image","Modal","Text","TouchableOpacity","View","useEffect","useState","useState","Text","View","StyleSheet","StyleSheet","jsx","jsxs","styles","useState","View","Text","Text","View","jsx","jsxs","styles","View","Text","Text","View","StyleSheet","styles_default","StyleSheet","jsx","jsxs","styles","View","styles_default","Text","Fragment","jsx","jsxs","styles","useState","_a","_b","_c","_d","View","Text","styles_default","Image","Alert","Modal","TouchableOpacity","jsx","styles","useState","useRef","useCallback","useEffect","useRef","useState","View","Platform","StyleSheet","styles_default","StyleSheet","Platform","jsx","styles","useState","useRef","useEffect","useCallback","View","styles_default","_a","useState","Image","Text","TextInput","TouchableOpacity","View","StyleSheet","styles_default","StyleSheet","jsx","jsxs","styles","useState","styles_default","View","TextInput","TouchableOpacity","Image","Text","Text","TouchableOpacity","View","StyleSheet","styles_default","StyleSheet","jsx","jsxs","styles","TouchableOpacity","styles_default","View","Text","forwardRef","useCallback","useEffect","useImperativeHandle","StyleSheet","styles_default","jsx","forwardRef","ref","useCallback","useEffect","useImperativeHandle","styles_default","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","useState","Alert","Text","View","StyleSheet","styles_default","Fragment","jsx","jsxs","styles","View","Text","styles_default","jsx","forwardRef","styles","ref","useState","useRef","Alert","useImperativeHandle","useCallback","useEffect","_find","_forEach","_map","React","forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","ActivityIndicator","Alert","Image","Text","View","_find","_get","_forEach","_map","date","authorize","authGuestToken","_get","addToCart","headers","_forEach","date","addToWaitingList","validatePhoneNumber","_map","StyleSheet","styles_default","StyleSheet","Fragment","jsx","jsxs","forwardRef","styles","ref","useState","useMemo","_a","_b","React","useRef","useImperativeHandle","useCallback","Alert","_map","_forEach","_find","useEffect","getStates","View","Text","styles_default","Image","ActivityIndicator","CardForm","initStripe","useConfirmPayment","_every","_forEach","_map","_mapKeys","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","useState","Alert","Text","View","KeyboardAwareScrollView","_map","View","StyleSheet","jsx","View","_map","_map","Text","View","jsx","jsxs","styles","View","Text","_map","Platform","StyleSheet","styles_default","StyleSheet","Platform","jsx","jsxs","forwardRef","styles","ref","useConfirmPayment","useState","useRef","Alert","useImperativeHandle","_map","_a","_forEach","_mapKeys","_b","initStripe","getConditions","useCallback","useEffect","_every","View","styles_default","Text","KeyboardAwareScrollView","CardForm","_find","_forEach","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","useState","Alert","Platform","_map","Image","Text","TouchableOpacity","View","Image","Text","View","StyleSheet","StyleSheet","jsx","jsxs","View","Text","Image","Image","Text","TouchableOpacity","View","jsx","jsxs","styles","Image","Text","TouchableOpacity","View","StyleSheet","jsx","jsxs","styles","View","Text","TouchableOpacity","Image","StyleSheet","styles_default","jsx","jsxs","styles","removeTicketFromResale","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","View","styles_default","Text","TouchableOpacity","Image","_map","_k","jsx","forwardRef","styles","ref","useState","useRef","useCallback","useImperativeHandle","Platform","headers","Alert","_forEach","_find","useEffect","_map","_sortBy","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","useState","Alert","useCallback","useMemo","useRef","ActivityIndicator","FlatList","Image","Text","TouchableOpacity","View","Image","Text","TouchableOpacity","View","StyleSheet","StyleSheet","jsx","jsxs","styles","View","TouchableOpacity","Image","Text","StyleSheet","StyleSheet","jsx","jsxs","styles","useRef","useCallback","useMemo","_a","View","TouchableOpacity","Image","Text","FlatList","ActivityIndicator","date","jsx","forwardRef","styles","ref","useState","useRef","Alert","_sortBy","_map","getOrders","_a","useImperativeHandle","useCallback","useEffect","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","useState","Alert","Text","View","StyleSheet","styles_default","StyleSheet","jsx","jsxs","styles","View","styles_default","Text","jsx","forwardRef","styles","ref","useState","Alert","useRef","useCallback","useImperativeHandle","useEffect","forwardRef","useImperativeHandle","useRef","useState","Alert","useEffect","useMemo","useRef","Text","View","KeyboardAwareScrollView","jsx","jsxs","styles","useRef","useMemo","_a","_b","_c","_d","_e","_f","View","Text","useEffect","KeyboardAwareScrollView","jsx","forwardRef","styles","ref","useRef","useState","Alert","useImperativeHandle","useRef","useState","Keyboard","Pressable","Text","View","StyleSheet","styles_default","StyleSheet","jsx","jsxs","styles","Pressable","styles_default","Keyboard","View","Text","jsx","styles","useState","useRef","_get","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","useState","Alert","FlatList","SectionList","Text","View","Text","View","jsx","styles","Text","View","StyleSheet","StyleSheet","Fragment","jsx","jsxs","TicketListItem","styles","Text","View","TicketListItem_default","StyleSheet","styles_default","StyleSheet","jsx","jsxs","styles","View","styles_default","Text","SectionList","_a","TicketListItem_default","_b","_c","_d","FlatList","jsx","forwardRef","styles","ref","logger","useState","useRef","Alert","getTickets","_get","useCallback","useEffect","useImperativeHandle","useConfirmPayment","useCallback","useEffect","useMemo","useState","BackgroundTimer","axios","useCallback","useEffect","useState","queryClient","useState","useEffect","useCallback","useQuery","useQuery","useQuery","useQuery","useMutation","useQuery","useQueryClient","useCallback","useQuery","useMutation","queryClient","useQueryClient","useCallback","useState","useCallback","_a","_b","_c","_d","_e","_f","useMemo","useConfirmPayment","_g","_h","availableAddons","selectedCountry","useEffect","BackgroundTimer","_i","_j","_k","_l","_m","useCallback","useMemo","useRef","useState","StyleSheet","KeyboardAwareScrollView","CardForm","React","useCallback","useMemo","useRef","useState","ActivityIndicator","Text","TouchableOpacity","View","React","Text","jsx","jsxs","React","_a","date","Text","useCallback","Text","View","jsx","jsxs","useCallback","View","Text","_a","useState","ScrollView","StyleSheet","Text","TouchableOpacity","View","jsx","jsxs","Conditions","useState","View","Text","TouchableOpacity","ScrollView","StyleSheet","Conditions_default","_map","StyleSheet","Text","View","jsx","jsxs","styles","OrderItem","OrderReview","OrderReview_default","StyleSheet","jsx","jsxs","React","Conditions_default","OrderReview_default","useState","styles","useMemo","useRef","useCallback","View","Text","TouchableOpacity","ActivityIndicator","CardForm","Fragment","jsx","jsxs","StyleSheet","useRef","useState","useMemo","_a","useCallback","containerStyle","KeyboardAwareScrollView","ref"]}