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

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 (711) hide show
  1. package/README.md +215 -3321
  2. package/dist/index.d.mts +10896 -0
  3. package/dist/index.d.ts +10896 -0
  4. package/dist/index.js +25684 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/index.mjs +25751 -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/src/CardInput.tsx +110 -0
  12. package/src/EmbeddedCheckout.tsx +416 -0
  13. package/src/auth/AuthModal.tsx +305 -0
  14. package/src/auth/EmailCodeForm.tsx +91 -0
  15. package/src/auth/ForgotPasswordForm.tsx +98 -0
  16. package/src/auth/LoginForm.tsx +99 -0
  17. package/src/auth/PasswordInput.tsx +45 -0
  18. package/src/auth/RegisterForm.tsx +333 -0
  19. package/src/auth/ResetPasswordForm.tsx +112 -0
  20. package/src/auth/TwoFactorForm.tsx +74 -0
  21. package/src/auth/index.ts +11 -0
  22. package/src/configure.ts +33 -0
  23. package/src/confirmer.ts +272 -0
  24. package/src/generated/seatMapWidget.ts +3 -0
  25. package/src/index.tsx +25 -227
  26. package/src/instance.ts +13 -0
  27. package/src/sections/Accommodation.tsx +57 -0
  28. package/src/sections/AccountRewards.tsx +108 -0
  29. package/src/sections/AddOns.tsx +286 -0
  30. package/src/sections/BillingInfo.tsx +769 -0
  31. package/src/sections/Bundles.tsx +467 -0
  32. package/src/sections/Confirmation.tsx +143 -0
  33. package/src/sections/EventDiscussionView.tsx +633 -0
  34. package/src/sections/IDVerification.tsx +77 -0
  35. package/src/sections/OrderSummary.tsx +116 -0
  36. package/src/sections/Passes.tsx +177 -0
  37. package/src/sections/Payment.tsx +534 -0
  38. package/src/sections/PostReaction.tsx +122 -0
  39. package/src/sections/Rewards.tsx +320 -0
  40. package/src/sections/SeatMap.tsx +225 -0
  41. package/src/sections/SeatsIoMap.tsx +110 -0
  42. package/src/sections/TicketChange.tsx +379 -0
  43. package/src/sections/TicketGift.tsx +206 -0
  44. package/src/sections/TicketRefund.tsx +104 -0
  45. package/src/sections/Tickets.tsx +761 -0
  46. package/src/sections/Trips.tsx +87 -0
  47. package/src/sections/WaiverSigning.tsx +429 -0
  48. package/src/sections/billing/BillingAddressFields.tsx +126 -0
  49. package/src/sections/billing/BuyerField.tsx +78 -0
  50. package/src/sections/billing/PhoneIdentity.tsx +169 -0
  51. package/src/sections/billing/TicketHoldersCard.tsx +119 -0
  52. package/src/sections/billing/types.ts +10 -0
  53. package/src/sections/discussion/CommentImages.tsx +342 -0
  54. package/src/sections/discussion/SwipeReply.tsx +88 -0
  55. package/src/sections/index.ts +28 -0
  56. package/src/sections/rewards/RewardsLadder.tsx +167 -0
  57. package/src/sections/rewards/RewardsTree.tsx +117 -0
  58. package/src/storage.ts +26 -0
  59. package/src/ui/CheckoutProvider.tsx +152 -0
  60. package/src/ui/CustomFields.tsx +176 -0
  61. package/src/ui/Field.tsx +189 -0
  62. package/src/ui/Frozen.tsx +22 -0
  63. package/src/ui/InstallmentPicker.tsx +155 -0
  64. package/src/ui/PaymentMethods.tsx +180 -0
  65. package/src/ui/ProviderPages.tsx +134 -0
  66. package/src/ui/QuantitySelect.tsx +127 -0
  67. package/src/ui/Select.tsx +154 -0
  68. package/src/ui/SignaturePad.tsx +218 -0
  69. package/src/ui/Timer.tsx +69 -0
  70. package/src/ui/TimerBanner.tsx +95 -0
  71. package/src/ui/index.ts +18 -0
  72. package/src/ui/primitives.tsx +202 -0
  73. package/src/ui/theme.ts +89 -0
  74. package/src/ui/useAccountT.ts +16 -0
  75. package/src/useCheckout.ts +37 -0
  76. package/lib/brand-DA2IARBI.png +0 -0
  77. package/lib/ic_check-FLIJQ3BY.png +0 -0
  78. package/lib/ic_clock-BZ4Z7PIP.png +0 -0
  79. package/lib/ic_copy-VWMA4B7X.png +0 -0
  80. package/lib/ic_dropdown-BCS3QDNJ.png +0 -0
  81. package/lib/ic_error-KDEZUPSN.png +0 -0
  82. package/lib/ic_eye-WGXVXVAN.png +0 -0
  83. package/lib/ic_eye_off-XTCE6XSO.png +0 -0
  84. package/lib/ic_more-LZWKYCDU.png +0 -0
  85. package/lib/ic_next-LCNIGEDM.png +0 -0
  86. package/lib/index.js +0 -18222
  87. package/lib/index.js.map +0 -1
  88. package/lib/index.mjs +0 -18309
  89. package/lib/index.mjs.map +0 -1
  90. package/lib/typescript/package.json +0 -1
  91. package/lib/typescript/src/api/ApiClient.d.ts +0 -49
  92. package/lib/typescript/src/api/ApiClient.d.ts.map +0 -1
  93. package/lib/typescript/src/api/Constants.d.ts +0 -11
  94. package/lib/typescript/src/api/Constants.d.ts.map +0 -1
  95. package/lib/typescript/src/api/ErrorHandler.d.ts +0 -12
  96. package/lib/typescript/src/api/ErrorHandler.d.ts.map +0 -1
  97. package/lib/typescript/src/api/api.types.d.ts +0 -8
  98. package/lib/typescript/src/api/api.types.d.ts.map +0 -1
  99. package/lib/typescript/src/api/types.d.ts +0 -518
  100. package/lib/typescript/src/api/types.d.ts.map +0 -1
  101. package/lib/typescript/src/apiv2/index.d.ts +0 -3
  102. package/lib/typescript/src/apiv2/index.d.ts.map +0 -1
  103. package/lib/typescript/src/common/query.types.d.ts +0 -3
  104. package/lib/typescript/src/common/query.types.d.ts.map +0 -1
  105. package/lib/typescript/src/components/bottomSheetModal/BottomSheetModal.d.ts +0 -8
  106. package/lib/typescript/src/components/bottomSheetModal/BottomSheetModal.d.ts.map +0 -1
  107. package/lib/typescript/src/components/bottomSheetModal/BottomSheetModalStyles.d.ts +0 -39
  108. package/lib/typescript/src/components/bottomSheetModal/BottomSheetModalStyles.d.ts.map +0 -1
  109. package/lib/typescript/src/components/bottomSheetModal/BottomSheetModalTypes.d.ts +0 -23
  110. package/lib/typescript/src/components/bottomSheetModal/BottomSheetModalTypes.d.ts.map +0 -1
  111. package/lib/typescript/src/components/button/Button.d.ts +0 -5
  112. package/lib/typescript/src/components/button/Button.d.ts.map +0 -1
  113. package/lib/typescript/src/components/button/styles.d.ts +0 -28
  114. package/lib/typescript/src/components/button/styles.d.ts.map +0 -1
  115. package/lib/typescript/src/components/button/types.d.ts +0 -15
  116. package/lib/typescript/src/components/button/types.d.ts.map +0 -1
  117. package/lib/typescript/src/components/cartTimer/CartTimer.d.ts +0 -5
  118. package/lib/typescript/src/components/cartTimer/CartTimer.d.ts.map +0 -1
  119. package/lib/typescript/src/components/cartTimer/styles.d.ts +0 -47
  120. package/lib/typescript/src/components/cartTimer/styles.d.ts.map +0 -1
  121. package/lib/typescript/src/components/cartTimer/types.d.ts +0 -19
  122. package/lib/typescript/src/components/cartTimer/types.d.ts.map +0 -1
  123. package/lib/typescript/src/components/checkbox/Checkbox.d.ts +0 -4
  124. package/lib/typescript/src/components/checkbox/Checkbox.d.ts.map +0 -1
  125. package/lib/typescript/src/components/checkbox/styles.d.ts +0 -39
  126. package/lib/typescript/src/components/checkbox/styles.d.ts.map +0 -1
  127. package/lib/typescript/src/components/checkbox/types.d.ts +0 -22
  128. package/lib/typescript/src/components/checkbox/types.d.ts.map +0 -1
  129. package/lib/typescript/src/components/datePicker/DatePicker.d.ts +0 -4
  130. package/lib/typescript/src/components/datePicker/DatePicker.d.ts.map +0 -1
  131. package/lib/typescript/src/components/datePicker/styles.d.ts +0 -35
  132. package/lib/typescript/src/components/datePicker/styles.d.ts.map +0 -1
  133. package/lib/typescript/src/components/datePicker/types.d.ts +0 -20
  134. package/lib/typescript/src/components/datePicker/types.d.ts.map +0 -1
  135. package/lib/typescript/src/components/dropdown/Dropdown.d.ts +0 -4
  136. package/lib/typescript/src/components/dropdown/Dropdown.d.ts.map +0 -1
  137. package/lib/typescript/src/components/dropdown/DropdownListItem.d.ts +0 -4
  138. package/lib/typescript/src/components/dropdown/DropdownListItem.d.ts.map +0 -1
  139. package/lib/typescript/src/components/dropdown/styles.d.ts +0 -85
  140. package/lib/typescript/src/components/dropdown/styles.d.ts.map +0 -1
  141. package/lib/typescript/src/components/dropdown/types.d.ts +0 -35
  142. package/lib/typescript/src/components/dropdown/types.d.ts.map +0 -1
  143. package/lib/typescript/src/components/dropdownMaterial/DropdownMaterial.d.ts +0 -4
  144. package/lib/typescript/src/components/dropdownMaterial/DropdownMaterial.d.ts.map +0 -1
  145. package/lib/typescript/src/components/dropdownMaterial/styles.d.ts +0 -79
  146. package/lib/typescript/src/components/dropdownMaterial/styles.d.ts.map +0 -1
  147. package/lib/typescript/src/components/dropdownMaterial/types.d.ts +0 -22
  148. package/lib/typescript/src/components/dropdownMaterial/types.d.ts.map +0 -1
  149. package/lib/typescript/src/components/enterPassword/EnterPassword.d.ts +0 -5
  150. package/lib/typescript/src/components/enterPassword/EnterPassword.d.ts.map +0 -1
  151. package/lib/typescript/src/components/enterPassword/styles.d.ts +0 -21
  152. package/lib/typescript/src/components/enterPassword/styles.d.ts.map +0 -1
  153. package/lib/typescript/src/components/enterPassword/types.d.ts +0 -24
  154. package/lib/typescript/src/components/enterPassword/types.d.ts.map +0 -1
  155. package/lib/typescript/src/components/formField/FormField.d.ts +0 -4
  156. package/lib/typescript/src/components/formField/FormField.d.ts.map +0 -1
  157. package/lib/typescript/src/components/formField/styles.d.ts +0 -35
  158. package/lib/typescript/src/components/formField/styles.d.ts.map +0 -1
  159. package/lib/typescript/src/components/formField/types.d.ts +0 -48
  160. package/lib/typescript/src/components/formField/types.d.ts.map +0 -1
  161. package/lib/typescript/src/components/index.d.ts +0 -21
  162. package/lib/typescript/src/components/index.d.ts.map +0 -1
  163. package/lib/typescript/src/components/input/Input.d.ts +0 -4
  164. package/lib/typescript/src/components/input/Input.d.ts.map +0 -1
  165. package/lib/typescript/src/components/input/styles.d.ts +0 -47
  166. package/lib/typescript/src/components/input/styles.d.ts.map +0 -1
  167. package/lib/typescript/src/components/input/types.d.ts +0 -28
  168. package/lib/typescript/src/components/input/types.d.ts.map +0 -1
  169. package/lib/typescript/src/components/loading/Loading.d.ts +0 -4
  170. package/lib/typescript/src/components/loading/Loading.d.ts.map +0 -1
  171. package/lib/typescript/src/components/loading/styles.d.ts +0 -30
  172. package/lib/typescript/src/components/loading/styles.d.ts.map +0 -1
  173. package/lib/typescript/src/components/loading/types.d.ts +0 -15
  174. package/lib/typescript/src/components/loading/types.d.ts.map +0 -1
  175. package/lib/typescript/src/components/loggedIn/LoggedIn.d.ts +0 -5
  176. package/lib/typescript/src/components/loggedIn/LoggedIn.d.ts.map +0 -1
  177. package/lib/typescript/src/components/loggedIn/styles.d.ts +0 -9
  178. package/lib/typescript/src/components/loggedIn/styles.d.ts.map +0 -1
  179. package/lib/typescript/src/components/loggedIn/types.d.ts +0 -24
  180. package/lib/typescript/src/components/loggedIn/types.d.ts.map +0 -1
  181. package/lib/typescript/src/components/login/Login.d.ts +0 -5
  182. package/lib/typescript/src/components/login/Login.d.ts.map +0 -1
  183. package/lib/typescript/src/components/login/LoginView.d.ts +0 -5
  184. package/lib/typescript/src/components/login/LoginView.d.ts.map +0 -1
  185. package/lib/typescript/src/components/login/components/LoginForm.d.ts +0 -5
  186. package/lib/typescript/src/components/login/components/LoginForm.d.ts.map +0 -1
  187. package/lib/typescript/src/components/login/components/types.d.ts +0 -19
  188. package/lib/typescript/src/components/login/components/types.d.ts.map +0 -1
  189. package/lib/typescript/src/components/login/styles.d.ts +0 -62
  190. package/lib/typescript/src/components/login/styles.d.ts.map +0 -1
  191. package/lib/typescript/src/components/login/types.d.ts +0 -144
  192. package/lib/typescript/src/components/login/types.d.ts.map +0 -1
  193. package/lib/typescript/src/components/phoneInput/PhoneInput.d.ts +0 -5
  194. package/lib/typescript/src/components/phoneInput/PhoneInput.d.ts.map +0 -1
  195. package/lib/typescript/src/components/phoneInput/styles.d.ts +0 -29
  196. package/lib/typescript/src/components/phoneInput/styles.d.ts.map +0 -1
  197. package/lib/typescript/src/components/phoneInput/types.d.ts +0 -31
  198. package/lib/typescript/src/components/phoneInput/types.d.ts.map +0 -1
  199. package/lib/typescript/src/components/promoCode/PromoCode.d.ts +0 -5
  200. package/lib/typescript/src/components/promoCode/PromoCode.d.ts.map +0 -1
  201. package/lib/typescript/src/components/promoCode/styles.d.ts +0 -61
  202. package/lib/typescript/src/components/promoCode/styles.d.ts.map +0 -1
  203. package/lib/typescript/src/components/promoCode/types.d.ts +0 -36
  204. package/lib/typescript/src/components/promoCode/types.d.ts.map +0 -1
  205. package/lib/typescript/src/components/radioButton/RadioButton.d.ts +0 -5
  206. package/lib/typescript/src/components/radioButton/RadioButton.d.ts.map +0 -1
  207. package/lib/typescript/src/components/radioButton/styles.d.ts +0 -25
  208. package/lib/typescript/src/components/radioButton/styles.d.ts.map +0 -1
  209. package/lib/typescript/src/components/radioButton/types.d.ts +0 -16
  210. package/lib/typescript/src/components/radioButton/types.d.ts.map +0 -1
  211. package/lib/typescript/src/components/radioGroup/RadioGroup.d.ts +0 -4
  212. package/lib/typescript/src/components/radioGroup/RadioGroup.d.ts.map +0 -1
  213. package/lib/typescript/src/components/radioGroup/index.d.ts +0 -4
  214. package/lib/typescript/src/components/radioGroup/index.d.ts.map +0 -1
  215. package/lib/typescript/src/components/radioGroup/types.d.ts +0 -24
  216. package/lib/typescript/src/components/radioGroup/types.d.ts.map +0 -1
  217. package/lib/typescript/src/components/restorePassword/RestorePassword.d.ts +0 -5
  218. package/lib/typescript/src/components/restorePassword/RestorePassword.d.ts.map +0 -1
  219. package/lib/typescript/src/components/restorePassword/ResultDialog.d.ts +0 -5
  220. package/lib/typescript/src/components/restorePassword/ResultDialog.d.ts.map +0 -1
  221. package/lib/typescript/src/components/restorePassword/styles.d.ts +0 -34
  222. package/lib/typescript/src/components/restorePassword/styles.d.ts.map +0 -1
  223. package/lib/typescript/src/components/restorePassword/types.d.ts +0 -49
  224. package/lib/typescript/src/components/restorePassword/types.d.ts.map +0 -1
  225. package/lib/typescript/src/components/separator/Separator.d.ts +0 -4
  226. package/lib/typescript/src/components/separator/Separator.d.ts.map +0 -1
  227. package/lib/typescript/src/components/separator/types.d.ts +0 -9
  228. package/lib/typescript/src/components/separator/types.d.ts.map +0 -1
  229. package/lib/typescript/src/components/stripePayment/StripePayment.d.ts +0 -5
  230. package/lib/typescript/src/components/stripePayment/StripePayment.d.ts.map +0 -1
  231. package/lib/typescript/src/components/stripePayment/styles.d.ts +0 -7
  232. package/lib/typescript/src/components/stripePayment/styles.d.ts.map +0 -1
  233. package/lib/typescript/src/components/stripePayment/types.d.ts +0 -14
  234. package/lib/typescript/src/components/stripePayment/types.d.ts.map +0 -1
  235. package/lib/typescript/src/components/waitingList/WaitingList.d.ts +0 -6
  236. package/lib/typescript/src/components/waitingList/WaitingList.d.ts.map +0 -1
  237. package/lib/typescript/src/components/waitingList/WaitingListView.d.ts +0 -5
  238. package/lib/typescript/src/components/waitingList/WaitingListView.d.ts.map +0 -1
  239. package/lib/typescript/src/components/waitingList/styles.d.ts +0 -9
  240. package/lib/typescript/src/components/waitingList/styles.d.ts.map +0 -1
  241. package/lib/typescript/src/components/waitingList/types.d.ts +0 -59
  242. package/lib/typescript/src/components/waitingList/types.d.ts.map +0 -1
  243. package/lib/typescript/src/containers/billingInfo/Billing.d.ts +0 -6
  244. package/lib/typescript/src/containers/billingInfo/Billing.d.ts.map +0 -1
  245. package/lib/typescript/src/containers/billingInfo/styles.d.ts +0 -61
  246. package/lib/typescript/src/containers/billingInfo/styles.d.ts.map +0 -1
  247. package/lib/typescript/src/containers/billingInfo/types.d.ts +0 -160
  248. package/lib/typescript/src/containers/billingInfo/types.d.ts.map +0 -1
  249. package/lib/typescript/src/containers/checkout/Checkout.d.ts +0 -7
  250. package/lib/typescript/src/containers/checkout/Checkout.d.ts.map +0 -1
  251. package/lib/typescript/src/containers/checkout/CheckoutData.d.ts +0 -3
  252. package/lib/typescript/src/containers/checkout/CheckoutData.d.ts.map +0 -1
  253. package/lib/typescript/src/containers/checkout/components/Conditions.d.ts +0 -4
  254. package/lib/typescript/src/containers/checkout/components/Conditions.d.ts.map +0 -1
  255. package/lib/typescript/src/containers/checkout/components/OrderReview.d.ts +0 -4
  256. package/lib/typescript/src/containers/checkout/components/OrderReview.d.ts.map +0 -1
  257. package/lib/typescript/src/containers/checkout/components/styles.d.ts +0 -26
  258. package/lib/typescript/src/containers/checkout/components/styles.d.ts.map +0 -1
  259. package/lib/typescript/src/containers/checkout/styles.d.ts +0 -42
  260. package/lib/typescript/src/containers/checkout/styles.d.ts.map +0 -1
  261. package/lib/typescript/src/containers/checkout/types.d.ts +0 -126
  262. package/lib/typescript/src/containers/checkout/types.d.ts.map +0 -1
  263. package/lib/typescript/src/containers/index.d.ts +0 -9
  264. package/lib/typescript/src/containers/index.d.ts.map +0 -1
  265. package/lib/typescript/src/containers/myOrderDetails/MyOrderDetails.d.ts +0 -6
  266. package/lib/typescript/src/containers/myOrderDetails/MyOrderDetails.d.ts.map +0 -1
  267. package/lib/typescript/src/containers/myOrderDetails/MyOrderDetailsView.d.ts +0 -5
  268. package/lib/typescript/src/containers/myOrderDetails/MyOrderDetailsView.d.ts.map +0 -1
  269. package/lib/typescript/src/containers/myOrderDetails/components/Notification.d.ts +0 -15
  270. package/lib/typescript/src/containers/myOrderDetails/components/Notification.d.ts.map +0 -1
  271. package/lib/typescript/src/containers/myOrderDetails/components/OrderListItem.d.ts +0 -3
  272. package/lib/typescript/src/containers/myOrderDetails/components/OrderListItem.d.ts.map +0 -1
  273. package/lib/typescript/src/containers/myOrderDetails/components/TicketActions/TicketActions.d.ts +0 -5
  274. package/lib/typescript/src/containers/myOrderDetails/components/TicketActions/TicketActions.d.ts.map +0 -1
  275. package/lib/typescript/src/containers/myOrderDetails/components/TicketActions/TicketActionsTypes.d.ts +0 -30
  276. package/lib/typescript/src/containers/myOrderDetails/components/TicketActions/TicketActionsTypes.d.ts.map +0 -1
  277. package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItem.d.ts +0 -8
  278. package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItem.d.ts.map +0 -1
  279. package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItemStyles.d.ts +0 -33
  280. package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItemStyles.d.ts.map +0 -1
  281. package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItemTypes.d.ts +0 -30
  282. package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItemTypes.d.ts.map +0 -1
  283. package/lib/typescript/src/containers/myOrderDetails/components/styles.d.ts +0 -39
  284. package/lib/typescript/src/containers/myOrderDetails/components/styles.d.ts.map +0 -1
  285. package/lib/typescript/src/containers/myOrderDetails/styles.d.ts +0 -55
  286. package/lib/typescript/src/containers/myOrderDetails/styles.d.ts.map +0 -1
  287. package/lib/typescript/src/containers/myOrderDetails/types.d.ts +0 -126
  288. package/lib/typescript/src/containers/myOrderDetails/types.d.ts.map +0 -1
  289. package/lib/typescript/src/containers/myOrders/MyOrders.d.ts +0 -6
  290. package/lib/typescript/src/containers/myOrders/MyOrders.d.ts.map +0 -1
  291. package/lib/typescript/src/containers/myOrders/MyOrdersView.d.ts +0 -5
  292. package/lib/typescript/src/containers/myOrders/MyOrdersView.d.ts.map +0 -1
  293. package/lib/typescript/src/containers/myOrders/components/OrderListItem.d.ts +0 -5
  294. package/lib/typescript/src/containers/myOrders/components/OrderListItem.d.ts.map +0 -1
  295. package/lib/typescript/src/containers/myOrders/components/styles.d.ts +0 -56
  296. package/lib/typescript/src/containers/myOrders/components/styles.d.ts.map +0 -1
  297. package/lib/typescript/src/containers/myOrders/components/types.d.ts +0 -26
  298. package/lib/typescript/src/containers/myOrders/components/types.d.ts.map +0 -1
  299. package/lib/typescript/src/containers/myOrders/styles.d.ts +0 -37
  300. package/lib/typescript/src/containers/myOrders/styles.d.ts.map +0 -1
  301. package/lib/typescript/src/containers/myOrders/types.d.ts +0 -73
  302. package/lib/typescript/src/containers/myOrders/types.d.ts.map +0 -1
  303. package/lib/typescript/src/containers/purchaseConfirmation/PurchaseConfirmation.d.ts +0 -6
  304. package/lib/typescript/src/containers/purchaseConfirmation/PurchaseConfirmation.d.ts.map +0 -1
  305. package/lib/typescript/src/containers/purchaseConfirmation/PurchaseConfirmationView.d.ts +0 -5
  306. package/lib/typescript/src/containers/purchaseConfirmation/PurchaseConfirmationView.d.ts.map +0 -1
  307. package/lib/typescript/src/containers/purchaseConfirmation/styles.d.ts +0 -74
  308. package/lib/typescript/src/containers/purchaseConfirmation/styles.d.ts.map +0 -1
  309. package/lib/typescript/src/containers/purchaseConfirmation/types.d.ts +0 -66
  310. package/lib/typescript/src/containers/purchaseConfirmation/types.d.ts.map +0 -1
  311. package/lib/typescript/src/containers/resaleTickets/ResaleTickets.d.ts +0 -6
  312. package/lib/typescript/src/containers/resaleTickets/ResaleTickets.d.ts.map +0 -1
  313. package/lib/typescript/src/containers/resaleTickets/ResaleTicketsView.d.ts +0 -5
  314. package/lib/typescript/src/containers/resaleTickets/ResaleTicketsView.d.ts.map +0 -1
  315. package/lib/typescript/src/containers/resaleTickets/types.d.ts +0 -129
  316. package/lib/typescript/src/containers/resaleTickets/types.d.ts.map +0 -1
  317. package/lib/typescript/src/containers/resetPassword/ResetPassword.d.ts +0 -5
  318. package/lib/typescript/src/containers/resetPassword/ResetPassword.d.ts.map +0 -1
  319. package/lib/typescript/src/containers/resetPassword/ResetPasswordView.d.ts +0 -5
  320. package/lib/typescript/src/containers/resetPassword/ResetPasswordView.d.ts.map +0 -1
  321. package/lib/typescript/src/containers/resetPassword/styles.d.ts +0 -33
  322. package/lib/typescript/src/containers/resetPassword/styles.d.ts.map +0 -1
  323. package/lib/typescript/src/containers/resetPassword/types.d.ts +0 -48
  324. package/lib/typescript/src/containers/resetPassword/types.d.ts.map +0 -1
  325. package/lib/typescript/src/containers/tickets/Tickets.d.ts +0 -6
  326. package/lib/typescript/src/containers/tickets/Tickets.d.ts.map +0 -1
  327. package/lib/typescript/src/containers/tickets/TicketsView.d.ts +0 -4
  328. package/lib/typescript/src/containers/tickets/TicketsView.d.ts.map +0 -1
  329. package/lib/typescript/src/containers/tickets/components/TicketGroupListHeader.d.ts +0 -5
  330. package/lib/typescript/src/containers/tickets/components/TicketGroupListHeader.d.ts.map +0 -1
  331. package/lib/typescript/src/containers/tickets/components/TicketListItem.d.ts +0 -4
  332. package/lib/typescript/src/containers/tickets/components/TicketListItem.d.ts.map +0 -1
  333. package/lib/typescript/src/containers/tickets/components/styles.d.ts +0 -51
  334. package/lib/typescript/src/containers/tickets/components/styles.d.ts.map +0 -1
  335. package/lib/typescript/src/containers/tickets/components/types.d.ts +0 -40
  336. package/lib/typescript/src/containers/tickets/components/types.d.ts.map +0 -1
  337. package/lib/typescript/src/containers/tickets/styles.d.ts +0 -20
  338. package/lib/typescript/src/containers/tickets/styles.d.ts.map +0 -1
  339. package/lib/typescript/src/containers/tickets/types.d.ts +0 -114
  340. package/lib/typescript/src/containers/tickets/types.d.ts.map +0 -1
  341. package/lib/typescript/src/core/BillingCore/BillingCore.d.ts +0 -13
  342. package/lib/typescript/src/core/BillingCore/BillingCore.d.ts.map +0 -1
  343. package/lib/typescript/src/core/BillingCore/BillingCoreTypes.d.ts +0 -24
  344. package/lib/typescript/src/core/BillingCore/BillingCoreTypes.d.ts.map +0 -1
  345. package/lib/typescript/src/core/CheckoutCore/CheckoutCore.d.ts +0 -15
  346. package/lib/typescript/src/core/CheckoutCore/CheckoutCore.d.ts.map +0 -1
  347. package/lib/typescript/src/core/CheckoutCore/CheckoutCoreTypes.d.ts +0 -17
  348. package/lib/typescript/src/core/CheckoutCore/CheckoutCoreTypes.d.ts.map +0 -1
  349. package/lib/typescript/src/core/CoreProps.d.ts +0 -5
  350. package/lib/typescript/src/core/CoreProps.d.ts.map +0 -1
  351. package/lib/typescript/src/core/LoginCore/LoginCore.d.ts +0 -6
  352. package/lib/typescript/src/core/LoginCore/LoginCore.d.ts.map +0 -1
  353. package/lib/typescript/src/core/LoginCore/LoginCoreHelper.d.ts +0 -3
  354. package/lib/typescript/src/core/LoginCore/LoginCoreHelper.d.ts.map +0 -1
  355. package/lib/typescript/src/core/LoginCore/LoginCoreTypes.d.ts +0 -15
  356. package/lib/typescript/src/core/LoginCore/LoginCoreTypes.d.ts.map +0 -1
  357. package/lib/typescript/src/core/MyOrdersCore/MyOrdersCore.d.ts +0 -6
  358. package/lib/typescript/src/core/MyOrdersCore/MyOrdersCore.d.ts.map +0 -1
  359. package/lib/typescript/src/core/MyOrdersCore/MyOrdersCoreTypes.d.ts +0 -10
  360. package/lib/typescript/src/core/MyOrdersCore/MyOrdersCoreTypes.d.ts.map +0 -1
  361. package/lib/typescript/src/core/OrderDetailsCore/OrderDetailsCore.d.ts +0 -6
  362. package/lib/typescript/src/core/OrderDetailsCore/OrderDetailsCore.d.ts.map +0 -1
  363. package/lib/typescript/src/core/OrderDetailsCore/OrderDetailsCoreTypes.d.ts +0 -9
  364. package/lib/typescript/src/core/OrderDetailsCore/OrderDetailsCoreTypes.d.ts.map +0 -1
  365. package/lib/typescript/src/core/PurchaseConfirmationCore/PurchaseConfirmationCore.d.ts +0 -6
  366. package/lib/typescript/src/core/PurchaseConfirmationCore/PurchaseConfirmationCore.d.ts.map +0 -1
  367. package/lib/typescript/src/core/PurchaseConfirmationCore/PurchaseConfirmationCoreTypes.d.ts +0 -8
  368. package/lib/typescript/src/core/PurchaseConfirmationCore/PurchaseConfirmationCoreTypes.d.ts.map +0 -1
  369. package/lib/typescript/src/core/ResetPasswordCore/ResetPasswordCore.d.ts +0 -6
  370. package/lib/typescript/src/core/ResetPasswordCore/ResetPasswordCore.d.ts.map +0 -1
  371. package/lib/typescript/src/core/ResetPasswordCore/ResetPasswordCoreTypes.d.ts +0 -5
  372. package/lib/typescript/src/core/ResetPasswordCore/ResetPasswordCoreTypes.d.ts.map +0 -1
  373. package/lib/typescript/src/core/Session/SessionCoreTypes.d.ts +0 -9
  374. package/lib/typescript/src/core/Session/SessionCoreTypes.d.ts.map +0 -1
  375. package/lib/typescript/src/core/Session/SessionHandle.d.ts +0 -6
  376. package/lib/typescript/src/core/Session/SessionHandle.d.ts.map +0 -1
  377. package/lib/typescript/src/core/TicketsCore/TicketsCore.d.ts +0 -6
  378. package/lib/typescript/src/core/TicketsCore/TicketsCore.d.ts.map +0 -1
  379. package/lib/typescript/src/core/TicketsCore/TicketsCoreTypes.d.ts +0 -40
  380. package/lib/typescript/src/core/TicketsCore/TicketsCoreTypes.d.ts.map +0 -1
  381. package/lib/typescript/src/core/WaitingListCore/WaitingListCore.d.ts +0 -6
  382. package/lib/typescript/src/core/WaitingListCore/WaitingListCore.d.ts.map +0 -1
  383. package/lib/typescript/src/core/WaitingListCore/WaitingListCoreTypes.d.ts +0 -12
  384. package/lib/typescript/src/core/WaitingListCore/WaitingListCoreTypes.d.ts.map +0 -1
  385. package/lib/typescript/src/core/index.d.ts +0 -21
  386. package/lib/typescript/src/core/index.d.ts.map +0 -1
  387. package/lib/typescript/src/features/auth/api-hooks.d.ts +0 -178
  388. package/lib/typescript/src/features/auth/api-hooks.d.ts.map +0 -1
  389. package/lib/typescript/src/features/auth/types.d.ts +0 -51
  390. package/lib/typescript/src/features/auth/types.d.ts.map +0 -1
  391. package/lib/typescript/src/features/auth/utils.d.ts +0 -3
  392. package/lib/typescript/src/features/auth/utils.d.ts.map +0 -1
  393. package/lib/typescript/src/features/checkout-v2/components/AddonsContainer.d.ts +0 -37
  394. package/lib/typescript/src/features/checkout-v2/components/AddonsContainer.d.ts.map +0 -1
  395. package/lib/typescript/src/features/checkout-v2/components/Conditions.d.ts +0 -30
  396. package/lib/typescript/src/features/checkout-v2/components/Conditions.d.ts.map +0 -1
  397. package/lib/typescript/src/features/checkout-v2/components/OrderReview.d.ts +0 -25
  398. package/lib/typescript/src/features/checkout-v2/components/OrderReview.d.ts.map +0 -1
  399. package/lib/typescript/src/features/checkout-v2/components/TicketHoldersSection.d.ts +0 -14
  400. package/lib/typescript/src/features/checkout-v2/components/TicketHoldersSection.d.ts.map +0 -1
  401. package/lib/typescript/src/features/checkout-v2/form/config.d.ts +0 -61
  402. package/lib/typescript/src/features/checkout-v2/form/config.d.ts.map +0 -1
  403. package/lib/typescript/src/features/checkout-v2/form/index.d.ts +0 -22
  404. package/lib/typescript/src/features/checkout-v2/form/index.d.ts.map +0 -1
  405. package/lib/typescript/src/features/checkout-v2/form/styles.d.ts +0 -4501
  406. package/lib/typescript/src/features/checkout-v2/form/styles.d.ts.map +0 -1
  407. package/lib/typescript/src/features/checkout-v2/form/texts.d.ts +0 -4
  408. package/lib/typescript/src/features/checkout-v2/form/texts.d.ts.map +0 -1
  409. package/lib/typescript/src/features/checkout-v2/form/types.d.ts +0 -191
  410. package/lib/typescript/src/features/checkout-v2/form/types.d.ts.map +0 -1
  411. package/lib/typescript/src/features/checkout-v2/hooks/api-hooks.d.ts +0 -227
  412. package/lib/typescript/src/features/checkout-v2/hooks/api-hooks.d.ts.map +0 -1
  413. package/lib/typescript/src/features/checkout-v2/hooks/use-checkout.d.ts +0 -37
  414. package/lib/typescript/src/features/checkout-v2/hooks/use-checkout.d.ts.map +0 -1
  415. package/lib/typescript/src/features/checkout-v2/index.d.ts +0 -42
  416. package/lib/typescript/src/features/checkout-v2/index.d.ts.map +0 -1
  417. package/lib/typescript/src/features/checkout-v2/types.d.ts +0 -433
  418. package/lib/typescript/src/features/checkout-v2/types.d.ts.map +0 -1
  419. package/lib/typescript/src/features/checkout-v2/utils.d.ts +0 -12
  420. package/lib/typescript/src/features/checkout-v2/utils.d.ts.map +0 -1
  421. package/lib/typescript/src/features/event/api-hooks.d.ts +0 -171
  422. package/lib/typescript/src/features/event/api-hooks.d.ts.map +0 -1
  423. package/lib/typescript/src/features/event/types.d.ts +0 -58
  424. package/lib/typescript/src/features/event/types.d.ts.map +0 -1
  425. package/lib/typescript/src/features/form/index.d.ts +0 -24
  426. package/lib/typescript/src/features/form/index.d.ts.map +0 -1
  427. package/lib/typescript/src/features/form/styles.d.ts +0 -35
  428. package/lib/typescript/src/features/form/styles.d.ts.map +0 -1
  429. package/lib/typescript/src/features/form/types.d.ts +0 -33
  430. package/lib/typescript/src/features/form/types.d.ts.map +0 -1
  431. package/lib/typescript/src/features/geo/api-hooks.d.ts +0 -12
  432. package/lib/typescript/src/features/geo/api-hooks.d.ts.map +0 -1
  433. package/lib/typescript/src/features/geo/types.d.ts +0 -13
  434. package/lib/typescript/src/features/geo/types.d.ts.map +0 -1
  435. package/lib/typescript/src/helpers/Config.d.ts +0 -24
  436. package/lib/typescript/src/helpers/Config.d.ts.map +0 -1
  437. package/lib/typescript/src/helpers/CountryCodes.d.ts +0 -16
  438. package/lib/typescript/src/helpers/CountryCodes.d.ts.map +0 -1
  439. package/lib/typescript/src/helpers/Debounced.d.ts +0 -2
  440. package/lib/typescript/src/helpers/Debounced.d.ts.map +0 -1
  441. package/lib/typescript/src/helpers/Domains.d.ts +0 -3
  442. package/lib/typescript/src/helpers/Domains.d.ts.map +0 -1
  443. package/lib/typescript/src/helpers/LocalStorage.d.ts +0 -27
  444. package/lib/typescript/src/helpers/LocalStorage.d.ts.map +0 -1
  445. package/lib/typescript/src/helpers/RefreshAccessToken.d.ts +0 -3
  446. package/lib/typescript/src/helpers/RefreshAccessToken.d.ts.map +0 -1
  447. package/lib/typescript/src/helpers/StringsHelper.d.ts +0 -3
  448. package/lib/typescript/src/helpers/StringsHelper.d.ts.map +0 -1
  449. package/lib/typescript/src/helpers/Validators.d.ts +0 -16
  450. package/lib/typescript/src/helpers/Validators.d.ts.map +0 -1
  451. package/lib/typescript/src/index.d.ts +0 -49
  452. package/lib/typescript/src/index.d.ts.map +0 -1
  453. package/lib/typescript/src/res/colors.d.ts +0 -16
  454. package/lib/typescript/src/res/colors.d.ts.map +0 -1
  455. package/lib/typescript/src/res/icons.d.ts +0 -13
  456. package/lib/typescript/src/res/icons.d.ts.map +0 -1
  457. package/lib/typescript/src/res/images.d.ts +0 -5
  458. package/lib/typescript/src/res/images.d.ts.map +0 -1
  459. package/lib/typescript/src/res/index.d.ts +0 -32
  460. package/lib/typescript/src/res/index.d.ts.map +0 -1
  461. package/lib/typescript/src/types/IAccountTickets.d.ts +0 -71
  462. package/lib/typescript/src/types/IAccountTickets.d.ts.map +0 -1
  463. package/lib/typescript/src/types/ICountry.d.ts +0 -2
  464. package/lib/typescript/src/types/ICountry.d.ts.map +0 -1
  465. package/lib/typescript/src/types/IError.d.ts +0 -6
  466. package/lib/typescript/src/types/IError.d.ts.map +0 -1
  467. package/lib/typescript/src/types/IEvent.d.ts +0 -87
  468. package/lib/typescript/src/types/IEvent.d.ts.map +0 -1
  469. package/lib/typescript/src/types/ITicket.d.ts +0 -71
  470. package/lib/typescript/src/types/ITicket.d.ts.map +0 -1
  471. package/lib/typescript/src/types/IUserProfile.d.ts +0 -30
  472. package/lib/typescript/src/types/IUserProfile.d.ts.map +0 -1
  473. package/lib/typescript/src/types/index.d.ts +0 -6
  474. package/lib/typescript/src/types/index.d.ts.map +0 -1
  475. package/lib/typescript/src/utils/Logger.d.ts +0 -21
  476. package/lib/typescript/src/utils/Logger.d.ts.map +0 -1
  477. package/lib/typescript/src/utils/handlers.d.ts +0 -9
  478. package/lib/typescript/src/utils/handlers.d.ts.map +0 -1
  479. package/lib/typescript/src/utils/storageAdapter.d.ts +0 -14
  480. package/lib/typescript/src/utils/storageAdapter.d.ts.map +0 -1
  481. package/lib/typescript/src/utils/styleUtils.d.ts +0 -18
  482. package/lib/typescript/src/utils/styleUtils.d.ts.map +0 -1
  483. package/src/api/ApiClient.ts +0 -1539
  484. package/src/api/Constants.ts +0 -10
  485. package/src/api/ErrorHandler.ts +0 -36
  486. package/src/api/api.types.ts +0 -8
  487. package/src/api/types.ts +0 -593
  488. package/src/apiv2/index.ts +0 -143
  489. package/src/assets/icons/ic_check.png +0 -0
  490. package/src/assets/icons/ic_clock.png +0 -0
  491. package/src/assets/icons/ic_copy.png +0 -0
  492. package/src/assets/icons/ic_dropdown.png +0 -0
  493. package/src/assets/icons/ic_error.png +0 -0
  494. package/src/assets/icons/ic_eye.png +0 -0
  495. package/src/assets/icons/ic_eye_off.png +0 -0
  496. package/src/assets/icons/ic_more.png +0 -0
  497. package/src/assets/icons/ic_next.png +0 -0
  498. package/src/assets/images/brand.png +0 -0
  499. package/src/common/query.types.ts +0 -6
  500. package/src/components/bottomSheetModal/BottomSheetModal.tsx +0 -95
  501. package/src/components/bottomSheetModal/BottomSheetModalStyles.ts +0 -43
  502. package/src/components/bottomSheetModal/BottomSheetModalTypes.ts +0 -26
  503. package/src/components/button/Button.tsx +0 -53
  504. package/src/components/button/styles.tsx +0 -30
  505. package/src/components/button/types.ts +0 -16
  506. package/src/components/cartTimer/CartTimer.tsx +0 -68
  507. package/src/components/cartTimer/styles.ts +0 -44
  508. package/src/components/cartTimer/types.ts +0 -22
  509. package/src/components/checkbox/Checkbox.tsx +0 -53
  510. package/src/components/checkbox/styles.ts +0 -41
  511. package/src/components/checkbox/types.ts +0 -23
  512. package/src/components/datePicker/DatePicker.tsx +0 -81
  513. package/src/components/datePicker/styles.ts +0 -39
  514. package/src/components/datePicker/types.ts +0 -21
  515. package/src/components/dropdown/Dropdown.tsx +0 -111
  516. package/src/components/dropdown/DropdownListItem.tsx +0 -36
  517. package/src/components/dropdown/styles.ts +0 -97
  518. package/src/components/dropdown/types.ts +0 -38
  519. package/src/components/dropdownMaterial/DropdownMaterial.tsx +0 -129
  520. package/src/components/dropdownMaterial/styles.ts +0 -91
  521. package/src/components/dropdownMaterial/types.ts +0 -24
  522. package/src/components/enterPassword/EnterPassword.tsx +0 -50
  523. package/src/components/enterPassword/styles.ts +0 -23
  524. package/src/components/enterPassword/types.ts +0 -27
  525. package/src/components/formField/FormField.tsx +0 -131
  526. package/src/components/formField/styles.ts +0 -37
  527. package/src/components/formField/types.ts +0 -60
  528. package/src/components/index.ts +0 -20
  529. package/src/components/input/Input.tsx +0 -77
  530. package/src/components/input/styles.ts +0 -53
  531. package/src/components/input/types.ts +0 -38
  532. package/src/components/loading/Loading.tsx +0 -30
  533. package/src/components/loading/styles.ts +0 -32
  534. package/src/components/loading/types.ts +0 -16
  535. package/src/components/loggedIn/LoggedIn.tsx +0 -60
  536. package/src/components/loggedIn/styles.ts +0 -9
  537. package/src/components/loggedIn/types.ts +0 -27
  538. package/src/components/login/Login.tsx +0 -161
  539. package/src/components/login/LoginView.tsx +0 -259
  540. package/src/components/login/components/LoginForm.tsx +0 -92
  541. package/src/components/login/components/types.ts +0 -22
  542. package/src/components/login/styles.ts +0 -63
  543. package/src/components/login/types.ts +0 -189
  544. package/src/components/phoneInput/PhoneInput.tsx +0 -72
  545. package/src/components/phoneInput/styles.ts +0 -31
  546. package/src/components/phoneInput/types.ts +0 -35
  547. package/src/components/promoCode/PromoCode.tsx +0 -111
  548. package/src/components/promoCode/styles.ts +0 -63
  549. package/src/components/promoCode/types.ts +0 -43
  550. package/src/components/radioButton/RadioButton.tsx +0 -26
  551. package/src/components/radioButton/styles.ts +0 -32
  552. package/src/components/radioButton/types.ts +0 -17
  553. package/src/components/radioGroup/RadioGroup.tsx +0 -86
  554. package/src/components/radioGroup/index.ts +0 -4
  555. package/src/components/radioGroup/types.ts +0 -26
  556. package/src/components/restorePassword/RestorePassword.tsx +0 -63
  557. package/src/components/restorePassword/ResultDialog.tsx +0 -26
  558. package/src/components/restorePassword/styles.ts +0 -38
  559. package/src/components/restorePassword/types.ts +0 -61
  560. package/src/components/separator/Separator.tsx +0 -26
  561. package/src/components/separator/types.ts +0 -9
  562. package/src/components/stripePayment/StripePayment.tsx +0 -51
  563. package/src/components/stripePayment/styles.ts +0 -7
  564. package/src/components/stripePayment/types.ts +0 -22
  565. package/src/components/waitingList/WaitingList.tsx +0 -147
  566. package/src/components/waitingList/WaitingListView.tsx +0 -94
  567. package/src/components/waitingList/styles.ts +0 -9
  568. package/src/components/waitingList/types.ts +0 -68
  569. package/src/containers/billingInfo/Billing.tsx +0 -1902
  570. package/src/containers/billingInfo/styles.ts +0 -64
  571. package/src/containers/billingInfo/types.ts +0 -217
  572. package/src/containers/checkout/Checkout.tsx +0 -519
  573. package/src/containers/checkout/CheckoutData.ts +0 -29
  574. package/src/containers/checkout/components/Conditions.tsx +0 -22
  575. package/src/containers/checkout/components/OrderReview.tsx +0 -31
  576. package/src/containers/checkout/components/styles.ts +0 -28
  577. package/src/containers/checkout/styles.ts +0 -44
  578. package/src/containers/checkout/types.ts +0 -148
  579. package/src/containers/index.ts +0 -8
  580. package/src/containers/myOrderDetails/MyOrderDetails.tsx +0 -318
  581. package/src/containers/myOrderDetails/MyOrderDetailsView.tsx +0 -269
  582. package/src/containers/myOrderDetails/components/Notification.tsx +0 -40
  583. package/src/containers/myOrderDetails/components/OrderListItem.tsx +0 -12
  584. package/src/containers/myOrderDetails/components/TicketActions/TicketActions.tsx +0 -68
  585. package/src/containers/myOrderDetails/components/TicketActions/TicketActionsTypes.ts +0 -41
  586. package/src/containers/myOrderDetails/components/TicketListItem/TicketListItem.tsx +0 -63
  587. package/src/containers/myOrderDetails/components/TicketListItem/TicketListItemStyles.ts +0 -33
  588. package/src/containers/myOrderDetails/components/TicketListItem/TicketListItemTypes.ts +0 -39
  589. package/src/containers/myOrderDetails/components/styles.ts +0 -42
  590. package/src/containers/myOrderDetails/styles.ts +0 -57
  591. package/src/containers/myOrderDetails/types.ts +0 -173
  592. package/src/containers/myOrders/MyOrders.tsx +0 -340
  593. package/src/containers/myOrders/MyOrdersView.tsx +0 -182
  594. package/src/containers/myOrders/components/OrderListItem.tsx +0 -50
  595. package/src/containers/myOrders/components/styles.ts +0 -55
  596. package/src/containers/myOrders/components/types.ts +0 -28
  597. package/src/containers/myOrders/styles.ts +0 -42
  598. package/src/containers/myOrders/types.ts +0 -84
  599. package/src/containers/purchaseConfirmation/PurchaseConfirmation.tsx +0 -145
  600. package/src/containers/purchaseConfirmation/PurchaseConfirmationView.tsx +0 -82
  601. package/src/containers/purchaseConfirmation/styles.ts +0 -79
  602. package/src/containers/purchaseConfirmation/types.ts +0 -77
  603. package/src/containers/resaleTickets/ResaleTickets.tsx +0 -234
  604. package/src/containers/resaleTickets/ResaleTicketsView.tsx +0 -314
  605. package/src/containers/resaleTickets/types.ts +0 -154
  606. package/src/containers/resetPassword/ResetPassword.tsx +0 -110
  607. package/src/containers/resetPassword/ResetPasswordView.tsx +0 -81
  608. package/src/containers/resetPassword/styles.ts +0 -35
  609. package/src/containers/resetPassword/types.ts +0 -56
  610. package/src/containers/tickets/Tickets.tsx +0 -525
  611. package/src/containers/tickets/TicketsView.tsx +0 -164
  612. package/src/containers/tickets/components/TicketGroupListHeader.tsx +0 -12
  613. package/src/containers/tickets/components/TicketListItem.tsx +0 -124
  614. package/src/containers/tickets/components/styles.ts +0 -54
  615. package/src/containers/tickets/components/types.ts +0 -47
  616. package/src/containers/tickets/styles.ts +0 -22
  617. package/src/containers/tickets/types.ts +0 -158
  618. package/src/core/BillingCore/BillingCore.tsx +0 -129
  619. package/src/core/BillingCore/BillingCoreTypes.ts +0 -34
  620. package/src/core/BillingCore/README.md +0 -22
  621. package/src/core/CheckoutCore/CheckoutCore.tsx +0 -113
  622. package/src/core/CheckoutCore/CheckoutCoreTypes.ts +0 -23
  623. package/src/core/CheckoutCore/README.md +0 -20
  624. package/src/core/CoreProps.ts +0 -5
  625. package/src/core/LoginCore/LoginCore.tsx +0 -140
  626. package/src/core/LoginCore/LoginCoreHelper.ts +0 -22
  627. package/src/core/LoginCore/LoginCoreTypes.ts +0 -21
  628. package/src/core/MIGRATION.md +0 -148
  629. package/src/core/MyOrdersCore/MyOrdersCore.tsx +0 -44
  630. package/src/core/MyOrdersCore/MyOrdersCoreTypes.ts +0 -15
  631. package/src/core/OrderDetailsCore/OrderDetailsCore.tsx +0 -36
  632. package/src/core/OrderDetailsCore/OrderDetailsCoreTypes.ts +0 -10
  633. package/src/core/PurchaseConfirmationCore/PurchaseConfirmationCore.tsx +0 -37
  634. package/src/core/PurchaseConfirmationCore/PurchaseConfirmationCoreTypes.ts +0 -10
  635. package/src/core/ResetPasswordCore/ResetPasswordCore.tsx +0 -21
  636. package/src/core/ResetPasswordCore/ResetPasswordCoreTypes.ts +0 -5
  637. package/src/core/Session/SessionCoreTypes.ts +0 -10
  638. package/src/core/Session/SessionHandle.tsx +0 -23
  639. package/src/core/TicketsCore/TicketsCore.tsx +0 -216
  640. package/src/core/TicketsCore/TicketsCoreTypes.ts +0 -52
  641. package/src/core/WaitingListCore/WaitingListCore.tsx +0 -35
  642. package/src/core/WaitingListCore/WaitingListCoreTypes.ts +0 -16
  643. package/src/core/index.ts +0 -20
  644. package/src/features/auth/api-hooks.ts +0 -61
  645. package/src/features/auth/types.ts +0 -54
  646. package/src/features/auth/utils.ts +0 -27
  647. package/src/features/checkout-v2/components/AddonsContainer.tsx +0 -159
  648. package/src/features/checkout-v2/components/Conditions.tsx +0 -144
  649. package/src/features/checkout-v2/components/OrderReview.tsx +0 -96
  650. package/src/features/checkout-v2/components/TicketHoldersSection.tsx +0 -131
  651. package/src/features/checkout-v2/form/config.tsx +0 -194
  652. package/src/features/checkout-v2/form/index.tsx +0 -830
  653. package/src/features/checkout-v2/form/styles.ts +0 -241
  654. package/src/features/checkout-v2/form/texts.ts +0 -133
  655. package/src/features/checkout-v2/form/types.ts +0 -231
  656. package/src/features/checkout-v2/hooks/api-hooks.ts +0 -332
  657. package/src/features/checkout-v2/hooks/use-checkout.ts +0 -927
  658. package/src/features/checkout-v2/index.tsx +0 -289
  659. package/src/features/checkout-v2/types.ts +0 -475
  660. package/src/features/checkout-v2/utils.ts +0 -156
  661. package/src/features/event/api-hooks.ts +0 -28
  662. package/src/features/event/types.ts +0 -69
  663. package/src/features/form/index.tsx +0 -185
  664. package/src/features/form/styles.ts +0 -37
  665. package/src/features/form/types.ts +0 -38
  666. package/src/features/geo/api-hooks.ts +0 -43
  667. package/src/features/geo/types.ts +0 -15
  668. package/src/helpers/Config.ts +0 -81
  669. package/src/helpers/CountryCodes.ts +0 -3382
  670. package/src/helpers/Debounced.ts +0 -27
  671. package/src/helpers/Domains.ts +0 -32
  672. package/src/helpers/LocalStorage.tsx +0 -152
  673. package/src/helpers/RefreshAccessToken.ts +0 -25
  674. package/src/helpers/StringsHelper.ts +0 -5
  675. package/src/helpers/Validators.ts +0 -108
  676. package/src/packages/rn-material-ui-textfield/README.md +0 -149
  677. package/src/packages/rn-material-ui-textfield/components/affix/index.js +0 -61
  678. package/src/packages/rn-material-ui-textfield/components/affix/styles.js +0 -8
  679. package/src/packages/rn-material-ui-textfield/components/counter/index.js +0 -36
  680. package/src/packages/rn-material-ui-textfield/components/counter/styles.js +0 -12
  681. package/src/packages/rn-material-ui-textfield/components/field/index.js +0 -700
  682. package/src/packages/rn-material-ui-textfield/components/field/styles.js +0 -42
  683. package/src/packages/rn-material-ui-textfield/components/field-filled/index.js +0 -21
  684. package/src/packages/rn-material-ui-textfield/components/field-filled/styles.js +0 -10
  685. package/src/packages/rn-material-ui-textfield/components/field-outlined/index.js +0 -59
  686. package/src/packages/rn-material-ui-textfield/components/helper/index.js +0 -78
  687. package/src/packages/rn-material-ui-textfield/components/helper/styles.js +0 -12
  688. package/src/packages/rn-material-ui-textfield/components/label/index.js +0 -123
  689. package/src/packages/rn-material-ui-textfield/components/label/styles.js +0 -16
  690. package/src/packages/rn-material-ui-textfield/components/line/index.js +0 -117
  691. package/src/packages/rn-material-ui-textfield/components/line/styles.js +0 -18
  692. package/src/packages/rn-material-ui-textfield/components/outline/index.js +0 -139
  693. package/src/packages/rn-material-ui-textfield/components/outline/styles.js +0 -83
  694. package/src/packages/rn-material-ui-textfield/index.d.ts +0 -53
  695. package/src/packages/rn-material-ui-textfield/index.js +0 -5
  696. package/src/packages/rn-material-ui-textfield/license.txt +0 -28
  697. package/src/res/colors.ts +0 -16
  698. package/src/res/icons.ts +0 -11
  699. package/src/res/images.ts +0 -3
  700. package/src/res/index.ts +0 -11
  701. package/src/types/IAccountTickets.ts +0 -75
  702. package/src/types/ICountry.ts +0 -2
  703. package/src/types/IError.ts +0 -5
  704. package/src/types/IEvent.ts +0 -87
  705. package/src/types/ITicket.ts +0 -75
  706. package/src/types/IUserProfile.ts +0 -30
  707. package/src/types/index.ts +0 -5
  708. package/src/utils/Logger.ts +0 -75
  709. package/src/utils/handlers.ts +0 -49
  710. package/src/utils/storageAdapter.ts +0 -44
  711. package/src/utils/styleUtils.ts +0 -76
