tf-checkout-react 1.6.6 → 1.7.2

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 (137) 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 +26 -1
  16. package/dist/components/common/DatePickerField.d.ts +7 -1
  17. package/dist/components/common/PhoneNumberField.d.ts +1 -1
  18. package/dist/components/confirmationContainer/index.d.ts +4 -1
  19. package/dist/components/countdown/index.d.ts +1 -1
  20. package/dist/components/forgotPasswordModal/index.d.ts +2 -1
  21. package/dist/components/myTicketsContainer/index.d.ts +3 -2
  22. package/dist/components/orderDetailsContainer/index.d.ts +8 -1
  23. package/dist/components/paymentContainer/OrderDetails.d.ts +9 -0
  24. package/dist/components/paymentContainer/handlePayment.d.ts +15 -0
  25. package/dist/components/paymentContainer/index.d.ts +12 -6
  26. package/dist/components/preRegistration/FieldsSection.d.ts +7 -1
  27. package/dist/components/preRegistration/PreRegistrationComplete.d.ts +8 -0
  28. package/dist/components/preRegistration/constants.d.ts +2 -2
  29. package/dist/components/preRegistration/index.d.ts +6 -0
  30. package/dist/components/resetPasswordContainer/index.d.ts +2 -2
  31. package/dist/components/ticketsContainer/InfoIcon.d.ts +5 -0
  32. package/dist/components/ticketsContainer/TicketsSection.d.ts +3 -2
  33. package/dist/components/ticketsContainer/TimeSlotsSection.d.ts +25 -0
  34. package/dist/components/ticketsContainer/index.d.ts +29 -5
  35. package/dist/components/timerWidget/index.d.ts +2 -1
  36. package/dist/constants/index.d.ts +5 -0
  37. package/dist/index.d.ts +4 -1
  38. package/dist/tf-checkout-react.cjs.development.js +11284 -9565
  39. package/dist/tf-checkout-react.cjs.development.js.map +1 -1
  40. package/dist/tf-checkout-react.cjs.production.min.js +1 -1
  41. package/dist/tf-checkout-react.cjs.production.min.js.map +1 -1
  42. package/dist/tf-checkout-react.esm.js +11293 -9577
  43. package/dist/tf-checkout-react.esm.js.map +1 -1
  44. package/dist/tf-checkout-styles.css +1 -1
  45. package/dist/types/add_on.d.ts +1 -0
  46. package/dist/types/checkoutPageConfigs.d.ts +1 -1
  47. package/dist/types/order-data.d.ts +3 -1
  48. package/dist/utils/auth.d.ts +8 -0
  49. package/dist/utils/createCheckoutDataBodyWithDefaultHolder.d.ts +1 -0
  50. package/dist/utils/customFields.d.ts +11 -0
  51. package/dist/utils/getDomain.d.ts +1 -1
  52. package/dist/utils/index.d.ts +1 -1
  53. package/dist/utils/setConfigs.d.ts +1 -0
  54. package/package.json +14 -8
  55. package/src/adapters/customFields.ts +7 -1
  56. package/src/api/auth.ts +2 -1
  57. package/src/api/checkout.ts +9 -4
  58. package/src/api/common.ts +49 -2
  59. package/src/api/index.ts +1 -0
  60. package/src/api/interceptors.ts +7 -23
  61. package/src/api/preRegistrationComplete.ts +1 -1
  62. package/src/api/publicRequest.ts +10 -0
  63. package/src/components/addonsContainer/AddonComponent.tsx +96 -11
  64. package/src/components/addonsContainer/SimpleAddonsContainer.tsx +420 -0
  65. package/src/components/addonsContainer/index.tsx +198 -47
  66. package/src/components/billing-info-container/hooks/index.ts +3 -0
  67. package/src/components/billing-info-container/hooks/usePaymentContext.ts +22 -0
  68. package/src/components/billing-info-container/hooks/usePaymentRedirect.ts +147 -0
  69. package/src/components/billing-info-container/hooks/useStripePayment.ts +121 -0
  70. package/src/components/billing-info-container/index.tsx +859 -418
  71. package/src/components/billing-info-container/{utils.ts → utils.tsx} +124 -1
  72. package/src/components/common/CheckboxField/index.tsx +1 -1
  73. package/src/components/common/CustomField.tsx +39 -3
  74. package/src/components/common/DatePickerField.tsx +25 -10
  75. package/src/components/common/PhoneNumberField.tsx +4 -2
  76. package/src/components/common/SnackbarAlert.tsx +32 -34
  77. package/src/components/confirmationContainer/config.ts +3 -3
  78. package/src/components/confirmationContainer/index.tsx +20 -1
  79. package/src/components/confirmationContainer/social-buttons.tsx +5 -3
  80. package/src/components/confirmationContainer/style.css +9 -5
  81. package/src/components/countdown/index.tsx +22 -22
  82. package/src/components/delegationsContainer/IssueComponent.tsx +2 -1
  83. package/src/components/forgotPasswordModal/index.tsx +44 -13
  84. package/src/components/loginForm/index.tsx +1 -1
  85. package/src/components/loginModal/index.tsx +19 -27
  86. package/src/components/loginModal/style.css +3 -1
  87. package/src/components/myTicketsContainer/index.tsx +13 -9
  88. package/src/components/orderDetailsContainer/index.tsx +206 -174
  89. package/src/components/paymentContainer/OrderDetails.tsx +257 -0
  90. package/src/components/paymentContainer/handlePayment.ts +86 -0
  91. package/src/components/paymentContainer/index.tsx +299 -259
  92. package/src/components/paymentContainer/style.css +141 -0
  93. package/src/components/preRegistration/FieldsSection.tsx +8 -0
  94. package/src/components/preRegistration/PreRegistrationComplete.tsx +138 -118
  95. package/src/components/preRegistration/PreRegistrationInformations.tsx +21 -15
  96. package/src/components/preRegistration/constants.tsx +10 -4
  97. package/src/components/preRegistration/index.tsx +233 -179
  98. package/src/components/preRegistration/style.css +3 -0
  99. package/src/components/registerForm/constants.tsx +3 -1
  100. package/src/components/registerForm/index.tsx +3 -3
  101. package/src/components/registerModal/index.tsx +47 -72
  102. package/src/components/resetPasswordContainer/index.tsx +20 -14
  103. package/src/components/seatMapContainer/TicketsSection.tsx +2 -2
  104. package/src/components/signupModal/index.tsx +13 -6
  105. package/src/components/ticketResale/index.tsx +7 -0
  106. package/src/components/ticketsContainer/InfoIcon.tsx +35 -0
  107. package/src/components/ticketsContainer/PromoCodeSection.tsx +34 -28
  108. package/src/components/ticketsContainer/TicketRow.tsx +1 -1
  109. package/src/components/ticketsContainer/TicketsSection.tsx +189 -57
  110. package/src/components/ticketsContainer/TimeSlotsSection.tsx +120 -0
  111. package/src/components/ticketsContainer/index.tsx +268 -106
  112. package/src/components/timerWidget/index.tsx +15 -3
  113. package/src/components/timerWidget/style.css +2 -1
  114. package/src/constants/index.ts +2 -0
  115. package/src/env.ts +14 -6
  116. package/src/hoc/CustomFields/index.tsx +9 -1
  117. package/src/index.ts +7 -2
  118. package/src/types/add_on.ts +1 -0
  119. package/src/types/api/cart.d.ts +8 -0
  120. package/src/types/api/checkout.d.ts +58 -7
  121. package/src/types/api/common.d.ts +30 -0
  122. package/src/types/api/orders.d.ts +19 -3
  123. package/src/types/api/payment.d.ts +6 -2
  124. package/src/types/api/preRegistrationComplete.d.ts +2 -2
  125. package/src/types/checkoutPageConfigs.ts +1 -1
  126. package/src/types/order-data.ts +3 -1
  127. package/src/types/pre-registration-complete.d.ts +6 -1
  128. package/src/utils/auth.ts +32 -0
  129. package/src/utils/cookies.ts +42 -11
  130. package/src/utils/createCheckoutDataBodyWithDefaultHolder.ts +3 -1
  131. package/src/utils/customFields.ts +22 -0
  132. package/src/utils/getDomain.ts +10 -4
  133. package/src/utils/index.ts +1 -1
  134. package/src/utils/setConfigs.ts +3 -1
  135. package/dist/components/stripePayment/index.d.ts +0 -24
  136. package/src/components/stripePayment/index.tsx +0 -281
  137. package/src/components/stripePayment/style.css +0 -60
