tf-checkout-react-native 1.0.47 → 2.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +221 -3320
- package/dist/index.d.mts +11722 -0
- package/dist/index.d.ts +11722 -0
- package/dist/index.js +33655 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +33768 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +45 -59
- package/scripts/build-seat-map.mjs +31 -0
- package/scripts/seat-map-entry.jsx +22 -0
- package/scripts/verify-discussion-support.cjs +131 -0
- package/src/CardInput.tsx +110 -0
- package/src/EmbeddedCheckout.tsx +425 -0
- package/src/auth/AuthModal.tsx +398 -0
- package/src/auth/EmailCodeForm.tsx +91 -0
- package/src/auth/ForgotPasswordForm.tsx +98 -0
- package/src/auth/LoginForm.tsx +99 -0
- package/src/auth/PasswordInput.tsx +45 -0
- package/src/auth/RegisterForm.tsx +333 -0
- package/src/auth/ResetPasswordForm.tsx +112 -0
- package/src/auth/TwoFactorForm.tsx +74 -0
- package/src/auth/index.ts +11 -0
- package/src/configure.ts +31 -0
- package/src/confirmer.ts +272 -0
- package/src/generated/seatMapWidget.ts +3 -0
- package/src/index.tsx +25 -227
- package/src/instance.ts +13 -0
- package/src/sections/Accommodation.tsx +57 -0
- package/src/sections/AccountDeletion.tsx +347 -0
- package/src/sections/AccountEmailEnrichment.tsx +122 -0
- package/src/sections/AccountInformation.tsx +139 -0
- package/src/sections/AccountPaymentPlan.tsx +105 -0
- package/src/sections/AccountRewards.tsx +108 -0
- package/src/sections/AddOns.tsx +286 -0
- package/src/sections/BillingInfo.tsx +772 -0
- package/src/sections/Bundles.tsx +467 -0
- package/src/sections/Confirmation.tsx +143 -0
- package/src/sections/EventDiscussionView.tsx +655 -0
- package/src/sections/IDVerification.tsx +77 -0
- package/src/sections/NotificationPreferences.tsx +244 -0
- package/src/sections/OrderSummary.tsx +143 -0
- package/src/sections/Passes.tsx +177 -0
- package/src/sections/Payment.tsx +534 -0
- package/src/sections/PhoneAuthentication.tsx +371 -0
- package/src/sections/PostReaction.tsx +122 -0
- package/src/sections/ProfileSettings.tsx +446 -0
- package/src/sections/Rewards.tsx +320 -0
- package/src/sections/SeatMap.tsx +225 -0
- package/src/sections/SeatsIoMap.tsx +110 -0
- package/src/sections/Streaming.tsx +278 -0
- package/src/sections/TicketChange.tsx +379 -0
- package/src/sections/TicketGift.tsx +206 -0
- package/src/sections/TicketRefund.tsx +104 -0
- package/src/sections/Tickets.tsx +761 -0
- package/src/sections/Trips.tsx +87 -0
- package/src/sections/WaiverSigning.tsx +429 -0
- package/src/sections/billing/BillingAddressFields.tsx +126 -0
- package/src/sections/billing/BuyerField.tsx +78 -0
- package/src/sections/billing/PhoneIdentity.tsx +169 -0
- package/src/sections/billing/TicketHoldersCard.tsx +123 -0
- package/src/sections/billing/types.ts +10 -0
- package/src/sections/discussion/CommentImages.tsx +366 -0
- package/src/sections/discussion/SwipeReply.tsx +88 -0
- package/src/sections/index.ts +54 -0
- package/src/sections/rewards/RewardsLadder.tsx +167 -0
- package/src/sections/rewards/RewardsTree.tsx +117 -0
- package/src/storage.ts +26 -0
- package/src/ui/CheckoutProvider.tsx +176 -0
- package/src/ui/CustomFields.tsx +212 -0
- package/src/ui/Field.tsx +189 -0
- package/src/ui/Frozen.tsx +22 -0
- package/src/ui/InstallmentPicker.tsx +155 -0
- package/src/ui/PaymentMethods.tsx +180 -0
- package/src/ui/ProviderPages.tsx +214 -0
- package/src/ui/QuantitySelect.tsx +128 -0
- package/src/ui/Select.tsx +154 -0
- package/src/ui/SignaturePad.tsx +218 -0
- package/src/ui/Timer.tsx +69 -0
- package/src/ui/TimerBanner.tsx +95 -0
- package/src/ui/index.ts +20 -0
- package/src/ui/primitives.tsx +202 -0
- package/src/ui/theme.ts +89 -0
- package/src/ui/useAccountT.ts +16 -0
- package/src/useCheckout.ts +37 -0
- package/lib/brand-DA2IARBI.png +0 -0
- package/lib/ic_check-FLIJQ3BY.png +0 -0
- package/lib/ic_clock-BZ4Z7PIP.png +0 -0
- package/lib/ic_copy-VWMA4B7X.png +0 -0
- package/lib/ic_dropdown-BCS3QDNJ.png +0 -0
- package/lib/ic_error-KDEZUPSN.png +0 -0
- package/lib/ic_eye-WGXVXVAN.png +0 -0
- package/lib/ic_eye_off-XTCE6XSO.png +0 -0
- package/lib/ic_more-LZWKYCDU.png +0 -0
- package/lib/ic_next-LCNIGEDM.png +0 -0
- package/lib/index.js +0 -18222
- package/lib/index.js.map +0 -1
- package/lib/index.mjs +0 -18309
- package/lib/index.mjs.map +0 -1
- package/lib/typescript/package.json +0 -1
- package/lib/typescript/src/api/ApiClient.d.ts +0 -49
- package/lib/typescript/src/api/ApiClient.d.ts.map +0 -1
- package/lib/typescript/src/api/Constants.d.ts +0 -11
- package/lib/typescript/src/api/Constants.d.ts.map +0 -1
- package/lib/typescript/src/api/ErrorHandler.d.ts +0 -12
- package/lib/typescript/src/api/ErrorHandler.d.ts.map +0 -1
- package/lib/typescript/src/api/api.types.d.ts +0 -8
- package/lib/typescript/src/api/api.types.d.ts.map +0 -1
- package/lib/typescript/src/api/types.d.ts +0 -518
- package/lib/typescript/src/api/types.d.ts.map +0 -1
- package/lib/typescript/src/apiv2/index.d.ts +0 -3
- package/lib/typescript/src/apiv2/index.d.ts.map +0 -1
- package/lib/typescript/src/common/query.types.d.ts +0 -3
- package/lib/typescript/src/common/query.types.d.ts.map +0 -1
- package/lib/typescript/src/components/bottomSheetModal/BottomSheetModal.d.ts +0 -8
- package/lib/typescript/src/components/bottomSheetModal/BottomSheetModal.d.ts.map +0 -1
- package/lib/typescript/src/components/bottomSheetModal/BottomSheetModalStyles.d.ts +0 -39
- package/lib/typescript/src/components/bottomSheetModal/BottomSheetModalStyles.d.ts.map +0 -1
- package/lib/typescript/src/components/bottomSheetModal/BottomSheetModalTypes.d.ts +0 -23
- package/lib/typescript/src/components/bottomSheetModal/BottomSheetModalTypes.d.ts.map +0 -1
- package/lib/typescript/src/components/button/Button.d.ts +0 -5
- package/lib/typescript/src/components/button/Button.d.ts.map +0 -1
- package/lib/typescript/src/components/button/styles.d.ts +0 -28
- package/lib/typescript/src/components/button/styles.d.ts.map +0 -1
- package/lib/typescript/src/components/button/types.d.ts +0 -15
- package/lib/typescript/src/components/button/types.d.ts.map +0 -1
- package/lib/typescript/src/components/cartTimer/CartTimer.d.ts +0 -5
- package/lib/typescript/src/components/cartTimer/CartTimer.d.ts.map +0 -1
- package/lib/typescript/src/components/cartTimer/styles.d.ts +0 -47
- package/lib/typescript/src/components/cartTimer/styles.d.ts.map +0 -1
- package/lib/typescript/src/components/cartTimer/types.d.ts +0 -19
- package/lib/typescript/src/components/cartTimer/types.d.ts.map +0 -1
- package/lib/typescript/src/components/checkbox/Checkbox.d.ts +0 -4
- package/lib/typescript/src/components/checkbox/Checkbox.d.ts.map +0 -1
- package/lib/typescript/src/components/checkbox/styles.d.ts +0 -39
- package/lib/typescript/src/components/checkbox/styles.d.ts.map +0 -1
- package/lib/typescript/src/components/checkbox/types.d.ts +0 -22
- package/lib/typescript/src/components/checkbox/types.d.ts.map +0 -1
- package/lib/typescript/src/components/datePicker/DatePicker.d.ts +0 -4
- package/lib/typescript/src/components/datePicker/DatePicker.d.ts.map +0 -1
- package/lib/typescript/src/components/datePicker/styles.d.ts +0 -35
- package/lib/typescript/src/components/datePicker/styles.d.ts.map +0 -1
- package/lib/typescript/src/components/datePicker/types.d.ts +0 -20
- package/lib/typescript/src/components/datePicker/types.d.ts.map +0 -1
- package/lib/typescript/src/components/dropdown/Dropdown.d.ts +0 -4
- package/lib/typescript/src/components/dropdown/Dropdown.d.ts.map +0 -1
- package/lib/typescript/src/components/dropdown/DropdownListItem.d.ts +0 -4
- package/lib/typescript/src/components/dropdown/DropdownListItem.d.ts.map +0 -1
- package/lib/typescript/src/components/dropdown/styles.d.ts +0 -85
- package/lib/typescript/src/components/dropdown/styles.d.ts.map +0 -1
- package/lib/typescript/src/components/dropdown/types.d.ts +0 -35
- package/lib/typescript/src/components/dropdown/types.d.ts.map +0 -1
- package/lib/typescript/src/components/dropdownMaterial/DropdownMaterial.d.ts +0 -4
- package/lib/typescript/src/components/dropdownMaterial/DropdownMaterial.d.ts.map +0 -1
- package/lib/typescript/src/components/dropdownMaterial/styles.d.ts +0 -79
- package/lib/typescript/src/components/dropdownMaterial/styles.d.ts.map +0 -1
- package/lib/typescript/src/components/dropdownMaterial/types.d.ts +0 -22
- package/lib/typescript/src/components/dropdownMaterial/types.d.ts.map +0 -1
- package/lib/typescript/src/components/enterPassword/EnterPassword.d.ts +0 -5
- package/lib/typescript/src/components/enterPassword/EnterPassword.d.ts.map +0 -1
- package/lib/typescript/src/components/enterPassword/styles.d.ts +0 -21
- package/lib/typescript/src/components/enterPassword/styles.d.ts.map +0 -1
- package/lib/typescript/src/components/enterPassword/types.d.ts +0 -24
- package/lib/typescript/src/components/enterPassword/types.d.ts.map +0 -1
- package/lib/typescript/src/components/formField/FormField.d.ts +0 -4
- package/lib/typescript/src/components/formField/FormField.d.ts.map +0 -1
- package/lib/typescript/src/components/formField/styles.d.ts +0 -35
- package/lib/typescript/src/components/formField/styles.d.ts.map +0 -1
- package/lib/typescript/src/components/formField/types.d.ts +0 -48
- package/lib/typescript/src/components/formField/types.d.ts.map +0 -1
- package/lib/typescript/src/components/index.d.ts +0 -21
- package/lib/typescript/src/components/index.d.ts.map +0 -1
- package/lib/typescript/src/components/input/Input.d.ts +0 -4
- package/lib/typescript/src/components/input/Input.d.ts.map +0 -1
- package/lib/typescript/src/components/input/styles.d.ts +0 -47
- package/lib/typescript/src/components/input/styles.d.ts.map +0 -1
- package/lib/typescript/src/components/input/types.d.ts +0 -28
- package/lib/typescript/src/components/input/types.d.ts.map +0 -1
- package/lib/typescript/src/components/loading/Loading.d.ts +0 -4
- package/lib/typescript/src/components/loading/Loading.d.ts.map +0 -1
- package/lib/typescript/src/components/loading/styles.d.ts +0 -30
- package/lib/typescript/src/components/loading/styles.d.ts.map +0 -1
- package/lib/typescript/src/components/loading/types.d.ts +0 -15
- package/lib/typescript/src/components/loading/types.d.ts.map +0 -1
- package/lib/typescript/src/components/loggedIn/LoggedIn.d.ts +0 -5
- package/lib/typescript/src/components/loggedIn/LoggedIn.d.ts.map +0 -1
- package/lib/typescript/src/components/loggedIn/styles.d.ts +0 -9
- package/lib/typescript/src/components/loggedIn/styles.d.ts.map +0 -1
- package/lib/typescript/src/components/loggedIn/types.d.ts +0 -24
- package/lib/typescript/src/components/loggedIn/types.d.ts.map +0 -1
- package/lib/typescript/src/components/login/Login.d.ts +0 -5
- package/lib/typescript/src/components/login/Login.d.ts.map +0 -1
- package/lib/typescript/src/components/login/LoginView.d.ts +0 -5
- package/lib/typescript/src/components/login/LoginView.d.ts.map +0 -1
- package/lib/typescript/src/components/login/components/LoginForm.d.ts +0 -5
- package/lib/typescript/src/components/login/components/LoginForm.d.ts.map +0 -1
- package/lib/typescript/src/components/login/components/types.d.ts +0 -19
- package/lib/typescript/src/components/login/components/types.d.ts.map +0 -1
- package/lib/typescript/src/components/login/styles.d.ts +0 -62
- package/lib/typescript/src/components/login/styles.d.ts.map +0 -1
- package/lib/typescript/src/components/login/types.d.ts +0 -144
- package/lib/typescript/src/components/login/types.d.ts.map +0 -1
- package/lib/typescript/src/components/phoneInput/PhoneInput.d.ts +0 -5
- package/lib/typescript/src/components/phoneInput/PhoneInput.d.ts.map +0 -1
- package/lib/typescript/src/components/phoneInput/styles.d.ts +0 -29
- package/lib/typescript/src/components/phoneInput/styles.d.ts.map +0 -1
- package/lib/typescript/src/components/phoneInput/types.d.ts +0 -31
- package/lib/typescript/src/components/phoneInput/types.d.ts.map +0 -1
- package/lib/typescript/src/components/promoCode/PromoCode.d.ts +0 -5
- package/lib/typescript/src/components/promoCode/PromoCode.d.ts.map +0 -1
- package/lib/typescript/src/components/promoCode/styles.d.ts +0 -61
- package/lib/typescript/src/components/promoCode/styles.d.ts.map +0 -1
- package/lib/typescript/src/components/promoCode/types.d.ts +0 -36
- package/lib/typescript/src/components/promoCode/types.d.ts.map +0 -1
- package/lib/typescript/src/components/radioButton/RadioButton.d.ts +0 -5
- package/lib/typescript/src/components/radioButton/RadioButton.d.ts.map +0 -1
- package/lib/typescript/src/components/radioButton/styles.d.ts +0 -25
- package/lib/typescript/src/components/radioButton/styles.d.ts.map +0 -1
- package/lib/typescript/src/components/radioButton/types.d.ts +0 -16
- package/lib/typescript/src/components/radioButton/types.d.ts.map +0 -1
- package/lib/typescript/src/components/radioGroup/RadioGroup.d.ts +0 -4
- package/lib/typescript/src/components/radioGroup/RadioGroup.d.ts.map +0 -1
- package/lib/typescript/src/components/radioGroup/index.d.ts +0 -4
- package/lib/typescript/src/components/radioGroup/index.d.ts.map +0 -1
- package/lib/typescript/src/components/radioGroup/types.d.ts +0 -24
- package/lib/typescript/src/components/radioGroup/types.d.ts.map +0 -1
- package/lib/typescript/src/components/restorePassword/RestorePassword.d.ts +0 -5
- package/lib/typescript/src/components/restorePassword/RestorePassword.d.ts.map +0 -1
- package/lib/typescript/src/components/restorePassword/ResultDialog.d.ts +0 -5
- package/lib/typescript/src/components/restorePassword/ResultDialog.d.ts.map +0 -1
- package/lib/typescript/src/components/restorePassword/styles.d.ts +0 -34
- package/lib/typescript/src/components/restorePassword/styles.d.ts.map +0 -1
- package/lib/typescript/src/components/restorePassword/types.d.ts +0 -49
- package/lib/typescript/src/components/restorePassword/types.d.ts.map +0 -1
- package/lib/typescript/src/components/separator/Separator.d.ts +0 -4
- package/lib/typescript/src/components/separator/Separator.d.ts.map +0 -1
- package/lib/typescript/src/components/separator/types.d.ts +0 -9
- package/lib/typescript/src/components/separator/types.d.ts.map +0 -1
- package/lib/typescript/src/components/stripePayment/StripePayment.d.ts +0 -5
- package/lib/typescript/src/components/stripePayment/StripePayment.d.ts.map +0 -1
- package/lib/typescript/src/components/stripePayment/styles.d.ts +0 -7
- package/lib/typescript/src/components/stripePayment/styles.d.ts.map +0 -1
- package/lib/typescript/src/components/stripePayment/types.d.ts +0 -14
- package/lib/typescript/src/components/stripePayment/types.d.ts.map +0 -1
- package/lib/typescript/src/components/waitingList/WaitingList.d.ts +0 -6
- package/lib/typescript/src/components/waitingList/WaitingList.d.ts.map +0 -1
- package/lib/typescript/src/components/waitingList/WaitingListView.d.ts +0 -5
- package/lib/typescript/src/components/waitingList/WaitingListView.d.ts.map +0 -1
- package/lib/typescript/src/components/waitingList/styles.d.ts +0 -9
- package/lib/typescript/src/components/waitingList/styles.d.ts.map +0 -1
- package/lib/typescript/src/components/waitingList/types.d.ts +0 -59
- package/lib/typescript/src/components/waitingList/types.d.ts.map +0 -1
- package/lib/typescript/src/containers/billingInfo/Billing.d.ts +0 -6
- package/lib/typescript/src/containers/billingInfo/Billing.d.ts.map +0 -1
- package/lib/typescript/src/containers/billingInfo/styles.d.ts +0 -61
- package/lib/typescript/src/containers/billingInfo/styles.d.ts.map +0 -1
- package/lib/typescript/src/containers/billingInfo/types.d.ts +0 -160
- package/lib/typescript/src/containers/billingInfo/types.d.ts.map +0 -1
- package/lib/typescript/src/containers/checkout/Checkout.d.ts +0 -7
- package/lib/typescript/src/containers/checkout/Checkout.d.ts.map +0 -1
- package/lib/typescript/src/containers/checkout/CheckoutData.d.ts +0 -3
- package/lib/typescript/src/containers/checkout/CheckoutData.d.ts.map +0 -1
- package/lib/typescript/src/containers/checkout/components/Conditions.d.ts +0 -4
- package/lib/typescript/src/containers/checkout/components/Conditions.d.ts.map +0 -1
- package/lib/typescript/src/containers/checkout/components/OrderReview.d.ts +0 -4
- package/lib/typescript/src/containers/checkout/components/OrderReview.d.ts.map +0 -1
- package/lib/typescript/src/containers/checkout/components/styles.d.ts +0 -26
- package/lib/typescript/src/containers/checkout/components/styles.d.ts.map +0 -1
- package/lib/typescript/src/containers/checkout/styles.d.ts +0 -42
- package/lib/typescript/src/containers/checkout/styles.d.ts.map +0 -1
- package/lib/typescript/src/containers/checkout/types.d.ts +0 -126
- package/lib/typescript/src/containers/checkout/types.d.ts.map +0 -1
- package/lib/typescript/src/containers/index.d.ts +0 -9
- package/lib/typescript/src/containers/index.d.ts.map +0 -1
- package/lib/typescript/src/containers/myOrderDetails/MyOrderDetails.d.ts +0 -6
- package/lib/typescript/src/containers/myOrderDetails/MyOrderDetails.d.ts.map +0 -1
- package/lib/typescript/src/containers/myOrderDetails/MyOrderDetailsView.d.ts +0 -5
- package/lib/typescript/src/containers/myOrderDetails/MyOrderDetailsView.d.ts.map +0 -1
- package/lib/typescript/src/containers/myOrderDetails/components/Notification.d.ts +0 -15
- package/lib/typescript/src/containers/myOrderDetails/components/Notification.d.ts.map +0 -1
- package/lib/typescript/src/containers/myOrderDetails/components/OrderListItem.d.ts +0 -3
- package/lib/typescript/src/containers/myOrderDetails/components/OrderListItem.d.ts.map +0 -1
- package/lib/typescript/src/containers/myOrderDetails/components/TicketActions/TicketActions.d.ts +0 -5
- package/lib/typescript/src/containers/myOrderDetails/components/TicketActions/TicketActions.d.ts.map +0 -1
- package/lib/typescript/src/containers/myOrderDetails/components/TicketActions/TicketActionsTypes.d.ts +0 -30
- package/lib/typescript/src/containers/myOrderDetails/components/TicketActions/TicketActionsTypes.d.ts.map +0 -1
- package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItem.d.ts +0 -8
- package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItem.d.ts.map +0 -1
- package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItemStyles.d.ts +0 -33
- package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItemStyles.d.ts.map +0 -1
- package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItemTypes.d.ts +0 -30
- package/lib/typescript/src/containers/myOrderDetails/components/TicketListItem/TicketListItemTypes.d.ts.map +0 -1
- package/lib/typescript/src/containers/myOrderDetails/components/styles.d.ts +0 -39
- package/lib/typescript/src/containers/myOrderDetails/components/styles.d.ts.map +0 -1
- package/lib/typescript/src/containers/myOrderDetails/styles.d.ts +0 -55
- package/lib/typescript/src/containers/myOrderDetails/styles.d.ts.map +0 -1
- package/lib/typescript/src/containers/myOrderDetails/types.d.ts +0 -126
- package/lib/typescript/src/containers/myOrderDetails/types.d.ts.map +0 -1
- package/lib/typescript/src/containers/myOrders/MyOrders.d.ts +0 -6
- package/lib/typescript/src/containers/myOrders/MyOrders.d.ts.map +0 -1
- package/lib/typescript/src/containers/myOrders/MyOrdersView.d.ts +0 -5
- package/lib/typescript/src/containers/myOrders/MyOrdersView.d.ts.map +0 -1
- package/lib/typescript/src/containers/myOrders/components/OrderListItem.d.ts +0 -5
- package/lib/typescript/src/containers/myOrders/components/OrderListItem.d.ts.map +0 -1
- package/lib/typescript/src/containers/myOrders/components/styles.d.ts +0 -56
- package/lib/typescript/src/containers/myOrders/components/styles.d.ts.map +0 -1
- package/lib/typescript/src/containers/myOrders/components/types.d.ts +0 -26
- package/lib/typescript/src/containers/myOrders/components/types.d.ts.map +0 -1
- package/lib/typescript/src/containers/myOrders/styles.d.ts +0 -37
- package/lib/typescript/src/containers/myOrders/styles.d.ts.map +0 -1
- package/lib/typescript/src/containers/myOrders/types.d.ts +0 -73
- package/lib/typescript/src/containers/myOrders/types.d.ts.map +0 -1
- package/lib/typescript/src/containers/purchaseConfirmation/PurchaseConfirmation.d.ts +0 -6
- package/lib/typescript/src/containers/purchaseConfirmation/PurchaseConfirmation.d.ts.map +0 -1
- package/lib/typescript/src/containers/purchaseConfirmation/PurchaseConfirmationView.d.ts +0 -5
- package/lib/typescript/src/containers/purchaseConfirmation/PurchaseConfirmationView.d.ts.map +0 -1
- package/lib/typescript/src/containers/purchaseConfirmation/styles.d.ts +0 -74
- package/lib/typescript/src/containers/purchaseConfirmation/styles.d.ts.map +0 -1
- package/lib/typescript/src/containers/purchaseConfirmation/types.d.ts +0 -66
- package/lib/typescript/src/containers/purchaseConfirmation/types.d.ts.map +0 -1
- package/lib/typescript/src/containers/resaleTickets/ResaleTickets.d.ts +0 -6
- package/lib/typescript/src/containers/resaleTickets/ResaleTickets.d.ts.map +0 -1
- package/lib/typescript/src/containers/resaleTickets/ResaleTicketsView.d.ts +0 -5
- package/lib/typescript/src/containers/resaleTickets/ResaleTicketsView.d.ts.map +0 -1
- package/lib/typescript/src/containers/resaleTickets/types.d.ts +0 -129
- package/lib/typescript/src/containers/resaleTickets/types.d.ts.map +0 -1
- package/lib/typescript/src/containers/resetPassword/ResetPassword.d.ts +0 -5
- package/lib/typescript/src/containers/resetPassword/ResetPassword.d.ts.map +0 -1
- package/lib/typescript/src/containers/resetPassword/ResetPasswordView.d.ts +0 -5
- package/lib/typescript/src/containers/resetPassword/ResetPasswordView.d.ts.map +0 -1
- package/lib/typescript/src/containers/resetPassword/styles.d.ts +0 -33
- package/lib/typescript/src/containers/resetPassword/styles.d.ts.map +0 -1
- package/lib/typescript/src/containers/resetPassword/types.d.ts +0 -48
- package/lib/typescript/src/containers/resetPassword/types.d.ts.map +0 -1
- package/lib/typescript/src/containers/tickets/Tickets.d.ts +0 -6
- package/lib/typescript/src/containers/tickets/Tickets.d.ts.map +0 -1
- package/lib/typescript/src/containers/tickets/TicketsView.d.ts +0 -4
- package/lib/typescript/src/containers/tickets/TicketsView.d.ts.map +0 -1
- package/lib/typescript/src/containers/tickets/components/TicketGroupListHeader.d.ts +0 -5
- package/lib/typescript/src/containers/tickets/components/TicketGroupListHeader.d.ts.map +0 -1
- package/lib/typescript/src/containers/tickets/components/TicketListItem.d.ts +0 -4
- package/lib/typescript/src/containers/tickets/components/TicketListItem.d.ts.map +0 -1
- package/lib/typescript/src/containers/tickets/components/styles.d.ts +0 -51
- package/lib/typescript/src/containers/tickets/components/styles.d.ts.map +0 -1
- package/lib/typescript/src/containers/tickets/components/types.d.ts +0 -40
- package/lib/typescript/src/containers/tickets/components/types.d.ts.map +0 -1
- package/lib/typescript/src/containers/tickets/styles.d.ts +0 -20
- package/lib/typescript/src/containers/tickets/styles.d.ts.map +0 -1
- package/lib/typescript/src/containers/tickets/types.d.ts +0 -114
- package/lib/typescript/src/containers/tickets/types.d.ts.map +0 -1
- package/lib/typescript/src/core/BillingCore/BillingCore.d.ts +0 -13
- package/lib/typescript/src/core/BillingCore/BillingCore.d.ts.map +0 -1
- package/lib/typescript/src/core/BillingCore/BillingCoreTypes.d.ts +0 -24
- package/lib/typescript/src/core/BillingCore/BillingCoreTypes.d.ts.map +0 -1
- package/lib/typescript/src/core/CheckoutCore/CheckoutCore.d.ts +0 -15
- package/lib/typescript/src/core/CheckoutCore/CheckoutCore.d.ts.map +0 -1
- package/lib/typescript/src/core/CheckoutCore/CheckoutCoreTypes.d.ts +0 -17
- package/lib/typescript/src/core/CheckoutCore/CheckoutCoreTypes.d.ts.map +0 -1
- package/lib/typescript/src/core/CoreProps.d.ts +0 -5
- package/lib/typescript/src/core/CoreProps.d.ts.map +0 -1
- package/lib/typescript/src/core/LoginCore/LoginCore.d.ts +0 -6
- package/lib/typescript/src/core/LoginCore/LoginCore.d.ts.map +0 -1
- package/lib/typescript/src/core/LoginCore/LoginCoreHelper.d.ts +0 -3
- package/lib/typescript/src/core/LoginCore/LoginCoreHelper.d.ts.map +0 -1
- package/lib/typescript/src/core/LoginCore/LoginCoreTypes.d.ts +0 -15
- package/lib/typescript/src/core/LoginCore/LoginCoreTypes.d.ts.map +0 -1
- package/lib/typescript/src/core/MyOrdersCore/MyOrdersCore.d.ts +0 -6
- package/lib/typescript/src/core/MyOrdersCore/MyOrdersCore.d.ts.map +0 -1
- package/lib/typescript/src/core/MyOrdersCore/MyOrdersCoreTypes.d.ts +0 -10
- package/lib/typescript/src/core/MyOrdersCore/MyOrdersCoreTypes.d.ts.map +0 -1
- package/lib/typescript/src/core/OrderDetailsCore/OrderDetailsCore.d.ts +0 -6
- package/lib/typescript/src/core/OrderDetailsCore/OrderDetailsCore.d.ts.map +0 -1
- package/lib/typescript/src/core/OrderDetailsCore/OrderDetailsCoreTypes.d.ts +0 -9
- package/lib/typescript/src/core/OrderDetailsCore/OrderDetailsCoreTypes.d.ts.map +0 -1
- package/lib/typescript/src/core/PurchaseConfirmationCore/PurchaseConfirmationCore.d.ts +0 -6
- package/lib/typescript/src/core/PurchaseConfirmationCore/PurchaseConfirmationCore.d.ts.map +0 -1
- package/lib/typescript/src/core/PurchaseConfirmationCore/PurchaseConfirmationCoreTypes.d.ts +0 -8
- package/lib/typescript/src/core/PurchaseConfirmationCore/PurchaseConfirmationCoreTypes.d.ts.map +0 -1
- package/lib/typescript/src/core/ResetPasswordCore/ResetPasswordCore.d.ts +0 -6
- package/lib/typescript/src/core/ResetPasswordCore/ResetPasswordCore.d.ts.map +0 -1
- package/lib/typescript/src/core/ResetPasswordCore/ResetPasswordCoreTypes.d.ts +0 -5
- package/lib/typescript/src/core/ResetPasswordCore/ResetPasswordCoreTypes.d.ts.map +0 -1
- package/lib/typescript/src/core/Session/SessionCoreTypes.d.ts +0 -9
- package/lib/typescript/src/core/Session/SessionCoreTypes.d.ts.map +0 -1
- package/lib/typescript/src/core/Session/SessionHandle.d.ts +0 -6
- package/lib/typescript/src/core/Session/SessionHandle.d.ts.map +0 -1
- package/lib/typescript/src/core/TicketsCore/TicketsCore.d.ts +0 -6
- package/lib/typescript/src/core/TicketsCore/TicketsCore.d.ts.map +0 -1
- package/lib/typescript/src/core/TicketsCore/TicketsCoreTypes.d.ts +0 -40
- package/lib/typescript/src/core/TicketsCore/TicketsCoreTypes.d.ts.map +0 -1
- package/lib/typescript/src/core/WaitingListCore/WaitingListCore.d.ts +0 -6
- package/lib/typescript/src/core/WaitingListCore/WaitingListCore.d.ts.map +0 -1
- package/lib/typescript/src/core/WaitingListCore/WaitingListCoreTypes.d.ts +0 -12
- package/lib/typescript/src/core/WaitingListCore/WaitingListCoreTypes.d.ts.map +0 -1
- package/lib/typescript/src/core/index.d.ts +0 -21
- package/lib/typescript/src/core/index.d.ts.map +0 -1
- package/lib/typescript/src/features/auth/api-hooks.d.ts +0 -178
- package/lib/typescript/src/features/auth/api-hooks.d.ts.map +0 -1
- package/lib/typescript/src/features/auth/types.d.ts +0 -51
- package/lib/typescript/src/features/auth/types.d.ts.map +0 -1
- package/lib/typescript/src/features/auth/utils.d.ts +0 -3
- package/lib/typescript/src/features/auth/utils.d.ts.map +0 -1
- package/lib/typescript/src/features/checkout-v2/components/AddonsContainer.d.ts +0 -37
- package/lib/typescript/src/features/checkout-v2/components/AddonsContainer.d.ts.map +0 -1
- package/lib/typescript/src/features/checkout-v2/components/Conditions.d.ts +0 -30
- package/lib/typescript/src/features/checkout-v2/components/Conditions.d.ts.map +0 -1
- package/lib/typescript/src/features/checkout-v2/components/OrderReview.d.ts +0 -25
- package/lib/typescript/src/features/checkout-v2/components/OrderReview.d.ts.map +0 -1
- package/lib/typescript/src/features/checkout-v2/components/TicketHoldersSection.d.ts +0 -14
- package/lib/typescript/src/features/checkout-v2/components/TicketHoldersSection.d.ts.map +0 -1
- package/lib/typescript/src/features/checkout-v2/form/config.d.ts +0 -61
- package/lib/typescript/src/features/checkout-v2/form/config.d.ts.map +0 -1
- package/lib/typescript/src/features/checkout-v2/form/index.d.ts +0 -22
- package/lib/typescript/src/features/checkout-v2/form/index.d.ts.map +0 -1
- package/lib/typescript/src/features/checkout-v2/form/styles.d.ts +0 -4501
- package/lib/typescript/src/features/checkout-v2/form/styles.d.ts.map +0 -1
- package/lib/typescript/src/features/checkout-v2/form/texts.d.ts +0 -4
- package/lib/typescript/src/features/checkout-v2/form/texts.d.ts.map +0 -1
- package/lib/typescript/src/features/checkout-v2/form/types.d.ts +0 -191
- package/lib/typescript/src/features/checkout-v2/form/types.d.ts.map +0 -1
- package/lib/typescript/src/features/checkout-v2/hooks/api-hooks.d.ts +0 -227
- package/lib/typescript/src/features/checkout-v2/hooks/api-hooks.d.ts.map +0 -1
- package/lib/typescript/src/features/checkout-v2/hooks/use-checkout.d.ts +0 -37
- package/lib/typescript/src/features/checkout-v2/hooks/use-checkout.d.ts.map +0 -1
- package/lib/typescript/src/features/checkout-v2/index.d.ts +0 -42
- package/lib/typescript/src/features/checkout-v2/index.d.ts.map +0 -1
- package/lib/typescript/src/features/checkout-v2/types.d.ts +0 -433
- package/lib/typescript/src/features/checkout-v2/types.d.ts.map +0 -1
- package/lib/typescript/src/features/checkout-v2/utils.d.ts +0 -12
- package/lib/typescript/src/features/checkout-v2/utils.d.ts.map +0 -1
- package/lib/typescript/src/features/event/api-hooks.d.ts +0 -171
- package/lib/typescript/src/features/event/api-hooks.d.ts.map +0 -1
- package/lib/typescript/src/features/event/types.d.ts +0 -58
- package/lib/typescript/src/features/event/types.d.ts.map +0 -1
- package/lib/typescript/src/features/form/index.d.ts +0 -24
- package/lib/typescript/src/features/form/index.d.ts.map +0 -1
- package/lib/typescript/src/features/form/styles.d.ts +0 -35
- package/lib/typescript/src/features/form/styles.d.ts.map +0 -1
- package/lib/typescript/src/features/form/types.d.ts +0 -33
- package/lib/typescript/src/features/form/types.d.ts.map +0 -1
- package/lib/typescript/src/features/geo/api-hooks.d.ts +0 -12
- package/lib/typescript/src/features/geo/api-hooks.d.ts.map +0 -1
- package/lib/typescript/src/features/geo/types.d.ts +0 -13
- package/lib/typescript/src/features/geo/types.d.ts.map +0 -1
- package/lib/typescript/src/helpers/Config.d.ts +0 -24
- package/lib/typescript/src/helpers/Config.d.ts.map +0 -1
- package/lib/typescript/src/helpers/CountryCodes.d.ts +0 -16
- package/lib/typescript/src/helpers/CountryCodes.d.ts.map +0 -1
- package/lib/typescript/src/helpers/Debounced.d.ts +0 -2
- package/lib/typescript/src/helpers/Debounced.d.ts.map +0 -1
- package/lib/typescript/src/helpers/Domains.d.ts +0 -3
- package/lib/typescript/src/helpers/Domains.d.ts.map +0 -1
- package/lib/typescript/src/helpers/LocalStorage.d.ts +0 -27
- package/lib/typescript/src/helpers/LocalStorage.d.ts.map +0 -1
- package/lib/typescript/src/helpers/RefreshAccessToken.d.ts +0 -3
- package/lib/typescript/src/helpers/RefreshAccessToken.d.ts.map +0 -1
- package/lib/typescript/src/helpers/StringsHelper.d.ts +0 -3
- package/lib/typescript/src/helpers/StringsHelper.d.ts.map +0 -1
- package/lib/typescript/src/helpers/Validators.d.ts +0 -16
- package/lib/typescript/src/helpers/Validators.d.ts.map +0 -1
- package/lib/typescript/src/index.d.ts +0 -49
- package/lib/typescript/src/index.d.ts.map +0 -1
- package/lib/typescript/src/res/colors.d.ts +0 -16
- package/lib/typescript/src/res/colors.d.ts.map +0 -1
- package/lib/typescript/src/res/icons.d.ts +0 -13
- package/lib/typescript/src/res/icons.d.ts.map +0 -1
- package/lib/typescript/src/res/images.d.ts +0 -5
- package/lib/typescript/src/res/images.d.ts.map +0 -1
- package/lib/typescript/src/res/index.d.ts +0 -32
- package/lib/typescript/src/res/index.d.ts.map +0 -1
- package/lib/typescript/src/types/IAccountTickets.d.ts +0 -71
- package/lib/typescript/src/types/IAccountTickets.d.ts.map +0 -1
- package/lib/typescript/src/types/ICountry.d.ts +0 -2
- package/lib/typescript/src/types/ICountry.d.ts.map +0 -1
- package/lib/typescript/src/types/IError.d.ts +0 -6
- package/lib/typescript/src/types/IError.d.ts.map +0 -1
- package/lib/typescript/src/types/IEvent.d.ts +0 -87
- package/lib/typescript/src/types/IEvent.d.ts.map +0 -1
- package/lib/typescript/src/types/ITicket.d.ts +0 -71
- package/lib/typescript/src/types/ITicket.d.ts.map +0 -1
- package/lib/typescript/src/types/IUserProfile.d.ts +0 -30
- package/lib/typescript/src/types/IUserProfile.d.ts.map +0 -1
- package/lib/typescript/src/types/index.d.ts +0 -6
- package/lib/typescript/src/types/index.d.ts.map +0 -1
- package/lib/typescript/src/utils/Logger.d.ts +0 -21
- package/lib/typescript/src/utils/Logger.d.ts.map +0 -1
- package/lib/typescript/src/utils/handlers.d.ts +0 -9
- package/lib/typescript/src/utils/handlers.d.ts.map +0 -1
- package/lib/typescript/src/utils/storageAdapter.d.ts +0 -14
- package/lib/typescript/src/utils/storageAdapter.d.ts.map +0 -1
- package/lib/typescript/src/utils/styleUtils.d.ts +0 -18
- package/lib/typescript/src/utils/styleUtils.d.ts.map +0 -1
- package/src/api/ApiClient.ts +0 -1539
- package/src/api/Constants.ts +0 -10
- package/src/api/ErrorHandler.ts +0 -36
- package/src/api/api.types.ts +0 -8
- package/src/api/types.ts +0 -593
- package/src/apiv2/index.ts +0 -143
- package/src/assets/icons/ic_check.png +0 -0
- package/src/assets/icons/ic_clock.png +0 -0
- package/src/assets/icons/ic_copy.png +0 -0
- package/src/assets/icons/ic_dropdown.png +0 -0
- package/src/assets/icons/ic_error.png +0 -0
- package/src/assets/icons/ic_eye.png +0 -0
- package/src/assets/icons/ic_eye_off.png +0 -0
- package/src/assets/icons/ic_more.png +0 -0
- package/src/assets/icons/ic_next.png +0 -0
- package/src/assets/images/brand.png +0 -0
- package/src/common/query.types.ts +0 -6
- package/src/components/bottomSheetModal/BottomSheetModal.tsx +0 -95
- package/src/components/bottomSheetModal/BottomSheetModalStyles.ts +0 -43
- package/src/components/bottomSheetModal/BottomSheetModalTypes.ts +0 -26
- package/src/components/button/Button.tsx +0 -53
- package/src/components/button/styles.tsx +0 -30
- package/src/components/button/types.ts +0 -16
- package/src/components/cartTimer/CartTimer.tsx +0 -68
- package/src/components/cartTimer/styles.ts +0 -44
- package/src/components/cartTimer/types.ts +0 -22
- package/src/components/checkbox/Checkbox.tsx +0 -53
- package/src/components/checkbox/styles.ts +0 -41
- package/src/components/checkbox/types.ts +0 -23
- package/src/components/datePicker/DatePicker.tsx +0 -81
- package/src/components/datePicker/styles.ts +0 -39
- package/src/components/datePicker/types.ts +0 -21
- package/src/components/dropdown/Dropdown.tsx +0 -111
- package/src/components/dropdown/DropdownListItem.tsx +0 -36
- package/src/components/dropdown/styles.ts +0 -97
- package/src/components/dropdown/types.ts +0 -38
- package/src/components/dropdownMaterial/DropdownMaterial.tsx +0 -129
- package/src/components/dropdownMaterial/styles.ts +0 -91
- package/src/components/dropdownMaterial/types.ts +0 -24
- package/src/components/enterPassword/EnterPassword.tsx +0 -50
- package/src/components/enterPassword/styles.ts +0 -23
- package/src/components/enterPassword/types.ts +0 -27
- package/src/components/formField/FormField.tsx +0 -131
- package/src/components/formField/styles.ts +0 -37
- package/src/components/formField/types.ts +0 -60
- package/src/components/index.ts +0 -20
- package/src/components/input/Input.tsx +0 -77
- package/src/components/input/styles.ts +0 -53
- package/src/components/input/types.ts +0 -38
- package/src/components/loading/Loading.tsx +0 -30
- package/src/components/loading/styles.ts +0 -32
- package/src/components/loading/types.ts +0 -16
- package/src/components/loggedIn/LoggedIn.tsx +0 -60
- package/src/components/loggedIn/styles.ts +0 -9
- package/src/components/loggedIn/types.ts +0 -27
- package/src/components/login/Login.tsx +0 -161
- package/src/components/login/LoginView.tsx +0 -259
- package/src/components/login/components/LoginForm.tsx +0 -92
- package/src/components/login/components/types.ts +0 -22
- package/src/components/login/styles.ts +0 -63
- package/src/components/login/types.ts +0 -189
- package/src/components/phoneInput/PhoneInput.tsx +0 -72
- package/src/components/phoneInput/styles.ts +0 -31
- package/src/components/phoneInput/types.ts +0 -35
- package/src/components/promoCode/PromoCode.tsx +0 -111
- package/src/components/promoCode/styles.ts +0 -63
- package/src/components/promoCode/types.ts +0 -43
- package/src/components/radioButton/RadioButton.tsx +0 -26
- package/src/components/radioButton/styles.ts +0 -32
- package/src/components/radioButton/types.ts +0 -17
- package/src/components/radioGroup/RadioGroup.tsx +0 -86
- package/src/components/radioGroup/index.ts +0 -4
- package/src/components/radioGroup/types.ts +0 -26
- package/src/components/restorePassword/RestorePassword.tsx +0 -63
- package/src/components/restorePassword/ResultDialog.tsx +0 -26
- package/src/components/restorePassword/styles.ts +0 -38
- package/src/components/restorePassword/types.ts +0 -61
- package/src/components/separator/Separator.tsx +0 -26
- package/src/components/separator/types.ts +0 -9
- package/src/components/stripePayment/StripePayment.tsx +0 -51
- package/src/components/stripePayment/styles.ts +0 -7
- package/src/components/stripePayment/types.ts +0 -22
- package/src/components/waitingList/WaitingList.tsx +0 -147
- package/src/components/waitingList/WaitingListView.tsx +0 -94
- package/src/components/waitingList/styles.ts +0 -9
- package/src/components/waitingList/types.ts +0 -68
- package/src/containers/billingInfo/Billing.tsx +0 -1902
- package/src/containers/billingInfo/styles.ts +0 -64
- package/src/containers/billingInfo/types.ts +0 -217
- package/src/containers/checkout/Checkout.tsx +0 -519
- package/src/containers/checkout/CheckoutData.ts +0 -29
- package/src/containers/checkout/components/Conditions.tsx +0 -22
- package/src/containers/checkout/components/OrderReview.tsx +0 -31
- package/src/containers/checkout/components/styles.ts +0 -28
- package/src/containers/checkout/styles.ts +0 -44
- package/src/containers/checkout/types.ts +0 -148
- package/src/containers/index.ts +0 -8
- package/src/containers/myOrderDetails/MyOrderDetails.tsx +0 -318
- package/src/containers/myOrderDetails/MyOrderDetailsView.tsx +0 -269
- package/src/containers/myOrderDetails/components/Notification.tsx +0 -40
- package/src/containers/myOrderDetails/components/OrderListItem.tsx +0 -12
- package/src/containers/myOrderDetails/components/TicketActions/TicketActions.tsx +0 -68
- package/src/containers/myOrderDetails/components/TicketActions/TicketActionsTypes.ts +0 -41
- package/src/containers/myOrderDetails/components/TicketListItem/TicketListItem.tsx +0 -63
- package/src/containers/myOrderDetails/components/TicketListItem/TicketListItemStyles.ts +0 -33
- package/src/containers/myOrderDetails/components/TicketListItem/TicketListItemTypes.ts +0 -39
- package/src/containers/myOrderDetails/components/styles.ts +0 -42
- package/src/containers/myOrderDetails/styles.ts +0 -57
- package/src/containers/myOrderDetails/types.ts +0 -173
- package/src/containers/myOrders/MyOrders.tsx +0 -340
- package/src/containers/myOrders/MyOrdersView.tsx +0 -182
- package/src/containers/myOrders/components/OrderListItem.tsx +0 -50
- package/src/containers/myOrders/components/styles.ts +0 -55
- package/src/containers/myOrders/components/types.ts +0 -28
- package/src/containers/myOrders/styles.ts +0 -42
- package/src/containers/myOrders/types.ts +0 -84
- package/src/containers/purchaseConfirmation/PurchaseConfirmation.tsx +0 -145
- package/src/containers/purchaseConfirmation/PurchaseConfirmationView.tsx +0 -82
- package/src/containers/purchaseConfirmation/styles.ts +0 -79
- package/src/containers/purchaseConfirmation/types.ts +0 -77
- package/src/containers/resaleTickets/ResaleTickets.tsx +0 -234
- package/src/containers/resaleTickets/ResaleTicketsView.tsx +0 -314
- package/src/containers/resaleTickets/types.ts +0 -154
- package/src/containers/resetPassword/ResetPassword.tsx +0 -110
- package/src/containers/resetPassword/ResetPasswordView.tsx +0 -81
- package/src/containers/resetPassword/styles.ts +0 -35
- package/src/containers/resetPassword/types.ts +0 -56
- package/src/containers/tickets/Tickets.tsx +0 -525
- package/src/containers/tickets/TicketsView.tsx +0 -164
- package/src/containers/tickets/components/TicketGroupListHeader.tsx +0 -12
- package/src/containers/tickets/components/TicketListItem.tsx +0 -124
- package/src/containers/tickets/components/styles.ts +0 -54
- package/src/containers/tickets/components/types.ts +0 -47
- package/src/containers/tickets/styles.ts +0 -22
- package/src/containers/tickets/types.ts +0 -158
- package/src/core/BillingCore/BillingCore.tsx +0 -129
- package/src/core/BillingCore/BillingCoreTypes.ts +0 -34
- package/src/core/BillingCore/README.md +0 -22
- package/src/core/CheckoutCore/CheckoutCore.tsx +0 -113
- package/src/core/CheckoutCore/CheckoutCoreTypes.ts +0 -23
- package/src/core/CheckoutCore/README.md +0 -20
- package/src/core/CoreProps.ts +0 -5
- package/src/core/LoginCore/LoginCore.tsx +0 -140
- package/src/core/LoginCore/LoginCoreHelper.ts +0 -22
- package/src/core/LoginCore/LoginCoreTypes.ts +0 -21
- package/src/core/MIGRATION.md +0 -148
- package/src/core/MyOrdersCore/MyOrdersCore.tsx +0 -44
- package/src/core/MyOrdersCore/MyOrdersCoreTypes.ts +0 -15
- package/src/core/OrderDetailsCore/OrderDetailsCore.tsx +0 -36
- package/src/core/OrderDetailsCore/OrderDetailsCoreTypes.ts +0 -10
- package/src/core/PurchaseConfirmationCore/PurchaseConfirmationCore.tsx +0 -37
- package/src/core/PurchaseConfirmationCore/PurchaseConfirmationCoreTypes.ts +0 -10
- package/src/core/ResetPasswordCore/ResetPasswordCore.tsx +0 -21
- package/src/core/ResetPasswordCore/ResetPasswordCoreTypes.ts +0 -5
- package/src/core/Session/SessionCoreTypes.ts +0 -10
- package/src/core/Session/SessionHandle.tsx +0 -23
- package/src/core/TicketsCore/TicketsCore.tsx +0 -216
- package/src/core/TicketsCore/TicketsCoreTypes.ts +0 -52
- package/src/core/WaitingListCore/WaitingListCore.tsx +0 -35
- package/src/core/WaitingListCore/WaitingListCoreTypes.ts +0 -16
- package/src/core/index.ts +0 -20
- package/src/features/auth/api-hooks.ts +0 -61
- package/src/features/auth/types.ts +0 -54
- package/src/features/auth/utils.ts +0 -27
- package/src/features/checkout-v2/components/AddonsContainer.tsx +0 -159
- package/src/features/checkout-v2/components/Conditions.tsx +0 -144
- package/src/features/checkout-v2/components/OrderReview.tsx +0 -96
- package/src/features/checkout-v2/components/TicketHoldersSection.tsx +0 -131
- package/src/features/checkout-v2/form/config.tsx +0 -194
- package/src/features/checkout-v2/form/index.tsx +0 -830
- package/src/features/checkout-v2/form/styles.ts +0 -241
- package/src/features/checkout-v2/form/texts.ts +0 -133
- package/src/features/checkout-v2/form/types.ts +0 -231
- package/src/features/checkout-v2/hooks/api-hooks.ts +0 -332
- package/src/features/checkout-v2/hooks/use-checkout.ts +0 -927
- package/src/features/checkout-v2/index.tsx +0 -289
- package/src/features/checkout-v2/types.ts +0 -475
- package/src/features/checkout-v2/utils.ts +0 -156
- package/src/features/event/api-hooks.ts +0 -28
- package/src/features/event/types.ts +0 -69
- package/src/features/form/index.tsx +0 -185
- package/src/features/form/styles.ts +0 -37
- package/src/features/form/types.ts +0 -38
- package/src/features/geo/api-hooks.ts +0 -43
- package/src/features/geo/types.ts +0 -15
- package/src/helpers/Config.ts +0 -81
- package/src/helpers/CountryCodes.ts +0 -3382
- package/src/helpers/Debounced.ts +0 -27
- package/src/helpers/Domains.ts +0 -32
- package/src/helpers/LocalStorage.tsx +0 -152
- package/src/helpers/RefreshAccessToken.ts +0 -25
- package/src/helpers/StringsHelper.ts +0 -5
- package/src/helpers/Validators.ts +0 -108
- package/src/packages/rn-material-ui-textfield/README.md +0 -149
- package/src/packages/rn-material-ui-textfield/components/affix/index.js +0 -61
- package/src/packages/rn-material-ui-textfield/components/affix/styles.js +0 -8
- package/src/packages/rn-material-ui-textfield/components/counter/index.js +0 -36
- package/src/packages/rn-material-ui-textfield/components/counter/styles.js +0 -12
- package/src/packages/rn-material-ui-textfield/components/field/index.js +0 -700
- package/src/packages/rn-material-ui-textfield/components/field/styles.js +0 -42
- package/src/packages/rn-material-ui-textfield/components/field-filled/index.js +0 -21
- package/src/packages/rn-material-ui-textfield/components/field-filled/styles.js +0 -10
- package/src/packages/rn-material-ui-textfield/components/field-outlined/index.js +0 -59
- package/src/packages/rn-material-ui-textfield/components/helper/index.js +0 -78
- package/src/packages/rn-material-ui-textfield/components/helper/styles.js +0 -12
- package/src/packages/rn-material-ui-textfield/components/label/index.js +0 -123
- package/src/packages/rn-material-ui-textfield/components/label/styles.js +0 -16
- package/src/packages/rn-material-ui-textfield/components/line/index.js +0 -117
- package/src/packages/rn-material-ui-textfield/components/line/styles.js +0 -18
- package/src/packages/rn-material-ui-textfield/components/outline/index.js +0 -139
- package/src/packages/rn-material-ui-textfield/components/outline/styles.js +0 -83
- package/src/packages/rn-material-ui-textfield/index.d.ts +0 -53
- package/src/packages/rn-material-ui-textfield/index.js +0 -5
- package/src/packages/rn-material-ui-textfield/license.txt +0 -28
- package/src/res/colors.ts +0 -16
- package/src/res/icons.ts +0 -11
- package/src/res/images.ts +0 -3
- package/src/res/index.ts +0 -11
- package/src/types/IAccountTickets.ts +0 -75
- package/src/types/ICountry.ts +0 -2
- package/src/types/IError.ts +0 -5
- package/src/types/IEvent.ts +0 -87
- package/src/types/ITicket.ts +0 -75
- package/src/types/IUserProfile.ts +0 -30
- package/src/types/index.ts +0 -5
- package/src/utils/Logger.ts +0 -75
- package/src/utils/handlers.ts +0 -49
- package/src/utils/storageAdapter.ts +0 -44
- package/src/utils/styleUtils.ts +0 -76
package/README.md
CHANGED
|
@@ -1,3419 +1,320 @@
|
|
|
1
1
|
# tf-checkout-react-native
|
|
2
2
|
|
|
3
|
-
React Native
|
|
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
|
-
|
|
7
|
+
Same API as [`tf-checkout-react`](https://github.com/theticketfairy/tf-shared-libraries/blob/main/packages/tf-checkout-react/README.md); the flow,
|
|
8
|
+
validation, and gating rules are literally the same code.
|
|
6
9
|
|
|
7
|
-
|
|
10
|
+
The 2.x source is maintained in [`tf-shared-libraries/packages/tf-checkout-react-native`](https://github.com/theticketfairy/tf-shared-libraries/tree/main/packages/tf-checkout-react-native).
|
|
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
|
-
|
|
16
|
+
## Install
|
|
10
17
|
|
|
11
|
-
|
|
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. The current matching pair is
|
|
21
|
+
`2.0.0-beta.9`; see its [registry acceptance record](https://github.com/theticketfairy/tf-shared-libraries/blob/main/docs/releases/2.0.0-beta.9.registry.json).
|
|
22
|
+
The [app integration contract](https://github.com/theticketfairy/tf-shared-libraries/blob/main/docs/integration/app-sdk.md)
|
|
23
|
+
records the shared APIs and remaining deployment/provider acceptance gates.
|
|
12
24
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
-
|
|
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>'
|
|
25
|
+
```bash
|
|
26
|
+
npx expo install tf-checkout-react-native@beta \
|
|
27
|
+
@tanstack/react-query \
|
|
28
|
+
@stripe/stripe-react-native \
|
|
29
|
+
react-native-mmkv@3 \
|
|
30
|
+
@react-native-clipboard/clipboard \
|
|
31
|
+
react-native-webview
|
|
135
32
|
```
|
|
136
33
|
|
|
137
|
-
|
|
34
|
+
Bare React Native:
|
|
138
35
|
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
<!-- ... -->
|
|
142
|
-
</style>
|
|
36
|
+
```bash
|
|
37
|
+
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
38
|
```
|
|
144
39
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
import { setConfig } from 'tf-checkout-react-native'
|
|
151
|
-
```
|
|
40
|
+
These are **peer dependencies** on purpose. React contexts and native
|
|
41
|
+
modules must exist exactly once in an app — a second copy of react-query means
|
|
42
|
+
your `<QueryClientProvider>` is invisible to our hooks, and a second Stripe
|
|
43
|
+
means a duplicate pod. As peers there is one copy and no Metro aliasing is ever
|
|
44
|
+
needed.
|
|
152
45
|
|
|
153
|
-
|
|
46
|
+
Everything else — the SDK core, the flow, the UI — ships inside the package.
|
|
154
47
|
|
|
155
|
-
|
|
48
|
+
## Requirements
|
|
156
49
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
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
|
-
```
|
|
50
|
+
- React Native `0.81+` with the New Architecture enabled (required by
|
|
51
|
+
`react-native-mmkv` 3.x)
|
|
52
|
+
- React `19.1+`, Node `20.19.4+`
|
|
53
|
+
- iOS 15.1+ · Android API 24+ (Stripe SDK minimums)
|
|
54
|
+
- A development build. **Expo Go will not work** — this package uses native
|
|
55
|
+
modules.
|
|
189
56
|
|
|
190
|
-
|
|
57
|
+
Add the Stripe plugin to `app.json`:
|
|
191
58
|
|
|
192
|
-
```
|
|
59
|
+
```json
|
|
193
60
|
{
|
|
194
|
-
|
|
195
|
-
|
|
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
|
|
61
|
+
"expo": {
|
|
62
|
+
"plugins": [["@stripe/stripe-react-native", { "enableGooglePay": false }]]
|
|
207
63
|
}
|
|
208
64
|
}
|
|
209
65
|
```
|
|
210
66
|
|
|
211
|
-
|
|
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.
|
|
67
|
+
Then build a dev client once:
|
|
288
68
|
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
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.
|
|
69
|
+
```bash
|
|
70
|
+
npx expo run:ios
|
|
71
|
+
```
|
|
328
72
|
|
|
329
|
-
##
|
|
73
|
+
## Use it
|
|
330
74
|
|
|
331
75
|
```tsx
|
|
332
|
-
import {
|
|
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
|
-
}
|
|
76
|
+
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
|
|
77
|
+
import { configureCheckout, EmbeddedCheckout } from 'tf-checkout-react-native'
|
|
357
78
|
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
initialValues={initialValues}
|
|
362
|
-
countries={countries}
|
|
363
|
-
states={states}
|
|
364
|
-
orderItems={orderItems}
|
|
365
|
-
secondsLeft={secondsLeft}
|
|
366
|
-
isSubmitting={isSubmitting}
|
|
367
|
-
/>
|
|
368
|
-
)
|
|
369
|
-
}
|
|
79
|
+
configureCheckout({ env: 'PROD', clientId: 'PUBLIC_SDK_CLIENT_ID', clientSecret: '', cookieAuth: true })
|
|
80
|
+
|
|
81
|
+
const queryClient = new QueryClient()
|
|
370
82
|
|
|
371
|
-
export default
|
|
83
|
+
export default function App() {
|
|
372
84
|
return (
|
|
373
|
-
<
|
|
374
|
-
<
|
|
375
|
-
</
|
|
85
|
+
<QueryClientProvider client={queryClient}>
|
|
86
|
+
<EmbeddedCheckout eventId="14304" onComplete={(order) => console.log(order)} />
|
|
87
|
+
</QueryClientProvider>
|
|
376
88
|
)
|
|
377
89
|
}
|
|
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
90
|
```
|
|
470
91
|
|
|
471
|
-
|
|
92
|
+
`configureCheckout` runs once at app start and defaults SDK-owned storage to
|
|
93
|
+
MMKV. Storage survives a relaunch; the backend still validates the restored
|
|
94
|
+
session.
|
|
472
95
|
|
|
473
|
-
|
|
96
|
+
### Checkout sessions and account scope
|
|
474
97
|
|
|
475
|
-
|
|
98
|
+
The native wrapper defaults `cookieAuth` to true and disables ambient native
|
|
99
|
+
cookie handling. Owned credentials use the SDK's header-backed session storage.
|
|
100
|
+
Public checkout sign-in preserves the event-bound guest carrier and keeps its
|
|
101
|
+
buyer credential server-side; it does not return a full-account ticket or grant
|
|
102
|
+
private account access. First-party full-account flows explicitly use
|
|
103
|
+
`accountAuth: true`; see the shared identity contract below.
|
|
476
104
|
|
|
477
|
-
###
|
|
478
|
-
|
|
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
|
|
105
|
+
### Environments
|
|
484
106
|
|
|
485
107
|
```ts
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
// Call the refreshAccessToken function by using
|
|
489
|
-
await sessionHandleRef.current?.refreshAccessToken()
|
|
108
|
+
configureCheckout({ env: 'STAG', clientId: 'PUBLIC_SDK_CLIENT_ID', clientSecret: '', cookieAuth: true })
|
|
490
109
|
```
|
|
491
110
|
|
|
492
|
-
|
|
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)
|
|
111
|
+
`PROD` → `www.ticketfairy.com`, `STAG` → `test.ticketfairy.com`, `DEV` →
|
|
112
|
+
`sandbox.ticketfairy.com`. Pass `baseUrl` to point elsewhere.
|
|
509
113
|
|
|
510
|
-
|
|
114
|
+
## `<EmbeddedCheckout />`
|
|
511
115
|
|
|
512
|
-
|
|
116
|
+
| Prop | Type | Default | Does |
|
|
117
|
+
| ----------------------------------- | ----------------------------------- | ----------- | --------------------------------------------- |
|
|
118
|
+
| `eventId` | `string` | — | The event to sell. Required. |
|
|
119
|
+
| `onComplete` | `(order: PlaceOrderResult) => void` | — | Fires once payment settles. |
|
|
120
|
+
| `confirmationMode` | `'inline' \| 'redirect'` | `'inline'` | `redirect` leaves routing to `onComplete`. |
|
|
121
|
+
| `initialView` | `'tickets' \| 'seats'` | `'tickets'` | Opening screen. |
|
|
122
|
+
| `onViewChange` | `(view) => void` | — | Reports the visible view. |
|
|
123
|
+
| `requireEmailConfirmation` | `boolean` | `true` | Make guests repeat their email. |
|
|
124
|
+
| `collectTicketHolders` | `boolean` | `true` | One named holder per ticket. |
|
|
125
|
+
| `collectHolderContact` | `boolean` | `true` | Also collect holder email/phone. |
|
|
126
|
+
| `skipBillingWhenProfileComplete` | `boolean` | `false` | Skip billing for complete signed-in profiles. |
|
|
127
|
+
| `auth` | `false \| AuthOptions` | built-in | Configure or remove the login modal. |
|
|
128
|
+
| `onLogin` | `(email?: string) => void` | — | Open your own login UI instead. |
|
|
129
|
+
| `privacyPolicy` | `CheckoutPrivacyPolicy` | — | Your privacy policy link and brand name. |
|
|
130
|
+
| `additionalConditions` | `EventCondition[]` | — | Extra acknowledgements. |
|
|
131
|
+
| `ttfOptInLabel` / `brandOptInLabel` | `string` | — | Override the marketing opt-in copy. |
|
|
132
|
+
| `initialPromoCode` | `string` | — | Apply a promo code on load. |
|
|
133
|
+
| `referrer` | `string \| number` | — | Attribute the sale. |
|
|
134
|
+
| `showTestCardHint` | `boolean` | `false` | Show sandbox card copy. Demos only. |
|
|
135
|
+
| `theme` | `CheckoutTheme` | — | Recolor via design tokens. |
|
|
513
136
|
|
|
514
|
-
|
|
137
|
+
`readAttributionFromUrl` is accepted for parity with web and is a no-op —
|
|
138
|
+
there is no `window.location` on a device.
|
|
515
139
|
|
|
516
|
-
|
|
517
|
-
|
|
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.
|
|
140
|
+
## Theming
|
|
542
141
|
|
|
543
142
|
```tsx
|
|
544
|
-
<
|
|
545
|
-
|
|
546
|
-
|
|
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
|
|
143
|
+
<EmbeddedCheckout
|
|
144
|
+
eventId="14304"
|
|
145
|
+
theme={{ colorScheme: 'dark', accent: '#ff2d55', radiusCard: 16 }}
|
|
593
146
|
/>
|
|
594
147
|
```
|
|
595
148
|
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
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
|
|
618
|
-
|
|
619
|
-
```ts
|
|
620
|
-
{
|
|
621
|
-
accessToken: string
|
|
622
|
-
refreshToken: string
|
|
623
|
-
tokenType: string
|
|
624
|
-
scope: string
|
|
625
|
-
}
|
|
626
|
-
```
|
|
149
|
+
The same token names as web: color (`accent`, `surface`, `text`, `muted`,
|
|
150
|
+
`border`, `error`, `success`), shape, and typography. Read them anywhere with
|
|
151
|
+
`useTheme()`.
|
|
627
152
|
|
|
628
|
-
|
|
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
|
-
```
|
|
153
|
+
## Composing your own layout
|
|
703
154
|
|
|
704
|
-
|
|
155
|
+
Every section reads the same `useCheckout()` store from the provider.
|
|
705
156
|
|
|
706
|
-
|
|
157
|
+
```tsx
|
|
158
|
+
import {
|
|
159
|
+
CheckoutProvider,
|
|
160
|
+
Tickets,
|
|
161
|
+
AddOns,
|
|
162
|
+
BillingInfo,
|
|
163
|
+
Payment,
|
|
164
|
+
OrderSummary,
|
|
165
|
+
useCheckout,
|
|
166
|
+
} from 'tf-checkout-react-native'
|
|
707
167
|
|
|
708
|
-
|
|
709
|
-
{
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
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
|
-
}
|
|
168
|
+
const MyCheckout = () => (
|
|
169
|
+
<CheckoutProvider theme={{ colorScheme: 'dark' }}>
|
|
170
|
+
<ScrollView>
|
|
171
|
+
<Tickets />
|
|
172
|
+
<AddOns />
|
|
173
|
+
<BillingInfo />
|
|
174
|
+
<OrderSummary />
|
|
175
|
+
<Payment />
|
|
176
|
+
</ScrollView>
|
|
177
|
+
</CheckoutProvider>
|
|
178
|
+
)
|
|
743
179
|
```
|
|
744
180
|
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
## Tickets UI
|
|
748
|
-
|
|
749
|
-
This component will first fetch for the Event's data, if data is ok, then will fetch the tickets for this event.
|
|
181
|
+
**Sections** — `Tickets`, `AddOns`, `BillingInfo`, `OrderSummary`, `Payment`,
|
|
182
|
+
`IDVerification`, `Confirmation`.
|
|
750
183
|
|
|
751
|
-
|
|
184
|
+
**UI primitives** — `Card`, `Button`, `BodyText`, `MutedText`, `Field`,
|
|
185
|
+
`Select`, `QuantitySelect`, `PaymentMethods`, `Timer`, `TimerBanner`.
|
|
752
186
|
|
|
753
|
-
|
|
187
|
+
**Auth** — `AuthModal`, `LoginForm`, `RegisterForm`, `ForgotPasswordForm`,
|
|
188
|
+
`ResetPasswordForm`.
|
|
754
189
|
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
```js
|
|
758
|
-
import { Tickets } from 'tf-checkout-react-native'
|
|
759
|
-
```
|
|
190
|
+
## Headless
|
|
760
191
|
|
|
761
|
-
|
|
192
|
+
`useCheckout()` gives you the whole flow with no UI.
|
|
762
193
|
|
|
763
|
-
```
|
|
764
|
-
const
|
|
194
|
+
```tsx
|
|
195
|
+
const checkout = useCheckout({ eventId: '14304' })
|
|
765
196
|
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
197
|
+
await checkout.setTickets('14304', [{ ticketTypeId: '1', quantity: 2 }])
|
|
198
|
+
checkout.setBilling({ firstName, lastName, email, phone })
|
|
199
|
+
checkout.setConsent({ ttfOptIn: true, brandOptIn: false })
|
|
200
|
+
const order = await checkout.placeOrder('card')
|
|
769
201
|
```
|
|
770
202
|
|
|
771
|
-
|
|
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
|
-
}
|
|
203
|
+
`placeOrder` is retry-safe: one order, one charge, however many times the button
|
|
204
|
+
is pressed.
|
|
851
205
|
|
|
852
|
-
|
|
853
|
-
isCheckingCurrentSession?: boolean
|
|
206
|
+
### Starting a new checkout
|
|
854
207
|
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
208
|
+
`reset()` discards the cart. It returns nothing, so
|
|
209
|
+
`useEffect(() => checkout.reset(), [eventId])` works as it always has. Before
|
|
210
|
+
any money moves it resets at once. While a payment is going through, it waits
|
|
211
|
+
for the payment to finish, so the payment never lands in a new cart. An order
|
|
212
|
+
that is not confirmed yet is kept when it is charged, or when a payment step
|
|
213
|
+
failed without an answer that nothing was charged (a network error, a
|
|
214
|
+
timeout, or a Stripe error that is not a decline or a cancel). A Razorpay or
|
|
215
|
+
redirect payment page the buyer closes is kept only when a check of the order
|
|
216
|
+
fails or finds a payment; otherwise it is a cancel. Pressing Pay again then
|
|
217
|
+
finishes the order, or pays as usual when nothing was paid. A server refusal
|
|
218
|
+
of the order, such as an expired reservation, releases it.
|
|
859
219
|
|
|
860
|
-
|
|
861
|
-
|
|
220
|
+
To know which happened, await `resetWhenSettled()` instead. It resolves `true`
|
|
221
|
+
once the checkout is reset, or `false` when it kept the order. In that case,
|
|
222
|
+
show the buyer `PAID_ORDER_PENDING_MESSAGE`. While it waits for a payment
|
|
223
|
+
(`status === 'placing'`), tell the buyer, for example "Finishing your
|
|
224
|
+
payment…":
|
|
862
225
|
|
|
863
|
-
```
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
isPhoneRequired?: boolean
|
|
867
|
-
isAgeRequired?: boolean
|
|
868
|
-
minimumAge?: number
|
|
869
|
-
isNameRequired?: boolean
|
|
870
|
-
}
|
|
226
|
+
```tsx
|
|
227
|
+
if (checkout.status === 'placing') setNotice('Finishing your payment…')
|
|
228
|
+
if (!(await checkout.resetWhenSettled())) setNotice(PAID_ORDER_PENDING_MESSAGE)
|
|
871
229
|
```
|
|
872
230
|
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
Configure the component's behavior
|
|
231
|
+
A custom `providerPage` must resolve `'dismiss'` when it closes or unmounts, and
|
|
232
|
+
any other custom port must settle then too, or `resetWhenSettled()` waits for it.
|
|
876
233
|
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
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
|
-
```
|
|
234
|
+
A custom confirmer marks a decline or cancel by rejecting with
|
|
235
|
+
`paymentProviderError(message, 'declined' | 'cancelled')`. Any other rejection
|
|
236
|
+
counts as a payment that may have gone through, so the order is kept.
|
|
889
237
|
|
|
890
|
-
|
|
238
|
+
The full SDK is re-exported from this package — `ttf`, `api`, `hooks`, `dtos`,
|
|
239
|
+
`logic`, and the engine. See the [SDK reference](https://github.com/theticketfairy/tf-shared-libraries/blob/main/packages/tf-checkout-shared/README.md).
|
|
891
240
|
|
|
892
|
-
|
|
241
|
+
## Rewards
|
|
893
242
|
|
|
894
|
-
|
|
243
|
+
The native analogue of the web Rewards section: standing, the referral tree,
|
|
244
|
+
the prize ladder, packs, the share card, and one share button.
|
|
895
245
|
|
|
896
|
-
```
|
|
897
|
-
{
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
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
|
-
}
|
|
246
|
+
```tsx
|
|
247
|
+
import { Confirmation, Rewards } from 'tf-checkout-react-native'
|
|
248
|
+
;<Confirmation>
|
|
249
|
+
<Rewards orderHash={orderHash} />
|
|
250
|
+
</Confirmation>
|
|
972
251
|
```
|
|
973
252
|
|
|
974
|
-
|
|
253
|
+
When `<EmbeddedCheckout/>` renders the receipt itself, pass the block through
|
|
254
|
+
`confirmationChildren`:
|
|
975
255
|
|
|
976
|
-
```
|
|
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
|
-
}
|
|
256
|
+
```tsx
|
|
257
|
+
<EmbeddedCheckout eventId={eventId} confirmationChildren={<MyRewards />} />
|
|
1022
258
|
```
|
|
1023
259
|
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
## BillingInfo UI
|
|
260
|
+
Native adaptations, and why:
|
|
1027
261
|
|
|
1028
|
-
|
|
262
|
+
- **No SVG.** The tree is positioned `View`s, from the same shared layout the
|
|
263
|
+
web SVG uses. Adding `react-native-svg` would be a new native peer for every
|
|
264
|
+
customer app; a dot-and-line picture does not need one.
|
|
265
|
+
- **One share button.** Per-channel buttons collapse into `Share.share()` — the
|
|
266
|
+
OS sheet already lists every installed app, which is what the web's share
|
|
267
|
+
sheet channel reaches for through the browser.
|
|
268
|
+
- **Copy comes in as props**, this package's idiom. `translate`, or `locale` and
|
|
269
|
+
`messages` for the built-in `rewards.*` catalogue.
|
|
1029
270
|
|
|
1030
|
-
|
|
1031
|
-
import { BillingInfo } from 'tf-checkout-react-native'
|
|
1032
|
-
```
|
|
271
|
+
## Seat maps
|
|
1033
272
|
|
|
1034
|
-
|
|
273
|
+
`SeatMap` uses the existing WebView peer to render internal charts or the event's
|
|
274
|
+
Seats.io chart, with the shared core owning selection, holds and reservations.
|
|
275
|
+
It requires the matching backend seating/session contracts. Provider-backed hold
|
|
276
|
+
and deployed-cart acceptance remain separate checks; see the
|
|
277
|
+
[seating contract and evidence](https://github.com/theticketfairy/tf-shared-libraries/blob/main/docs/integration/app-sdk.md#seat-chart-and-ticket-refund-checkpoint--25-october-2026).
|
|
1035
278
|
|
|
1036
|
-
|
|
1037
|
-
const sessionHandleRef = useRef<SessionHandleType>(null)
|
|
279
|
+
## Known gaps vs web
|
|
1038
280
|
|
|
281
|
+
- **Smooth scroll** — no `scrollIntoView` equivalent, so `autoScroll` has no
|
|
282
|
+
native counterpart.
|
|
1039
283
|
|
|
1040
|
-
|
|
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
|
-
}
|
|
284
|
+
## Development
|
|
1125
285
|
|
|
1126
|
-
|
|
1127
|
-
containerStyle?: StyleProp<ViewStyle>
|
|
1128
|
-
image1?: ImageSourcePropType
|
|
1129
|
-
image1Style?: StyleProp<ImageStyle>
|
|
1130
|
-
image2?: ImageSourcePropType
|
|
1131
|
-
image2Style?: StyleProp<ImageStyle>
|
|
1132
|
-
}
|
|
286
|
+
From the repo root:
|
|
1133
287
|
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
shouldHideTicketHolderSectionOnSingleTicket?: boolean
|
|
1137
|
-
}
|
|
1138
|
-
/>
|
|
288
|
+
```bash
|
|
289
|
+
pnpm run start:react-native
|
|
1139
290
|
```
|
|
1140
291
|
|
|
1141
|
-
|
|
292
|
+
`pnpm run playground:react-native` opens the playground mode instead.
|
|
1142
293
|
|
|
1143
|
-
|
|
1144
|
-
|
|
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
|
-
```
|
|
294
|
+
Both need a dev client. Build one with:
|
|
1169
295
|
|
|
1170
|
-
|
|
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
|
-
}
|
|
296
|
+
```bash
|
|
297
|
+
cd example && pnpm run ios
|
|
1222
298
|
```
|
|
1223
299
|
|
|
1224
|
-
|
|
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
|
-
}
|
|
300
|
+
Set credentials in `example/.env` (`EXPO_PUBLIC_`-prefixed); see
|
|
301
|
+
`example/.env.example`.
|
|
1293
302
|
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
303
|
+
The example's `metro.config.js` pins React, react-query, and Stripe to single
|
|
304
|
+
copies. That is a **workspace-only** concern — it exists because the example
|
|
305
|
+
consumes the library through a symlink. Consumers installing from npm need
|
|
306
|
+
nothing of the sort.
|
|
1297
307
|
|
|
1298
308
|
---
|
|
1299
309
|
|
|
1300
|
-
|
|
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
|
|
310
|
+
Part of the [TicketFairy checkout monorepo](https://github.com/theticketfairy/tf-shared-libraries/blob/main/README.md).
|
|
3414
311
|
|
|
3415
|
-
## Version 1.0.22
|
|
3416
312
|
|
|
3417
|
-
|
|
3418
|
-
|
|
3419
|
-
|
|
313
|
+
Public checkout sign-in uses event-scoped server-only buyer binding, without a bundled
|
|
314
|
+
client secret. The checkout's auth modal supplies the event automatically; standalone
|
|
315
|
+
`AuthModal` callers pass `checkoutEventId` and can receive the narrow
|
|
316
|
+
`onCheckoutAuthenticated(CheckoutBuyerProfile)` callback. Password/signup/email/phone
|
|
317
|
+
proofs still complete required two-factor verification. These credentials cannot read
|
|
318
|
+
private account preferences or tickets. See the [shared identity contract](https://github.com/theticketfairy/tf-shared-libraries/blob/main/packages/tf-checkout-shared/README.md) for
|
|
319
|
+
scope, retry, logout and configuration ownership. Existing confidential OAuth clients
|
|
320
|
+
are trusted-server integrations; never distribute their secrets in browser/native code.
|