tf-checkout-react 1.6.6 → 1.7.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 (131) hide show
  1. package/README.md +401 -59
  2. package/dist/adapters/customFields.d.ts +1 -0
  3. package/dist/api/checkout.d.ts +2 -0
  4. package/dist/api/common.d.ts +1 -0
  5. package/dist/api/index.d.ts +2 -0
  6. package/dist/api/preRegistrationComplete.d.ts +1 -1
  7. package/dist/components/addonsContainer/AddonComponent.d.ts +6 -1
  8. package/dist/components/addonsContainer/SimpleAddonsContainer.d.ts +17 -0
  9. package/dist/components/addonsContainer/index.d.ts +6 -1
  10. package/dist/components/billing-info-container/hooks/index.d.ts +3 -0
  11. package/dist/components/billing-info-container/hooks/usePaymentContext.d.ts +5 -0
  12. package/dist/components/billing-info-container/hooks/usePaymentRedirect.d.ts +14 -0
  13. package/dist/components/billing-info-container/hooks/useStripePayment.d.ts +18 -0
  14. package/dist/components/billing-info-container/index.d.ts +13 -2
  15. package/dist/components/billing-info-container/utils.d.ts +25 -1
  16. package/dist/components/common/DatePickerField.d.ts +7 -1
  17. package/dist/components/confirmationContainer/index.d.ts +4 -1
  18. package/dist/components/countdown/index.d.ts +1 -1
  19. package/dist/components/forgotPasswordModal/index.d.ts +2 -1
  20. package/dist/components/myTicketsContainer/index.d.ts +3 -2
  21. package/dist/components/orderDetailsContainer/index.d.ts +8 -1
  22. package/dist/components/paymentContainer/OrderDetails.d.ts +9 -0
  23. package/dist/components/paymentContainer/handlePayment.d.ts +15 -0
  24. package/dist/components/paymentContainer/index.d.ts +12 -6
  25. package/dist/components/preRegistration/FieldsSection.d.ts +7 -1
  26. package/dist/components/preRegistration/PreRegistrationComplete.d.ts +6 -0
  27. package/dist/components/preRegistration/constants.d.ts +2 -2
  28. package/dist/components/preRegistration/index.d.ts +6 -0
  29. package/dist/components/resetPasswordContainer/index.d.ts +2 -2
  30. package/dist/components/ticketsContainer/InfoIcon.d.ts +5 -0
  31. package/dist/components/ticketsContainer/TicketsSection.d.ts +3 -2
  32. package/dist/components/ticketsContainer/TimeSlotsSection.d.ts +25 -0
  33. package/dist/components/ticketsContainer/index.d.ts +29 -5
  34. package/dist/components/timerWidget/index.d.ts +2 -1
  35. package/dist/constants/index.d.ts +5 -0
  36. package/dist/index.d.ts +4 -1
  37. package/dist/tf-checkout-react.cjs.development.js +11231 -9563
  38. package/dist/tf-checkout-react.cjs.development.js.map +1 -1
  39. package/dist/tf-checkout-react.cjs.production.min.js +1 -1
  40. package/dist/tf-checkout-react.cjs.production.min.js.map +1 -1
  41. package/dist/tf-checkout-react.esm.js +11194 -9529
  42. package/dist/tf-checkout-react.esm.js.map +1 -1
  43. package/dist/tf-checkout-styles.css +1 -1
  44. package/dist/types/add_on.d.ts +1 -0
  45. package/dist/types/checkoutPageConfigs.d.ts +1 -1
  46. package/dist/types/order-data.d.ts +3 -1
  47. package/dist/utils/auth.d.ts +8 -0
  48. package/dist/utils/customFields.d.ts +11 -0
  49. package/dist/utils/getDomain.d.ts +1 -1
  50. package/dist/utils/index.d.ts +1 -1
  51. package/dist/utils/setConfigs.d.ts +1 -0
  52. package/package.json +14 -8
  53. package/src/adapters/customFields.ts +7 -1
  54. package/src/api/auth.ts +2 -1
  55. package/src/api/checkout.ts +9 -4
  56. package/src/api/common.ts +49 -2
  57. package/src/api/index.ts +1 -0
  58. package/src/api/interceptors.ts +7 -23
  59. package/src/api/preRegistrationComplete.ts +1 -1
  60. package/src/api/publicRequest.ts +10 -0
  61. package/src/components/addonsContainer/AddonComponent.tsx +96 -11
  62. package/src/components/addonsContainer/SimpleAddonsContainer.tsx +420 -0
  63. package/src/components/addonsContainer/index.tsx +198 -47
  64. package/src/components/billing-info-container/hooks/index.ts +3 -0
  65. package/src/components/billing-info-container/hooks/usePaymentContext.ts +22 -0
  66. package/src/components/billing-info-container/hooks/usePaymentRedirect.ts +147 -0
  67. package/src/components/billing-info-container/hooks/useStripePayment.ts +121 -0
  68. package/src/components/billing-info-container/index.tsx +827 -406
  69. package/src/components/billing-info-container/{utils.ts → utils.tsx} +119 -0
  70. package/src/components/common/CheckboxField/index.tsx +1 -1
  71. package/src/components/common/CustomField.tsx +38 -2
  72. package/src/components/common/DatePickerField.tsx +25 -10
  73. package/src/components/common/SnackbarAlert.tsx +32 -34
  74. package/src/components/confirmationContainer/config.ts +3 -3
  75. package/src/components/confirmationContainer/index.tsx +20 -1
  76. package/src/components/confirmationContainer/social-buttons.tsx +5 -3
  77. package/src/components/confirmationContainer/style.css +9 -5
  78. package/src/components/countdown/index.tsx +22 -22
  79. package/src/components/delegationsContainer/IssueComponent.tsx +2 -1
  80. package/src/components/forgotPasswordModal/index.tsx +44 -13
  81. package/src/components/loginForm/index.tsx +1 -1
  82. package/src/components/loginModal/index.tsx +19 -27
  83. package/src/components/loginModal/style.css +3 -1
  84. package/src/components/myTicketsContainer/index.tsx +13 -9
  85. package/src/components/orderDetailsContainer/index.tsx +206 -174
  86. package/src/components/paymentContainer/OrderDetails.tsx +257 -0
  87. package/src/components/paymentContainer/handlePayment.ts +86 -0
  88. package/src/components/paymentContainer/index.tsx +299 -259
  89. package/src/components/paymentContainer/style.css +141 -0
  90. package/src/components/preRegistration/FieldsSection.tsx +8 -0
  91. package/src/components/preRegistration/PreRegistrationComplete.tsx +128 -118
  92. package/src/components/preRegistration/PreRegistrationInformations.tsx +21 -15
  93. package/src/components/preRegistration/constants.tsx +10 -4
  94. package/src/components/preRegistration/index.tsx +194 -174
  95. package/src/components/registerForm/constants.tsx +3 -1
  96. package/src/components/registerForm/index.tsx +3 -3
  97. package/src/components/registerModal/index.tsx +47 -72
  98. package/src/components/resetPasswordContainer/index.tsx +20 -14
  99. package/src/components/seatMapContainer/TicketsSection.tsx +2 -2
  100. package/src/components/signupModal/index.tsx +13 -6
  101. package/src/components/ticketResale/index.tsx +7 -0
  102. package/src/components/ticketsContainer/InfoIcon.tsx +35 -0
  103. package/src/components/ticketsContainer/PromoCodeSection.tsx +34 -28
  104. package/src/components/ticketsContainer/TicketRow.tsx +1 -1
  105. package/src/components/ticketsContainer/TicketsSection.tsx +189 -57
  106. package/src/components/ticketsContainer/TimeSlotsSection.tsx +120 -0
  107. package/src/components/ticketsContainer/index.tsx +268 -106
  108. package/src/components/timerWidget/index.tsx +15 -3
  109. package/src/constants/index.ts +2 -0
  110. package/src/env.ts +14 -6
  111. package/src/hoc/CustomFields/index.tsx +9 -1
  112. package/src/index.ts +7 -2
  113. package/src/types/add_on.ts +1 -0
  114. package/src/types/api/cart.d.ts +8 -0
  115. package/src/types/api/checkout.d.ts +58 -7
  116. package/src/types/api/common.d.ts +30 -0
  117. package/src/types/api/orders.d.ts +19 -3
  118. package/src/types/api/payment.d.ts +6 -2
  119. package/src/types/api/preRegistrationComplete.d.ts +2 -2
  120. package/src/types/checkoutPageConfigs.ts +1 -1
  121. package/src/types/order-data.ts +3 -1
  122. package/src/types/pre-registration-complete.d.ts +6 -1
  123. package/src/utils/auth.ts +32 -0
  124. package/src/utils/cookies.ts +42 -11
  125. package/src/utils/customFields.ts +22 -0
  126. package/src/utils/getDomain.ts +10 -4
  127. package/src/utils/index.ts +1 -1
  128. package/src/utils/setConfigs.ts +3 -1
  129. package/dist/components/stripePayment/index.d.ts +0 -24
  130. package/src/components/stripePayment/index.tsx +0 -281
  131. package/src/components/stripePayment/style.css +0 -60