package/README.md CHANGED
@@ -1,3419 +1,313 @@
1
1
  # tf-checkout-react-native
2
2
 
3
- React Native library for Ticket Fairy checkout.
3
+ The TicketFairy checkout for React Native. Drop in one component and you have
4
+ ticket selection, add-ons, buyer details, payment, ID verification, and the
5
+ receipt — or compose the sections yourself.
4
6
 
5
- For Single Sign-On (SSO) Please be aware that this is the first version of the implementation, we are working to release a V2, that will cover other use cases, in the near future.
7
+ Same API as [`tf-checkout-react`](../tf-checkout-react/README.md); the flow,
8
+ validation, and gating rules are literally the same code.
6
9
 
7
- # Requirements
10
+ The 2.x source is maintained in [`tf-shared-libraries`](https://github.com/theticketfairy/tf-shared-libraries).
11
+ The core is private and bundled into both platform packages. Use React 18+ and
12
+ React Query 5 on web; the native requirements below reflect its supported build.
13
+ Never put a confidential OAuth client secret in browser or mobile code. Public
14
+ checkout integrations use registered SDK client IDs and owned buyer sessions.
8
15
 
9
- Configure [ReactNative environment](https://reactnative.dev/docs/environment-setup) for desired platforms (iOS, Android or both).
16
+ ## Install
10
17
 
11
- ### React Native
18
+ The 2.0 line is currently a prerelease. Install `@beta` explicitly; the unqualified
19
+ npm package still resolves to stable 1.x until the 2.0 release gates pass. Pin the
20
+ verified exact version in a production app.
12
21
 
13
- - React Native version `0.81.4`
14
- - React version `19.1.0`
15
- - Node version `20.18.3` or later
16
-
17
- ### Android
18
-
19
- - Android 5.0 (API level 21) and above
20
- - Gradle plugin version `7.3.1`
21
- - Gradle version `7.5.1`
22
- - Compile Sdk Version and Target Sdk Version `33`
23
- - Build Tools Version `33.0.0`
24
- - Java version `1.8`
25
- - Kotlin version `1.5.31`
26
-
27
- Add the following to your Android Manifest as activity property.
28
-
29
- To download the PDFs, add the `WRITE_EXTERNAL_STORAGE` permission to the Android's Manifest file.
30
-
31
- ```xml
32
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
33
- ```
34
-
35
- ### iOS
36
-
37
- - Compatible with apps targeting iOS `13.0` or above.
38
- - Pods version `1.10.1`
39
- - Command Line Tools version `13.0`
40
-
41
- To download the PDFs, add the following flags to `Info.plist` file:
42
-
43
- ```
44
- - UIFileSharingEnabled: Application supports iTunes file sharing
45
- - LSSupportsOpeningDocumentsInPlace: Supports opening documents in place
46
- ```
47
-
48
- # Installation
49
-
50
- 🔗 Required peer dependencies
51
- This package relies on several React Native native modules. You need to install them in your app for the SDK to work properly:
52
- If you are running on bare React Native, you will need to install the following dependencies:
53
-
54
- ```sh
55
- # Using pnpm
56
- pnpm add tf-checkout-react-native \
57
- @react-native-async-storage/async-storage@^2.0.0 \
58
- @react-native-clipboard/clipboard@^1.14.0 \
59
- @react-native-community/datetimepicker@^8.0.0 \
60
- react-native-background-timer@^2.4.1 \
61
- react-native-device-country@^1.1.1 \
62
- react-native-fs@^2.18.0 \
63
- @stripe/stripe-react-native@^0.54.0
64
-
65
- # Using yarn
66
- yarn add tf-checkout-react-native \
67
- @react-native-async-storage/async-storage@^2.0.0 \
68
- @react-native-clipboard/clipboard@^1.14.0 \
69
- @react-native-community/datetimepicker@^8.0.0 \
70
- react-native-background-timer@^2.4.1 \
71
- react-native-device-country@^1.1.1 \
72
- react-native-fs@^2.18.0 \
73
- @stripe/stripe-react-native@^0.54.0
74
-
75
- # Using npm
76
- npm install tf-checkout-react-native \
77
- @react-native-async-storage/async-storage@^2.0.0 \
78
- @react-native-clipboard/clipboard@^1.14.0 \
79
- @react-native-community/datetimepicker@^8.0.0 \
80
- react-native-background-timer@^2.4.1 \
81
- react-native-device-country@^1.1.1 \
82
- react-native-fs@^2.18.0 \
83
- @stripe/stripe-react-native@^0.54.0
84
- ```
85
-
86
- If you are running on expo, you will need to install the following dependencies:
87
-
88
- ```sh
89
- # Using pnpm
90
- pnpm add tf-checkout-react-native \
91
- @react-native-async-storage/async-storage@^2.0.0 \
92
- @react-native-clipboard/clipboard@^1.14.0 \
93
- react-native-background-timer@^2.4.1
94
-
95
- # Using yarn
96
- yarn add tf-checkout-react-native \
97
- @react-native-async-storage/async-storage@^2.0.0 \
98
- @react-native-clipboard/clipboard@^1.14.0 \
99
- react-native-background-timer@^2.4.1
100
-
101
- # Using npm
102
- npm install tf-checkout-react-native \
103
- @react-native-async-storage/async-storage@^2.0.0 \
104
- @react-native-clipboard/clipboard@^1.14.0 \
105
- react-native-background-timer@^2.4.1
106
- ```
107
-
108
- Make sure to install all the required dependencies in your project.
109
-
110
- ### Metro
111
-
112
- Add the following to your `metro.config.js` in the resolver property:
113
-
114
- `sourceExts: ['jsx', 'js', 'ts', 'tsx']`
115
-
116
- Result:
117
-
118
- ```js
119
- module.exports = {
120
- watchFolders: [moduleRoot],
121
- resolver: {
122
- sourceExts: ['jsx', 'js', 'ts', 'tsx'],
123
- extraNodeModules: {
124
- react: path.resolve(__dirname,
125
- }
126
- ....
127
- ```
128
-
129
- ### Required for Android
130
-
131
- Add below dependency to your `app/build.gradle` file with specified version (in our example we are using `1.4.0`).
132
-
133
- ```java
134
- implementation 'com.google.android.material:material:<version>'
22
+ ```bash
23
+ npx expo install tf-checkout-react-native@beta \
24
+ @tanstack/react-query \
25
+ @stripe/stripe-react-native \
26
+ react-native-mmkv@3 \
27
+ @react-native-clipboard/clipboard \
28
+ react-native-webview
135
29
  ```
136
30
 
137
- Set appropriate style in your styles.xml file.
31
+ Bare React Native:
138
32
 
139
- ```xml
140
- <style name="Theme.MyApp" parent="Theme.MaterialComponents.DayNight.NoActionBar">
141
- <!-- ... -->
142
- </style>
33
+ ```bash
34
+ npm install tf-checkout-react-native@beta @tanstack/react-query @stripe/stripe-react-native react-native-mmkv@3 @react-native-clipboard/clipboard react-native-webview
143
35
  ```
144
36
 
145
- # Set your configuration
146
-
147
- Import the function from the library.
148
-
149
- ```ts
150
- import { setConfig } from 'tf-checkout-react-native'
151
- ```
37
+ These are **peer dependencies** on purpose. React contexts and native
38
+ modules must exist exactly once in an app — a second copy of react-query means
39
+ your `<QueryClientProvider>` is invisible to our hooks, and a second Stripe
40
+ means a duplicate pod. As peers there is one copy and no Metro aliasing is ever
41
+ needed.
152
42
 
153
- Use it in your initial useEffect function, please keep in mind this is an `async` function. It is highly recommended that you track when `setConfig` is finished, and pass that control prop to the Tickets component.
43
+ Everything else — the SDK core, the flow, the UI — ships inside the package.
154
44
 
155
- ```ts
45
+ ## Requirements
156
46
 
157
- const YourComponent: FC () => {
158
- const [isCheckingCurrentSession, setIsCheckingCurrentSession] = useState(true)
159
-
160
- useEffect(() => {
161
- const initConfig = async () => {
162
- setIsCheckingCurrentSession(true)
163
-
164
- await setConfig({
165
- EVENT_ID: '4344',
166
- CLIENT: 'ttf',
167
- ENV: 'STAG',
168
- CLIENT_ID: '3emd9023349dfn',
169
- CLIENT_SECRET: 'CCEw33o4030e4df',
170
- AUTH: {
171
- ACCESS_TOKEN: 'token393939',
172
- REFRESH_TOKEN: 'dee2030edmd',
173
- TOKEN_TYPE: 'bearer',
174
- SCOPE: 'scope',
175
- }
176
- })
177
-
178
- setIsCheckingCurrentSession(false)
179
- }
180
-
181
- initConfig()
182
- }, [])
183
-
184
- return <Tickets
185
- isCheckingCurrentSession
186
- />
187
- }
188
- ```
47
+ - React Native `0.81+` with the New Architecture enabled (required by
48
+ `react-native-mmkv` 3.x)
49
+ - React `19.1+`, Node `20.19.4+`
50
+ - iOS 15.1+ · Android API 24+ (Stripe SDK minimums)
51
+ - A development build. **Expo Go will not work** — this package uses native
52
+ modules.
189
53
 
190
- `setConfig` set your event's configuration, with the following options:
54
+ Add the Stripe plugin to `app.json`:
191
55
 
192
- ```ts
56
+ ```json
193
57
  {
194
- EVENT_ID?: string | number,
195
- CLIENT?: string,
196
- ENV?: 'PROD' | 'DEV' | 'STAG',
197
- CLIENT_ID?: string,
198
- CLIENT_SECRET?: string,
199
- TIMEOUT?: number,
200
- BRAND?: string,
201
- ARE_SUB_BRANDS_INCLUDED?: boolean
202
- AUTH?: {
203
- ACCESS_TOKEN: string
204
- REFRESH_TOKEN: string
205
- TOKEN_TYPE: string
206
- SCOPE: string
58
+ "expo": {
59
+ "plugins": [["@stripe/stripe-react-native", { "enableGooglePay": false }]]
207
60
  }
208
61
  }
209
62
  ```
210
63
 
211
- ### Props
212
-
213
- | Property | Description |
214
- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
215
- | EVENT_ID |  Specify the event's ID. |
216
- | CLIENT | Specify your client designated name example `ttf`. |
217
- | ENV | Sets the environment to any of the following environments: Production, Staging or Development. Receives the following values: `PROD`, `DEV`, `STAG`. Defaults to `PROD`. |
218
- | CLIENT_ID | Set your CLIENT_ID. |
219
- | CLIENT_SECRET | Set your CLIENT_SECRET. |
220
- | BRAND | Set your BRAND so users can only see this brand in their orders. |
221
- | TIMEOUT | Set custom timeout for the APIs requests. |
222
- | ARE_SUB_BRANDS_INCLUDED | If true will include orders from the `BRAND` sub-brands. Default `false`. |
223
- | AUTH | Object that receives data for Single Sign On (SSO). |
224
-
225
- # Run the example app
226
-
227
- 1. Clone this repo.
228
- 2. In the App.tsx file, update the `EVENT_ID` const with the assigned ID to be able to retrieve data from the server.
229
- 3. cd into the _root project_ folder and `yarn` or `npm install`.
230
- 4. cd into the _example_ folder and `yarn` or `npm install`.
231
- - If running on iOS, cd into ios folder and `pod install && cd ..`.
232
- 5. Run `yarn ios` or `npm run ios` to initialize and run in the iPhone simulator.
233
- 6. If running on Android, run `yarn android` or `npm run android` to run it in the Android emulator or connected physical device.
234
-
235
- # Features
236
-
237
- This library exports the following components:
238
-
239
- ### Login
240
-
241
- Used to authenticate the user and request password restore.
242
-
243
- ### Tickets
244
-
245
- Will retrieve and show a list of tickets corresponding to `eventId`. It also includes a PromoCode component that validates it and updates the tickets list.
246
-
247
- User can select what ticket type wants to buy and the quantity of tickets.
248
-
249
- ### Billing information
250
-
251
- User will need to enter its data into a form to create a Ticket Fairy account. Also, depending on the number of tickets selected, will need to fill the information of each one of them.
252
-
253
- ### Checkout
254
-
255
- Will show the order details and a card form that the user will need to fill with its card details.
256
-
257
- TicketFairy doesn't store any card related data, we use [Stripe](https://stripe.com/) as payments solution.
258
-
259
- ### Purchase confirmation
260
-
261
- This is shown once the payment is successfully completed, could show components to share the purchase in social media or refer it with friends to get discounts on the purchase.
262
-
263
- ### My Orders
264
-
265
- Will show the purchased orders for the logged user.
266
-
267
- ### My Order details
268
-
269
- Will show the details for the selected Order, it also allows the user to download the Ticket PDF.
270
-
271
- ### Tickets Resale
272
-
273
- Let the user to resale their tickets. They can choose between selling them to a friend or to any other user.
274
-
275
- ### Reset Password
276
-
277
- After opening and URL with the corresponding schema, use this component to let the user reset its password.
278
-
279
- ### Exported functions
280
-
281
- - setConfig: Sets config for the library
282
-
283
- - refreshAccessToken: Let refresh the expired access token.
284
-
285
- # React Hooks API
286
-
287
- As of the latest version, we're introducing a new hooks-based API that provides a more modern and flexible approach to implementing the checkout flow. The hooks-based implementation replaces the Core components (`BillingCore` and `CheckoutCore`) which are now deprecated.
64
+ Then build a dev client once:
288
65
 
289
- ## Available Hooks
290
-
291
- ### Checkout Hooks
292
-
293
- Wrapping with CheckoutProvider
294
-
295
- All checkout components & hooks (CheckoutV2, CustomCheckout, or your own flow) must be wrapped in CheckoutProvider to work correctly.
296
-
297
- | Hook | Description |
298
- | ---------------------- | ---------------------------------------------------------------------------------- |
299
- | `useCheckoutFlow()` | Complete checkout flow with form management, data fetching, and payment processing |
300
- | `useCart()` | Fetch cart data with automatic expiration countdown |
301
- | `useCheckout()` | Process checkout with payment information |
302
- | `useAddToCart()` | Add items to cart |
303
- | `useTickets()` | Fetch available tickets for an event |
304
- | `useEventInfo()` | Fetch event information |
305
- | `usePaymentData()` | Get payment data for an order |
306
- | `usePaymentSuccess()` | Process payment success |
307
- | `useEventConditions()` | Fetch event conditions |
308
- | `useAddons()` | Fetch and manage event add-ons |
309
- | `useUpdateCheckout()` | Update checkout with add-ons |
310
-
311
- ### Location Hooks
312
-
313
- | Hook | Description |
314
- | ---------------------- | ----------------------------------- |
315
- | `useCountries()` | Fetch countries list |
316
- | `useStates(countryId)` | Fetch states for a specific country |
317
-
318
- ### Auth Hooks
319
-
320
- | Hook | Description |
321
- | ------------------- | -------------------------------- |
322
- | `useUserProfile()` | Fetch authenticated user profile |
323
- | `useRegisterUser()` | Register a new user |
324
-
325
- ## Migration from Core Components
326
-
327
- If you're currently using `BillingCore` or `CheckoutCore` components, please refer to the [Migration Guide](./src/core/MIGRATION.md) for detailed instructions on how to update your code to use the new hooks-based API.
66
+ ```bash
67
+ npx expo run:ios
68
+ ```
328
69
 
329
- ## Example Usage
70
+ ## Use it
330
71
 
331
72
  ```tsx
332
- import { useCheckoutFlow, CheckoutForm, CheckoutProvider } from 'tf-checkout-react-native'
333
-
334
- const CheckoutScreen = () => {
335
- const {
336
- onSubmit,
337
- initialValues,
338
- countries,
339
- states,
340
- orderItems,
341
- secondsLeft,
342
- isSubmitting,
343
- isInitialLoading
344
- } = useCheckoutFlow({
345
- onCartExpired: () => navigation.navigate('ExpiredScreen'),
346
- onCheckoutSuccess: ({ hash, total, values }) => {
347
- // Handle checkout success
348
- },
349
- onPaymentSuccess: (result) => {
350
- // Handle payment success
351
- }
352
- })
353
-
354
- if (isInitialLoading) {
355
- return <LoadingIndicator />
356
- }
73
+ import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
74
+ import { configureCheckout, EmbeddedCheckout } from 'tf-checkout-react-native'
357
75
 
358
- return (
359
- <CheckoutForm
360
- onSubmit={onSubmit}
361
- initialValues={initialValues}
362
- countries={countries}
363
- states={states}
364
- orderItems={orderItems}
365
- secondsLeft={secondsLeft}
366
- isSubmitting={isSubmitting}
367
- />
368
- )
369
- }
76
+ configureCheckout({ env: 'PROD', clientId: 'PUBLIC_SDK_CLIENT_ID', clientSecret: '', cookieAuth: true })
77
+
78
+ const queryClient = new QueryClient()
370
79
 
371
- export default MyCustomCheckout() => {
80
+ export default function App() {
372
81
  return (
373
- <CheckoutProvider>
374
- <CheckoutScreen />
375
- </CheckoutProvider>
82
+ <QueryClientProvider client={queryClient}>
83
+ <EmbeddedCheckout eventId="14304" onComplete={(order) => console.log(order)} />
84
+ </QueryClientProvider>
376
85
  )
377
86
  }
378
-
379
- ```
380
-
381
- # Component styling
382
-
383
- ### Button
384
-
385
- ```ts
386
- interface IButtonStyles {
387
- container?: StyleProp<ViewStyle>
388
- button?: StyleProp<ViewStyle>
389
- text?: StyleProp<TextStyle>
390
- }
391
- ```
392
-
393
- ### Input
394
-
395
- ```ts
396
- interface IInputStyles {
397
- color?: ColorValue
398
- container?: StyleProp<ViewStyle>
399
- input?: StyleProp<TextStyle>
400
- lineWidth?: number
401
- activeLineWidth?: number
402
- baseColor?: ColorValue
403
- errorColor?: ColorValue
404
- }
405
- ```
406
-
407
- ### Checkbox
408
-
409
- ```ts
410
- interface ICheckboxStyles {
411
- container?: StyleProp<ViewStyle>
412
- content?: StyleProp<ViewStyle>
413
- indicator?: StyleProp<ViewStyle>
414
- indicatorDisabled?: StyleProp<ViewStyle>
415
- text?: StyleProp<TextStyle>
416
- box?: StyleProp<ViewStyle>
417
- icon?: StyleProp<ImageStyle>
418
- }
419
- ```
420
-
421
- # Exported functions
422
-
423
- ## setConfig
424
-
425
- Set the configuration for the library.
426
-
427
- ```ts
428
- export interface IConfig {
429
- EVENT_ID: string | number
430
- CLIENT?: string
431
- ENV?: EnvType
432
- CLIENT_ID?: string
433
- CLIENT_SECRET?: string
434
- TIMEOUT?: number
435
- BRAND?: string
436
- ARE_SUB_BRANDS_INCLUDED?: boolean
437
- // AUTH is used for single sign on v1.
438
- // It receives the needed information for the authenticated user.
439
- AUTH?: {
440
- ACCESS_TOKEN: string
441
- REFRESH_TOKEN: string
442
- TOKEN_TYPE: string
443
- SCOPE: string
444
- }
445
- }
446
- ```
447
-
448
- ## refreshAccessToken
449
-
450
- Let refresh the expired access token, it can use the internal stored refresh token, passing nothing to it, or you can pass a `string` refresh token.
451
-
452
- ```ts
453
- const response: IFetchAccessTokenResponse = await refreshAccessToken(refreshToken?: string)
454
- ```
455
-
456
- Returns the new access token data or error.
457
-
458
- ```ts
459
- accessTokenError?: {
460
- code?: number
461
- message: string
462
- }
463
- accessTokenData?: {
464
- accessToken: string
465
- refreshToken: string
466
- tokenType: string
467
- scope: string
468
- }
469
87
  ```
470
88
 
471
- # Exported handlers
89
+ `configureCheckout` runs once at app start. It persists tokens to MMKV, so a
90
+ signed-in buyer survives a relaunch.
472
91
 
473
- ## SessionCoreHandle
92
+ ### Why native defaults to cookie auth
474
93
 
475
- Exports function to refresh access token.
94
+ `configureCheckout` turns on `cookieAuth` by default. This is not cosmetic: the
95
+ cart lives in the backend session, and a bearer request without a guest header
96
+ gets moved onto a synthetic empty session — so a buyer who reserves tickets and
97
+ then signs in mid-checkout would lose the cart to "The cart is expired". On the
98
+ cookie flow no bearer is minted, the session holding the cart stays put, and the
99
+ rotating `X-TF-ECOMMERCE` ticket is persisted to MMKV.
476
100
 
477
- ### refreshAccessToken
101
+ Pass `cookieAuth: false` to opt into the bearer chain.
478
102
 
479
- Allows to refresh access token inside the component. It will automatically re-fetch the component's data from the server. You will need to create a `ref` object with the corresponding type.
480
-
481
- Example:
482
-
483
- In your parent component
103
+ ### Environments
484
104
 
485
105
  ```ts
486
- const sessionHandleRef = useRef<SessionHandleType>(null)
487
-
488
- // Call the refreshAccessToken function by using
489
- await sessionHandleRef.current?.refreshAccessToken()
106
+ configureCheckout({ env: 'STAG', clientId: 'PUBLIC_SDK_CLIENT_ID', clientSecret: '', cookieAuth: true })
490
107
  ```
491
108
 
492
- # Exported components
493
-
494
- Depending on your needs, you can use the UI Components or the Core Components.
495
-
496
- [UI Components](#ui-components) use the Core Components at their core but also exposes an UI that you can configure with your own styles. There is no need to create any kind of logic with them, only setConfig and implement the callbacks to get their data.
497
-
498
- [Core Components](#core-components) are wrappers that don't include any UI neither validation logics, they only act as a Middleware to retrieve and send data from the server and return it to your implementation components. They are useful when your design cannot be achieved by the UI components. You will need to use references to access their exposed functions.
499
-
500
- # UI Components
501
-
502
- [Login](#login-ui)
503
-
504
- [Tickets](#tickets-ui)
505
-
506
- [BillingInfo](#billinginfo-ui)
507
-
508
- [Checkout](#checkout-ui)
509
-
510
- [CheckoutSP](#checkoutsp-ui)
109
+ `PROD` → `www.ticketfairy.com`, `STAG` → `test.ticketfairy.com`, `DEV` →
110
+ `sandbox.ticketfairy.com`. Pass `baseUrl` to point elsewhere.
511
111
 
512
- [Purchase Confirmation](#purchase-confirmation-ui)
112
+ ## `<EmbeddedCheckout />`
513
113
 
514
- [My Orders](#my-orders-ui)
114
+ | Prop | Type | Default | Does |
115
+ | ----------------------------------- | ----------------------------------- | ----------- | --------------------------------------------- |
116
+ | `eventId` | `string` | — | The event to sell. Required. |
117
+ | `onComplete` | `(order: PlaceOrderResult) => void` | — | Fires once payment settles. |
118
+ | `confirmationMode` | `'inline' \| 'redirect'` | `'inline'` | `redirect` leaves routing to `onComplete`. |
119
+ | `initialView` | `'tickets' \| 'seats'` | `'tickets'` | Opening screen. |
120
+ | `onViewChange` | `(view) => void` | — | Reports the visible view. |
121
+ | `requireEmailConfirmation` | `boolean` | `true` | Make guests repeat their email. |
122
+ | `collectTicketHolders` | `boolean` | `true` | One named holder per ticket. |
123
+ | `collectHolderContact` | `boolean` | `true` | Also collect holder email/phone. |
124
+ | `skipBillingWhenProfileComplete` | `boolean` | `false` | Skip billing for complete signed-in profiles. |
125
+ | `auth` | `false \| AuthOptions` | built-in | Configure or remove the login modal. |
126
+ | `onLogin` | `(email?: string) => void` | — | Open your own login UI instead. |
127
+ | `privacyPolicy` | `CheckoutPrivacyPolicy` | — | Your privacy policy link and brand name. |
128
+ | `additionalConditions` | `EventCondition[]` | — | Extra acknowledgements. |
129
+ | `ttfOptInLabel` / `brandOptInLabel` | `string` | — | Override the marketing opt-in copy. |
130
+ | `initialPromoCode` | `string` | — | Apply a promo code on load. |
131
+ | `referrer` | `string \| number` | — | Attribute the sale. |
132
+ | `showTestCardHint` | `boolean` | `false` | Show sandbox card copy. Demos only. |
133
+ | `theme` | `CheckoutTheme` | — | Recolor via design tokens. |
515
134
 
516
- [My Order Details](#myorder-details-ui)
135
+ `readAttributionFromUrl` is accepted for parity with web and is a no-op —
136
+ there is no `window.location` on a device.
517
137
 
518
- [Resale](#resale-tickets-ui)
519
-
520
- [Reset Password](#reset-password-ui)
521
-
522
- ---
523
-
524
- ## Session handle
525
-
526
- In all components with the exception of Login and Reset Password, you can pass a `ref` with type `SessionHandleType` to access two functions:
527
-
528
- `refreshAccessToken` After a successful access token refresh, it will re-fetch component's data from server when applicable.
529
- `reloadData` It will re-fetch component's data from server.
530
-
531
- ---
532
-
533
- ## Login UI
534
-
535
- Import the component from the library
536
-
537
- ```tsx
538
- import { Login } from 'tf-checkout-react-native'
539
- ```
540
-
541
- Then add it to the render function.
138
+ ## Theming
542
139
 
543
140
  ```tsx
544
- <Login
545
- onLoginSuccessful: (
546
- userProfile: IUserProfile,
547
- accessTokenData?: IFetchAccessTokenData
548
- ) => void
549
- onLoginError?: (error: IError) => void
550
-
551
- onFetchUserProfileError?: (error: IError) => void
552
- onFetchUserProfileSuccess?: (data: any) => void
553
-
554
- onFetchAccessTokenError?: (error: IError) => void
555
- onFetchAccessTokenSuccess?: () => void
556
-
557
- isLoginDialogVisible: boolean
558
- showLoginDialog: () => void
559
- hideLoginDialog: () => void
560
-
561
- //Logout
562
- onLogoutSuccess?: () => void
563
- onLogoutError?: () => void
564
-
565
- userFirstName={loggedUserName}
566
- refs={{
567
- inputs?: {
568
- email?: any
569
- password?: any
570
- }
571
- button?: {
572
- containerView?: any
573
- touchableOpacity?: any
574
- loadingView?: any
575
- activityIndicator?: any
576
- loadingText?: any
577
- }}
578
- brandImages={
579
- containerStyle?: StyleProp<ViewStyle>
580
- image1?: ImageSourcePropType
581
- image1Style?: StyleProp<ImageStyle>
582
- image2?: ImageSourcePropType
583
- image2Style?: StyleProp<ImageStyle>
584
- }
585
- styles?: ILoginViewStyles
586
- texts?: ILoginViewTexts
587
-
588
- isShowPasswordButtonVisible?: boolean
589
-
590
- //Restore password
591
- onRestorePasswordError?: (error: IError) => void
592
- onRestorePasswordSuccess?: () => void
141
+ <EmbeddedCheckout
142
+ eventId="14304"
143
+ theme={{ colorScheme: 'dark', accent: '#ff2d55', radiusCard: 16 }}
593
144
  />
594
145
  ```
595
146
 
596
- ### Data Types
597
-
598
- #### IUserProfile
599
-
600
- ```ts
601
- {
602
- customerId: string
603
- firstName: string
604
- lastName: string
605
- email: string
606
- phone: string
607
- streetAddress: string
608
- zipCode: string
609
- countryId: string
610
- company?: string
611
- state: string
612
- stateId: string
613
- city: string
614
- }
615
- ```
616
-
617
- #### IFetchAccessTokenData
147
+ The same token names as web: color (`accent`, `surface`, `text`, `muted`,
148
+ `border`, `error`, `success`), shape, and typography. Read them anywhere with
149
+ `useTheme()`.
618
150
 
619
- ```ts
620
- {
621
- accessToken: string
622
- refreshToken: string
623
- tokenType: string
624
- scope: string
625
- }
626
- ```
627
-
628
- ### Props
629
-
630
- | Property | Description |
631
- | -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
632
- | onLoginSuccessful: (userProfile: IUserProfile, accessToken: string)` | When login was successful, return userProfile data and the access token to use if for future API requests. |
633
- | onLoginFailure?: (error: string) | When login fails will return the error received. |
634
- | onFetchUserProfileFailure?: (error: string) | This is used if the authentication worked but the fetch of the userProfile failed. |
635
- | onFetchAccessTokenFailure?: (error: string) | When the fetch of the access token failed. |
636
- | isLoginDialogVisible: boolean | Flag to show or hide the login dialog. |
637
- | showLoginDialog: () => void | Callback to show the Login dialog. |
638
- | hideLoginDialog: () => void | Callback to hide the Login dialog. |
639
- | onLogoutSuccess?: () => void | Use it to logout the authenticated user. It will delete all the stored data, including access token. Please make sure to update the `userFirstName` prop so the component will show the logged out view. |
640
- | onLogoutFail?: () => void | Will be called if something went wrong while deleting the local data. |
641
- | styles?: ILoginViewStyles | Use this to style your components. |
642
- | texts?: ILoginViewTexts | Use this to change some texts that appear in this component. |
643
- | userFirstName?: string | Once authenticated send the received firstName data to this prop, so the component can render the Logged in view. |
644
- | brandImages?: ILoginBrandImages | Receives up to 2 images with their styles and the container style for the images. |
645
- | onRestorePasswordError?: (error: string) | When restore password fails will return the error received. |
646
- | onRestorePasswordSuccess? | Called when restore password request was successful |
647
-
648
- ### styles
649
-
650
- ```js
651
- interface ILoginViewStyles {
652
- guest?: {
653
- loginButton?: IButtonStyles
654
- linesContainer?: StyleProp<ViewStyle>
655
- line1?: StyleProp<TextStyle>
656
- line2?: StyleProp<TextStyle>
657
- message?: StyleProp<TextStyle>
658
- }
659
- dialog?: {
660
- container?: StyleProp<ViewStyle>
661
- loginButton?: IButtonStyles
662
- loginButtonDisabled?: IButtonStyles
663
- input?: IInputStyles
664
- title?: StyleProp<TextStyle>
665
- message?: StyleProp<TextStyle>
666
- }
667
- loggedIn?: {
668
- container?: StyleProp<ViewStyle>
669
- placeholder?: StyleProp<TextStyle>
670
- value?: StyleProp<TextStyle>
671
- button?: IButtonStyles
672
- message?: StyleProp<TextStyle>
673
- }
674
- restorePassword?: {
675
- rootContainer?: StyleProp<ViewStyle>
676
- restorePasswordButton?: {
677
- container?: StyleProp<ViewStyle>
678
- button?: StyleProp<ViewStyle>
679
- text?: StyleProp<TextStyle>
680
- }
681
- cancelRestorePasswordButton?: {
682
- container?: StyleProp<ViewStyle>
683
- button?: StyleProp<ViewStyle>
684
- text?: StyleProp<TextStyle>
685
- }
686
- input?: IInputStyles
687
- title?: StyleProp<TextStyle>
688
- message?: StyleProp<TextStyle>
689
- apiError?: StyleProp<TextStyle>
690
- }
691
- restorePasswordSuccess?: {
692
- rootContainer?: StyleProp<ViewStyle>
693
- title?: StyleProp<TextStyle>
694
- message?: StyleProp<TextStyle>
695
- button?: {
696
- container?: StyleProp<ViewStyle>
697
- button?: StyleProp<ViewStyle>
698
- text?: StyleProp<TextStyle>
699
- }
700
- }
701
- }
702
- ```
151
+ ## Composing your own layout
703
152
 
704
- \*Note: Logos images styles are passed from the `brandImages` prop.
153
+ Every section reads the same `useCheckout()` store from the provider.
705
154
 
706
- ### texts
155
+ ```tsx
156
+ import {
157
+ CheckoutProvider,
158
+ Tickets,
159
+ AddOns,
160
+ BillingInfo,
161
+ Payment,
162
+ OrderSummary,
163
+ useCheckout,
164
+ } from 'tf-checkout-react-native'
707
165
 
708
- ```js
709
- {
710
- loginButton?: string
711
- logoutButton?: string
712
- line1?: string
713
- line2?: string
714
- message?: string
715
- dialog?: {
716
- loginButton?: string
717
- message?: string
718
- title?: string
719
- }
720
- logoutDialog?: {
721
- title?: string
722
- message?: string
723
- confirm?: string
724
- cancel?: string
725
- }
726
- loggedIn?: {
727
- loggedAs?: string
728
- notYou?: string
729
- }
730
- restorePassword?: {
731
- restorePasswordButton?: string
732
- cancelButton?: string
733
- message?: string
734
- inputLabel?: string
735
- title?: string
736
- }
737
- restorePasswordSuccess?: {
738
- title?: string
739
- message?: string
740
- button?: string
741
- }
742
- }
166
+ const MyCheckout = () => (
167
+ <CheckoutProvider theme={{ colorScheme: 'dark' }}>
168
+ <ScrollView>
169
+ <Tickets />
170
+ <AddOns />
171
+ <BillingInfo />
172
+ <OrderSummary />
173
+ <Payment />
174
+ </ScrollView>
175
+ </CheckoutProvider>
176
+ )
743
177
  ```
744
178
 
745
- ---
746
-
747
- ## Tickets UI
179
+ **Sections** — `Tickets`, `AddOns`, `BillingInfo`, `OrderSummary`, `Payment`,
180
+ `IDVerification`, `Confirmation`.
748
181
 
749
- This component will first fetch for the Event's data, if data is ok, then will fetch the tickets for this event.
182
+ **UI primitives** — `Card`, `Button`, `BodyText`, `MutedText`, `Field`,
183
+ `Select`, `QuantitySelect`, `PaymentMethods`, `Timer`, `TimerBanner`.
750
184
 
751
- ### Password protected event
185
+ **Auth** — `AuthModal`, `LoginForm`, `RegisterForm`, `ForgotPasswordForm`,
186
+ `ResetPasswordForm`.
752
187
 
753
- If the Event's response returns a `401` error, then it means it's password protected and need to authenticate with a password. Then the `EnterPassword` component will be shown for the user to enter the password.
188
+ ## Headless
754
189
 
755
- Import the component from the library.
190
+ `useCheckout()` gives you the whole flow with no UI.
756
191
 
757
- ```js
758
- import { Tickets } from 'tf-checkout-react-native'
759
- ```
760
-
761
- Then add it to the render function.
762
-
763
- ```js
764
- const sessionHandleRef = useRef<SessionHandleType>(null)
192
+ ```tsx
193
+ const checkout = useCheckout({ eventId: '14304' })
765
194
 
766
- <Tickets
767
- ref={sessionHandleRef}
768
- onAddToCartSuccess={handleOnAddToCartSuccess} />
195
+ await checkout.setTickets('14304', [{ ticketTypeId: '1', quantity: 2 }])
196
+ checkout.setBilling({ firstName, lastName, email, phone })
197
+ checkout.setConsent({ ttfOptIn: true, brandOptIn: false })
198
+ const order = await checkout.placeOrder('card')
769
199
  ```
770
200
 
771
- ### Props
772
-
773
- ```js
774
- {
775
- ref?: SessionHandleType
776
- // Callbacks for when user taps on GET Tickets button
777
- onAddToCartSuccess: (data: {
778
- isBillingRequired: boolean
779
- isPhoneRequired?: boolean
780
- isAgeRequired?: boolean
781
- minimumAge?: number
782
- isNameRequired?: boolean
783
- isTicketFree?: boolean
784
- isPhoneHidden?: boolean
785
- }) => void
786
- onAddToCartError?: (error: {
787
- code: number
788
- message: string
789
- extraData?: any
790
- }) => void
791
-
792
- // Callbacks for fetching the tickets
793
- onFetchTicketsError?: (error: {
794
- code: number
795
- message: string
796
- extraData?: any
797
- }) => void
798
-
799
- // Callbacks for fetching the Event base on the eventId prop
800
- onFetchTicketsSuccess?: (data: {
801
- tickets: ITicket[]
802
- promoCodeResponse: {
803
- success?: boolean
804
- message?: string
805
- }
806
- isInWaitingList: boolean
807
- isAccessCodeRequired: boolean
808
- }) => void
809
- onFetchEventError?: (error: {
810
- code: number
811
- message: string
812
- extraData?: any
813
- }) => void
814
-
815
- // Callbacks for Waiting list
816
- onAddToWaitingListSuccess?: (data: any) => void
817
- onAddToWaitingListError?: (error: {
818
- code: number
819
- message: string
820
- extraData?: any
821
- }) => void
822
-
823
- styles?: ITicketsViewStyles
824
- texts?: ITicketsViewTexts
825
-
826
- isPromoEnabled?: boolean
827
- isAccessCodeEnabled?: boolean
828
-
829
- onPressMyOrders: () => void
830
- onPressLogout?: () => void
831
-
832
- onLoadingChange?: (isLoading: boolean) => void
833
- promoCodeCloseIcon?: ImageSourcePropType
834
-
835
- // Event password protected
836
- onPressSubmitEventPassword?: (password: string) => void
837
- passwordProtectedEventData?: {
838
- isPasswordProtected?: boolean
839
- message?: string
840
- apiError?: string
841
- isLoading?: boolean
842
- }
843
-
844
- // Configure the Component behavior
845
- config: {
846
- areActivityIndicatorsEnabled?: boolean
847
- areAlertsEnabled?: boolean
848
- areTicketsSortedBySoldOut?: boolean
849
- areTicketsGrouped?: boolean
850
- }
201
+ `placeOrder` is retry-safe: one order, one charge, however many times the button
202
+ is pressed.
851
203
 
852
- // For SSO
853
- isCheckingCurrentSession?: boolean
204
+ ### Starting a new checkout
854
205
 
855
- // Referral discounts
856
- referrerId?: string
857
- }
858
- ```
206
+ `reset()` discards the cart. It returns nothing, so
207
+ `useEffect(() => checkout.reset(), [eventId])` works as it always has. Before
208
+ any money moves it resets at once. While a payment is going through, it waits
209
+ for the payment to finish, so the payment never lands in a new cart. An order
210
+ that is not confirmed yet is kept when it is charged, or when a payment step
211
+ failed without an answer that nothing was charged (a network error, a
212
+ timeout, or a Stripe error that is not a decline or a cancel). A Razorpay or
213
+ redirect payment page the buyer closes is kept only when a check of the order
214
+ fails or finds a payment; otherwise it is a cancel. Pressing Pay again then
215
+ finishes the order, or pays as usual when nothing was paid. A server refusal
216
+ of the order, such as an expired reservation, releases it.
859
217
 
860
- `eventId` is required in order to fetch the tickets from this event.
861
- `onAddToCartSuccess` is called after the Add to Cart was completed successfully, it will return the following data:
218
+ To know which happened, await `resetWhenSettled()` instead. It resolves `true`
219
+ once the checkout is reset, or `false` when it kept the order. In that case,
220
+ show the buyer `PAID_ORDER_PENDING_MESSAGE`. While it waits for a payment
221
+ (`status === 'placing'`), tell the buyer, for example "Finishing your
222
+ payment…":
862
223
 
863
- ```js
864
- {
865
- isBillingRequired: boolean
866
- isPhoneRequired?: boolean
867
- isAgeRequired?: boolean
868
- minimumAge?: number
869
- isNameRequired?: boolean
870
- }
224
+ ```tsx
225
+ if (checkout.status === 'placing') setNotice('Finishing your payment…')
226
+ if (!(await checkout.resetWhenSettled())) setNotice(PAID_ORDER_PENDING_MESSAGE)
871
227
  ```
872
228
 
873
- ### config prop
229
+ A custom `providerPage` must resolve `'dismiss'` when it closes or unmounts, and
230
+ any other custom port must settle then too, or `resetWhenSettled()` waits for it.
874
231
 
875
- Configure the component's behavior
876
-
877
- ```ts
878
- config: {
879
- // Whether or not show the loading indicators.
880
- areActivityIndicatorsEnabled?: boolean
881
- // Whether or not show the alerts.
882
- areAlertsEnabled?: boolean
883
- // Whether or not the Ticket should be sorted by Sold Out.
884
- areTicketsSortedBySoldOut?: boolean
885
- // Whether or not the tickets should be grouped, they need to be configured as groups in the Tickets admin.
886
- areTicketsGrouped?: boolean
887
- }
888
- ```
232
+ A custom confirmer marks a decline or cancel by rejecting with
233
+ `paymentProviderError(message, 'declined' | 'cancelled')`. Any other rejection
234
+ counts as a payment that may have gone through, so the order is kept.
889
235
 
890
- You can then call the `BillingInfo` component and pass them as props in the `cartProps` prop.
236
+ The full SDK is re-exported from this package — `ttf`, `api`, `hooks`, `dtos`,
237
+ `logic`, and the engine. See the [SDK reference](../tf-checkout-shared/README.md).
891
238
 
892
- `onFetchTicketsSuccess` When tickets fetching was successful, will return fetched data, including `promoCodeResponse`.
239
+ ## Rewards
893
240
 
894
- ### styles
241
+ The native analogue of the web Rewards section: standing, the referral tree,
242
+ the prize ladder, packs, the share card, and one share button.
895
243
 
896
- ```js
897
- {
898
- rootContainer?: ViewStyle
899
- container?: ViewStyle
900
- title?: TextStyle
901
- getTicketsButtonDisabled?: IButtonStyles
902
- getTicketsButtonActive?: IButtonStyles
903
- promoCode?: {
904
- rootContainer?: ViewStyle
905
- contentWrapper?: ViewStyle
906
- content?: StyleProp<ViewStyle>
907
- input?: TextInputProps['style']
908
- inputPlaceholderColor?: string
909
-
910
- mainButton?: IButtonStyles
911
- applyButton?: IButtonStyles
912
- applyDisabledButton?: IButtonStyles
913
-
914
- errorMessage?: StyleProp<TextStyle>
915
- validMessage?: StyleProp<TextStyle>
916
-
917
- cancelButton?: StyleProp<ViewStyle>
918
- cancelIcon?: StyleProp<ImageStyle>
919
- }
920
- ticketList?: {
921
- sectionHeader?: {
922
- container?: StyleProp<ViewStyle>
923
- title?: StyleProp<TextStyle>
924
- }
925
- listContainer?: ViewStyle
926
- item?: {
927
- container?: ViewStyle
928
- ticketName?: TextStyle
929
- price?: TextStyle
930
- oldPrice?: TextStyle
931
- fees?: TextStyle
932
- soldOutText?: TextStyle
933
- soldOutContainer?: ViewStyle
934
- dropdown?: IDropdownStyles
935
- pricesContainer?: StyleProp<ViewStyle>
936
- }
937
- }
938
- loading?: {
939
- animation?: {
940
- color?: ActivityIndicatorProps['color']
941
- size?: ActivityIndicatorProps['size']
942
- }
943
- content?: ViewStyle
944
- text?: TextStyle
945
- }
946
- waitingList?: {
947
- rootContainer?: StyleProp<ViewStyle>
948
- title?: StyleProp<TextStyle>
949
- button?: IButtonStyles
950
- input?: IInputStyles
951
- buttonDisabled?: IButtonStyles
952
- success?: {
953
- container?: StyleProp<ViewStyle>
954
- title?: StyleProp<ViewStyle>
955
- message?: StyleProp<ViewStyle>
956
- }
957
- }
958
- loggedIn?: {
959
- rootContainer?: StyleProp<ViewStyle>
960
- myOrdersButton?: IButtonStyles
961
- logOutButton?: IButtonStyles
962
- }
963
- enterPassword?: {
964
- input?: IInputStyles
965
- title?: StyleProp<TextStyle>
966
- error?: StyleProp<TextStyle>
967
- button?: IButtonStyles
968
- rootContainer?: StyleProp<ViewStyle>
969
- contentContainer?: StyleProp<ViewStyle>
970
- }
971
- }
244
+ ```tsx
245
+ import { Confirmation, Rewards } from 'tf-checkout-react-native'
246
+ ;<Confirmation>
247
+ <Rewards orderHash={orderHash} />
248
+ </Confirmation>
972
249
  ```
973
250
 
974
- ### texts
251
+ When `<EmbeddedCheckout/>` renders the receipt itself, pass the block through
252
+ `confirmationChildren`:
975
253
 
976
- ```js
977
- {
978
- promoCode?: {
979
- promoCodeButton?: string
980
- inputPlaceHolder?: string
981
- apply?: string
982
- cancel?: string
983
- mainButton?: string
984
- title?: string
985
- }
986
- getTicketsButton?: string
987
- title?: string
988
- waitingList?: {
989
- title?: string
990
- firstName?: string
991
- lastName?: string
992
- email?: string
993
- button?: string
994
- successTitle?: string
995
- successMessage?: string
996
- }
997
- loggedInTexts?: {
998
- logoutDialog?: {
999
- title?: string
1000
- message?: string
1001
- confirmButton?: string
1002
- cancelButton?: string
1003
- }
1004
- myOrderButtonText?: string
1005
- logOutButtonText?: string
1006
- }
1007
- listItem?: {
1008
- soldOut?: string
1009
- salesNotStarted?: string
1010
- salesEnded?: string
1011
- inclFees?: string
1012
- exclFees?: string
1013
- free?: string
1014
- ticket?: string
1015
- }
1016
- enterPassword?: {
1017
- inputLabel?: string
1018
- title?: string
1019
- buttonText?: string
1020
- }
1021
- }
254
+ ```tsx
255
+ <EmbeddedCheckout eventId={eventId} confirmationChildren={<MyRewards />} />
1022
256
  ```
1023
257
 
1024
- ---
1025
-
1026
- ## BillingInfo UI
1027
-
1028
- Import the component from the library
1029
-
1030
- ```js
1031
- import { BillingInfo } from 'tf-checkout-react-native'
1032
- ```
258
+ Native adaptations, and why:
1033
259
 
1034
- Add it to the render function.
260
+ - **No SVG.** The tree is positioned `View`s, from the same shared layout the
261
+ web SVG uses. Adding `react-native-svg` would be a new native peer for every
262
+ customer app; a dot-and-line picture does not need one.
263
+ - **One share button.** Per-channel buttons collapse into `Share.share()` — the
264
+ OS sheet already lists every installed app, which is what the web's share
265
+ sheet channel reaches for through the browser.
266
+ - **Copy comes in as props**, this package's idiom. `translate`, or `locale` and
267
+ `messages` for the built-in `rewards.*` catalogue.
1035
268
 
1036
- ```js
1037
- const sessionHandleRef = useRef<SessionHandleType>(null)
269
+ ## Known gaps vs web
1038
270
 
271
+ - **Seat maps** — the seat-picker view is a placeholder until the native picker
272
+ (WebView + seats.io) lands. Non-seated events are unaffected.
273
+ - **Smooth scroll** — no `scrollIntoView` equivalent, so `autoScroll` has no
274
+ native counterpart.
1039
275
 
1040
- <BillingInfo
1041
- ref={sessionHandleRef}
1042
- cartProps: {
1043
- isBillingRequired: boolean
1044
- isNameRequired: boolean
1045
- isAgeRequired: boolean
1046
- isPhoneRequired: boolean
1047
- minimumAge: number
1048
- }
1049
- // registerNewUser
1050
- onRegisterSuccess?: (data: {
1051
- accessTokenData: {
1052
- accessToken: string
1053
- refreshToken: string
1054
- tokenType: string
1055
- scope: string
1056
- }
1057
- userProfile: {
1058
- firstName: string
1059
- lastName: string
1060
- email: string
1061
- }
1062
- }) => void
1063
- onRegisterError?: (error: {
1064
- isAlreadyRegistered?: boolean
1065
- message?: string
1066
- raw?: any
1067
- }) => void
1068
-
1069
- onCheckoutSuccess: (data: {
1070
- id: string
1071
- hash: string
1072
- total: string
1073
- status: string
1074
- }) => void
1075
- onCheckoutError?: (error: IError) => void
1076
-
1077
- // See ILoginSuccessData data type below.
1078
- onLoginSuccess: (data: ILoginSuccessData) => void
1079
- onLoginError?: (error: IError) => void
1080
-
1081
- onFetchUserProfileSuccess?: (data: any) => void
1082
- onFetchUserProfileError?: (error: IError) => void
1083
-
1084
- //fetchCart
1085
- onFetchCartError?: (error: IError) => void
1086
- onFetchCartSuccess?: () => void
1087
-
1088
- // fetchCountries
1089
- onFetchCountriesError?: (error: IError) => void
1090
- onFetchCountriesSuccess?: (data: {
1091
- code: string
1092
- id: string
1093
- name: string
1094
- }[]) => void
1095
-
1096
- // fetchState
1097
- onFetchStatesError?: (error: IError) => void
1098
- onFetchStatesSuccess?: () => void
1099
-
1100
- // fetch Token
1101
- onFetchAccessTokenError?: (error: IError) => void
1102
- onFetchAccessTokenSuccess?: () => void
1103
-
1104
- styles?: IBillingInfoViewStyles
1105
- texts?: IBillingInfoViewTexts
1106
-
1107
- styles?: IBillingInfoViewStyles
1108
- texts?: IBillingInfoViewTexts
1109
-
1110
- // Configure the skipping component visible, when isBillingRequired is false
1111
- skipBillingConfig?: {
1112
- styles?: {
1113
- rootContainer?: StyleProp<ViewStyle>
1114
- dialogContainer?: StyleProp<ViewStyle>
1115
- brandImage?: StyleProp<ImageStyle>
1116
- text?: StyleProp<TextStyle>
1117
- activityIndicator?: {
1118
- color?: ColorValue
1119
- size?: 'large' | 'small'
1120
- }
1121
- }
1122
- brandImage?: ImageSourcePropType
1123
- isActivityIndicatorVisible?: boolean
1124
- }
276
+ ## Development
1125
277
 
1126
- loginBrandImages?: {
1127
- containerStyle?: StyleProp<ViewStyle>
1128
- image1?: ImageSourcePropType
1129
- image1Style?: StyleProp<ImageStyle>
1130
- image2?: ImageSourcePropType
1131
- image2Style?: StyleProp<ImageStyle>
1132
- }
278
+ From the repo root:
1133
279
 
1134
- config?: {
1135
- isCheckoutAlwaysButtonEnabled?: boolean
1136
- shouldHideTicketHolderSectionOnSingleTicket?: boolean
1137
- }
1138
- />
280
+ ```bash
281
+ pnpm run start:react-native
1139
282
  ```
1140
283
 
1141
- ### DataTypes
1142
-
1143
- ILoginSuccessData
284
+ `pnpm run playground:react-native` opens the playground mode instead.
1144
285
 
1145
- ```ts
1146
- interface ILoginSuccessData {
1147
- userProfile: {
1148
- customerId: string
1149
- firstName: string
1150
- lastName: string
1151
- email: string
1152
- phone: string
1153
- streetAddress: string
1154
- zipCode: string
1155
- countryId: string
1156
- company?: string
1157
- state: string
1158
- stateId: string
1159
- city: string
1160
- }
1161
- accessTokenData?: {
1162
- accessToken: string
1163
- refreshToken: string
1164
- tokenType: string
1165
- scope: string
1166
- }
1167
- }
1168
- ```
286
+ Both need a dev client. Build one with:
1169
287
 
1170
- ### Props
1171
-
1172
- | Property | Description |
1173
- | ----------------- | ----------------------------------------------------------------------------------- |
1174
- | cartProps | Received from the Tickets component |
1175
- | onCheckoutSuccess | Will return Order data from the Checkout action |
1176
- | loginBrandImages |  Receives styles and images sources to show in the `Login` component |
1177
- | skipBillingConfig | Configure the skipping component, visible when `isBillingRequired` is set to false  |
1178
-
1179
- ### texts
1180
-
1181
- ```js
1182
- interface IBillingInfoViewTexts {
1183
- loginTexts?: ILoginViewTexts
1184
- checkoutButton?: string
1185
- skippingMessage?: string
1186
- invalidPhoneNumberError?: string
1187
- form?: {
1188
- firstName?: string
1189
- lastName?: string
1190
- email?: string
1191
- confirmEmail?: string
1192
- password?: string
1193
- confirmPassword?: string
1194
- phone?: string
1195
- street?: string
1196
- city?: string
1197
- country?: string
1198
- state?: string
1199
- zipCode?: string
1200
- dateOfBirth?: string
1201
- isSubToBrand?: string // your brand's checkbox label
1202
- ticketHoldersTitle?: string
1203
- ticketHolderItem?: string
1204
- holderFirstName?: string
1205
- holderLastName?: string
1206
- holderEmail?: string
1207
- holderPhone?: string
1208
- getYourTicketsTitle?: string
1209
- emailsAdvice?: string
1210
- choosePassword?: string
1211
- optional?: string
1212
- phoneInput?: {
1213
- label?: string
1214
- customError?: string
1215
- }
1216
- ttfPrivacyPolicyRequiredError?: string
1217
- }
1218
- cartTimer?: {
1219
- message?: string
1220
- }
1221
- }
288
+ ```bash
289
+ cd example && pnpm run ios
1222
290
  ```
1223
291
 
1224
- ### styles
1225
-
1226
- ```js
1227
- interface IBillingInfoViewStyles {
1228
- rootContainer?: StyleProp<ViewStyle>
1229
- loginStyles?: ILoginViewStyles
1230
- checkoutButton?: IButtonStyles
1231
- checkoutButtonDisabled?: IButtonStyles
1232
- passwordTitle?: StyleProp<TextStyle>
1233
-
1234
- inputStyles?: IInputStyles
1235
- dropdownStyles?: IDropdownStyles
1236
- dropdownMaterialStyles?: {
1237
- container?: StyleProp<ViewStyle>
1238
- button?: StyleProp<ViewStyle>
1239
- icon?: StyleProp<ImageStyle>
1240
- label?: StyleProp<TextStyle>
1241
- dialog?: StyleProp<ViewStyle>
1242
- flatListContainer?: StyleProp<ViewStyle>
1243
- listItem?: {
1244
- container?: StyleProp<ViewStyle>
1245
- button?: StyleProp<ViewStyle>
1246
- buttonSelected?: StyleProp<ViewStyle>
1247
- text?: StyleProp<TextStyle>
1248
- textSelected?: StyleProp<TextStyle>
1249
- }
1250
- input?: IInputStyles
1251
- }
1252
-
1253
- checkboxStyles?: {
1254
- container?: StyleProp<ViewStyle>
1255
- content?: StyleProp<ViewStyle>
1256
- indicator?: StyleProp<ViewStyle>
1257
- indicatorDisabled?: StyleProp<ViewStyle>
1258
- text?: StyleProp<TextStyle>
1259
- box?: StyleProp<ViewStyle>
1260
- icon?: StyleProp<ImageStyle>
1261
- error?: StyleProp<TextStyle>
1262
- }
1263
-
1264
- screenTitle?: StyleProp<TextStyle>
1265
- ticketHoldersTitle?: StyleProp<TextStyle>
1266
- ticketHolderItemHeader?: StyleProp<TextStyle>
1267
-
1268
- texts?: StyleProp<TextStyle>
1269
- customCheckbox?: ICheckboxStyles
1270
-
1271
- datePicker?: IDatePickerStyles
1272
-
1273
- privacyPolicyLinkStyle?: StyleProp<TextStyle>
1274
-
1275
- phoneInputStyles?: {
1276
- rootContainer?: StyleProp<ViewStyle>
1277
- errorColor?: ColorValue
1278
- country?: {
1279
- container?: StyleProp<ViewStyle>
1280
- button?: StyleProp<ViewStyle>
1281
- }
1282
- input?: IInputStyles
1283
- }
1284
-
1285
- cartTimer?: {
1286
- rootContainer?: StyleProp<ViewStyle>
1287
- contentContainer?: StyleProp<ViewStyle>
1288
- textsContainer?: StyleProp<ViewStyle>
1289
- icon?: StyleProp<ImageStyle>
1290
- message?: StyleProp<TextStyle>
1291
- time?: StyleProp<TextStyle>
1292
- }
292
+ Set credentials in `example/.env` (`EXPO_PUBLIC_`-prefixed); see
293
+ `example/.env.example`.
1293
294
 
1294
- privacyPolicyLinkStyle?: StyleProp<TextStyle>
1295
- }
1296
- ```
295
+ The example's `metro.config.js` pins React, react-query, and Stripe to single
296
+ copies. That is a **workspace-only** concern — it exists because the example
297
+ consumes the library through a symlink. Consumers installing from npm need
298
+ nothing of the sort.
1297
299
 
1298
300
  ---
1299
301
 
1300
- ## Checkout UI
1301
-
1302
- Import the component from the library
1303
-
1304
- ```js
1305
- import { Checkout } from 'tf-checkout-react-native'
1306
- ```
1307
-
1308
- Add it to the render function.
1309
-
1310
- ```js
1311
- const sessionHandleRef = useRef<SessionHandleType>(null)
1312
-
1313
- <Checkout
1314
- ref={sessionHandleRef}
1315
- hash={hash}
1316
- total={total}
1317
- onPaymentSuccess={handleOnPaymentSuccess}
1318
- onPressExit={handleStripeError}
1319
- areLoadingIndicatorsEnabled={false}
1320
- styles={styles}
1321
- {...props}
1322
- />
1323
- ```
1324
-
1325
- ### Props
1326
-
1327
- ```js
1328
- {
1329
- ref?: SessionHandleType
1330
- hash: string
1331
- total: string
1332
-
1333
- onFetchOrderReviewError?: (error: IError) => void
1334
- onFetchOrderReviewSuccess?: (data: any) => void
1335
-
1336
- onFetchEventConditionsError?: (error: IError) => void
1337
- onFetchEventConditionsSuccess?: (data: any) => void
1338
-
1339
- onCheckoutCompletedSuccess?: (data: any) => void
1340
- onCheckoutCompletedError?: (error: IError) => void
1341
-
1342
- onPaymentSuccess: (data: any) => void
1343
- onPaymentError?: (error: IError) => void
1344
-
1345
- onStripeInitializeError?: (error: string) => void
1346
-
1347
- onPressExit: () => void
1348
-
1349
- texts?: {
1350
- title?: string
1351
- subTitle?: string
1352
- missingStripeConfigMessage?: string
1353
- exitButton?: string
1354
- payButton?: string
1355
- freeRegistrationButton?: string
1356
- providePaymentInfo?: string
1357
- orderReviewItems?: {
1358
- event?: string
1359
- ticketType?: string
1360
- numberOfTickets?: string
1361
- price?: string
1362
- total?: string
1363
- }
1364
- cartTimer?: {
1365
- message?: string
1366
- }
1367
- }
1368
-
1369
- styles?: ICheckoutStyles
1370
-
1371
- onLoadingChange?: (isLoading: boolean) => void
1372
- onSkippingStatusChange?: (status: | 'skipping'
1373
- | 'fail'
1374
- | 'success'
1375
- | 'false'
1376
- | undefined) => void
1377
- areAlertsEnabled?: boolean
1378
- areLoadingIndicatorsEnabled?: boolean
1379
- }
1380
- ```
1381
-
1382
- | Property | Description |
1383
- | --------------------------- | ------------------------------------------------------------------------------- |
1384
- | hash | retrieved from the `onCheckoutSuccess` callback in the `BillingInfo`component.  |
1385
- | total | retrieved from the `onCheckoutSuccess` callback in the `BillingInfo` component. |
1386
- | onPaymentSuccess | will handle the success in the payment process. Will return the `hash`. |
1387
- | areLoadingIndicatorsEnabled | whether or not show the Loading Indicator, `default: true`. |
1388
- | areAlertsEnabled | whether or not show the Error Alerts, `default: true`. |
1389
-
1390
- _Note: If the you need to modify the card container, use the `styles.payment.cardContainer` prop. Useful if the card is to short and the zip code is not visible._
1391
-
1392
- ### styles
1393
-
1394
- ```ts
1395
- {
1396
- rootStyle?: ViewStyle
1397
- title?: StyleProp<TextStyle>
1398
- subTitle?: StyleProp<TextStyle>
1399
- missingStripeConfig?: {
1400
- container?: StyleProp<ViewStyle>
1401
- message?: StyleProp<TextStyle>
1402
- exitButton?: IButtonStyles
1403
- }
1404
- freeRegistrationButton?: IButtonStyles
1405
- orderReview?: IOrderReviewStyles
1406
- payment?: {
1407
- container?: StyleProp<ViewStyle>
1408
- title?: StyleProp<TextStyle>
1409
- cardBackgroundColor?: string
1410
- cardContainer?: StyleProp<ViewStyle>
1411
- button?: IButtonStyles
1412
- buttonDisabled?: IButtonStyles
1413
- }
1414
- cartTimer?: {
1415
- rootContainer?: StyleProp<ViewStyle>
1416
- contentContainer?: StyleProp<ViewStyle>
1417
- textsContainer?: StyleProp<ViewStyle>
1418
- icon?: StyleProp<ImageStyle>
1419
- message?: StyleProp<TextStyle>
1420
- time?: StyleProp<TextStyle>
1421
- }
1422
- }
1423
- ```
1424
-
1425
- ### Stripe
1426
-
1427
- Currently, Stripe card is not customizable. Please see the open issues in their Github.
1428
-
1429
- - [563](https://github.com/stripe/stripe-react-native/issues/563)
1430
- - [285](https://github.com/stripe/stripe-react-native/issues/285)
1431
-
1432
- Additionally, if you are encountering problems with building your project, please take a look at the [Stripe troubleshooting](https://github.com/stripe/stripe-react-native#troubleshooting).
1433
-
1434
- ## Purchase Confirmation UI
1435
-
1436
- Import the component from the library
1437
-
1438
- ```js
1439
- import { PurchaseConfirmation, SessionHandleType } from 'tf-checkout-react-native'
1440
- ```
1441
-
1442
- Add it to the render function.
1443
-
1444
- ```ts
1445
- const sessionHandleRef = useRef<SessionHandleType>(null)
1446
-
1447
- <PurchaseConfirmation
1448
- ref={sessionHandleRef}
1449
- orderHash={checkoutProps!.hash}
1450
- onComplete={handleOnComplete}
1451
-
1452
- styles?: {
1453
- rootContainer?: StyleProp<ViewStyle>
1454
- title?: StyleProp<TextStyle>
1455
-
1456
- message?: {
1457
- container?: StyleProp<ViewStyle>
1458
- line1?: StyleProp<TextStyle>
1459
- line2?: StyleProp<TextStyle>
1460
- }
1461
- exitButton?: {
1462
- container?: StyleProp<ViewStyle>
1463
- button?: StyleProp<ViewStyle>
1464
- text?: StyleProp<TextStyle>
1465
- }
1466
- }
1467
-
1468
- texts?: {
1469
- title?: string
1470
- message?: {
1471
- line1?: string
1472
- line2?: string
1473
- }
1474
- exitButton?: string
1475
- }
1476
- />
1477
- ```
1478
-
1479
- ### Props
1480
-
1481
- | Property | Description |
1482
- | ---------- | -------------------------------------------------------------------------------------------------------------------- |
1483
- | orderHash | The `hash` returned in the `BillingInfo` component |
1484
- | onComplete | To handle the completion of the flow. Here you can handle the unmount of the component or navigate to another screen |
1485
- | styles | Styles for the component |
1486
- | texts | Texts for the component |
1487
-
1488
- ---
1489
-
1490
- ## My Orders UI
1491
-
1492
- If there is a valid session, there will appear a button to access `MyOrders` in the `Tickets` component.
1493
-
1494
- Import the component from the library.
1495
-
1496
- ```js
1497
- import { MyOrders, SessionHandleType } from 'tf-checkout-react-native'
1498
- ```
1499
-
1500
- ### Props
1501
-
1502
- ```ts
1503
- {
1504
- ref={SessionHandleType}
1505
- onSelectOrder: (order: {
1506
- order: {
1507
- header: {
1508
- currency: string
1509
- date: string
1510
- eventEndDate: string
1511
- eventId: string
1512
- eventName: string
1513
- eventSalesEndDate: string
1514
- eventSalesStartDate: string
1515
- eventStartDate: string
1516
- eventUrl: string
1517
- hideVenueUntil: string | null
1518
- id: string
1519
- image: string
1520
- isReferralDisabled: boolean
1521
- isVenueHidden: boolean
1522
- salesReferred: string
1523
- shareLink: string
1524
- timeZone: string
1525
- total: string
1526
- venue: {
1527
- city: string
1528
- country: string
1529
- googlePlaceId?: string
1530
- latitude?: string
1531
- longitude?: string
1532
- name?: string
1533
- postalCode?: string
1534
- state: string
1535
- street?: string
1536
- streetNumber?: string
1537
- }
1538
- },
1539
- items: [
1540
- {
1541
- name: string
1542
- currency: string
1543
- price: string
1544
- discount: string
1545
- quantity: string
1546
- total: string
1547
- },
1548
- {...}
1549
- ],
1550
- tickets: [
1551
- {
1552
- hash: string
1553
- ticketType: string
1554
- holderName?: string
1555
- holderEmail?: string
1556
- holderPhone?: string
1557
- status: string
1558
- pdfLink?: string
1559
- qrData?: string
1560
- isSellable?: boolean
1561
- description?: string
1562
- descriptionPlain?: string
1563
- },
1564
- {...}
1565
- ]
1566
- }
1567
- }) => void
1568
-
1569
- onFetchMyOrdersSuccess?: (data: IMyOrdersData) => void
1570
- onFetchMyOrdersError?: (error: IError) => void
1571
-
1572
- onFetchOrderDetailsSuccess?: (data: IMyOrderDetailsData) => void
1573
- onFetchOrderDetailsError?: (error: IError) => void
1574
-
1575
- onLoadingChange?: (isLoading: boolean) => void
1576
-
1577
- styles?: {
1578
- orderListItem?: IOrderListItemStyles
1579
- safeArea?: StyleProp<ViewStyle>
1580
- listContainer?: StyleProp<ViewStyle>
1581
- eventsContainer?: StyleProp<ViewStyle>
1582
- eventsTitle?: StyleProp<TextStyle>
1583
- refreshControlColor?: ColorValue
1584
- eventsDropdown?: IDropdownStyles
1585
- rootContainer?: StyleProp<ViewStyle>
1586
- eventsSelectionContainer?: StyleProp<ViewStyle>
1587
- clearEventSelectionIcon?: StyleProp<ImageStyle>
1588
- timeFilters?: {
1589
- container?: StyleProp<ViewStyle>
1590
- dropdown?: IDropdownStyles
1591
- selectionContainer?: StyleProp<ViewStyle>
1592
- clearSelectionIcon?: StyleProp<ImageStyle>
1593
- }
1594
- }
1595
- config?: {
1596
- isEventsDropdownHidden?: boolean
1597
- areActivityIndicatorsEnabled?: boolean
1598
- areAlertsEnabled?: boolean
1599
- isTimeFilterDropdownHidden?: boolean
1600
- }
1601
- texts?: {
1602
- selectEventPlaceholder?: string
1603
- selectTimeFilterPlaceholder?: string
1604
- title?: string
1605
- timeFilters?: {
1606
- upcoming?: string
1607
- ongoingAndUpcoming?: string
1608
- ongoing?: string
1609
- past?: string
1610
- }
1611
- }
1612
- }
1613
- ```
1614
-
1615
- IMyOrdersData
1616
-
1617
- ```ts
1618
- {
1619
- events: {
1620
- event_name: string
1621
- url_name: string
1622
- }[]
1623
- orders: {
1624
- amount: string
1625
- currency: string
1626
- date: string
1627
- eventEndDate: string
1628
- eventId: string
1629
- eventName: string
1630
- eventSalesEndDate: string
1631
- eventSalesStartDate: string | null
1632
- eventStartDate: string
1633
- eventUrl: string
1634
- hideVenue: boolean
1635
- hideVenueUntil: string | null
1636
- id: string
1637
- image: string
1638
- timezone: string
1639
- venueCity: string
1640
- venueCountry: string
1641
- venueGooglePlaceId?: string
1642
- venueLatitude?: string
1643
- venueLongitude?: string
1644
- venueName?: string
1645
- venuePostalCode?: string
1646
- venueState: string
1647
- venueStreet?: string
1648
- venueStreetNumber?: string
1649
- }[]
1650
- //Those mark with ? are only included if the venue is not hidden
1651
- filter?: string
1652
- brandFilter?: string
1653
- subBrands?: boolean
1654
- pagination: {
1655
- page: number
1656
- limit: number
1657
- totalCount: number
1658
- totalPages: number
1659
- }
1660
- }
1661
- ```
1662
-
1663
- IMyOrderDetailsData
1664
-
1665
- ```ts
1666
- {
1667
- header: {
1668
- currency: string
1669
- date: string
1670
- eventEndDate: string
1671
- eventId: string
1672
- eventName: string
1673
- eventSalesEndDate: string
1674
- eventSalesStartDate: string
1675
- eventStartDate: string
1676
- eventUrl: string
1677
- hideVenueUntil: string | null
1678
- id: string
1679
- image: string
1680
- isReferralDisabled: boolean
1681
- isVenueHidden: boolean
1682
- salesReferred: string
1683
- shareLink: string
1684
- timeZone: string
1685
- total: string
1686
- venue: {
1687
- city: string
1688
- country: string
1689
- googlePlaceId?: string
1690
- latitude?: string
1691
- longitude?: string
1692
- name?: string
1693
- postalCode?: string
1694
- state: string
1695
- street?: string
1696
- streetNumber?: string
1697
- }
1698
- //Those mark with ? are only included if the venue is not hidden
1699
- }
1700
- items?: {
1701
- currency: string
1702
- discount: string
1703
- hash: string
1704
- isActive: boolean
1705
- name: string
1706
- price: string
1707
- quantity: string
1708
- total: string
1709
- }[]
1710
- tickets: {
1711
- currency: string
1712
- description: string
1713
- descriptionPlain?: string
1714
- eventName: string
1715
- hash: string
1716
- holderEmail?: string
1717
- holderName: string
1718
- holderPhone?: string
1719
- isOnSale: boolean
1720
- isSellable: boolean
1721
- isTable: boolean
1722
- pdfLink: string
1723
- qrData: string
1724
- resaleFeeAmount: number
1725
- status: string
1726
- ticketType: string
1727
- ticketTypeHash: string
1728
- }[]
1729
- }
1730
- ```
1731
-
1732
- ### styles
1733
-
1734
- ```js
1735
- {
1736
- orderListItem?: {
1737
- rootContainer?: StyleProp<ViewStyle>
1738
- contentContainer?: StyleProp<ViewStyle>
1739
- infoContainer?: StyleProp<ViewStyle>
1740
- infoTopContainer?: StyleProp<ViewStyle>
1741
- infoBottomContainer?: StyleProp<ViewStyle>
1742
- imageContainer?: StyleProp<ViewStyle>
1743
- image?: StyleProp<ImageStyle>
1744
- infoRootContainer?: StyleProp<ViewStyle>
1745
- iconNextContainer?: StyleProp<ViewStyle>
1746
- iconNext?: StyleProp<ImageStyle>
1747
- orderId?: StyleProp<TextStyle>
1748
- orderDate?: StyleProp<TextStyle>
1749
- eventName?: StyleProp<TextStyle>
1750
- priceContainer?: StyleProp<ViewStyle>
1751
- price?: StyleProp<TextStyle>
1752
- currency?: StyleProp<TextStyle>
1753
- }
1754
- safeArea?: StyleProp<ViewStyle>
1755
- listContainer?: StyleProp<ViewStyle>
1756
- eventsContainer?: StyleProp<ViewStyle>
1757
- eventsTitle?: StyleProp<TextStyle>
1758
- refreshControlColor?: ColorValue
1759
- eventsDropdown?: {
1760
- container?: StyleProp<ViewStyle>
1761
- button?: StyleProp<ViewStyle>
1762
- icon?: StyleProp<ImageStyle>
1763
- label?: StyleProp<TextStyle>
1764
- dialog?: StyleProp<ViewStyle>
1765
- flatListContainer?: StyleProp<ViewStyle>
1766
- listItem?: {
1767
- container?: StyleProp<ViewStyle>
1768
- button?: StyleProp<ViewStyle>
1769
- buttonSelected?: StyleProp<ViewStyle>
1770
- text?: StyleProp<TextStyle>
1771
- textSelected?: StyleProp<TextStyle>
1772
- }
1773
-
1774
- }
1775
- rootContainer?: StyleProp<ViewStyle>
1776
- eventsSelectionContainer?: StyleProp<ViewStyle>
1777
- clearEventSelectionIcon?: StyleProp<ImageStyle>
1778
- }
1779
- ```
1780
-
1781
- ---
1782
-
1783
- ## MyOrder Details UI
1784
-
1785
- When user selects an order from the `MyOrders` component, will show it details.
1786
-
1787
- Import the component from the library.
1788
-
1789
- ```js
1790
- import { MyOrderDetails, SessionHandleType } from 'tf-checkout-react-native'
1791
- ```
1792
-
1793
- ### Props
1794
-
1795
- ```tsx
1796
- {
1797
- ref={SessionHandleType}
1798
- data: IMyOrderDetailsData
1799
-
1800
- // Used to navigate to the Resale Tickets screen
1801
- onPressResaleTicket: (
1802
- ticket: IMyOrderDetailsTicket,
1803
- isTicketTypeActive: boolean
1804
- ) => void
1805
-
1806
- onRemoveTicketFromResaleSuccess: (message: string) => void
1807
-
1808
- onRemoveTicketFromResaleError?: (error: IError) => void
1809
-
1810
-
1811
- config?: {
1812
- areActivityIndicatorsEnabled?: boolean
1813
- areAlertsEnabled?: boolean
1814
- }
1815
- onDownloadStatusChange?: (status?:
1816
- 'downloading' |
1817
- 'downloaded' |
1818
- 'failed'
1819
- ) => void
1820
- downloadStatusIcons?: {
1821
- success?: ImageSourcePropType
1822
- error?: ImageSourcePropType
1823
- }
1824
- onAndroidWritePermission?: (permission?: boolean) => void
1825
- onLinkCopied?: (copied?: boolean) => void
1826
-
1827
- moreButtonIcon?: StyleProp<ImageStyle>
1828
-
1829
- ticketActionsIcons?: {
1830
- downloadPdf?: ImageSourcePropType
1831
- sell?: ImageSourcePropType
1832
- removeFromSale?: ImageSourcePropType
1833
- refund?: ImageSourcePropType
1834
- }
1835
-
1836
- styles?: {
1837
- rootContainer?: StyleProp<ViewStyle>
1838
- header?: {
1839
- container?: StyleProp<ViewStyle>
1840
- title?: StyleProp<TextStyle>
1841
- subTitle?: StyleProp<TextStyle>
1842
-
1843
- shareLink?: {
1844
- container?: StyleProp<ViewStyle>
1845
- text?: StyleProp<TextStyle>
1846
- link?: StyleProp<TextStyle>
1847
- copyContainer?: StyleProp<ViewStyle>
1848
- copyText?: StyleProp<TextStyle>
1849
- copyIcon?: StyleProp<ImageStyle>
1850
- copyIconTint?: ColorValue
1851
- copyIconTintActive?: ColorValue
1852
- message?: StyleProp<TextStyle>
1853
- referrals?: StyleProp<TextStyle>
1854
- referralValue?: StyleProp<TextStyle>
1855
- }
1856
- }
1857
- section0Footer?: {
1858
- container?: StyleProp<ViewStyle>
1859
- label?: StyleProp<TextStyle>
1860
- value?: StyleProp<TextStyle>
1861
- }
1862
- sectionHeader?: StyleProp<TextStyle>
1863
-
1864
- listItem?: {
1865
- container?: StyleProp<ViewStyle>
1866
- innerLeftContainer?: StyleProp<ViewStyle>
1867
- innerRightContainer?: StyleProp<ViewStyle>
1868
- rowPlaceholder?: StyleProp<TextStyle>
1869
- rowValue?: StyleProp<TextStyle>
1870
- }
1871
- ticketItem?: {
1872
- rootContainer?: StyleProp<ViewStyle>
1873
- leftContent?: StyleProp<ViewStyle>
1874
- rightContent?: StyleProp<ViewStyle>
1875
- rowPlaceholder?: StyleProp<TextStyle>
1876
- rowValue?: StyleProp<TextStyle>
1877
- downloadButton?: IButtonStyles
1878
- moreButton?: StyleProp<ViewStyle>
1879
- moreButtonIcon?: StyleProp<ImageStyle>
1880
- }
1881
- downloadButton?: {
1882
- container?: StyleProp<ViewStyle>
1883
- button?: StyleProp<ViewStyle>
1884
- text?: StyleProp<TextStyle>
1885
- }
1886
- bottomSheetModal?: {
1887
- rootContainer?: StyleProp<ViewStyle>
1888
- headerContainer?: StyleProp<ViewStyle>
1889
- content?: StyleProp<ViewStyle>
1890
- title?: StyleProp<TextStyle>
1891
- closeButton?: StyleProp<ViewStyle>
1892
- closeButtonIcon?: StyleProp<ImageStyle>
1893
- contentContainer?: StyleProp<ViewStyle>
1894
- }
1895
- ticketActions?: {
1896
- rootScrollViewContainer?: StyleProp<ViewStyle>
1897
- buttonContainer?: StyleProp<ViewStyle>
1898
- buttonContent?: StyleProp<ViewStyle>
1899
- icon?: StyleProp<ImageStyle>
1900
- text?: StyleProp<TextStyle>
1901
- }
1902
- texts?: {
1903
- title?: string
1904
- subTitle?: string
1905
- referralLink?: string
1906
- referral?: {
1907
- soFar?: string
1908
- tickets?: string
1909
- }
1910
- listItem?: {
1911
- title?: string
1912
- ticketType?: string
1913
- price?: string
1914
- quantity?: string
1915
- total?: string
1916
- }
1917
- ticketItem?: {
1918
- ticketType: string
1919
- holderName: string
1920
- ticketId: string
1921
- status: string
1922
- download: string
1923
- sellTicket: string
1924
- removeTicketFromResale: string
1925
- }
1926
- downloadNotification?: {
1927
- successMessage?: string
1928
- errorMessage?: string
1929
- }
1930
- copyText?: {
1931
- copy?: string
1932
- copied?: string
1933
- }
1934
- sellTicket?: string
1935
- removeTicketFromResale?: string
1936
- ticketsTitle?: string
1937
-
1938
- bottomSheetModal?: {
1939
- title?: string
1940
- }
1941
- ticketActions?: {
1942
- downloadPdf?: string
1943
- sell?: string
1944
- removeFromSale?: string
1945
- refund?: string
1946
- }
1947
- }
1948
- }
1949
- ```
1950
-
1951
- ## Resale Tickets UI
1952
-
1953
- Allows the user to resale the tickets they bought. They can decide wether sell it to a friend or to any other user.
1954
-
1955
- Import the component from the library.
1956
-
1957
- ```js
1958
- import { ResaleTickets, SessionHandleType } from 'tf-checkout-react-native'
1959
- ```
1960
-
1961
- ### Props
1962
-
1963
- ```ts
1964
- {
1965
- ref={SessionHandleType}
1966
- ticket: {
1967
- currency: string
1968
- description: string
1969
- descriptionPlain?: string
1970
- eventName: string
1971
- hash: string
1972
- holderEmail?: string
1973
- holderName: string
1974
- holderPhone?: string
1975
- isOnSale: boolean
1976
- isSellable: boolean
1977
- pdfLink: string
1978
- qrData: string
1979
- resaleFeeAmount: number
1980
- status: string
1981
- ticketType: string
1982
- }
1983
- styles?: {
1984
- rootContainer?: StyleProp<ViewStyle>
1985
- title?: StyleProp<TextStyle>
1986
- terms?: IResaleTermsStyles
1987
- resaleTicketsButton?: IButtonStyles
1988
- resaleTicketsButtonDisabled?: IButtonStyles
1989
- resaleTicketsButtonLoading?: IButtonStyles
1990
- ticketOrderDetails?: ITicketOrderDetailsStyles
1991
- ticketBuyerForm?: ITicketBuyerFormStyles
1992
- termsCheckbox?: ICheckboxStyles
1993
- }
1994
- onResaleTicketsSuccess: (
1995
- resaleTicketData: {
1996
- message: string
1997
- },
1998
- ticket: {
1999
- currency: string
2000
- description: string
2001
- descriptionPlain?: string
2002
- eventName: string
2003
- hash: string
2004
- holderEmail?: string
2005
- holderName: string
2006
- holderPhone?: string
2007
- isOnSale: boolean
2008
- isSellable: boolean
2009
- pdfLink: string
2010
- qrData: string
2011
- resaleFeeAmount: number
2012
- status: string
2013
- ticketType: string
2014
- }
2015
- ) => void
2016
- onResaleTicketsError?: (error: {
2017
- code?: number
2018
- message: string
2019
- extraData?: any
2020
- }) => void
2021
- config?: {
2022
- areAlertsEnabled?: boolean
2023
- areActivityIndicatorsEnabled?: boolean
2024
- }
2025
- texts?: {
2026
- title?: string
2027
- orderDetails?: {
2028
- title?: string
2029
- eventName?: string
2030
- orderedBy?: string
2031
- orderId?: string
2032
- }
2033
- sellToWhom?: {
2034
- title?: string
2035
- friend?: string
2036
- anyone?: string
2037
- }
2038
- friendForm?: {
2039
- firstName?: string
2040
- lastName?: string
2041
- email?: string
2042
- emailConfirm?: string
2043
- }
2044
- terms?: {
2045
- title?: string
2046
- paragraph1?: string
2047
- paragraph2_1?: string
2048
- paragraph2_2?: string
2049
- paragraph3_1?: string
2050
- paragraph3_2?: string
2051
- }
2052
- agree?: string
2053
- resaleTicketsButton?: string
2054
- }
2055
- }
2056
- ```
2057
-
2058
- ## Reset Password UI
2059
-
2060
- After opening and URL with the corresponding schema and token, use this component to let the user reset its password.
2061
-
2062
- ### Usage
2063
-
2064
- Import the component from the library.
2065
-
2066
- ```ts
2067
- import { ResetPassword } from 'tf-checkout-react-native'
2068
- ```
2069
-
2070
- Then add it to the render function.
2071
-
2072
- ```xml
2073
- <ResetPassword
2074
- styles={myStyles}
2075
- token={resetToken}
2076
- onPressResetButton={handleOnPressResetButton}
2077
- onPressCancelButton={handleOnPressCancelButton}
2078
- onResetPasswordSuccess={handleOnResetPasswordSuccess}
2079
- onResetPasswordError={handleOnResetPasswordError}
2080
- />
2081
- ```
2082
-
2083
- ### Props
2084
-
2085
- ```ts
2086
- {
2087
- token: string
2088
- styles?: {
2089
- rootContainer?: StyleProp<ViewStyle>
2090
- contentContainer?: StyleProp<ViewStyle>
2091
- title?: StyleProp<TextStyle>
2092
- resetButton?: IButtonStyles
2093
- cancelButton?: IButtonStyles
2094
- input?: IInputStyles
2095
- apiError?: StyleProp<TextStyle>
2096
- apiSuccess?: StyleProp<TextStyle>
2097
- }
2098
- texts?: {
2099
- title?: string
2100
- resetButton?: string
2101
- cancelButton?: string
2102
- newPasswordLabel?: string
2103
- confirmNewPasswordLabel?: string
2104
- }
2105
- onResetPasswordSuccess?: (data: {
2106
- message: string
2107
- status?: number
2108
- }) => void
2109
- onResetPasswordError?: (error: {
2110
- code?: number
2111
- message: string
2112
- extraData?: any
2113
- }) => void
2114
- onPressResetButton?: () => void
2115
- onPressCancelButton?: () => void
2116
- }
2117
- ```
2118
-
2119
- # Core Components
2120
-
2121
- **⚠️ Remember that you first need to set your configuration using the [setConfig](#set-your-configuration)
2122
- function. ⚠️**
2123
-
2124
- ### Index
2125
-
2126
- [TicketsCore](#ticketscore)
2127
-
2128
- [WaitingListCore](#waitinglistcore)
2129
-
2130
- [BillingCore](#billingcore)
2131
-
2132
- [CheckoutCore](#checkoutcore)
2133
-
2134
- [PurchaseConfirmationCore](#purchaseconfirmationcore)
2135
-
2136
- [MyOrdersCore](#myorderscore)
2137
-
2138
- [OrderDetailsCore](#orderdetailscore)
2139
-
2140
- [LoginCore](#logincore)
2141
-
2142
- [ResetPasswordCore](#resetpasswordcore)
2143
-
2144
- ---
2145
-
2146
- ## SessionCoreHandle
2147
-
2148
- All Core components with the exception of Login and ResetPassword exposes the `refreshAccessToken` function to re-authenticate the user after the access token is expired. This is through the corresponding `CoreHandle` ref.
2149
-
2150
- It returns the `IFetchAccessTokenResponse` object:
2151
-
2152
- ```ts
2153
- IFetchAccessTokenResponse {
2154
- accessTokenError?: {
2155
- code?: number
2156
- message: string
2157
- extraData?: any
2158
- }
2159
- accessTokenData?: {
2160
- accessToken: string
2161
- refreshToken: string
2162
- tokenType: string
2163
- scope: string
2164
- }
2165
- }
2166
- ```
2167
-
2168
- ### Example:
2169
-
2170
- Import the component from the library
2171
-
2172
- ```js
2173
- import {
2174
- TicketsCore
2175
- TicketsCoreHandle // You can import the Handle to use it as type in the useRef hook
2176
- } from 'tf-checkout-react-native'
2177
- ```
2178
-
2179
- Declare a reference to pass it to the component.
2180
-
2181
- ```js
2182
- const ticketsCoreRef = useRef < TicketsCoreHandle > null
2183
- ```
2184
-
2185
- Then add it to the render function and assign the reference to the corresponding component.
2186
-
2187
- ```js
2188
- <TicketsCore ref={ticketsCoreRef}>
2189
- <YourComponent />
2190
- </TicketsCore>
2191
- ```
2192
-
2193
- Use the reference to access the component methods.
2194
-
2195
- ```js
2196
- const handleGetTickets = async () => {
2197
- const res = await ticketsCoreRef.current.refreshAccessToken()
2198
- }
2199
- ```
2200
-
2201
- ---
2202
-
2203
- ## TicketsCore
2204
-
2205
- This is the initial component to show. It will retrieve the tickets, event, present My Orders and Logout buttons if the user is logged in, and will add the selected tickets to the cart.
2206
-
2207
- Exposes the following functions:
2208
-
2209
- `getTickets` Fetches the tickets from the event set in the config function. It receives a promoCode and referrerId parameters to apply to the tickets. PromoCode is higher priority than referrerId
2210
-
2211
- `getEvent` Fetches the event from the eventId set in the config function.
2212
-
2213
- `addToCart` Adds the selected tickets to the cart.
2214
-
2215
- `postReferralVisit` Posts a referral visit to the server.
2216
-
2217
- `refreshAccessToken` : Refreshes expired access token.
2218
-
2219
- `getAccountTickets`: Fetches the tickets purchased for the user that logged in.
2220
-
2221
- ```js
2222
- {
2223
- // Fetches the tickets from the event set in the config function. It receives a promoCode parameter to apply to the tickets.
2224
- getTickets({ promoCode?: string, referredId?: string }): Promise<{
2225
- tickets?: {
2226
- sortOrder: number
2227
- displayTicket?: boolean
2228
- salesEnded: boolean
2229
- salesStarted: boolean
2230
- id: string
2231
- displayName: string
2232
- optionName: string
2233
- optionValue: string
2234
- isTable: string
2235
- feeIncluded: boolean
2236
- price: number
2237
- basePrice: number
2238
- chosen: number
2239
- priceCurrency: string
2240
- priceSymbol: string
2241
- taxesIncluded: boolean
2242
- taxName: string
2243
- minQuantity: number
2244
- maxQuantity: number
2245
- multiplier: number
2246
- tags: []
2247
- allowMultiplePurchases: number
2248
- priceReplacementText: string
2249
- waitingListEnabled: boolean
2250
- soldOut?: boolean
2251
- soldOutMessage: string
2252
- minGuests?: number
2253
- maxGuests?: number
2254
- buyButtonText?: string
2255
- totalStock: number
2256
- guestPrice?: number
2257
- alwaysAvailable: string
2258
- feeText: string
2259
- x_face_value: number
2260
- sold_out?: boolean
2261
- oldPrice?: number
2262
- oldBasePrice?: number
2263
- descriptionRich?: string
2264
- }[]
2265
- error?: {
2266
- code?: number
2267
- message: string
2268
- extraData?: any
2269
- }
2270
- promoCodeResult?: {
2271
- isValid: boolean | number
2272
- message: string
2273
- }
2274
- isInWaitingList?: boolean
2275
- isAccessCodeRequired?: boolean
2276
- }>
2277
-
2278
- // Fetches the event from the eventId set in the config function.
2279
- getEvent(): Promise<{
2280
- eventError?: {
2281
- code?: number
2282
- message: string
2283
- extraData?: any
2284
- }
2285
- eventData?: {
2286
- affirmAllowed: boolean
2287
- alwaysShowWaitingList?: any
2288
- backgroundImage: string
2289
- backgroundVideo?: string
2290
- brandCheckoutPixels?: string
2291
- brandConversionPixels?: string
2292
- brandGoogleAnalyticsKey?: string
2293
- brandPagePixels?: string
2294
- checkoutPixels?: string
2295
- conversionPixels?: string
2296
- country: string
2297
- currency: {
2298
- currency: string
2299
- decimal_places: number
2300
- symbol: string
2301
- }
2302
- date: string
2303
- description?: string
2304
- descriptions: any
2305
- enableWaitingList: boolean
2306
- endDate: string
2307
- eventType: any
2308
- facebookEvent?: string
2309
- faq: []
2310
- feeMode: string
2311
- feesIncluded?: any
2312
- formattedDate: string
2313
- fullTitleReplacement?: any
2314
- hideTopInfluencers: boolean
2315
- hideVenue?: boolean
2316
- hideVenueUntil?: string
2317
- imageUrl: string
2318
- imageUrlHd: string
2319
- imageURLs: any
2320
- isTimeSlotEvent: boolean
2321
- l10nLanguages: []
2322
- minimumAge?: any
2323
- name: string
2324
- ogImage?: string
2325
- pagePixels?: string
2326
- passwordAuthenticated: boolean
2327
- passwordProtected: boolean
2328
- preregEnabled: boolean
2329
- preregistered: []
2330
- presalesEnded: boolean
2331
- presalesStarted: boolean
2332
- productImage: string
2333
- redirectUrl?: string
2334
- referrals: []
2335
- referralsEnabled: boolean
2336
- relatedProducts: []
2337
- salesEnd: string
2338
- salesEnded: boolean
2339
- salesStart?: string
2340
- salesStarted: boolean
2341
- slug: string
2342
- startDate: string
2343
- subHeading?: any
2344
- tableMapEnabled: boolean
2345
- tags: []
2346
- ticketsSold: number
2347
- timezone: string
2348
- title: string
2349
- titleReplacementHeight?: any
2350
- titleReplacementImage?: any
2351
- titleReplacementImageSvg?: any
2352
- twitterImage?: string
2353
- venueCity?: string
2354
- venueCountry: string
2355
- venueGooglePlaceId?: string
2356
- venueLatitude?: string
2357
- venueLongitude?: string
2358
- venueName?: string
2359
- venuePostalCode?: string
2360
- venueState?: string
2361
- venueStreet?: string
2362
- venueStreetNumber?: string
2363
- waitingListMaxQuantity: number
2364
- }
2365
- }>
2366
-
2367
- // Adds selected tickets to the cart.
2368
- addToCart(
2369
- options: {
2370
- optionName: string
2371
- ticketId: string
2372
- quantity: number
2373
- price: number
2374
- }
2375
- ): Promise<{
2376
- error?: {
2377
- code?: number
2378
- message: string
2379
- extraData?: any
2380
- }
2381
- data?: {
2382
- isBillingRequired: boolean
2383
- isPhoneRequired?: boolean
2384
- isAgeRequired?: boolean
2385
- minimumAge?: number
2386
- isNameRequired?: boolean
2387
- isTicketFree?: boolean
2388
- isPhoneHidden?: boolean
2389
- }
2390
-
2391
- postReferralVisit(referralId: string): Promise<
2392
- postReferralError?: {
2393
- code?: number
2394
- message: string
2395
- extraData?: any
2396
- }
2397
- postReferralData?: {
2398
- message: string
2399
- status: number
2400
- }>
2401
- refreshAccessToken(refreshToken?: string): Promise<IFetchAccessTokenResponse>
2402
-
2403
- getAccountTickets({
2404
- page: number
2405
- limit?: number
2406
- filter?: string
2407
- from?: MyOrderRequestFromType
2408
- }): Promise<
2409
- data?: {
2410
- attributes: {
2411
- page: number
2412
- limit: number
2413
- total_count: number
2414
- total_pages: number
2415
- filter?: any
2416
- brand_filter: string
2417
- sub_brands: boolean
2418
- purchased_events: {
2419
- url_name: string
2420
- event_name: string
2421
- }[]
2422
- tickets: {
2423
- id: string
2424
- orderId: string
2425
- hash: string
2426
- qrData: string
2427
- ticketType: string
2428
- ticketTypeHash: string
2429
- description?: any
2430
- descriptionPlain?: any
2431
- currency: string
2432
- price: string
2433
- retainAmountOnSale: number
2434
- status: string
2435
- holderName: string
2436
- holderEmail?: any
2437
- holderPhone?: any
2438
- isTable: boolean
2439
- isSellable: boolean
2440
- isOnSale: boolean
2441
- createdAt: Date
2442
- pdfLink: string
2443
- eventId: string
2444
- eventName: string
2445
- eventUrl: string
2446
- eventTimezone: string
2447
- eventStartDate: Date
2448
- eventEndDate: Date
2449
- eventSalesStartDate?: any
2450
- eventSalesEndDate: Date
2451
- eventImage: string
2452
- eventBackgroundImage: string
2453
- eventIsOnlineEvent: boolean
2454
- venueCountry: string
2455
- venueCity: string
2456
- venueState: string
2457
- hideVenueUntil?: any
2458
- hideVenue: boolean
2459
- venueName?: string //Optional
2460
- venueGooglePlaceId?: string //Optional
2461
- venueLatitude?: string //Optional
2462
- venueLongitude?: string //Optional
2463
- venuePostalCode?: string //Optional
2464
- venueStreet?: string //Optional
2465
- venueStreetNumber?: string //Optional
2466
- }[]
2467
- }
2468
- relationships: any[]
2469
- type: string
2470
- },
2471
- error?: IError>
2472
- }>
2473
- }
2474
- ```
2475
-
2476
- ## MyOrderRequestFromType
2477
-
2478
- ```
2479
- MyOrderRequestFromType =
2480
- | 'upcoming_events'
2481
- | 'ongoing_and_upcoming_events'
2482
- | 'ongoing_events'
2483
- | 'past_events'
2484
- | ''
2485
- ```
2486
-
2487
- Import the component from the library
2488
-
2489
- ```js
2490
- import {
2491
- TicketsCore
2492
- TicketsCoreHandle // You can import the Handle to use it as type in the useRef hook
2493
- } from 'tf-checkout-react-native'
2494
- ```
2495
-
2496
- Declare a reference to pass it to the component.
2497
-
2498
- ```js
2499
- const ticketsCoreRef = useRef < TicketsCoreHandle > null
2500
- ```
2501
-
2502
- Then add it to the render function and assign the reference to the corresponding component.
2503
-
2504
- ```js
2505
- <TicketsCore ref={ticketsCoreRef}>
2506
- <YourComponent />
2507
- </TicketsCore>
2508
- ```
2509
-
2510
- Use the reference to access the component methods.
2511
-
2512
- ```js
2513
- const handleGetTickets = async () => {
2514
- const res = await ticketsCoreRef.current.getTickets()
2515
- }
2516
- ```
2517
-
2518
- ---
2519
-
2520
- ## WaitingListCore
2521
-
2522
- This component _must_ appear after getting the response from **getTickets()** and the property `isInWaitingList` is set to true.
2523
-
2524
- Exposes the following functions:
2525
-
2526
- ```tsx
2527
- {
2528
- addToWaitingList(
2529
- params: {
2530
- firstName: string
2531
- lastName: string
2532
- email: string
2533
- }
2534
- ): Promise<{
2535
- addToWaitingListError?: {
2536
- code?: number
2537
- message: string
2538
- extraData?: any
2539
- }
2540
- addToWaitingListData?: {
2541
- error: boolean
2542
- message: string
2543
- status: number
2544
- success: boolean
2545
- }
2546
- }>
2547
- refreshAccessToken(refreshToken?: string): Promise<IFetchAccessTokenResponse>
2548
- }
2549
- ```
2550
-
2551
- **addToWaitingList** Receives params with the following properties:
2552
-
2553
- ```js
2554
- firstName: string
2555
- lastName: string
2556
- email: string
2557
- ```
2558
-
2559
- And returns a Promise with the following object:
2560
-
2561
- ```js
2562
- {
2563
- addToWaitingListError?: {
2564
- code?: number // If it was a server error, this will be the error code
2565
- message: string //Error message that you could use it in your UI
2566
- extraData?: any // If there is a relevant extra data, it will be returned here
2567
- }
2568
- addToWaitingListData?: {
2569
- error: boolean // If there was an error, this will be true
2570
- message: string // message that you could use it in your UI, could be due an error or a success message
2571
- status: number // Status code
2572
- success: boolean // If there was no error, this will be true
2573
- }
2574
- }
2575
- ```
2576
-
2577
- Import the component from the library
2578
-
2579
- ```js
2580
- import {
2581
- WaitingListCore
2582
- WaitingListCoreHandle // You can import the Handle to use as type it in the useRef hook
2583
- } from 'tf-checkout-react-native'
2584
- ```
2585
-
2586
- Declare a reference to pass it to the component.
2587
-
2588
- ```js
2589
- const waitingListCoreRef = useRef < WaitingListCoreHandle > null
2590
- ```
2591
-
2592
- Then add it to the render function and assign the reference to the corresponding component.
2593
-
2594
- ```js
2595
- <WaitingListCore ref={waitingListCoreRef}>
2596
- <YourComponent />
2597
- </WaitingListCore>
2598
- ```
2599
-
2600
- Use the reference to access the component methods.
2601
-
2602
- ```js
2603
- const handleAddToWaitingList = async (params: IAddToWaitingListCoreParams) => {
2604
- const res = await waitingListCoreRef.current.addToWaitingList(params)
2605
- }
2606
- ```
2607
-
2608
- ---
2609
-
2610
- ## BillingCore ⚠️ Deprecated
2611
-
2612
- > This component is deprecated. Please migrate to hooks. See [Migration Guide](./MIGRATION.md).
2613
-
2614
- This component collects user's billing information and checks the order out. If the entered user data is already in the system it will perform checkout, other wise it will perform a registration and then the checkout.
2615
-
2616
- Exposes the following functions:
2617
-
2618
- `getCart` Fetches the current cart information, needed to know how many ticket holders data is needed.
2619
-
2620
- `getCountries` Fetches the countries list.
2621
-
2622
- `getStates` Fetches the states list.
2623
-
2624
- `getUserProfile` Fetches the user profile information.
2625
-
2626
- `registerNewUser` Registers a new user. Returns accessTokens data.
2627
-
2628
- `checkoutOrder` Performs the checkout.
2629
-
2630
- ```ts
2631
- {
2632
- // Fetches the current cart information, needed to know how many ticket holders data is needed.
2633
- getCart(): Promise<{
2634
- cartError?: {
2635
- code?: number
2636
- message: string
2637
- extraData?: any
2638
- }
2639
- cartData?: {
2640
- quantity: number
2641
- isTfOptInHidden?: boolean
2642
- isTfOptIn: boolean // Ticket fairy
2643
- isMarketingOptedIn: boolean // Brand
2644
- }
2645
- }>
2646
-
2647
- // Performs the checkout.
2648
- checkoutOrder(body: ICheckoutBody): Promise<{
2649
- error?: {
2650
- code?: number
2651
- message: string
2652
- extraData?: any
2653
- }
2654
- data?: {
2655
- id: string
2656
- hash: string
2657
- total: string
2658
- status: string
2659
- }
2660
- }>
2661
-
2662
- // Fetches the country list.
2663
- getCountries(): Promise<{
2664
- countriesError?: {
2665
- code?: number
2666
- message: string
2667
- extraData?: any
2668
- }
2669
- countriesData?: {
2670
- code: string
2671
- id: string
2672
- name: string
2673
- }[]
2674
- }>
2675
-
2676
- // Fetches the states list.
2677
- getStates(countryId: string): Promise<{
2678
- statesError?: {
2679
- code?: number
2680
- message: string
2681
- extraData?: any
2682
- }
2683
- statesData?: {
2684
- [key: number | string]: string
2685
- }
2686
- }>
2687
-
2688
- // Fetches the user profile information.
2689
- getUserProfile(): Promise<{
2690
- userProfileError?: {
2691
- code?: number
2692
- message: string
2693
- extraData?: any
2694
- }
2695
- userProfileData?: {
2696
- customerId: string
2697
- firstName: string
2698
- lastName: string
2699
- email: string
2700
- phone: string
2701
- streetAddress: string
2702
- zipCode: string
2703
- countryId: string
2704
- company?: string
2705
- state: string
2706
- stateId: string
2707
- city: string
2708
- }
2709
- }>
2710
-
2711
- // Registers a new user.
2712
- registerNewUser(data: FormData): Promise<{
2713
- registerNewUserResponseError?: {
2714
- isAlreadyRegistered?: boolean
2715
- message?: string
2716
- raw?: any
2717
- }
2718
- registerNewUserResponseData?: {
2719
- accessTokenData: {
2720
- accessToken: string
2721
- refreshToken: string
2722
- tokenType: string
2723
- scope: string
2724
- }
2725
- userProfile: {
2726
- firstName: string
2727
- lastName: string
2728
- email: string
2729
- }
2730
- }
2731
- }>
2732
-
2733
- refreshAccessToken(refreshToken?: string): Promise<IFetchAccessTokenResponse>
2734
- }
2735
-
2736
- ```
2737
-
2738
- ---
2739
-
2740
- ## CheckoutCore ⚠️ Deprecated
2741
-
2742
- > This component is deprecated. Please migrate to hooks. See [Migration Guide](./MIGRATION.md).
2743
-
2744
- Shows the event conditions, purchase details and process the payment and free registration to an event.
2745
-
2746
- You will need to install and use the [ReactNative Stripe SDK](https://github.com/stripe/stripe-react-native) (we recommend version 0.2.3). Follow their documentation to implement it. Our backend is already prepared to process the payments.
2747
-
2748
- Remember that you will need the `publishableKey`.
2749
-
2750
- After you collect the card information and call the `confirmPayment` function, you will need to call the `paymentSuccess` function to complete the payment.
2751
-
2752
- Exposes the following functions:
2753
-
2754
- `getEventConditions` Get event conditions for the current event.
2755
-
2756
- `getPurchaseOrderDetails` Get purchase order details for the current event.
2757
-
2758
- `getOrderReview` Get order review for the current event.
2759
-
2760
- `freeRegistration` Free registration to an event.
2761
-
2762
- `paymentSuccess` Payment success.
2763
-
2764
- `refreshAccessToken` Refreshes access token.
2765
-
2766
- ```ts
2767
- // Get event conditions for the Event Id set on the setConfig.
2768
- getEventConditions(): Promise<any>
2769
-
2770
- // Get purchase order details for the current event.
2771
- getPurchaseOrderDetails(orderId: string): Promise<{
2772
- orderDetailsError?: {
2773
- code?: number
2774
- message: string
2775
- extraData?: any
2776
- }
2777
- orderDetailsData?: {
2778
- header: {
2779
- isReferralDisabled: boolean
2780
- shareLink: string
2781
- total: string
2782
- salesReferred: string
2783
- }
2784
- items: {
2785
- isActive: boolean
2786
- currency: string
2787
- discount: string
2788
- name: string
2789
- price: string
2790
- quantity: string
2791
- total: string
2792
- }[]
2793
- tickets: {
2794
- currency: string
2795
- description: string
2796
- descriptionPlain?: string
2797
- eventName: string
2798
- hash: string
2799
- holderEmail?: string
2800
- holderName: string
2801
- holderPhone?: string
2802
- isOnSale: boolean
2803
- isSellable: true
2804
- pdfLink: string
2805
- qrData: string
2806
- resaleFeeAmount: number
2807
- status: string
2808
- ticketType: string
2809
- }[]
2810
- }
2811
- }>
2812
-
2813
- // Get order review for the current event.
2814
- getOrderReview(orderHash: string): Promise<{
2815
- orderReviewError?: {
2816
- code?: number
2817
- message: string
2818
- extraData?: any
2819
- }
2820
- orderReviewData?: {
2821
- reviewData: {
2822
- event: string
2823
- price: string
2824
- ticketType: string
2825
- total: string
2826
- numberOfTickets: string
2827
- currency: string
2828
- }
2829
- paymentData: {
2830
- id: string
2831
- name: string
2832
- stripeClientSecret?: string
2833
- stripeConnectedAccount?: string
2834
- stripePublishableKey?: string
2835
- }
2836
- addressData: {
2837
- city: string
2838
- line1: string
2839
- state: string
2840
- postalCode: string
2841
- }
2842
- billingData: {
2843
- firstName: string
2844
- lastName: string
2845
- }
2846
- }
2847
- }>
2848
-
2849
- // Free registration to an event.
2850
- freeRegistration(orderHash: string): Promise<{
2851
- freeRegistrationError?: {
2852
- code?: number
2853
- message: string
2854
- extraData?: any
2855
- }
2856
- freeRegistrationData?: {
2857
- id: string
2858
- customerId: string
2859
- total: string
2860
- currency: string
2861
- orderHash: string
2862
- }
2863
- }>
2864
-
2865
- // Payment success.
2866
- paymentSuccess(orderHash: string): Promise<any>
2867
-
2868
- // Refresh access token.
2869
- refreshAccessToken(refreshToken?: string): Promise<IFetchAccessTokenResponse>
2870
- ```
2871
-
2872
- ---
2873
-
2874
- ## PurchaseConfirmationCore
2875
-
2876
- Shows the purchase confirmation information.
2877
-
2878
- It exposes the following functions:
2879
-
2880
- `getPurchaseConfirmation` Get purchase confirmation for the current event.
2881
-
2882
- `refreshAccesstoken` Refreshes access token.
2883
-
2884
- ```ts
2885
- getPurchaseConfirmation(
2886
- orderHash: string
2887
- ): Promise<{
2888
- purchaseConfirmationError?: {
2889
- code?: number
2890
- message: string
2891
- extraData?: any
2892
- }
2893
- purchaseConfirmationData?: {
2894
- conversionPixels?: any
2895
- currency: {
2896
- currency: string;
2897
- decimalPlaces: number;
2898
- symbol: string
2899
- }
2900
- customConfirmationPageText?: string
2901
- customerId: string
2902
- isReferralDisabled: boolean
2903
- eventDate: string
2904
- eventDescription: string
2905
- eventType: string
2906
- message: string
2907
- orderTotal: number
2908
- personalShareLink: string
2909
- productId: string
2910
- productImage: string
2911
- productName: string
2912
- productPrice: number
2913
- productUrl: string
2914
- twitterHashtag?: string
2915
- personalShareSales: {
2916
- price: number
2917
- sales: number
2918
- }[]
2919
- }
2920
- }>
2921
- refreshAccessToken(refreshToken?: string): Promise<IFetchAccessTokenResponse>
2922
- ```
2923
-
2924
- ---
2925
-
2926
- ## MyOrdersCore
2927
-
2928
- Shows the purchased orders from the user. It can also show the sub-brands if the `ARE_SUB_BRANDS_INCLUDED` was set to true and the `BRAND` was set to an existing brand.
2929
-
2930
- Exposes the following functions:
2931
-
2932
- `getMyOrders` Get the orders purchased from the current user.
2933
-
2934
- `getOrderDetails` Get the details from a specific order.
2935
-
2936
- `refreshAccessToken` Refreshes access token.
2937
-
2938
- `getAccountTickets`: Fetches the tickets purchased for the user that logged in.
2939
-
2940
- ```ts
2941
- refreshAccessToken(refreshToken?: string): Promise<IFetchAccessTokenResponse>
2942
-
2943
- getMyOrders(page: number, filter: string): Promise<{
2944
- myOrdersData?: {
2945
- events: {
2946
- url_name: string
2947
- event_name: string
2948
- }[]
2949
-
2950
- orders: {
2951
- id: string
2952
- date: string
2953
- currency: string
2954
- amount: string
2955
- eventName: string
2956
- eventUrl: string
2957
- image: string
2958
- }[]
2959
- filter?: string
2960
- brandFilter?: string
2961
- subBrands?: boolean
2962
- pagination: {
2963
- page: number
2964
- limit: number
2965
- totalCount: number
2966
- totalPages: number
2967
- }
2968
- }
2969
-
2970
- myOrdersError?: {
2971
- code?: number
2972
- message: string
2973
- extraData?: any
2974
- }
2975
-
2976
- getAccountTickets({
2977
- page: number
2978
- limit?: number
2979
- filter?: string
2980
- from?: MyOrderRequestFromType
2981
- }): Promise<
2982
- data?: {
2983
- attributes: {
2984
- page: number
2985
- limit: number
2986
- total_count: number
2987
- total_pages: number
2988
- filter?: any
2989
- brand_filter: string
2990
- sub_brands: boolean
2991
- purchased_events: {
2992
- url_name: string
2993
- event_name: string
2994
- }[]
2995
- tickets: {
2996
- id: string
2997
- orderId: string
2998
- hash: string
2999
- qrData: string
3000
- ticketType: string
3001
- ticketTypeHash: string
3002
- description?: any
3003
- descriptionPlain?: any
3004
- currency: string
3005
- price: string
3006
- retainAmountOnSale: number
3007
- status: string
3008
- holderName: string
3009
- holderEmail?: any
3010
- holderPhone?: any
3011
- isTable: boolean
3012
- isSellable: boolean
3013
- isOnSale: boolean
3014
- createdAt: Date
3015
- pdfLink: string
3016
- eventId: string
3017
- eventName: string
3018
- eventUrl: string
3019
- eventTimezone: string
3020
- eventStartDate: Date
3021
- eventEndDate: Date
3022
- eventSalesStartDate?: any
3023
- eventSalesEndDate: Date
3024
- eventImage: string
3025
- eventBackgroundImage: string
3026
- eventIsOnlineEvent: boolean
3027
- venueCountry: string
3028
- venueCity: string
3029
- venueState: string
3030
- hideVenueUntil?: any
3031
- hideVenue: boolean
3032
- venueName?: string //Optional
3033
- venueGooglePlaceId?: string //Optional
3034
- venueLatitude?: string //Optional
3035
- venueLongitude?: string //Optional
3036
- venuePostalCode?: string //Optional
3037
- venueStreet?: string //Optional
3038
- venueStreetNumber?: string //Optional
3039
- }[]
3040
- }
3041
- relationships: any[]
3042
- type: string
3043
- },
3044
- error?: IError>
3045
- }>
3046
-
3047
-
3048
- getOrderDetails(orderId: string): Promise<{
3049
- orderDetailsError?: {
3050
- code?: number
3051
- message: string
3052
- extraData?: any
3053
- }
3054
- orderDetailsData?: {
3055
- header: {
3056
- isReferralDisabled: boolean
3057
- shareLink: string
3058
- total: string
3059
- salesReferred: string
3060
- }
3061
- items: {
3062
- isActive: boolean
3063
- currency: string
3064
- discount: string
3065
- name: string
3066
- price: string
3067
- quantity: string
3068
- total: string
3069
- }[]
3070
- tickets: {
3071
- currency: string
3072
- description: string
3073
- descriptionPlain?: string
3074
- eventName: string
3075
- hash: string
3076
- holderEmail?: string
3077
- holderName: string
3078
- holderPhone?: string
3079
- isOnSale: boolean
3080
- isSellable: true
3081
- pdfLink: string
3082
- qrData: string
3083
- resaleFeeAmount: number
3084
- status: string
3085
- ticketType: string
3086
- }[]
3087
- }
3088
- }>
3089
- ```
3090
-
3091
- ## MyOrderRequestFromType
3092
-
3093
- ```
3094
- MyOrderRequestFromType =
3095
- | 'upcoming_events'
3096
- | 'ongoing_and_upcoming_events'
3097
- | 'ongoing_events'
3098
- | 'past_events'
3099
- | ''
3100
- ```
3101
-
3102
- ---
3103
-
3104
- ## OrderDetailsCore
3105
-
3106
- Allows to re-sale the tickets or to remove them from the re-sale system.
3107
-
3108
- Import it from the library.
3109
-
3110
- ```ts
3111
- import { OrderDetailsCore, OrderDetailsCoreHandle } from 'tf-checkout-react-native'
3112
- ```
3113
-
3114
- Create a ref
3115
-
3116
- ```ts
3117
- const myOrderDetailsCoreRef = useRef<OrderDetailsCoreHandle>(null)
3118
- ```
3119
-
3120
- Assign the ref to the wrapper component.
3121
-
3122
- ```tsx
3123
- <OrderDetailsCore ref={myOrderDetailsCoreRef}>
3124
- ```
3125
-
3126
- Access the exposed function through the current value.
3127
-
3128
- ```ts
3129
- await myOrderDetailsCoreRef.current.removeTicketFromResale(ticket.hash)
3130
- ```
3131
-
3132
- ```ts
3133
- resaleTicket(
3134
- /*
3135
- formData.append('to', toWhom)
3136
- formData.append('first_name', firstName)
3137
- formData.append('last_name', lastName)
3138
- formData.append('email', email)
3139
- formData.append('confirm_email', emailConfirm)
3140
- formData.append('confirm', String(isTermsAgreed))
3141
- */
3142
-
3143
- data: FormData,
3144
- orderHash: string
3145
- ): Promise<{
3146
- {
3147
- resaleTicketError?: {
3148
- code?: number
3149
- message: string
3150
- extraData?: any
3151
- }
3152
- resaleTicketData?: {
3153
- message: string
3154
- }
3155
- }
3156
- }>
3157
- ```
3158
-
3159
- ```ts
3160
- removeTicketFromResale(
3161
- orderHash: string
3162
- ): Promise<{
3163
- removeTicketFromResaleError?: {
3164
- code?: number
3165
- message: string
3166
- extraData?: any
3167
- }
3168
- removeTicketFromResaleData?: {
3169
- message: string
3170
- }
3171
- }>
3172
- ```
3173
-
3174
- ---
3175
-
3176
- ## LoginCore
3177
-
3178
- Handles the login and logout process.
3179
-
3180
- Exposes the following functions:
3181
-
3182
- `login` Logs in the user.
3183
-
3184
- `logout` Logs out the user.
3185
-
3186
- ```ts
3187
- login(fields?: {
3188
- email: string
3189
- password: string
3190
- }): Promise<{
3191
- error?: {
3192
- code?: number
3193
- message: string
3194
- extraData?: any
3195
- }
3196
-
3197
- userProfile?: {
3198
- customerId: string
3199
- firstName: string
3200
- lastName: string
3201
- email: string
3202
- phone: string
3203
- streetAddress: string
3204
- zipCode: string
3205
- countryId: string
3206
- company?: string
3207
- state: string
3208
- stateId: string
3209
- city: string
3210
- }
3211
-
3212
- accessTokenData?: {
3213
- accessToken: string
3214
- refreshToken: string
3215
- tokenType: string
3216
- scope: string
3217
- }
3218
- }>
3219
-
3220
- logout(): Promise<void>
3221
- ```
3222
-
3223
- ---
3224
-
3225
- ## ResetPasswordCore
3226
-
3227
- Will allow the user to reset its password.
3228
-
3229
- Exposes the following function:
3230
-
3231
- `postResetPassword` Sends the reset token and the new password values.
3232
-
3233
- postResetPassword parameters:
3234
-
3235
- ```
3236
- token: string,
3237
- password: string,
3238
- password_confirmation: string,
3239
- ```
3240
-
3241
- postResetPassword returning data:
3242
-
3243
- ```ts
3244
- {
3245
- data?: {
3246
- message: string
3247
- status?: number
3248
- }
3249
- error?: {
3250
- code?: number
3251
- message: string
3252
- extraData?: any
3253
- }
3254
- }
3255
- ```
3256
-
3257
- ### Usage
3258
-
3259
- Import it from the library.
3260
-
3261
- ```ts
3262
- import { ResetPasswordCore, ResetPasswordCoreHandle } from 'tf-checkout-react-native'
3263
- ```
3264
-
3265
- Wrap your component with the Core component.
3266
-
3267
- ```xml
3268
- <ResetPasswordCore ref={resetPasswordCoreRef}>
3269
- {yourComponent}
3270
- </ResetPasswordCore>
3271
- ```
3272
-
3273
- # Utils
3274
-
3275
- `deleteAllData` asynchronously deletes all the data stored in the local storage. Use this with caution, only in an edge case.
3276
-
3277
- # Changelog
3278
-
3279
- ## Version 1.0.38
3280
-
3281
- - Add `CheckoutV2` – new recommended checkout component combining hooks and UI pieces.
3282
- - Add `Custom Checkout with Hooks` example in docs.
3283
- - Add `MIGRATION.md` – detailed migration guide for moving from Core components to hooks.
3284
-
3285
- - Documentation updated to reflect `CheckoutV2` as the default recommended approach.
3286
- - `BillingCore` and `CheckoutCore` marked as **⚠️ Deprecated**.
3287
-
3288
- ## Version 1.0.32
3289
-
3290
- - Add `referredId` property to Tickets component and getTickets method. This will apply special prices fo the passed `refferentId` property.
3291
-
3292
- ## Version 1.0.31
3293
-
3294
- - Add missing styles to LoginForm.
3295
-
3296
- ## Version 1.0.30
3297
-
3298
- - Show errors in Billing UI form fields.
3299
- - Add config prop to Billing UI component, includes 2 configuration flags.
3300
-
3301
- ```
3302
- config?: {
3303
- isCheckoutAlwaysButtonEnabled?: boolean
3304
- shouldHideTicketHolderSectionOnSingleTicket?: boolean
3305
- }
3306
- ```
3307
-
3308
- - Replacing `"rn-material-ui-textfield": "1.0.5"` library with `"rn-material-ui-textfield": "jorgtz/rn-material-ui-textfield"`, make sure to replace it in all the package.json files.
3309
-
3310
- ## Version 1.0.29
3311
-
3312
- - Update Stripe SDK to version 0.26.0.
3313
- - Minimum iOS Deployment version = `13`.
3314
- - Expose styles to customize Stripe Card Form:
3315
- - cardStyle?: CardFormView.Styles
3316
-
3317
- ```
3318
- {
3319
- backgroundColor?: string;
3320
- borderWidth?: number;
3321
- borderColor?: string;
3322
- borderRadius?: number;
3323
- textColor?: string;
3324
- fontSize?: number;
3325
- placeholderColor?: string;
3326
- cursorColor?: string;
3327
- textErrorColor?: string;
3328
- fontFamily?: string;
3329
- }
3330
- ```
3331
-
3332
- - cardContainer?: StyleProp<ViewStyle>
3333
-
3334
- ## Version 1.0.28
3335
-
3336
- - Add `getAccountTickets` request in `MyOrdersCore` and `TicketsCore`, it will allow get Tickets from the logged-in user.
3337
- - Add filter to `getMyOrders` request in `MyOrdersCore` component, to filter by time frame by passing the following string:
3338
-
3339
- ```ts
3340
- ;'upcoming_events' | 'ongoing_and_upcoming_events' | 'ongoing_events' | 'past_events'
3341
- ```
3342
-
3343
- - Add more data to the `getMyOrders` success response.
3344
- - Add more data to the `getOrderDetails` success response.
3345
- - Add `ticketsSold` prop to Event's object in fetchEvent success data.
3346
-
3347
- ## Version 1.0.27
3348
-
3349
- - Make `EVENT_ID` optional in the `setConfig` function. An error will be returned when `EVENT_ID` is not set and trying to make a request that requires it.
3350
-
3351
- - Remove `eventId` prop from `Checkout UI` component in favor of use the one on the Config.
3352
-
3353
- - Add missing pagination data in `onFetchMyOrdersSuccess` response.
3354
-
3355
- - Add missing success data in `onFetchOrderDetailsSuccess` response.
3356
-
3357
- ## Version 1.0.26
3358
-
3359
- - Add the possibility to remove all of the following Billing/Street Address fields from free tickets:
3360
- - Billing Street Address
3361
- - City
3362
- - State/County
3363
- - Post Code/Zip
3364
- - Country
3365
-
3366
- - Update `addToCart` success response to include:
3367
-
3368
- ```
3369
- isTicketFree?: boolean
3370
- isPhoneHidden?: boolean
3371
- ```
3372
-
3373
- ## Version 1.0.25
3374
-
3375
- - Exposes `refreshAccessToken` function.
3376
- - Changed returned `data` prop to `userProfile` in LoginCore response.
3377
- - In **LoginCore Component**:
3378
- - Add `accessTokenData` object prop in `onLoginSuccessful` response.
3379
- - On **BillingUI Component**:
3380
- - Change `onRegisterSuccess` return data type.
3381
- - Change `onRegisterError` return data type.
3382
- - On **LoginCore**:
3383
- - Change `login` return data type to include `accessTokenData` object.
3384
- - Exports `SessionHandleType` to use it in the `ref` of the UI components.
3385
- - All UI and Core components except Login and ResetPassword:
3386
- - Export function `refreshAccessToken`
3387
- - Add `reloadData` to re-fetch servers data in UI components.
3388
-
3389
- ## Version 1.0.24
3390
-
3391
- - Add **SingleSignOn** feature.
3392
- - Add show Tickets in groups and the option to sort them by sold out.
3393
- - Add config prop to Tickets component:
3394
-
3395
- ```ts
3396
- config: {
3397
- // Indicates if loading component should be visible.
3398
- areActivityIndicatorsEnabled?: boolean
3399
- areAlertsEnabled?: boolean
3400
- areTicketsSortedBySoldOut?: boolean
3401
- areTicketsGrouped?: boolean
3402
- }
3403
- ```
3404
-
3405
- - Updated Tickets styles prop to include Ticket Section Header.
3406
- - Moved `areActivityIndicatorsEnabled` and `areAlertsEnabled` to the `config` prop.
3407
- - Made TTF Privacy Policy mandatory.
3408
- - Added `styles` and `texts` props for TTF Privacy Policy checkbox.
3409
- - Added **Password Protected** event feature.
3410
-
3411
- ## Version 1.0.23
3412
-
3413
- - Fix Checkout not allowing free registrations
302
+ Part of the [TicketFairy checkout monorepo](../../README.md).
3414
303
 
3415
- ## Version 1.0.22
3416
304
 
3417
- - Added cartTimer component, that will show the cart's remaining expiration time in the Billing screen.
3418
- - setConfig not longer receives the `DOMAIN` prop, instead it receives the `CLIENT`
3419
- - Added a three dot button to my orders to show the possible actions.
305
+ Public checkout sign-in uses event-scoped server-only buyer binding, without a bundled
306
+ client secret. The checkout's auth modal supplies the event automatically; standalone
307
+ `AuthModal` callers pass `checkoutEventId` and can receive the narrow
308
+ `onCheckoutAuthenticated(CheckoutBuyerProfile)` callback. Password/signup/email/phone
309
+ proofs still complete required two-factor verification. These credentials cannot read
310
+ private account preferences or tickets. See the [shared identity contract](
311
+ ../tf-checkout-shared/README.md) for
312
+ scope, retry, logout and configuration ownership. Existing confidential OAuth clients
313
+ are trusted-server integrations; never distribute their secrets in browser/native code.