@@ -1,12 +1,16 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
1
2
  import './style.css'
2
3
 
4
+ import { Backdrop, CircularProgress, ThemeOptions } from '@mui/material'
3
5
  import Paper from '@mui/material/Paper'
6
+ import { createTheme, ThemeProvider } from '@mui/material/styles'
4
7
  import Table from '@mui/material/Table'
5
8
  import TableBody from '@mui/material/TableBody'
6
9
  import TableCell from '@mui/material/TableCell'
7
10
  import TableContainer from '@mui/material/TableContainer'
8
11
  import TableHead from '@mui/material/TableHead'
9
12
  import TableRow from '@mui/material/TableRow'
13
+ import { CSSProperties } from '@mui/styles'
10
14
  import _find from 'lodash/find'
11
15
  import _get from 'lodash/get'
12
16
  import _has from 'lodash/has'
@@ -61,6 +65,10 @@ interface OrderDetailsTypes {
61
65
  personalLinkIcon?: string;
62
66
  displayColumnNameInRow?: boolean;
63
67
  canSellTicket?: boolean;
68
+ themeOptions?: ThemeOptions & {
69
+ input?: CSSProperties;
70
+ checkbox?: CSSProperties;
71
+ };
64
72
  ticketsTableColumns?: Array<{
65
73
  id?: string | number;
66
74
  key: keyof ITicketTypes & keyof IActionColumns;
@@ -71,6 +79,7 @@ interface OrderDetailsTypes {
71
79
  referralTitle?: string;
72
80
  itemsTitle?: string;
73
81
  ticketsTitle?: string;
82
+ displayLoading?: boolean;
74
83
  }
75
84
 
76
85
  export interface CustomFieldOption {
@@ -130,6 +139,8 @@ export const OrderDetailsContainer = ({
130
139
  referralTitle = '',
131
140
  itemsTitle = '',
132
141
  ticketsTitle = 'Your Tickets',
142
+ themeOptions,
143
+ displayLoading = false,
133
144
  }: OrderDetailsTypes) => {
134
145
  const [data, setData] = useState<any>({})
135
146
  const [removeFromResaleLoading, setRemoveFromResaleLoading] = useState(false)
@@ -138,6 +149,7 @@ export const OrderDetailsContainer = ({
138
149
  const [showRemoveResaleModal, setShowRemoveResaleModal] = useState(false)
139
150
  const [activeTicket, setActiveTicket] = useState<any>(null)
140
151
  const [showOrderCustomFieldsSection, setShowOrderCustomFieldsSection] = useState(false)
152
+ const [isLoading, setIsLoading] = useState(false)
141
153
 
142
154
  const isTable = _get(data, 'tickets[0].is_table', false)
143
155
  const columnsProps = isTable
@@ -193,16 +205,19 @@ export const OrderDetailsContainer = ({
193
205
  const params: URLSearchParams = new URL(`${window.location}`).searchParams
194
206
  orderId = params.get('o') || ''
195
207
  }
208
+ setIsLoading(true)
196
209
  const response = await getOrderDetails(String(orderId))
197
210
  onGetOrdersSuccess(response)
198
211
 
199
212
  const data = _get(response, 'data.attributes')
200
213
  setData(data)
214
+ setIsLoading(false)
201
215
  } catch (error) {
202
216
  onGetOrdersError(error)
217
+ setIsLoading(false)
203
218
  }
204
219
  })()
205
- }, [])
220
+ }, [onGetOrdersError, onGetOrdersSuccess, pOrderId])
206
221
 