@@ -0,0 +1,120 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { Box, CircularProgress, TextField } from '@mui/material'
3
+ import { LocalizationProvider, StaticDatePicker as DatePicker } from '@mui/x-date-pickers'
4
+ import { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment'
5
+ import _isEmpty from 'lodash/isEmpty'
6
+ import _map from 'lodash/map'
7
+ import moment from 'moment-timezone'
8
+ import React, { ReactNode, useState } from 'react'
9
+
10
+ import { TicketsSection } from './TicketsSection'
11
+
12
+ interface Props {
13
+ event: any;
14
+ eventId: number;
15
+ availableDates: string[];
16
+ selectedDate: string | null;
17
+ timeSlotGroups: { [key: string]: any[] };
18
+ setTimeSlotGroups: (value: { [key: string]: any[] }) => void;
19
+ setSelectedDate: (value: string | null) => void;
20
+ getTimeSlots: (date: string | null, type?: string) => Promise<void>;
21
+
22
+ selectedTickets: any;
23
+ handleTicketSelect: any;
24
+ sortBySoldOut: boolean;
25
+ hideTicketsHeader: boolean;
26
+ ticketsHeaderComponent?: ReactNode;
27
+ showGroupNameBlock?: boolean;
28
+ currencySymbol?: string;
29
+ isSeatMapAllowed?: boolean;
30
+ }
31
+
32
+ const TimeSlotsSection: React.FC<Props> = ({
33
+ event,
34
+ availableDates,
35
+ selectedDate,
36
+ timeSlotGroups,
37
+ setSelectedDate,
38
+ getTimeSlots,
39
+ selectedTickets,
40
+ handleTicketSelect,
41
+ sortBySoldOut,
42
+ hideTicketsHeader,
43
+ ticketsHeaderComponent,
44
+ showGroupNameBlock,
45
+ currencySymbol,
46
+ isSeatMapAllowed,
47
+ }) => {
48
+ const [loading, setLoading] = useState(false)
49
+
50
+ const handleDateChange = async (date: string | null) => {
51
+ setSelectedDate(date)
52
+ if (date) {
53
+ setLoading(true)
54
+ try {
55
+ await getTimeSlots(date)
56
+ } catch (error) {
57
+ console.error('Error fetching time slots:', error)
58
+ } finally {
59
+ setLoading(false)
60
+ }
61
+ }
62
+ }
63
+
64
+ const isDateDisabled = (date: string) => {
65
+ const formattedDate = moment(date).format('YYYY-MM-DD')
66
+ return !availableDates.includes(formattedDate)
67
+ }
68
+
69
+ return (
70
+ <Box sx={{ display: 'flex', flexDirection: 'column', alignItems: 'center' }}>
71
+ <LocalizationProvider dateAdapter={AdapterMoment}>
72
+ <DatePicker
73
+ value={selectedDate}
74
+ onChange={handleDateChange}
75
+ shouldDisableDate={isDateDisabled}
76
+ renderInput={params => <TextField {...params} />}
77
+ showToolbar={false}
78
+ componentsProps={{ actionBar: { actions: [] } }}
79
+ disablePast
80
+ />
81
+ </LocalizationProvider>
82
+ {loading ? (
83
+ <CircularProgress sx={{ marginTop: 2 }} />
84
+ ) : (
85
+ <Box
86
+ sx={{
87
+ marginTop: 2,
88
+ width: '100%',
89
+ display: 'flex',
90
+ flexDirection: 'column',
91
+ gap: 2,
92
+ }}
93
+ >
94
+ {_map(Object.keys(timeSlotGroups).sort(), timeKey => (
95
+ <div key={timeKey} className="time-slot-block">
96
+ <div className="time-slot-date">{moment(timeKey).format('hh:mm A')}</div>
97
+ <TicketsSection
98
+ event={event}
99
+ ticketsList={timeSlotGroups[timeKey]}
100
+ tableTickets={[]}
101
+ selectedTickets={selectedTickets}
102
+ handleTicketSelect={handleTicketSelect}
103
+ sortBySoldOut={sortBySoldOut}
104
+ ticketsHeaderComponent={ticketsHeaderComponent}
105
+ tableTicketsHeaderComponent={null}
106
+ hideTableTicketsHeader={true}
107
+ hideTicketsHeader={hideTicketsHeader || _isEmpty(timeSlotGroups[timeKey])}
108
+ showGroupNameBlock={showGroupNameBlock}
109
+ currencySymbol={currencySymbol}
110
+ isSeatMapAllowed={isSeatMapAllowed}
111
+ />
112
+ </div>
113
+ ))}
114
+ </Box>
115
+ )}
116
+ </Box>
117
+ )
118
+ }
119
+
120
+ export default TimeSlotsSection