tf-checkout-react 1.7.31 → 2.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (454) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +141 -1033
  3. package/dist/checkout.css +17 -0
  4. package/dist/index.d.mts +3946 -0
  5. package/dist/index.d.ts +3946 -30
  6. package/dist/index.esm.js +9176 -0
  7. package/dist/index.esm.js.map +1 -0
  8. package/dist/index.js +9330 -6
  9. package/dist/index.js.map +1 -0
  10. package/dist/styles/addons.css +75 -0
  11. package/dist/styles/auth.css +294 -0
  12. package/dist/styles/billing.css +98 -0
  13. package/dist/styles/confirmation.css +51 -0
  14. package/dist/styles/foundation.css +146 -0
  15. package/dist/styles/payment.css +179 -0
  16. package/dist/styles/primitives.css +356 -0
  17. package/dist/styles/seat-map.css +46 -0
  18. package/dist/styles/tickets.css +285 -0
  19. package/dist/styles/verification-confirmation.css +258 -0
  20. package/package.json +93 -78
  21. package/src/.d.ts +1 -1
  22. package/src/CardInput.tsx +374 -0
  23. package/src/EmbeddedCheckout.tsx +400 -0
  24. package/src/ResumedCheckout.tsx +132 -0
  25. package/src/auth/AuthModal.tsx +238 -0
  26. package/src/auth/ForgotPasswordForm.tsx +93 -0
  27. package/src/auth/LoginForm.tsx +104 -0
  28. package/src/auth/PasswordInput.tsx +33 -0
  29. package/src/auth/RegisterForm.tsx +333 -0
  30. package/src/auth/ResetPasswordForm.tsx +112 -0
  31. package/src/auth/index.ts +5 -0
  32. package/src/checkout.css +17 -0
  33. package/src/configure.ts +29 -0
  34. package/src/confirmer.ts +439 -0
  35. package/src/index.ts +41 -30
  36. package/src/instance.ts +21 -0
  37. package/src/sections/AddOns.tsx +241 -0
  38. package/src/sections/BillingInfo.tsx +790 -0
  39. package/src/sections/Confirmation.tsx +146 -0
  40. package/src/sections/IDVerification.tsx +76 -0
  41. package/src/sections/OrderConfirmation.tsx +277 -0
  42. package/src/sections/OrderIDVerification.tsx +117 -0
  43. package/src/sections/OrderSummary.tsx +84 -0
  44. package/src/sections/Payment.tsx +557 -0
  45. package/src/sections/SeatMap.tsx +512 -0
  46. package/src/sections/Tickets.tsx +573 -0
  47. package/src/sections/billing/BillingAddressFields.tsx +138 -0
  48. package/src/sections/billing/BuyerField.tsx +75 -0
  49. package/src/sections/billing/TicketHoldersCard.tsx +124 -0
  50. package/src/sections/billing/fieldRules.ts +43 -0
  51. package/src/sections/billing/types.ts +10 -0
  52. package/src/sections/index.ts +15 -0
  53. package/src/sections/seatMap.utils.ts +105 -0
  54. package/src/styles/addons.css +75 -0
  55. package/src/styles/auth.css +294 -0
  56. package/src/styles/billing.css +98 -0
  57. package/src/styles/confirmation.css +51 -0
  58. package/src/styles/foundation.css +146 -0
  59. package/src/styles/payment.css +179 -0
  60. package/src/styles/primitives.css +356 -0
  61. package/src/styles/seat-map.css +46 -0
  62. package/src/styles/tickets.css +285 -0
  63. package/src/styles/verification-confirmation.css +258 -0
  64. package/src/typings.d.ts +2 -2
  65. package/src/ui/Button.tsx +38 -0
  66. package/src/ui/Card.tsx +54 -0
  67. package/src/ui/CheckoutProvider.tsx +172 -0
  68. package/src/ui/CustomFields.tsx +195 -0
  69. package/src/ui/Field.tsx +114 -0
  70. package/src/ui/I18nProvider.tsx +36 -0
  71. package/src/ui/InstallmentPicker.tsx +69 -0
  72. package/src/ui/Loader.tsx +12 -0
  73. package/src/ui/PaymentMethods.tsx +133 -0
  74. package/src/ui/PriceLine.tsx +24 -0
  75. package/src/ui/QuantitySelect.tsx +50 -0
  76. package/src/ui/Stepper.tsx +36 -0
  77. package/src/ui/Timer.tsx +34 -0
  78. package/src/ui/TimerBanner.tsx +55 -0
  79. package/src/ui/cx.ts +3 -0
  80. package/src/ui/index.ts +54 -0
  81. package/src/ui/theme.ts +83 -0
  82. package/src/useCheckout.ts +35 -0
  83. package/src/xendit.ts +438 -0
  84. package/dist/adapters/customFields.d.ts +0 -12
  85. package/dist/adapters/index.d.ts +0 -1
  86. package/dist/api/auth.d.ts +0 -27
  87. package/dist/api/cart.d.ts +0 -2
  88. package/dist/api/checkout.d.ts +0 -3
  89. package/dist/api/common.d.ts +0 -11
  90. package/dist/api/guestTicketDelegation.d.ts +0 -47
  91. package/dist/api/index.d.ts +0 -82
  92. package/dist/api/interceptors.d.ts +0 -1
  93. package/dist/api/orders.d.ts +0 -2
  94. package/dist/api/payment.d.ts +0 -5
  95. package/dist/api/preRegistrationComplete.d.ts +0 -3
  96. package/dist/api/publicRequest.d.ts +0 -9
  97. package/dist/api/resale.d.ts +0 -5
  98. package/dist/components/account-settings/index.d.ts +0 -3
  99. package/dist/components/addonsContainer/AddonComponent.d.ts +0 -18
  100. package/dist/components/addonsContainer/SimpleAddonsContainer.d.ts +0 -20
  101. package/dist/components/addonsContainer/adapters/index.d.ts +0 -12
  102. package/dist/components/addonsContainer/index.d.ts +0 -22
  103. package/dist/components/addonsContainer/normalizers/index.d.ts +0 -1
  104. package/dist/components/addonsContainer/useAddons.d.ts +0 -23
  105. package/dist/components/addonsContainer/utils/index.d.ts +0 -16
  106. package/dist/components/billing-info-container/hooks/index.d.ts +0 -3
  107. package/dist/components/billing-info-container/hooks/usePaymentContext.d.ts +0 -5
  108. package/dist/components/billing-info-container/hooks/usePaymentRedirect.d.ts +0 -14
  109. package/dist/components/billing-info-container/hooks/useStripePayment.d.ts +0 -18
  110. package/dist/components/billing-info-container/index.d.ts +0 -69
  111. package/dist/components/billing-info-container/utils.d.ts +0 -59
  112. package/dist/components/common/Checkbox.d.ts +0 -11
  113. package/dist/components/common/CheckboxField/index.d.ts +0 -9
  114. package/dist/components/common/CopyField.d.ts +0 -12
  115. package/dist/components/common/CopyMessageModal.d.ts +0 -7
  116. package/dist/components/common/CustomField.d.ts +0 -26
  117. package/dist/components/common/DatePickerField.d.ts +0 -20
  118. package/dist/components/common/FieldSection/index.d.ts +0 -19
  119. package/dist/components/common/FieldSection/utils/index.d.ts +0 -8
  120. package/dist/components/common/FormikPhoneNumberField.d.ts +0 -11
  121. package/dist/components/common/Loader.d.ts +0 -2
  122. package/dist/components/common/ModalComponent/index.d.ts +0 -16
  123. package/dist/components/common/NativeSelectFeild/index.d.ts +0 -21
  124. package/dist/components/common/PhoneNumberField.d.ts +0 -14
  125. package/dist/components/common/PoweredBy.d.ts +0 -2
  126. package/dist/components/common/RadioField.d.ts +0 -11
  127. package/dist/components/common/RadioGroupField/index.d.ts +0 -17
  128. package/dist/components/common/RedirectModal.d.ts +0 -7
  129. package/dist/components/common/SelectField/index.d.ts +0 -19
  130. package/dist/components/common/SnackbarAlert.d.ts +0 -13
  131. package/dist/components/common/index.d.ts +0 -11
  132. package/dist/components/common/socials.d.ts +0 -10
  133. package/dist/components/confirmModal/index.d.ts +0 -10
  134. package/dist/components/confirmationContainer/config.d.ts +0 -1
  135. package/dist/components/confirmationContainer/index.d.ts +0 -46
  136. package/dist/components/confirmationContainer/social-buttons.d.ts +0 -16
  137. package/dist/components/countdown/index.d.ts +0 -14
  138. package/dist/components/delegationsContainer/IssueComponent.d.ts +0 -10
  139. package/dist/components/delegationsContainer/IssueTicketForm.d.ts +0 -9
  140. package/dist/components/delegationsContainer/TicketsAssignedTable.d.ts +0 -11
  141. package/dist/components/delegationsContainer/TicketsAvailableTable.d.ts +0 -11
  142. package/dist/components/delegationsContainer/index.d.ts +0 -10
  143. package/dist/components/forgotPasswordModal/index.d.ts +0 -12
  144. package/dist/components/idVerificationContainer/VerificationPendingModal.d.ts +0 -10
  145. package/dist/components/idVerificationContainer/constants.d.ts +0 -21
  146. package/dist/components/idVerificationContainer/index.d.ts +0 -16
  147. package/dist/components/index.d.ts +0 -12
  148. package/dist/components/loginForm/index.d.ts +0 -31
  149. package/dist/components/loginModal/SignUpForm.d.ts +0 -10
  150. package/dist/components/loginModal/constants.d.ts +0 -39
  151. package/dist/components/loginModal/index.d.ts +0 -22
  152. package/dist/components/myTicketsContainer/index.d.ts +0 -16
  153. package/dist/components/myTicketsContainer/row.d.ts +0 -3
  154. package/dist/components/myTicketsContainer/tableConfig.d.ts +0 -5
  155. package/dist/components/orderDetailsContainer/CustomFieldsForm.d.ts +0 -12
  156. package/dist/components/orderDetailsContainer/TicketHolderCustomFields.d.ts +0 -10
  157. package/dist/components/orderDetailsContainer/index.d.ts +0 -66
  158. package/dist/components/orderDetailsContainer/ticketsTable.d.ts +0 -46
  159. package/dist/components/orderDetailsContainer/utils/index.d.ts +0 -6
  160. package/dist/components/paymentContainer/OrderDetails.d.ts +0 -9
  161. package/dist/components/paymentContainer/PaymentPlanSection.d.ts +0 -10
  162. package/dist/components/paymentContainer/handlePayment.d.ts +0 -15
  163. package/dist/components/paymentContainer/index.d.ts +0 -39
  164. package/dist/components/preRegistration/FieldsSection.d.ts +0 -19
  165. package/dist/components/preRegistration/Influancers.d.ts +0 -2
  166. package/dist/components/preRegistration/PreRegistrationComplete.d.ts +0 -13
  167. package/dist/components/preRegistration/PreRegistrationInformations.d.ts +0 -2
  168. package/dist/components/preRegistration/Prewards.d.ts +0 -2
  169. package/dist/components/preRegistration/ShareOptions.d.ts +0 -2
  170. package/dist/components/preRegistration/constants.d.ts +0 -2
  171. package/dist/components/preRegistration/index.d.ts +0 -23
  172. package/dist/components/preRegistration/utils.d.ts +0 -12
  173. package/dist/components/registerForm/adapters/index.d.ts +0 -4
  174. package/dist/components/registerForm/constants.d.ts +0 -1
  175. package/dist/components/registerForm/index.d.ts +0 -16
  176. package/dist/components/registerModal/index.d.ts +0 -12
  177. package/dist/components/resetPasswordContainer/index.d.ts +0 -10
  178. package/dist/components/rsvpContainer/index.d.ts +0 -7
  179. package/dist/components/seatMapContainer/SeatMapComponent.d.ts +0 -8
  180. package/dist/components/seatMapContainer/TicketsSection.d.ts +0 -9
  181. package/dist/components/seatMapContainer/addToCart.d.ts +0 -14
  182. package/dist/components/seatMapContainer/index.d.ts +0 -2
  183. package/dist/components/seatMapContainer/utils.d.ts +0 -6
  184. package/dist/components/signupModal/index.d.ts +0 -12
  185. package/dist/components/ticketResale/index.d.ts +0 -12
  186. package/dist/components/ticketResaleModal/index.d.ts +0 -19
  187. package/dist/components/ticketsContainer/AccessCodeSection.d.ts +0 -7
  188. package/dist/components/ticketsContainer/InfoIcon.d.ts +0 -5
  189. package/dist/components/ticketsContainer/PromoCodeSection.d.ts +0 -15
  190. package/dist/components/ticketsContainer/ReferralLogic.d.ts +0 -5
  191. package/dist/components/ticketsContainer/TicketRow.d.ts +0 -13
  192. package/dist/components/ticketsContainer/TicketsSection.d.ts +0 -20
  193. package/dist/components/ticketsContainer/TimeSlotTicketRow.d.ts +0 -19
  194. package/dist/components/ticketsContainer/TimeSlotsSection.d.ts +0 -25
  195. package/dist/components/ticketsContainer/index.d.ts +0 -93
  196. package/dist/components/ticketsContainer/utils.d.ts +0 -13
  197. package/dist/components/timerWidget/index.d.ts +0 -16
  198. package/dist/components/waitingList/index.d.ts +0 -9
  199. package/dist/constants/index.d.ts +0 -7
  200. package/dist/env.d.ts +0 -16
  201. package/dist/hoc/CustomFields/index.d.ts +0 -3
  202. package/dist/hoc/index.d.ts +0 -1
  203. package/dist/hooks/index.d.ts +0 -1
  204. package/dist/hooks/useCookieListener.d.ts +0 -1
  205. package/dist/hooks/useEventListener.d.ts +0 -1
  206. package/dist/hooks/useLocalStorageListener.d.ts +0 -1
  207. package/dist/hooks/useOnline.d.ts +0 -1
  208. package/dist/hooks/usePixel.d.ts +0 -6
  209. package/dist/images/Polygon.png +0 -0
  210. package/dist/images/cross.svg +0 -44
  211. package/dist/images/done.svg +0 -3
  212. package/dist/images/edit.svg +0 -10
  213. package/dist/images/email.svg +0 -1
  214. package/dist/images/instagram.svg +0 -5
  215. package/dist/images/logo-ttf.png +0 -0
  216. package/dist/images/spotify.svg +0 -6
  217. package/dist/images/user.svg +0 -1
  218. package/dist/images/xmark.svg +0 -92
  219. package/dist/normalizers/index.d.ts +0 -4
  220. package/dist/tf-checkout-react.cjs.development.js +0 -16149
  221. package/dist/tf-checkout-react.cjs.development.js.map +0 -1
  222. package/dist/tf-checkout-react.cjs.production.min.js +0 -2
  223. package/dist/tf-checkout-react.cjs.production.min.js.map +0 -1
  224. package/dist/tf-checkout-react.esm.js +0 -16116
  225. package/dist/tf-checkout-react.esm.js.map +0 -1
  226. package/dist/tf-checkout-styles.css +0 -1
  227. package/dist/types/add_on.d.ts +0 -8
  228. package/dist/types/billing-info-data.d.ts +0 -27
  229. package/dist/types/checkoutPageConfigs.d.ts +0 -13
  230. package/dist/types/index.d.ts +0 -6
  231. package/dist/types/order-data.d.ts +0 -15
  232. package/dist/types/payment-field.d.ts +0 -6
  233. package/dist/types/payment-plan-configuration.d.ts +0 -18
  234. package/dist/types/referral-promotion.d.ts +0 -6
  235. package/dist/types/verification.d.ts +0 -12
  236. package/dist/utils/adaptStripeErrors.d.ts +0 -8
  237. package/dist/utils/auth.d.ts +0 -21
  238. package/dist/utils/cookies.d.ts +0 -3
  239. package/dist/utils/createCheckoutDataBodyWithDefaultHolder.d.ts +0 -23
  240. package/dist/utils/createMarkup.d.ts +0 -3
  241. package/dist/utils/customFields.d.ts +0 -35
  242. package/dist/utils/downloadPDF.d.ts +0 -1
  243. package/dist/utils/form.d.ts +0 -3
  244. package/dist/utils/formikErrorFocus.d.ts +0 -2
  245. package/dist/utils/getDomain.d.ts +0 -1
  246. package/dist/utils/getImage.d.ts +0 -1
  247. package/dist/utils/getQueryVariable.d.ts +0 -1
  248. package/dist/utils/htmlNodeFromString.d.ts +0 -1
  249. package/dist/utils/index.d.ts +0 -15
  250. package/dist/utils/isBrowser.d.ts +0 -1
  251. package/dist/utils/isValidNumber.d.ts +0 -1
  252. package/dist/utils/jsonUtils.d.ts +0 -1
  253. package/dist/utils/replaceVarInString.d.ts +0 -1
  254. package/dist/utils/setConfigs.d.ts +0 -11
  255. package/dist/utils/showZero.d.ts +0 -1
  256. package/dist/validators/index.d.ts +0 -8
  257. package/src/adapters/customFields.ts +0 -85
  258. package/src/adapters/index.ts +0 -1
  259. package/src/api/auth.ts +0 -88
  260. package/src/api/cart.ts +0 -28
  261. package/src/api/checkout.ts +0 -28
  262. package/src/api/common.ts +0 -190
  263. package/src/api/guestTicketDelegation.ts +0 -79
  264. package/src/api/index.ts +0 -346
  265. package/src/api/interceptors.ts +0 -77
  266. package/src/api/orders.ts +0 -30
  267. package/src/api/payment.ts +0 -77
  268. package/src/api/preRegistrationComplete.ts +0 -37
  269. package/src/api/publicRequest.ts +0 -47
  270. package/src/api/resale.ts +0 -28
  271. package/src/assets/images/Polygon.png +0 -0
  272. package/src/assets/images/cross.svg +0 -44
  273. package/src/assets/images/done.svg +0 -3
  274. package/src/assets/images/edit.svg +0 -10
  275. package/src/assets/images/email.svg +0 -1
  276. package/src/assets/images/instagram.svg +0 -5
  277. package/src/assets/images/logo-ttf.png +0 -0
  278. package/src/assets/images/spotify.svg +0 -6
  279. package/src/assets/images/user.svg +0 -1
  280. package/src/assets/images/xmark.svg +0 -92
  281. package/src/components/account-settings/index.tsx +0 -161
  282. package/src/components/account-settings/style.css +0 -200
  283. package/src/components/addonsContainer/AddonComponent.tsx +0 -204
  284. package/src/components/addonsContainer/SimpleAddonsContainer.tsx +0 -459
  285. package/src/components/addonsContainer/adapters/index.tsx +0 -62
  286. package/src/components/addonsContainer/index.tsx +0 -353
  287. package/src/components/addonsContainer/normalizers/index.ts +0 -5
  288. package/src/components/addonsContainer/useAddons.ts +0 -248
  289. package/src/components/addonsContainer/utils/index.tsx +0 -231
  290. package/src/components/billing-info-container/hooks/index.ts +0 -3
  291. package/src/components/billing-info-container/hooks/usePaymentContext.ts +0 -22
  292. package/src/components/billing-info-container/hooks/usePaymentRedirect.ts +0 -145
  293. package/src/components/billing-info-container/hooks/useStripePayment.ts +0 -119
  294. package/src/components/billing-info-container/index.tsx +0 -1695
  295. package/src/components/billing-info-container/style.css +0 -150
  296. package/src/components/billing-info-container/utils.tsx +0 -413
  297. package/src/components/common/Checkbox.tsx +0 -51
  298. package/src/components/common/CheckboxField/index.tsx +0 -41
  299. package/src/components/common/CopyField.tsx +0 -53
  300. package/src/components/common/CopyMessageModal.tsx +0 -34
  301. package/src/components/common/CustomField.tsx +0 -168
  302. package/src/components/common/DatePickerField.tsx +0 -126
  303. package/src/components/common/FieldSection/index.tsx +0 -141
  304. package/src/components/common/FieldSection/utils/index.tsx +0 -92
  305. package/src/components/common/FormikPhoneNumberField.tsx +0 -51
  306. package/src/components/common/Loader.tsx +0 -8
  307. package/src/components/common/ModalComponent/index.tsx +0 -68
  308. package/src/components/common/NativeSelectFeild/index.tsx +0 -86
  309. package/src/components/common/PhoneNumberField.tsx +0 -117
  310. package/src/components/common/PoweredBy.tsx +0 -15
  311. package/src/components/common/RadioField.tsx +0 -36
  312. package/src/components/common/RadioGroupField/index.tsx +0 -76
  313. package/src/components/common/RedirectModal.tsx +0 -43
  314. package/src/components/common/SelectField/index.tsx +0 -104
  315. package/src/components/common/SnackbarAlert.tsx +0 -52
  316. package/src/components/common/index.tsx +0 -11
  317. package/src/components/common/socials.tsx +0 -33
  318. package/src/components/confirmModal/index.tsx +0 -60
  319. package/src/components/confirmationContainer/config.ts +0 -79
  320. package/src/components/confirmationContainer/index.tsx +0 -349
  321. package/src/components/confirmationContainer/social-buttons.tsx +0 -149
  322. package/src/components/confirmationContainer/style.css +0 -206
  323. package/src/components/countdown/index.tsx +0 -100
  324. package/src/components/countdown/style.css +0 -10
  325. package/src/components/delegationsContainer/IssueComponent.tsx +0 -156
  326. package/src/components/delegationsContainer/IssueTicketForm.tsx +0 -109
  327. package/src/components/delegationsContainer/TicketsAssignedTable.tsx +0 -55
  328. package/src/components/delegationsContainer/TicketsAvailableTable.tsx +0 -54
  329. package/src/components/delegationsContainer/index.tsx +0 -83
  330. package/src/components/forgotPasswordModal/index.tsx +0 -138
  331. package/src/components/forgotPasswordModal/style.css +0 -47
  332. package/src/components/idVerificationContainer/VerificationPendingModal.tsx +0 -47
  333. package/src/components/idVerificationContainer/constants.ts +0 -27
  334. package/src/components/idVerificationContainer/index.tsx +0 -323
  335. package/src/components/index.ts +0 -12
  336. package/src/components/loginForm/index.tsx +0 -202
  337. package/src/components/loginModal/SignUpForm.tsx +0 -329
  338. package/src/components/loginModal/constants.ts +0 -46
  339. package/src/components/loginModal/index.tsx +0 -263
  340. package/src/components/loginModal/style.css +0 -116
  341. package/src/components/myTicketsContainer/index.tsx +0 -228
  342. package/src/components/myTicketsContainer/row.tsx +0 -46
  343. package/src/components/myTicketsContainer/style.css +0 -40
  344. package/src/components/myTicketsContainer/tableConfig.tsx +0 -80
  345. package/src/components/myTicketsContainer/types.d.ts +0 -41
  346. package/src/components/orderDetailsContainer/CustomFieldsForm.tsx +0 -75
  347. package/src/components/orderDetailsContainer/TicketHolderCustomFields.tsx +0 -100
  348. package/src/components/orderDetailsContainer/index.tsx +0 -586
  349. package/src/components/orderDetailsContainer/style.css +0 -77
  350. package/src/components/orderDetailsContainer/ticketsTable.tsx +0 -246
  351. package/src/components/orderDetailsContainer/utils/index.tsx +0 -55
  352. package/src/components/paymentContainer/OrderDetails.tsx +0 -277
  353. package/src/components/paymentContainer/PaymentPlanSection.tsx +0 -169
  354. package/src/components/paymentContainer/handlePayment.ts +0 -86
  355. package/src/components/paymentContainer/index.tsx +0 -643
  356. package/src/components/paymentContainer/style.css +0 -196
  357. package/src/components/preRegistration/FieldsSection.tsx +0 -150
  358. package/src/components/preRegistration/Influancers.tsx +0 -34
  359. package/src/components/preRegistration/PreRegistrationComplete.tsx +0 -186
  360. package/src/components/preRegistration/PreRegistrationInformations.tsx +0 -60
  361. package/src/components/preRegistration/Prewards.tsx +0 -41
  362. package/src/components/preRegistration/ShareOptions.tsx +0 -77
  363. package/src/components/preRegistration/constants.tsx +0 -169
  364. package/src/components/preRegistration/index.tsx +0 -330
  365. package/src/components/preRegistration/style.css +0 -3
  366. package/src/components/preRegistration/utils.ts +0 -163
  367. package/src/components/registerForm/adapters/index.tsx +0 -10
  368. package/src/components/registerForm/constants.tsx +0 -98
  369. package/src/components/registerForm/index.tsx +0 -188
  370. package/src/components/registerModal/index.tsx +0 -154
  371. package/src/components/registerModal/style.css +0 -18
  372. package/src/components/resetPasswordContainer/index.tsx +0 -102
  373. package/src/components/resetPasswordContainer/style.css +0 -36
  374. package/src/components/rsvpContainer/index.tsx +0 -126
  375. package/src/components/seatMapContainer/SeatMapComponent.tsx +0 -77
  376. package/src/components/seatMapContainer/TicketsSection.tsx +0 -286
  377. package/src/components/seatMapContainer/addToCart.ts +0 -66
  378. package/src/components/seatMapContainer/index.tsx +0 -443
  379. package/src/components/seatMapContainer/utils.ts +0 -133
  380. package/src/components/signupModal/index.tsx +0 -178
  381. package/src/components/signupModal/style.css +0 -58
  382. package/src/components/ticketResale/index.tsx +0 -86
  383. package/src/components/ticketResaleModal/index.tsx +0 -224
  384. package/src/components/ticketResaleModal/style.css +0 -28
  385. package/src/components/ticketsContainer/AccessCodeSection.tsx +0 -50
  386. package/src/components/ticketsContainer/InfoIcon.tsx +0 -35
  387. package/src/components/ticketsContainer/PromoCodeSection.tsx +0 -116
  388. package/src/components/ticketsContainer/ReferralLogic.tsx +0 -33
  389. package/src/components/ticketsContainer/TicketRow.tsx +0 -107
  390. package/src/components/ticketsContainer/TicketsSection.tsx +0 -350
  391. package/src/components/ticketsContainer/TimeSlotTicketRow.tsx +0 -243
  392. package/src/components/ticketsContainer/TimeSlotsSection.tsx +0 -194
  393. package/src/components/ticketsContainer/index.tsx +0 -986
  394. package/src/components/ticketsContainer/style.css +0 -178
  395. package/src/components/ticketsContainer/utils.ts +0 -35
  396. package/src/components/timerWidget/index.tsx +0 -97
  397. package/src/components/timerWidget/style.css +0 -35
  398. package/src/components/waitingList/index.tsx +0 -190
  399. package/src/components/waitingList/style.css +0 -27
  400. package/src/constants/index.ts +0 -3
  401. package/src/env.ts +0 -29
  402. package/src/hoc/CustomFields/index.tsx +0 -85
  403. package/src/hoc/index.ts +0 -1
  404. package/src/hooks/index.ts +0 -1
  405. package/src/hooks/useCookieListener.ts +0 -32
  406. package/src/hooks/useEventListener.ts +0 -32
  407. package/src/hooks/useLocalStorageListener.ts +0 -32
  408. package/src/hooks/useOnline.ts +0 -21
  409. package/src/hooks/usePixel.ts +0 -88
  410. package/src/normalizers/index.ts +0 -49
  411. package/src/types/add_on.ts +0 -8
  412. package/src/types/api/auth.d.ts +0 -63
  413. package/src/types/api/axiosResponse.d.ts +0 -6
  414. package/src/types/api/cart.d.ts +0 -73
  415. package/src/types/api/checkout.d.ts +0 -92
  416. package/src/types/api/common.d.ts +0 -153
  417. package/src/types/api/guestTicketDelegation.d.ts +0 -18
  418. package/src/types/api/orders.d.ts +0 -116
  419. package/src/types/api/payment.d.ts +0 -180
  420. package/src/types/api/preRegistration.d.ts +0 -11
  421. package/src/types/api/preRegistrationComplete.d.ts +0 -95
  422. package/src/types/api/ticketResale.d.ts +0 -13
  423. package/src/types/billing-info-data.ts +0 -37
  424. package/src/types/checkoutPageConfigs.ts +0 -13
  425. package/src/types/formFields.d.ts +0 -29
  426. package/src/types/index.ts +0 -6
  427. package/src/types/order-data.ts +0 -16
  428. package/src/types/payment-field.ts +0 -7
  429. package/src/types/payment-plan-configuration.ts +0 -19
  430. package/src/types/pre-registration-complete.d.ts +0 -47
  431. package/src/types/referral-promotion.ts +0 -7
  432. package/src/types/seatMap.d.ts +0 -159
  433. package/src/types/verification.ts +0 -12
  434. package/src/utils/adaptStripeErrors.ts +0 -26
  435. package/src/utils/auth.ts +0 -45
  436. package/src/utils/cookies.ts +0 -73
  437. package/src/utils/createCheckoutDataBodyWithDefaultHolder.ts +0 -81
  438. package/src/utils/createMarkup.ts +0 -1
  439. package/src/utils/customFields.ts +0 -80
  440. package/src/utils/downloadPDF.tsx +0 -42
  441. package/src/utils/form.ts +0 -34
  442. package/src/utils/formikErrorFocus.ts +0 -24
  443. package/src/utils/getDomain.ts +0 -21
  444. package/src/utils/getImage.ts +0 -14
  445. package/src/utils/getQueryVariable.ts +0 -13
  446. package/src/utils/htmlNodeFromString.ts +0 -6
  447. package/src/utils/index.ts +0 -15
  448. package/src/utils/isBrowser.ts +0 -2
  449. package/src/utils/isValidNumber.ts +0 -8
  450. package/src/utils/jsonUtils.ts +0 -8
  451. package/src/utils/replaceVarInString.ts +0 -9
  452. package/src/utils/setConfigs.ts +0 -24
  453. package/src/utils/showZero.tsx +0 -10
  454. package/src/validators/index.ts +0 -61
