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