207
222
  const handleSellTicket = (ticket: ITicketTypes) => {
208
223
  const ticketTypesArr = data.items.ticket_types
@@ -352,194 +367,211 @@ export const OrderDetailsContainer = ({
352
367
  }
353
368
  }
354
369
 
370
+ const theme = createTheme(themeOptions ?? {})
371
+
372
+ if (isLoading && displayLoading) {
373
+ return (
374
+ <Backdrop
375
+ sx={{ color: '#fff', backgroundColor: '#000000bd', zIndex: 1205 }}
376
+ open={true}
377
+ >
378
+ <CircularProgress color="inherit" />
379
+ </Backdrop>
380
+ )
381
+ }
382
+
355
383
  return (
356
- <div className="order-details">
357
- <div className="layout-block">
358
- <h1 className="layout-title">Order Details</h1>
359
- {!_isEmpty(orderUpdatableCustomFields) && (
360
- <SVG src={EditSvg} onClick={() => setShowOrderCustomFieldsSection(true)} />
361
- )}
362
- </div>
363
- <div className="order-summary-box">
364
- <div className="summary-block">
365
- <div className="summary-item">
366
- <h6 className="sub-title">Order Summary</h6>
367
- <p className="order-summary-date">{orderSummery}</p>
368
- </div>
369
- <div className="summary-item">
370
- <div className="return-button-container">
371
- <button
372
- type="button"
373
- className="return-button"
374
- onClick={() => {
375
- if (isBrowser) {
376
- window.location.assign(ordersPath ?? '/orders')
377
- }
378
- }}
379
- >
380
- Back to Orders
381
- </button>
382
- </div>
383
- </div>
384
+ <ThemeProvider theme={theme}>
385
+ <div className="order-details">
386
+ <div className="layout-block">
387
+ <h1 className="layout-title">Order Details</h1>
388
+ {!_isEmpty(orderUpdatableCustomFields) && (
389
+ <SVG src={EditSvg} onClick={() => setShowOrderCustomFieldsSection(true)} />
390
+ )}
384
391
  </div>
385
- {!_isEmpty(orderCustomFields) && (
386
- <>
387
- <div className="custom-field-value-container">
388
- {orderCustomFields.map((customField: CustomFieldTypes) => (
389
- <div className="info-item" key={customField.id}>
390
- <b>{customField.label} :</b> {renderCustomFieldValue(customField)}
391
- </div>
392
- ))}
392
+ <div className="order-summary-box">
393
+ <div className="summary-block">
394
+ <div className="summary-item">
395
+ <h6 className="sub-title">Order Summary</h6>
396
+ <p className="order-summary-date">{orderSummery}</p>
393
397
  </div>
394
- {!_isEmpty(orderUpdatableCustomFields) && (
395
- <div
396
- className={`custom-fields-block ${
397
- showOrderCustomFieldsSection ? 'show' : ''
398
- }`}
399
- >
400
- <p className="title">Aditional Information Request</p>
401
- <CustomFieldsForm
402
- initialValues={orderEditableFieldsFormInitialValues}
403
- fields={orderUpdatableCustomFields}
404
- handleFormSubmit={handleOrderCustomFieldsUpdate}
405
- handleFormClose={() => setShowOrderCustomFieldsSection(false)}
406
- />
398
+ <div className="summary-item">
399
+ <div className="return-button-container">
400
+ <button
401
+ type="button"
402
+ className="return-button"
403
+ onClick={() => {
404
+ if (isBrowser) {
405
+ window.location.assign(ordersPath ?? '/orders')
406
+ }
407
+ }}
408
+ >
409
+ Back to Orders
410
+ </button>
407
411
  </div>
408
- )}
409
- </>
410
- )}
411
- {!data?.disable_referral && (
412
- <>
413
- {referralTitle && (
414
- <h4 className="referral-title sub-title">{referralTitle}</h4>
415
- )}
416
- <div className="personal-link">
417
- <div className="link-item">
418
- <span>Personal Share Link: </span>
419
- <a href={data?.personal_share_link} target="_blank" rel="noreferrer">
420
- {Boolean(personalLinkIcon) && <img src={personalLinkIcon} alt="Icon" />}
421
- {data?.personal_share_link}
422
- </a>
412
+ </div>
413
+ </div>
414
+ {!_isEmpty(orderCustomFields) && (
415
+ <>
416
+ <div className="custom-field-value-container">
417
+ {orderCustomFields.map((customField: CustomFieldTypes) => (
418
+ <div className="info-item" key={customField.id}>
419
+ <b>{customField.label} :</b> {renderCustomFieldValue(customField)}
420
+ </div>
421
+ ))}
423
422
  </div>
424
- {data?.sales_referred ? (
423
+ {!_isEmpty(orderUpdatableCustomFields) && (
424
+ <div
425
+ className={`custom-fields-block ${
426
+ showOrderCustomFieldsSection ? 'show' : ''
427
+ }`}
428
+ >
429
+ <p className="title">Aditional Information Request</p>
430
+ <CustomFieldsForm
431
+ initialValues={orderEditableFieldsFormInitialValues}
432
+ fields={orderUpdatableCustomFields}
433
+ handleFormSubmit={handleOrderCustomFieldsUpdate}
434
+ handleFormClose={() => setShowOrderCustomFieldsSection(false)}
435
+ />
436
+ </div>
437
+ )}
438
+ </>
439
+ )}
440
+ {!data?.disable_referral && (
441
+ <>
442
+ {referralTitle && (
443
+ <h4 className="referral-title sub-title">{referralTitle}</h4>
444
+ )}
445
+ <div className="personal-link">
425
446
  <div className="link-item">
426
- <p className="total-referrer">{`So far, you’ve referred ${data.sales_referred} tickets`}</p>
447
+ <span>Personal Share Link: </span>
448
+ <a href={data?.personal_share_link} target="_blank" rel="noreferrer">
449
+ {Boolean(personalLinkIcon) && (
450
+ <img src={personalLinkIcon} alt="Icon" />
451
+ )}
452
+ {data?.personal_share_link}
453
+ </a>
427
454
  </div>
428
- ) : null}
429
- </div>
430
- </>
431
- )}
432
- {itemsTitle && <h4 className="items-title sub-title">{itemsTitle}</h4>}
433
- <TableContainer component={Paper}>
434
- <Table className="tt-type" aria-label="collapsible table">
435
- <TableHead>
436
- <TableRow>
437
- {_map(columnsProps, item => (
438
- <TableCell>{item.label || ''}</TableCell>
439
- ))}
440
- </TableRow>
441
- </TableHead>
442
- <TableBody>
443
- {data?.items?.ticket_types?.map((ticket: TicketTypes, index: number) =>
444
- data?.tickets && !data?.tickets[0].is_table ? (
455
+ {data?.sales_referred ? (
456
+ <div className="link-item">
457
+ <p className="total-referrer">{`So far, you’ve referred ${data.sales_referred} tickets`}</p>
458
+ </div>
459
+ ) : null}
460
+ </div>
461
+ </>
462
+ )}
463
+ {itemsTitle && <h4 className="items-title sub-title">{itemsTitle}</h4>}
464
+ <TableContainer component={Paper}>
465
+ <Table className="tt-type" aria-label="collapsible table">
466
+ <TableHead>
467
+ <TableRow>
468
+ {_map(columnsProps, item => (
469
+ <TableCell>{item.label || ''}</TableCell>
470
+ ))}
471
+ </TableRow>
472
+ </TableHead>
473
+ <TableBody>
474
+ {data?.items?.ticket_types?.map((ticket: TicketTypes, index: number) =>
475
+ data?.tickets && !data?.tickets[0].is_table ? (
476
+ <TableRow key={index}>
477
+ <TableCell>
478
+ <b>Ticket Type:</b> {ticket.name}
479
+ </TableCell>
480
+ <TableCell>{ticket.currency + ticket.price}</TableCell>
481
+ <TableCell>{ticket.quantity}</TableCell>
482
+ <TableCell>{ticket.currency + ticket.total}</TableCell>
483
+ </TableRow>
484
+ ) : (
485
+ <TableRow key={index}>
486
+ <TableCell>
487
+ <b>Ticket Type:</b> {ticket.name}
488
+ </TableCell>
489
+ <TableCell>{ticket.currency + ticket.price}</TableCell>
490
+ <TableCell>{ticket.guests_count}</TableCell>
491
+ <TableCell>{ticket.deposit_paid}</TableCell>
492
+ <TableCell>{ticket.remaining}</TableCell>
493
+ </TableRow>
494
+ )
495
+ )}
496
+ {data?.items?.add_ons?.map((ticket: TicketTypes, index: number) => (
445
497
  <TableRow key={index}>
446
498
  <TableCell>
447
- <b>Ticket Type:</b> {ticket.name}
499
+ <div>
500
+ <b>Add-On</b>
501
+ <div>
502
+ {ticket.groupName && `${ticket.groupName}: `} {ticket.name}
503
+ </div>
504
+ </div>
448
505
  </TableCell>
449
506
  <TableCell>{ticket.currency + ticket.price}</TableCell>
450
507
  <TableCell>{ticket.quantity}</TableCell>
451
508
  <TableCell>{ticket.currency + ticket.total}</TableCell>
452
509
  </TableRow>
453
- ) : (
454
- <TableRow key={index}>
455
- <TableCell>
456
- <b>Ticket Type:</b> {ticket.name}
457
- </TableCell>
458
- <TableCell>{ticket.currency + ticket.price}</TableCell>
459
- <TableCell>{ticket.guests_count}</TableCell>
460
- <TableCell>{ticket.deposit_paid}</TableCell>
461
- <TableCell>{ticket.remaining}</TableCell>
462
- </TableRow>
463
- )
464
- )}
465
- {data?.items?.add_ons?.map((ticket: TicketTypes, index: number) => (
466
- <TableRow key={index}>
467
- <TableCell>
468
- <div>
469
- <b>Add-On</b>
470
- <div>
471
- {ticket.groupName && `${ticket.groupName}: `} {ticket.name}
472
- </div>
473
- </div>
474
- </TableCell>
475
- <TableCell>{ticket.currency + ticket.price}</TableCell>
476
- <TableCell>{ticket.quantity}</TableCell>
477
- <TableCell>{ticket.currency + ticket.total}</TableCell>
510
+ ))}
511
+ <TableRow className="total-row">
512
+ <TableCell />
513
+ <TableCell />
514
+ <TableCell>Total</TableCell>
515
+ <TableCell>{getTotal(data)}</TableCell>
478
516
  </TableRow>
479
- ))}
480
- <TableRow className="total-row">
481
- <TableCell />
482
- <TableCell />
483
- <TableCell>Total</TableCell>
484
- <TableCell>{getTotal(data)}</TableCell>
485
- </TableRow>
486
- </TableBody>
487
- </Table>
488
- </TableContainer>
489
- </div>
490
- <TicketsTable
491
- ticketsTitle={ticketsTitle}
492
- tickets={data.tickets}
493
- columns={
494
- ticketsTableColumns?.length
495
- ? ticketsTableColumns
496
- : [
497
- { key: 'hash' as never, label: 'Ticket ID' },
498
- { key: 'ticket_type' as never, label: 'Ticket Type' },
499
- { key: 'holder_name' as never, label: 'Ticket Holder' },
500
- { key: 'status' as never, label: 'Status' },
501
- { key: 'download' as never, label: '' },
502
- { key: 'sell_ticket' as never, label: '' },
503
- ]
504
- }
505
- handleSellTicket={handleSellTicket}
506
- handleRemoveFromResale={handleRemoveFromResale}
507
- displayColumnNameInRow={displayColumnNameInRow}
508
- canSellTicket={canSellTicket}
509
- ticketHoldersCustomFields={ticketHoldersCustomFields}
510
- handleTicketHoldersUpdate={handleTicketHoldersUpdate}
511
- />
512
- <div className="return-button-container">
513
- <button
514
- type="button"
515
- className="return-button"
516
- onClick={() => {
517
- if (onReturnButtonClick) {
518
- onReturnButtonClick(data)
519
- } else if (isBrowser) {
520
- window.location.assign(ordersPath ?? '/orders')
521
- }
522
- }}
523
- >
524
- Return to Order History
525
- </button>
526
- </div>
527
- {showResaleModal && (
528
- <TicketResaleModal
529
- ticket={activeTicket}
530
- onClose={handleOnClose}
531
- onSubmit={handleOnSubmit}
532
- loading={resaleTicketLoading}
533
- />
534
- )}
535
- {showRemoveResaleModal && (
536
- <ConfirmModal
537
- message="Are you sure you want to withdraw your ticket from resale?"
538
- onClose={onCloseRemoveResale}
539
- onConfirm={onConfirmRemoveResale}
540
- loading={removeFromResaleLoading}
517
+ </TableBody>
518
+ </Table>
519
+ </TableContainer>
520
+ </div>
521
+ <TicketsTable
522
+ ticketsTitle={ticketsTitle}
523
+ tickets={data.tickets}
524
+ columns={
525
+ ticketsTableColumns?.length
526
+ ? ticketsTableColumns
527
+ : [
528
+ { key: 'hash' as never, label: 'Ticket ID' },
529
+ { key: 'ticket_type' as never, label: 'Ticket Type' },
530
+ { key: 'holder_name' as never, label: 'Ticket Holder' },
531
+ { key: 'status' as never, label: 'Status' },
532
+ { key: 'download' as never, label: '' },
533
+ { key: 'sell_ticket' as never, label: '' },
534
+ ]
535
+ }
536
+ handleSellTicket={handleSellTicket}
537
+ handleRemoveFromResale={handleRemoveFromResale}
538
+ displayColumnNameInRow={displayColumnNameInRow}
539
+ canSellTicket={canSellTicket}
540
+ ticketHoldersCustomFields={ticketHoldersCustomFields}
541
+ handleTicketHoldersUpdate={handleTicketHoldersUpdate}
541
542
  />
542
- )}
543
- </div>
543
+ <div className="return-button-container">
544
+ <button
545
+ type="button"
546
+ className="return-button"
547
+ onClick={() => {
548
+ if (onReturnButtonClick) {
549
+ onReturnButtonClick(data)
550
+ } else if (isBrowser) {
551
+ window.location.assign(ordersPath ?? '/orders')
552
+ }
553
+ }}
554
+ >
555
+ Return to Order History
556
+ </button>
557
+ </div>
558
+ {showResaleModal && (
559
+ <TicketResaleModal
560
+ ticket={activeTicket}
561
+ onClose={handleOnClose}
562
+ onSubmit={handleOnSubmit}
563
+ loading={resaleTicketLoading}
564
+ />
565
+ )}
566
+ {showRemoveResaleModal && (
567
+ <ConfirmModal
568
+ message="Are you sure you want to withdraw your ticket from resale?"
569
+ onClose={onCloseRemoveResale}
570
+ onConfirm={onConfirmRemoveResale}
571
+ loading={removeFromResaleLoading}
572
+ />
573
+ )}
574
+ </div>
575
+ </ThemeProvider>
544
576
  )
545
577
  }