@@ -1,116 +0,0 @@
1
- import React from 'react'
2
- import Button from 'react-bootstrap/Button'
3
- import SVG from 'react-inlinesvg'
4
-
5
- import DoneSvg from '../../assets/images/done.svg'
6
- import XmarkSvg from '../../assets/images/xmark.svg'
7
-
8
- export interface IPromoCodeSectionProps {
9
- code: string;
10
- codeIsApplied: boolean;
11
- showPromoInput: boolean;
12
- setCode: (value: string) => void;
13
- setShowPromoInput: (value: boolean) => void;
14
- updateTickets: (value: boolean, type: string) => void;
15
- setCodeIsApplied: (value: boolean) => void;
16
- codeIsInvalid: boolean;
17
- setCodeIsInvalid: (value: boolean) => void;
18
- promoText?: string;
19
- showAlertIcons?: boolean;
20
- }
21
-
22
- export const PromoCodeSection = ({
23
- code,
24
- codeIsApplied,
25
- showPromoInput,
26
- setCode,
27
- setShowPromoInput,
28
- updateTickets,
29
- setCodeIsApplied,
30
- codeIsInvalid,
31
- setCodeIsInvalid,
32
- promoText,
33
- showAlertIcons
34
- }: IPromoCodeSectionProps) => {
35
- const isPromoCodeHasValue = !!code.trim()
36
- const appliedPromoCode = window?.localStorage?.getItem('appliedPromoCode')
37
-
38
- const renderInputField = () => (
39
- <div className="promo-code-block">
40
- <div className="promo-code-block">
41
- <p className="promo-code-text">Promo code</p>
42
- </div>
43
- <input
44
- className="promo-code-input"
45
- placeholder=""
46
- onChange={e => {
47
- setCode(e.target.value)
48
- }}
49
- onKeyPress={event => {
50
- if (event.key === 'Enter' && isPromoCodeHasValue) {
51
- setShowPromoInput(false)
52
- updateTickets(true, 'promo')
53
- }
54
- }}
55
- />
56
- <Button
57
- className="promo-submit-button"
58
- onClick={() => {
59
- if (isPromoCodeHasValue) {
60
- setShowPromoInput(false)
61
- updateTickets(true, 'promo')
62
- }
63
- }}
64
- >
65
- APPLY
66
- </Button>
67
- </div>
68
- )
69
-
70
- return (
71
- <div>
72
- {codeIsApplied ? (
73
- <div className="alert-info">
74
- {showAlertIcons && (
75
- <SVG
76
- src={DoneSvg}
77
- preProcessor={code =>
78
- code.replace(/fill=".*?"/g, 'fill="currentColor"')
79
- }
80
- />
81
- )}
82
- <p className="promo-code-success">PROMO CODE APPLIED SUCCESSFULLY</p>
83
- </div>
84
- ) : null}
85
- {codeIsApplied ? (
86
- <div className="alert-info">
87
- <p className="promo-code-success">PROMO CODE: {appliedPromoCode}</p>
88
- </div>
89
- ) : null}
90
- {codeIsInvalid ? (
91
- <div className="alert-info fail">
92
- {showAlertIcons && (
93
- <SVG
94
- src={XmarkSvg}
95
- />
96
- )}
97
- <p className="promo-code-fail">Invalid Promo Code</p>
98
- </div>
99
- ) : null}
100
- {!showPromoInput && (
101
- <Button
102
- className="promo-code-button"
103
- placeholder="Promo Codes"
104
- onClick={() => {
105
- setCodeIsApplied(false)
106
- setShowPromoInput(true)
107
- setCodeIsInvalid(false)
108
- }}
109
- >
110
- {promoText ?? 'Got a promo code? Click here'}
111
- </Button>
112
- )}
113
- {showPromoInput && renderInputField()}
114
- </div>
115
- )
116
- }
@@ -1,33 +0,0 @@
1
- import { useEffect } from 'react'
2
-
3
- import { postReferralVisits } from '../../api'
4
-
5
- interface IReferralLogicProps {
6
- eventId: string | number;
7
- }
8
-
9
- export const ReferralLogic = (props: IReferralLogicProps) => {
10
- const { eventId } = props
11
-
12
- useEffect(() => {
13
- const isWindowDefined = typeof window !== 'undefined'
14
-
15
- if (isWindowDefined) {
16
- const params: URLSearchParams = new URL(`${window.location}`).searchParams
17
- const referralId = params.get('ttf_r') || params.get('referrer_id') || ''
18
- const referralValue = [eventId, '.', referralId].join('')
19
- const isAlreadyCounted = localStorage.getItem('referral_key') === referralValue
20
-
21
- if (referralId && eventId && !isAlreadyCounted) {
22
- (async () => {
23
- try {
24
- await postReferralVisits(`${eventId}`, referralId)
25
- localStorage.setItem('referral_key', referralValue)
26
- } catch (error) {}
27
- })()
28
- }
29
- }
30
- }, [eventId])
31
-
32
- return null
33
- }
@@ -1,107 +0,0 @@
1
- import './style.css'
2
-
3
- import Box from '@mui/material/Box'
4
- import FormControl from '@mui/material/FormControl'
5
- import MenuItem from '@mui/material/MenuItem'
6
- import Select from '@mui/material/Select'
7
- import _get from 'lodash/get'
8
- import React from 'react'
9
-
10
- import { defineIsSalesClosed, getTicketSelectOptions } from './utils'
11
-
12
- interface ITicketRowProps {
13
- ticketTier: any;
14
- prevTicketTier: any;
15
- selectedTickets: any;
16
- handleTicketSelect: any;
17
- event: any;
18
- isSeatMapAllowed?: boolean;
19
- tableType?: boolean;
20
- }
21
-
22
- export const TicketRow = ({
23
- ticketTier,
24
- prevTicketTier,
25
- selectedTickets,
26
- handleTicketSelect,
27
- event,
28
- isSeatMapAllowed,
29
- tableType,
30
- }: ITicketRowProps) => {
31
- const soldOutMessage = ticketTier.soldOutMessage
32
- ? `${ticketTier.soldOutMessage}`.toUpperCase()
33
- : 'SOLD OUT'
34
- const isSalesClosed = defineIsSalesClosed({
35
- salesStarted: ticketTier.salesStarted,
36
- salesEnded: ticketTier.salesEnded,
37
- presalesStarted: event?.presalesStarted,
38
- presalesEnded: event?.presalesEnded,
39
- presalesEnabled: event?.presales_enabled,
40
- })
41
- const maxCount = tableType ? ticketTier.maxGuests : ticketTier.maxQuantity
42
- const minCount = tableType ? ticketTier.minGuests : ticketTier.minQuantity
43
- const { multiplier } = ticketTier
44
- const options = getTicketSelectOptions(maxCount, minCount, multiplier)
45
-
46
- const ticketsClosedMessage = !ticketTier.salesStarted
47
- ? 'Sales not started'
48
- : 'Sales Ended'
49
- const canPurchaseTicket = ticketTier.displayTicket && ticketTier.maxQuantity
50
- const isDirectPurchaseAllowed = _get(ticketTier, 'allowDirectPurchase', false)
51
-
52
- const onSaleContent = (
53
- <div className="get-tickets">
54
- {ticketTier.isTable && <span>GUESTS</span>}
55
- <Box className="get-tickets__selectbox">
56
- <FormControl fullWidth>
57
- <Select
58
- sx={{ borderRadius: 0 }}
59
- value={selectedTickets[ticketTier.id] ? selectedTickets[ticketTier.id] : 0}
60
- onChange={handleTicketSelect}
61
- displayEmpty
62
- inputProps={{ 'aria-label': 'Without label' }}
63
- MenuProps={{
64
- PaperProps: {
65
- sx: { maxHeight: 150 },
66
- className: 'get-tickets-paper',
67
- },
68
- }}
69
- >
70
- {options.map((option, index) => (
71
- <MenuItem key={index} value={option.value}>
72
- {option.value}
73
- </MenuItem>
74
- ))}
75
- </Select>
76
- </FormControl>
77
- </Box>
78
- </div>
79
- )
80
-
81
- let returnValue: any = ''
82
-
83
- // ticketTier.soldOut === false --> means that ticket is in the stock
84
- const isSoldOut =
85
- ticketTier.sold_out ||
86
- !(ticketTier.displayTicket || ticketTier.slotGroupId) ||
87
- ticketTier.soldOut ||
88
- ticketTier.soldOut === false
89
-
90
- if (isSoldOut) {
91
- returnValue = soldOutMessage
92
- } else if (isSalesClosed) {
93
- returnValue = ticketsClosedMessage
94
- } else if (canPurchaseTicket && isSeatMapAllowed && !isDirectPurchaseAllowed) {
95
- // Seat Map Tickets renderer logic
96
- returnValue = null
97
- } else if (
98
- canPurchaseTicket ||
99
- (canPurchaseTicket && event?.presalesStarted && !event?.presalesEnded)
100
- ) {
101
- returnValue = onSaleContent
102
- } else if (_get(prevTicketTier, 'in_stock')) {
103
- returnValue = 'SOON'
104
- }
105
-
106
- return <>{returnValue} </>
107
- }
@@ -1,350 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import './style.css'
3
-
4
- import _get from 'lodash/get'
5
- import _sortBy from 'lodash/sortBy'
6
- import React, { ReactNode, useState } from 'react'
7
- import { Tooltip } from 'react-tooltip'
8
-
9
- import { FEES_STYLES } from '../../constants'
10
- import { CONFIGS } from '../../utils'
11
- import InfoIcon from './InfoIcon'
12
- import { TicketRow } from './TicketRow'
13
-
14
- function decodeHTML(html: string): string {
15
- const textArea = document.createElement('textarea')
16
- textArea.innerHTML = html
17
- return textArea.value
18
- }
19
-
20
- interface ITicketsSectionProps {
21
- event: any;
22
- ticketsList: any;
23
- selectedTickets: any;
24
- handleTicketSelect: any;
25
- sortBySoldOut: boolean;
26
- hideTicketsHeader: boolean;
27
- hideTableTicketsHeader: boolean;
28
- tableTickets: any;
29
- ticketsHeaderComponent?: ReactNode;
30
- tableTicketsHeaderComponent?: ReactNode;
31
- showGroupNameBlock?: boolean;
32
- currencySymbol?: string;
33
- isSeatMapAllowed?: boolean;
34
- descriptionTrigger?: 'click' | 'hover';
35
- }
36
-
37
- export const TicketsSection = ({
38
- event,
39
- ticketsList,
40
- selectedTickets,
41
- handleTicketSelect,
42
- sortBySoldOut,
43
- ticketsHeaderComponent,
44
- tableTicketsHeaderComponent,
45
- hideTicketsHeader,
46
- hideTableTicketsHeader,
47
- showGroupNameBlock,
48
- currencySymbol,
49
- isSeatMapAllowed,
50
- tableTickets,
51
- descriptionTrigger = 'click',
52
- }: ITicketsSectionProps) => {
53
- const symbol = _get(event, 'currency.symbol')
54
- const sortedTicketsList = sortBySoldOut
55
- ? _sortBy(_sortBy(ticketsList, 'sortOrder'), 'soldOut')
56
- : _sortBy(ticketsList, 'sortOrder')
57
- const showGroup = !!sortedTicketsList.find(ticket => ticket.groupName)
58
- const priceSymbol = currencySymbol || symbol
59
-
60
- const [visibleDescription, setVisibleDescription] = useState<string | null>(null)
61
-
62
- const handleDescriptionToggle = (ticketId: string) => {
63
- setVisibleDescription(current => (current === ticketId ? null : ticketId))
64
- }
65
-
66
- return (
67
- <>
68
- {!hideTicketsHeader && ticketsHeaderComponent}
69
- {sortedTicketsList.map((ticket, i, arr) => {
70
- const ticketPriceWithoutFees = `${priceSymbol} ${(+ticket.cost).toFixed(2)}`
71
- const ticketPriceWithFees = `${priceSymbol} ${(+ticket.basePrice).toFixed(2)}`
72
- const ticketOldPriceWithFees = `${priceSymbol} ${(+ticket.oldBasePrice).toFixed(2)}`
73
- const ticketOldPriceWithoutFees = `${priceSymbol} ${(+ticket.oldCost).toFixed(2)}`
74
- const ticketFinalPrice = ticket.feeIncluded && !ticket.isForward
75
- ? +(ticket.x_face_value || ticket.basePrice)
76
- : ticket.feeIncluded ? +ticket.basePrice : +ticket.cost
77
- const ticketFinalPriceFormatted = `${priceSymbol} ${parseFloat(ticketFinalPrice.toFixed(2))}`
78
- const ticketOldFinalPrice = ticket.feeIncluded && !ticket.isForward
79
- ? +(ticket.x_face_value || ticket.basePrice)
80
- : ticket.feeIncluded ? +ticket.oldBasePrice : +ticket.oldCost
81
- const ticketOldFinalPriceFormatted = `${priceSymbol} ${parseFloat(ticketOldFinalPrice.toFixed(2))}`
82
- const ticketFeeAmount = (+ticket.basePrice - +ticket.cost).toFixed(2)
83
- const ticketBreakdown = !ticket.feeIncluded
84
- ? '(+ fees at checkout)'
85
- : !ticket.isForward
86
- ? null
87
- : (parseFloat(ticketFeeAmount) > 0 ? `(${priceSymbol} ${(+ticket.cost).toFixed(2)} + ${priceSymbol} ${ticketFeeAmount} fee)` : null)
88
-
89
- const isSoldOut =
90
- ticket.sold_out ||
91
- !(ticket.displayTicket || ticket.slotGroupId) ||
92
- ticket.soldOut
93
- const ticketSelect = (event: any) => {
94
- const { value } = event.target
95
- handleTicketSelect(ticket.id, value)
96
- }
97
-
98
- let ticketIsDiscounted = false
99
- if (ticket.oldPrice && !isSoldOut && ticket.oldPrice !== ticket.price) {
100
- ticketIsDiscounted = true
101
- }
102
-
103
- const ticketIsFree = +ticket.price === 0
104
- const discountTicketPriceElem = CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN
105
- ? ticketOldFinalPriceFormatted
106
- : CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded
107
- ? ticketOldPriceWithoutFees
108
- : ticketOldPriceWithFees
109
- const ticketPriceElem = isSoldOut
110
- ? 'SOLD OUT'
111
- : ticketIsFree
112
- ? 'FREE'
113
- : CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN
114
- ? ticketFinalPriceFormatted
115
- : (CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded)
116
- ? ticketPriceWithoutFees
117
- : ticketPriceWithFees
118
- const isNewGroupTicket = ticket?.groupName !== arr[i - 1]?.groupName
119
-
120
- return (
121
- <React.Fragment key={ticket.id || ticket.name}>
122
- {showGroupNameBlock && showGroup && isNewGroupTicket ? (
123
- <div className="event-detail__tier group-title">
124
- {ticket.groupName || ''}
125
- </div>
126
- ) : null}
127
- <div
128
- className={`event-detail__tier ${isSoldOut ? 'disabled' : ''}`}
129
- id={ticket.id || ticket.name}
130
- >
131
- <div className="event-detail__tier-name">
132
- {ticket.displayName || ticket.name}
133
- {ticket.descriptionRich && (
134
- <>
135
- <span
136
- aria-hidden
137
- className="info-icon"
138
- onClick={
139
- descriptionTrigger === 'click'
140
- ? () => handleDescriptionToggle(ticket.id)
141
- : undefined
142
- }
143
- onMouseEnter={
144
- descriptionTrigger === 'hover'
145
- ? () => setVisibleDescription(ticket.id)
146
- : undefined
147
- }
148
- onMouseLeave={
149
- descriptionTrigger === 'hover'
150
- ? () => setVisibleDescription(null)
151
- : undefined
152
- }
153
- data-tooltip-id={`tooltip-${ticket.id}`}
154
- data-tooltip-content="View ticket info"
155
- style={{
156
- marginLeft: 8,
157
- cursor: 'pointer',
158
- display: 'flex',
159
- }}
160
- >
161
- <InfoIcon />
162
- </span>
163
-
164
- <Tooltip id={`tooltip-${ticket.id}`} place="top">
165
- {ticket.description || 'No description available'}
166
- </Tooltip>
167
- </>
168
- )}
169
- </div>
170
- <div className="event-tickets-container">
171
- <div className="event-detail__tier-price">
172
- {ticketIsDiscounted && <p className="old-price">{discountTicketPriceElem}</p>}
173
- <p className={isSoldOut ? 'sold-out' : ''}>{ticketPriceElem}</p>
174
- {!isSoldOut && !ticketIsFree && (
175
- <p className="fees">
176
- {CONFIGS.FEES_STYLE === FEES_STYLES.TRADITIONAL &&
177
- (ticket.feeIncluded ? '(incl. Fees)' : '(excl. Fees)')}
178
- {CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH &&
179
- `(${ticketPriceWithFees} with fees)`}
180
- {CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN &&
181
- ticketBreakdown}
182
- </p>
183
- )}
184
- </div>
185
- <div className="event-detail__tier-state" style={{ minWidth: 55 }}>
186
- <TicketRow
187
- ticketTier={ticket}
188
- prevTicketTier={arr[i - 1]}
189
- selectedTickets={selectedTickets}
190
- handleTicketSelect={ticketSelect}
191
- event={event}
192
- />
193
- </div>
194
- </div>
195
- {visibleDescription === ticket.id && (
196
- <div className="ticket-description">
197
- <div
198
- dangerouslySetInnerHTML={{
199
- __html: decodeHTML(ticket.descriptionRich),
200
- }}
201
- />
202
- </div>
203
- )}
204
- </div>
205
- </React.Fragment>
206
- )
207
- })}
208
- {!hideTableTicketsHeader && tableTicketsHeaderComponent}
209
- {tableTickets.map((ticket: any, i: any, arr: any) => {
210
- const ticketPriceWithoutFees = `${priceSymbol} ${(+ticket.cost).toFixed(2)}`
211
- const ticketPriceWithFees = `${priceSymbol} ${(+ticket.basePrice).toFixed(2)}`
212
- const ticketOldPriceWithFees = `${priceSymbol} ${(+ticket.oldBasePrice).toFixed(2)}`
213
- const ticketOldPriceWithoutFees = `${priceSymbol} ${(+ticket.oldCost).toFixed(2)}`
214
- const ticketFinalPrice = ticket.feeIncluded && !ticket.isForward
215
- ? +(ticket.x_face_value || ticket.basePrice)
216
- : ticket.feeIncluded ? +ticket.basePrice : +ticket.cost
217
- const ticketFinalPriceFormatted = `${priceSymbol} ${parseFloat(ticketFinalPrice.toFixed(2))}`
218
- const ticketOldFinalPrice = ticket.feeIncluded && !ticket.isForward
219
- ? +(ticket.x_face_value || ticket.basePrice)
220
- : ticket.feeIncluded ? +ticket.oldBasePrice : +ticket.oldCost
221
- const ticketOldFinalPriceFormatted = `${priceSymbol} ${parseFloat(ticketOldFinalPrice.toFixed(2))}`
222
- const ticketFeeAmount = (+ticket.basePrice - +ticket.cost).toFixed(2)
223
- const ticketBreakdown = !ticket.feeIncluded
224
- ? '(+ fees at checkout)'
225
- : !ticket.isForward
226
- ? null
227
- : (parseFloat(ticketFeeAmount) > 0 ? `(${priceSymbol} ${(+ticket.cost).toFixed(2)} + ${priceSymbol} ${ticketFeeAmount} fee)` : null)
228
-
229
- const isSoldOut =
230
- ticket.sold_out ||
231
- !(ticket.displayTicket || ticket.slotGroupId) ||
232
- ticket.soldOut
233
- const ticketSelect = (event: any) => {
234
- const { value } = event.target
235
- handleTicketSelect(ticket.id, value, true)
236
- }
237
-
238
- let ticketIsDiscounted = false
239
- if (ticket.oldPrice && !isSoldOut && ticket.oldPrice !== ticket.price) {
240
- ticketIsDiscounted = true
241
- }
242
-
243
- const ticketIsFree = +ticket.price === 0
244
- const discountTicketPriceElem = CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN
245
- ? ticketOldFinalPriceFormatted
246
- : CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded
247
- ? ticketOldPriceWithoutFees
248
- : ticketOldPriceWithFees
249
- const ticketPriceElem = isSoldOut
250
- ? 'SOLD OUT'
251
- : ticketIsFree
252
- ? 'FREE'
253
- : CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN
254
- ? ticketFinalPriceFormatted
255
- : (CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH || !ticket.feeIncluded)
256
- ? ticketPriceWithoutFees
257
- : ticketPriceWithFees
258
- const isNewGroupTicket = ticket?.groupName !== arr[i - 1]?.groupName
259
-
260
- return (
261
- <React.Fragment key={ticket.id || ticket.name}>
262
- {showGroupNameBlock && showGroup && isNewGroupTicket ? (
263
- <div className="event-detail__tier group-title">
264
- {ticket.groupName || ''}
265
- </div>
266
- ) : null}
267
- <div
268
- className={`event-detail__tier ${isSoldOut ? 'disabled' : ''}`}
269
- id={ticket.id || ticket.name}
270
- >
271
- <div className="event-detail__tier-name">
272
- {ticket.displayName || ticket.name}
273
- {ticket.descriptionRich && (
274
- <>
275
- <span
276
- aria-hidden
277
- className="info-icon"
278
- onClick={
279
- descriptionTrigger === 'click'
280
- ? () => handleDescriptionToggle(ticket.id)
281
- : undefined
282
- }
283
- onMouseEnter={
284
- descriptionTrigger === 'hover'
285
- ? () => setVisibleDescription(ticket.id)
286
- : undefined
287
- }
288
- onMouseLeave={
289
- descriptionTrigger === 'hover'
290
- ? () => setVisibleDescription(null)
291
- : undefined
292
- }
293
- style={{ marginLeft: 8, cursor: 'pointer', display: 'flex' }}
294
- data-tooltip-id={`tooltip-${ticket.id}`}
295
- data-tooltip-content="View ticket info"
296
- >
297
- <InfoIcon />
298
- </span>
299
- <Tooltip id={`tooltip-${ticket.id}`} place="top">
300
- {ticket.description || 'No description available'}
301
- </Tooltip>
302
- </>
303
- )}
304
- </div>
305
- <div className="event-tickets-container">
306
- <div className="event-detail__tier-price">
307
- {ticketIsDiscounted && <p className="old-price">{discountTicketPriceElem}</p>}
308
- <p className={isSoldOut ? 'sold-out' : ''}>{ticketPriceElem}</p>
309
- {!isSoldOut && !ticketIsFree && (
310
- <p className="fees">
311
- {CONFIGS.FEES_STYLE === FEES_STYLES.TRADITIONAL &&
312
- (ticket.feeIncluded ? '(incl. Fees)' : '(excl. Fees)')}
313
- {CONFIGS.FEES_STYLE === FEES_STYLES.DISPLAY_BOTH &&
314
- `(${ticketPriceWithFees} with fees)`}
315
- {CONFIGS.FEES_STYLE === FEES_STYLES.FINAL_WITH_BREAKDOWN &&
316
- ticketBreakdown}
317
- </p>
318
- )}
319
- {ticket.depositPercent && (
320
- <p className="deposits">{ticket.depositPercent + '% DEPOSIT'}</p>
321
- )}
322
- </div>
323
- <div className="event-detail__tier-state" style={{ minWidth: 55 }}>
324
- <TicketRow
325
- tableType={true}
326
- ticketTier={ticket}
327
- prevTicketTier={arr[i - 1]}
328
- selectedTickets={selectedTickets}
329
- handleTicketSelect={ticketSelect}
330
- isSeatMapAllowed={isSeatMapAllowed}
331
- event={event}
332
- />
333
- </div>
334
- </div>
335
- {visibleDescription === ticket.id && (
336
- <div className="ticket-description">
337
- <div
338
- dangerouslySetInnerHTML={{
339
- __html: decodeHTML(ticket.descriptionRich),
340
- }}
341
- />
342
- </div>
343
- )}
344
- </div>
345
- </React.Fragment>
346
- )
347
- })}
348
- </>
349
- )
350
- }