@eventlook/sdk 1.4.46-beta.6 → 1.4.46
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/.claude/settings.local.json +9 -0
- package/dist/cjs/components/Image.js +29 -14
- package/dist/cjs/components/Image.js.map +1 -1
- package/dist/cjs/components/hook-form/FormProvider.js +2 -2
- package/dist/cjs/components/hook-form/FormProvider.js.map +1 -1
- package/dist/cjs/form/ChildEventDialog.js +3 -3
- package/dist/cjs/form/ChildEventDialog.js.map +1 -1
- package/dist/cjs/form/ContactPerson.js +1 -1
- package/dist/cjs/form/ContactPerson.js.map +1 -1
- package/dist/cjs/form/Payment.js +2 -2
- package/dist/cjs/form/Payment.js.map +1 -1
- package/dist/cjs/form/PaymentOverviewBox.js +23 -15
- package/dist/cjs/form/PaymentOverviewBox.js.map +1 -1
- package/dist/cjs/form/PaymentPending.js +4 -1
- package/dist/cjs/form/PaymentPending.js.map +1 -1
- package/dist/cjs/form/ReleaseWithMerchandise.js +48 -57
- package/dist/cjs/form/ReleaseWithMerchandise.js.map +1 -1
- package/dist/cjs/form/TicketForm.js +18 -36
- package/dist/cjs/form/TicketForm.js.map +1 -1
- package/dist/cjs/form/TicketSelection.js +6 -5
- package/dist/cjs/form/TicketSelection.js.map +1 -1
- package/dist/cjs/form/TicketWithMerchandiseSelection.js +5 -3
- package/dist/cjs/form/TicketWithMerchandiseSelection.js.map +1 -1
- package/dist/cjs/form/index.js +1 -1
- package/dist/cjs/form/index.js.map +1 -1
- package/dist/cjs/form/payment/FeeBox.js +4 -1
- package/dist/cjs/form/payment/FeeBox.js.map +1 -1
- package/dist/cjs/form/payment/PaymentOverviewCheckbox.js +27 -17
- package/dist/cjs/form/payment/PaymentOverviewCheckbox.js.map +1 -1
- package/dist/cjs/form/product/ProductCard.js +34 -49
- package/dist/cjs/form/product/ProductCard.js.map +1 -1
- package/dist/cjs/form/product/ProductVariantsDialog.js +94 -118
- package/dist/cjs/form/product/ProductVariantsDialog.js.map +1 -1
- package/dist/cjs/locales/cs.js +1 -16
- package/dist/cjs/locales/cs.js.map +1 -1
- package/dist/cjs/locales/en.js +1 -16
- package/dist/cjs/locales/en.js.map +1 -1
- package/dist/cjs/locales/es.js +0 -15
- package/dist/cjs/locales/es.js.map +1 -1
- package/dist/cjs/locales/pl.js +0 -15
- package/dist/cjs/locales/pl.js.map +1 -1
- package/dist/cjs/locales/sk.js +0 -15
- package/dist/cjs/locales/sk.js.map +1 -1
- package/dist/cjs/locales/uk.js +0 -15
- package/dist/cjs/locales/uk.js.map +1 -1
- package/dist/cjs/utils/data/global.js +0 -2
- package/dist/cjs/utils/data/global.js.map +1 -1
- package/dist/esm/components/Image.js +30 -15
- package/dist/esm/components/Image.js.map +1 -1
- package/dist/esm/components/hook-form/FormProvider.js +2 -2
- package/dist/esm/components/hook-form/FormProvider.js.map +1 -1
- package/dist/esm/form/ChildEventDialog.js +3 -3
- package/dist/esm/form/ChildEventDialog.js.map +1 -1
- package/dist/esm/form/ContactPerson.js +1 -1
- package/dist/esm/form/ContactPerson.js.map +1 -1
- package/dist/esm/form/Payment.js +2 -2
- package/dist/esm/form/Payment.js.map +1 -1
- package/dist/esm/form/PaymentOverviewBox.js +23 -15
- package/dist/esm/form/PaymentOverviewBox.js.map +1 -1
- package/dist/esm/form/PaymentPending.js +4 -1
- package/dist/esm/form/PaymentPending.js.map +1 -1
- package/dist/esm/form/ReleaseWithMerchandise.js +49 -58
- package/dist/esm/form/ReleaseWithMerchandise.js.map +1 -1
- package/dist/esm/form/TicketForm.js +20 -38
- package/dist/esm/form/TicketForm.js.map +1 -1
- package/dist/esm/form/TicketSelection.js +6 -5
- package/dist/esm/form/TicketSelection.js.map +1 -1
- package/dist/esm/form/TicketWithMerchandiseSelection.js +6 -4
- package/dist/esm/form/TicketWithMerchandiseSelection.js.map +1 -1
- package/dist/esm/form/index.js +1 -1
- package/dist/esm/form/index.js.map +1 -1
- package/dist/esm/form/payment/FeeBox.js +4 -1
- package/dist/esm/form/payment/FeeBox.js.map +1 -1
- package/dist/esm/form/payment/PaymentOverviewCheckbox.js +29 -19
- package/dist/esm/form/payment/PaymentOverviewCheckbox.js.map +1 -1
- package/dist/esm/form/product/ProductCard.js +35 -50
- package/dist/esm/form/product/ProductCard.js.map +1 -1
- package/dist/esm/form/product/ProductVariantsDialog.js +95 -119
- package/dist/esm/form/product/ProductVariantsDialog.js.map +1 -1
- package/dist/esm/locales/cs.js +1 -16
- package/dist/esm/locales/cs.js.map +1 -1
- package/dist/esm/locales/en.js +1 -16
- package/dist/esm/locales/en.js.map +1 -1
- package/dist/esm/locales/es.js +0 -15
- package/dist/esm/locales/es.js.map +1 -1
- package/dist/esm/locales/pl.js +0 -15
- package/dist/esm/locales/pl.js.map +1 -1
- package/dist/esm/locales/sk.js +0 -15
- package/dist/esm/locales/sk.js.map +1 -1
- package/dist/esm/locales/uk.js +0 -15
- package/dist/esm/locales/uk.js.map +1 -1
- package/dist/esm/utils/data/global.js +1 -2
- package/dist/esm/utils/data/global.js.map +1 -1
- package/dist/types/components/Image.d.ts +4 -4
- package/dist/types/form/style.d.ts +1 -1
- package/package.json +2 -8
- package/rollup.config.mjs +0 -2
- package/src/components/Image.tsx +48 -27
- package/src/components/hook-form/FormProvider.tsx +2 -5
- package/src/form/ChildEventDialog.tsx +3 -3
- package/src/form/ContactPerson.tsx +1 -1
- package/src/form/MerchandiseSelection.tsx +29 -0
- package/src/form/Payment.tsx +2 -2
- package/src/form/PaymentOverviewBox.tsx +72 -40
- package/src/form/PaymentPending.tsx +1 -1
- package/src/form/ReleaseWithMerchandise.tsx +230 -0
- package/src/form/TicketForm.tsx +18 -56
- package/src/form/{tickets/TicketSelection.tsx → TicketSelection.tsx} +109 -17
- package/src/form/{tickets/TicketSelectionMap.tsx → TicketSelectionMap.tsx} +1 -9
- package/src/form/{tickets/TicketWithMerchandiseSelection.tsx → TicketWithMerchandiseSelection.tsx} +7 -3
- package/src/form/index.tsx +1 -3
- package/src/form/payment/FeeBox.tsx +10 -0
- package/src/form/payment/PaymentOverviewCheckbox.tsx +56 -33
- package/src/form/product/ProductCard.tsx +52 -67
- package/src/form/product/ProductVariantsDialog.tsx +137 -195
- package/src/locales/cs.tsx +1 -16
- package/src/locales/en.tsx +1 -16
- package/src/locales/es.tsx +0 -15
- package/src/locales/pl.tsx +0 -15
- package/src/locales/sk.tsx +0 -15
- package/src/locales/uk.tsx +0 -15
- package/src/utils/data/global.ts +0 -1
- package/tsconfig.json +1 -2
- package/.env.example +0 -1
- package/dist/cjs/_virtual/_commonjsHelpers.js +0 -8
- package/dist/cjs/_virtual/_commonjsHelpers.js.map +0 -1
- package/dist/cjs/_virtual/index.js +0 -6
- package/dist/cjs/_virtual/index.js.map +0 -1
- package/dist/cjs/_virtual/index2.js +0 -6
- package/dist/cjs/_virtual/index2.js.map +0 -1
- package/dist/cjs/_virtual/index3.js +0 -6
- package/dist/cjs/_virtual/index3.js.map +0 -1
- package/dist/cjs/_virtual/react-is.development.js +0 -6
- package/dist/cjs/_virtual/react-is.development.js.map +0 -1
- package/dist/cjs/_virtual/react-is.development2.js +0 -6
- package/dist/cjs/_virtual/react-is.development2.js.map +0 -1
- package/dist/cjs/_virtual/react-is.production.js +0 -6
- package/dist/cjs/_virtual/react-is.production.js.map +0 -1
- package/dist/cjs/_virtual/react-is.production.min.js +0 -6
- package/dist/cjs/_virtual/react-is.production.min.js.map +0 -1
- package/dist/cjs/form/PaymentOverviewDrawer.js +0 -114
- package/dist/cjs/form/PaymentOverviewDrawer.js.map +0 -1
- package/dist/cjs/form/TicketQuantityControl.js +0 -51
- package/dist/cjs/form/TicketQuantityControl.js.map +0 -1
- package/dist/cjs/form/TicketSelectionMobile.js +0 -98
- package/dist/cjs/form/TicketSelectionMobile.js.map +0 -1
- package/dist/cjs/form/merchandise/MerchandiseSelection.js +0 -14
- package/dist/cjs/form/merchandise/MerchandiseSelection.js.map +0 -1
- package/dist/cjs/form/merchandise/MerchandiseSlider.js +0 -39
- package/dist/cjs/form/merchandise/MerchandiseSlider.js.map +0 -1
- package/dist/cjs/form/merchendise/MerchandiseSelection.js +0 -19
- package/dist/cjs/form/merchendise/MerchandiseSelection.js.map +0 -1
- package/dist/cjs/form/merchendise/MerchandiseSlider.js +0 -75
- package/dist/cjs/form/merchendise/MerchandiseSlider.js.map +0 -1
- package/dist/cjs/form/services/index.js +0 -131
- package/dist/cjs/form/services/index.js.map +0 -1
- package/dist/cjs/form/tickets/ReleaseDescription.js +0 -23
- package/dist/cjs/form/tickets/ReleaseDescription.js.map +0 -1
- package/dist/cjs/form/tickets/ReleaseWithMerchandise.js +0 -139
- package/dist/cjs/form/tickets/ReleaseWithMerchandise.js.map +0 -1
- package/dist/cjs/form/tickets/TicketQuantityControl.js +0 -52
- package/dist/cjs/form/tickets/TicketQuantityControl.js.map +0 -1
- package/dist/cjs/form/tickets/TicketSelection.js +0 -134
- package/dist/cjs/form/tickets/TicketSelection.js.map +0 -1
- package/dist/cjs/form/tickets/TicketSelectionMap.js +0 -73
- package/dist/cjs/form/tickets/TicketSelectionMap.js.map +0 -1
- package/dist/cjs/form/tickets/TicketSelectionMobile.js +0 -88
- package/dist/cjs/form/tickets/TicketSelectionMobile.js.map +0 -1
- package/dist/cjs/form/tickets/TicketWithMerchandiseSelection.js +0 -117
- package/dist/cjs/form/tickets/TicketWithMerchandiseSelection.js.map +0 -1
- package/dist/esm/_virtual/_commonjsHelpers.js +0 -6
- package/dist/esm/_virtual/_commonjsHelpers.js.map +0 -1
- package/dist/esm/_virtual/index.js +0 -4
- package/dist/esm/_virtual/index.js.map +0 -1
- package/dist/esm/_virtual/index2.js +0 -4
- package/dist/esm/_virtual/index2.js.map +0 -1
- package/dist/esm/_virtual/index3.js +0 -4
- package/dist/esm/_virtual/index3.js.map +0 -1
- package/dist/esm/_virtual/react-is.development.js +0 -4
- package/dist/esm/_virtual/react-is.development.js.map +0 -1
- package/dist/esm/_virtual/react-is.development2.js +0 -4
- package/dist/esm/_virtual/react-is.development2.js.map +0 -1
- package/dist/esm/_virtual/react-is.production.js +0 -4
- package/dist/esm/_virtual/react-is.production.js.map +0 -1
- package/dist/esm/_virtual/react-is.production.min.js +0 -4
- package/dist/esm/_virtual/react-is.production.min.js.map +0 -1
- package/dist/esm/form/PaymentOverviewDrawer.js +0 -110
- package/dist/esm/form/PaymentOverviewDrawer.js.map +0 -1
- package/dist/esm/form/TicketQuantityControl.js +0 -47
- package/dist/esm/form/TicketQuantityControl.js.map +0 -1
- package/dist/esm/form/TicketSelectionMobile.js +0 -94
- package/dist/esm/form/TicketSelectionMobile.js.map +0 -1
- package/dist/esm/form/merchandise/MerchandiseSelection.js +0 -10
- package/dist/esm/form/merchandise/MerchandiseSelection.js.map +0 -1
- package/dist/esm/form/merchandise/MerchandiseSlider.js +0 -35
- package/dist/esm/form/merchandise/MerchandiseSlider.js.map +0 -1
- package/dist/esm/form/merchendise/MerchandiseSelection.js +0 -15
- package/dist/esm/form/merchendise/MerchandiseSelection.js.map +0 -1
- package/dist/esm/form/merchendise/MerchandiseSlider.js +0 -71
- package/dist/esm/form/merchendise/MerchandiseSlider.js.map +0 -1
- package/dist/esm/form/services/index.js +0 -127
- package/dist/esm/form/services/index.js.map +0 -1
- package/dist/esm/form/tickets/ReleaseDescription.js +0 -19
- package/dist/esm/form/tickets/ReleaseDescription.js.map +0 -1
- package/dist/esm/form/tickets/ReleaseWithMerchandise.js +0 -135
- package/dist/esm/form/tickets/ReleaseWithMerchandise.js.map +0 -1
- package/dist/esm/form/tickets/TicketQuantityControl.js +0 -48
- package/dist/esm/form/tickets/TicketQuantityControl.js.map +0 -1
- package/dist/esm/form/tickets/TicketSelection.js +0 -130
- package/dist/esm/form/tickets/TicketSelection.js.map +0 -1
- package/dist/esm/form/tickets/TicketSelectionMap.js +0 -69
- package/dist/esm/form/tickets/TicketSelectionMap.js.map +0 -1
- package/dist/esm/form/tickets/TicketSelectionMobile.js +0 -84
- package/dist/esm/form/tickets/TicketSelectionMobile.js.map +0 -1
- package/dist/esm/form/tickets/TicketWithMerchandiseSelection.js +0 -113
- package/dist/esm/form/tickets/TicketWithMerchandiseSelection.js.map +0 -1
- package/dist/types/form/PaymentOverviewDrawer.d.ts +0 -8
- package/dist/types/form/merchendise/MerchandiseSelection.d.ts +0 -9
- package/dist/types/form/merchendise/MerchandiseSlider.d.ts +0 -10
- package/dist/types/form/merchendise/MerchendiseSlider.d.ts +0 -0
- package/src/form/PaymentOverviewDrawer.tsx +0 -180
- package/src/form/merchandise/MerchandiseSelection.tsx +0 -24
- package/src/form/merchandise/MerchandiseSlider.tsx +0 -61
- package/src/form/services/index.tsx +0 -260
- package/src/form/tickets/ReleaseDescription.tsx +0 -46
- package/src/form/tickets/ReleaseWithMerchandise.tsx +0 -237
- package/src/form/tickets/TicketQuantityControl.tsx +0 -94
- package/src/form/tickets/TicketSelectionMobile.tsx +0 -175
|
@@ -18,7 +18,7 @@ const ContactPerson: React.FC<Props> = ({ event }) => {
|
|
|
18
18
|
const { t, content } = useGlobal();
|
|
19
19
|
|
|
20
20
|
return (
|
|
21
|
-
<Grid container spacing={
|
|
21
|
+
<Grid container spacing={3}>
|
|
22
22
|
<Grid item xs={12} md={6}>
|
|
23
23
|
<RHFTextField name="firstName" label={t('form.labels.first_name')} />
|
|
24
24
|
</Grid>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Grid } from '@mui/material';
|
|
3
|
+
import ProductCard from '@form/product/ProductCard';
|
|
4
|
+
import { IEventProduct } from '@utils/types/event-product.type';
|
|
5
|
+
import CustomSkeleton from '@components/CustomSkeleton';
|
|
6
|
+
|
|
7
|
+
interface Props {
|
|
8
|
+
eventProducts: IEventProduct[];
|
|
9
|
+
eventId: number;
|
|
10
|
+
isLoading?: boolean;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const MerchandiseSelection: React.FC<Props> = ({ eventProducts, eventId, isLoading }) => (
|
|
14
|
+
<Grid container spacing={3}>
|
|
15
|
+
{isLoading
|
|
16
|
+
? [...Array(3)].map((item) => (
|
|
17
|
+
<Grid key={item} item xs={12} md={4}>
|
|
18
|
+
<CustomSkeleton height={334} />
|
|
19
|
+
</Grid>
|
|
20
|
+
))
|
|
21
|
+
: eventProducts.map((eventProduct) => (
|
|
22
|
+
<Grid key={eventProduct.id} item xs={12} md={4}>
|
|
23
|
+
<ProductCard eventProduct={eventProduct} eventId={eventId} isOnlyMerchandise />
|
|
24
|
+
</Grid>
|
|
25
|
+
))}
|
|
26
|
+
</Grid>
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
export default MerchandiseSelection;
|
package/src/form/Payment.tsx
CHANGED
|
@@ -286,7 +286,7 @@ const Payment: React.FC<Props> = ({ event }) => {
|
|
|
286
286
|
src={payment.image.url}
|
|
287
287
|
sx={{
|
|
288
288
|
height: '20px',
|
|
289
|
-
'&
|
|
289
|
+
'& img': {
|
|
290
290
|
objectFit: 'contain',
|
|
291
291
|
},
|
|
292
292
|
}}
|
|
@@ -320,7 +320,7 @@ const Payment: React.FC<Props> = ({ event }) => {
|
|
|
320
320
|
maxWidth: '70px',
|
|
321
321
|
display: 'inline-block',
|
|
322
322
|
marginRight: 1,
|
|
323
|
-
'&
|
|
323
|
+
'& img': {
|
|
324
324
|
objectFit: 'contain',
|
|
325
325
|
objectPosition: 'left',
|
|
326
326
|
},
|
|
@@ -26,7 +26,6 @@ import { ICalculateShoppingCartDto, IShoppingCartDto } from '@utils/types/shoppi
|
|
|
26
26
|
import { PromoCodeTypes } from '@utils/data/promo-code.ts';
|
|
27
27
|
import useActiveEventProducts from '@hooks/data/useActiveEventProducts';
|
|
28
28
|
import useDebounce from '@hooks/useDebounce';
|
|
29
|
-
import { EVENTLOOK_ORDER_FORM_ID } from '@utils/data/global.ts';
|
|
30
29
|
|
|
31
30
|
interface Props {
|
|
32
31
|
event: IEvent;
|
|
@@ -55,9 +54,9 @@ const PaymentOverviewBox: React.FC<Props> = ({ event }) => {
|
|
|
55
54
|
totalFee,
|
|
56
55
|
isPaymentVerify,
|
|
57
56
|
ticketInsurance,
|
|
57
|
+
ticketInsurancePricePerUnit,
|
|
58
58
|
smsNotification,
|
|
59
59
|
smsNotificationPrice,
|
|
60
|
-
ticketInsurancePricePerUnit,
|
|
61
60
|
} = values;
|
|
62
61
|
const tickets: Record<string, ITicketFormTicket[]> = useWatch({
|
|
63
62
|
name: 'tickets',
|
|
@@ -447,8 +446,7 @@ const PaymentOverviewBox: React.FC<Props> = ({ event }) => {
|
|
|
447
446
|
/>
|
|
448
447
|
}
|
|
449
448
|
sx={{
|
|
450
|
-
backgroundColor: (theme) =>
|
|
451
|
-
theme.palette.mode === 'light' ? theme.palette.grey[100] : theme.palette.grey[900],
|
|
449
|
+
backgroundColor: (theme) => theme.palette.grey.A100,
|
|
452
450
|
borderRadius: 1,
|
|
453
451
|
}}
|
|
454
452
|
>
|
|
@@ -477,34 +475,6 @@ const PaymentOverviewBox: React.FC<Props> = ({ event }) => {
|
|
|
477
475
|
)}
|
|
478
476
|
<Stack className="overview-card__order-info" p={2} spacing={1}>
|
|
479
477
|
{!!selectedTickets.length && !isMobile && <Divider sx={{ borderStyle: 'dashed' }} />}
|
|
480
|
-
|
|
481
|
-
{!!selectedTickets.length && (
|
|
482
|
-
<>
|
|
483
|
-
{/* TODO: Uncomment this when Colonnade response - must update terms and conditions and email info */}
|
|
484
|
-
<PaymentOverviewCheckbox
|
|
485
|
-
checkboxName="ticketInsurance"
|
|
486
|
-
label={t('event.tickets.insurance.label')}
|
|
487
|
-
value={
|
|
488
|
-
<>
|
|
489
|
-
{ticketInsurance && totalItemCount.totalTickets > 0 ? '' : '+ '}
|
|
490
|
-
{fCurrency(ticketInsurancePricePerUnit, lang, event.currency)} /{' '}
|
|
491
|
-
{t('event.tickets.insurance.per_ticket')}
|
|
492
|
-
</>
|
|
493
|
-
}
|
|
494
|
-
/>
|
|
495
|
-
<PaymentOverviewCheckbox
|
|
496
|
-
checkboxName="smsNotification"
|
|
497
|
-
label={t('event.tickets.sms_notification.label')}
|
|
498
|
-
value={
|
|
499
|
-
<>
|
|
500
|
-
{smsNotification && totalItemCount.totalTickets > 0 ? '' : '+ '}
|
|
501
|
-
{fCurrency(smsNotificationPrice, lang, event.currency)}
|
|
502
|
-
</>
|
|
503
|
-
}
|
|
504
|
-
/>
|
|
505
|
-
<Divider sx={{ borderStyle: 'dashed' }} />
|
|
506
|
-
</>
|
|
507
|
-
)}
|
|
508
478
|
{selectedTickets.map((ticket, index) => (
|
|
509
479
|
<Box key={index}>
|
|
510
480
|
<Stack direction="row" justifyContent="space-between" alignItems="center" spacing={2}>
|
|
@@ -588,6 +558,22 @@ const PaymentOverviewBox: React.FC<Props> = ({ event }) => {
|
|
|
588
558
|
</Typography>
|
|
589
559
|
</Stack>
|
|
590
560
|
)}
|
|
561
|
+
{ticketInsurance && totalItemCount.totalTickets > 0 && (
|
|
562
|
+
<Stack direction="row" justifyContent="space-between" alignItems="center" spacing={2}>
|
|
563
|
+
<Typography variant="caption">{t('form.labels.ticket_insurance')}</Typography>
|
|
564
|
+
<Typography variant="caption">
|
|
565
|
+
{fCurrency(values.ticketInsurancePrice, lang, event.currency)}
|
|
566
|
+
</Typography>
|
|
567
|
+
</Stack>
|
|
568
|
+
)}
|
|
569
|
+
{smsNotification && totalItemCount.totalTickets > 0 && (
|
|
570
|
+
<Stack direction="row" justifyContent="space-between" alignItems="center" spacing={2}>
|
|
571
|
+
<Typography variant="caption">{t('form.labels.sms_notification')}</Typography>
|
|
572
|
+
<Typography variant="caption">
|
|
573
|
+
{fCurrency(values.smsNotificationPrice, lang, event.currency)}
|
|
574
|
+
</Typography>
|
|
575
|
+
</Stack>
|
|
576
|
+
)}
|
|
591
577
|
{!!total && !!totalFee && (
|
|
592
578
|
<Stack direction="row" justifyContent="space-between" alignItems="center" spacing={2}>
|
|
593
579
|
<Typography variant="caption">{t('form.labels.service_fee')}</Typography>
|
|
@@ -597,15 +583,61 @@ const PaymentOverviewBox: React.FC<Props> = ({ event }) => {
|
|
|
597
583
|
{((!!selectedTickets.length && isMobile) || !isMobile) && (
|
|
598
584
|
<Divider sx={{ borderStyle: 'dashed' }} />
|
|
599
585
|
)}
|
|
586
|
+
{!!selectedTickets.length && (
|
|
587
|
+
<>
|
|
588
|
+
{/* TODO: Uncomment this when Colonnade response - must update terms and conditions and email info */}
|
|
589
|
+
{/*<PaymentOverviewCheckbox*/}
|
|
590
|
+
{/* checkboxName="ticketInsurance"*/}
|
|
591
|
+
{/* label={t('event.tickets.insurance.label')}*/}
|
|
592
|
+
{/* value={*/}
|
|
593
|
+
{/* <>*/}
|
|
594
|
+
{/* + {fCurrency(ticketInsurancePricePerUnit, lang, event.currency)} /{' '}*/}
|
|
595
|
+
{/* {t('event.tickets.insurance.per_ticket')}*/}
|
|
596
|
+
{/* </>*/}
|
|
597
|
+
{/* }*/}
|
|
598
|
+
{/* modal={{*/}
|
|
599
|
+
{/* title: t('event.tickets.insurance.label'),*/}
|
|
600
|
+
{/* description: (*/}
|
|
601
|
+
{/* <>*/}
|
|
602
|
+
{/* <Typography variant="body2" paragraph>*/}
|
|
603
|
+
{/* {t('event.tickets.insurance.modal.description')}*/}
|
|
604
|
+
{/* </Typography>*/}
|
|
605
|
+
{/* <Typography variant="body2" paragraph>*/}
|
|
606
|
+
{/* {t('event.tickets.insurance.modal.coverage')}*/}
|
|
607
|
+
{/* </Typography>*/}
|
|
608
|
+
{/* <Typography variant="body2" sx={{ fontWeight: 600 }}>*/}
|
|
609
|
+
{/* {t('event.tickets.insurance.modal.price')}:{' '}*/}
|
|
610
|
+
{/* {fCurrency(ticketInsurancePricePerUnit, lang, event.currency)} /{' '}*/}
|
|
611
|
+
{/* {t('event.tickets.insurance.per_ticket')}*/}
|
|
612
|
+
{/* </Typography>*/}
|
|
613
|
+
{/* </>*/}
|
|
614
|
+
{/* ),*/}
|
|
615
|
+
{/* }}*/}
|
|
616
|
+
{/*/>*/}
|
|
617
|
+
<PaymentOverviewCheckbox
|
|
618
|
+
checkboxName="smsNotification"
|
|
619
|
+
label={t('event.tickets.sms_notification.label')}
|
|
620
|
+
value={<>+ {fCurrency(smsNotificationPrice, lang, event.currency)}</>}
|
|
621
|
+
modal={{
|
|
622
|
+
title: t('event.tickets.sms_notification.label'),
|
|
623
|
+
description: (
|
|
624
|
+
<>
|
|
625
|
+
<Typography variant="body2" paragraph>
|
|
626
|
+
{t('event.tickets.sms_notification.modal.description')}
|
|
627
|
+
</Typography>
|
|
628
|
+
<Typography variant="body2" sx={{ fontWeight: 600 }}>
|
|
629
|
+
{t('event.tickets.sms_notification.modal.price')}:{' '}
|
|
630
|
+
{fCurrency(smsNotificationPrice, lang, event.currency)}
|
|
631
|
+
</Typography>
|
|
632
|
+
</>
|
|
633
|
+
),
|
|
634
|
+
}}
|
|
635
|
+
/>
|
|
636
|
+
<Divider sx={{ borderStyle: 'dashed' }} />
|
|
637
|
+
</>
|
|
638
|
+
)}
|
|
600
639
|
<FeeBox event={event} />
|
|
601
|
-
<LoadingButton
|
|
602
|
-
type="submit"
|
|
603
|
-
form={EVENTLOOK_ORDER_FORM_ID}
|
|
604
|
-
variant="contained"
|
|
605
|
-
size="large"
|
|
606
|
-
fullWidth
|
|
607
|
-
sx={{ height: { xs: 36, md: 40 } }}
|
|
608
|
-
>
|
|
640
|
+
<LoadingButton type="submit" variant="contained" size="large" fullWidth>
|
|
609
641
|
{t(isPaymentVerify ? 'verify' : 'buy')}
|
|
610
642
|
</LoadingButton>
|
|
611
643
|
</Stack>
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import React, { useCallback, useState } from 'react';
|
|
2
|
+
import { Box, Button, IconButton, Stack, Typography } from '@mui/material';
|
|
3
|
+
import { Iconify } from '@components/iconify';
|
|
4
|
+
import ProductVariantsDialog from '@form/product/ProductVariantsDialog';
|
|
5
|
+
import { IReleaseShort } from '@utils/types/release.type';
|
|
6
|
+
import { ITicketForm, ITicketFormTicket } from '@utils/types/ticket.type';
|
|
7
|
+
import { useFormContext, useWatch } from 'react-hook-form';
|
|
8
|
+
import { IEventProductForm } from '@utils/types/product.type';
|
|
9
|
+
import { fCurrency } from '@utils/formatNumber';
|
|
10
|
+
import { Currencies } from '@utils/data/currency';
|
|
11
|
+
import { getSelectedQuantityByVariant } from '@utils/product';
|
|
12
|
+
import ReleaseExtraFields from '@form/extra-field/ReleaseExtraFields';
|
|
13
|
+
import useGlobal from '@hooks/useGlobal.ts';
|
|
14
|
+
|
|
15
|
+
interface Props {
|
|
16
|
+
eventId: number;
|
|
17
|
+
release: IReleaseShort;
|
|
18
|
+
activeReleases: IReleaseShort[];
|
|
19
|
+
currency: Currencies;
|
|
20
|
+
index: number;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const ReleaseWithMerchandise: React.FC<Props> = ({
|
|
24
|
+
eventId,
|
|
25
|
+
release,
|
|
26
|
+
activeReleases,
|
|
27
|
+
currency,
|
|
28
|
+
index,
|
|
29
|
+
}) => {
|
|
30
|
+
const { t, lang } = useGlobal();
|
|
31
|
+
const [openVariantDialog, setOpenVariantDialog] = useState<'add' | 'increase' | null>(null);
|
|
32
|
+
const { setValue } = useFormContext<ITicketForm>();
|
|
33
|
+
const tickets: ITicketFormTicket[] = useWatch({ name: `tickets.${eventId}`, defaultValue: [] });
|
|
34
|
+
const products: IEventProductForm[] = useWatch({ name: `products.${eventId}`, defaultValue: [] });
|
|
35
|
+
const addedRelease = tickets.find((ticket) => ticket.releaseId === release.id);
|
|
36
|
+
const countTickets = addedRelease?.quantity || 0;
|
|
37
|
+
|
|
38
|
+
const isReleaseSelected = (id: number) => !!tickets.find((ticket) => ticket.releaseId === id);
|
|
39
|
+
|
|
40
|
+
const getSelectedQuantity = (id: number) =>
|
|
41
|
+
tickets.find((ticket) => ticket.releaseId === id)?.quantity || 0;
|
|
42
|
+
|
|
43
|
+
const getAvailableTicketsForRelease = (release: ITicketFormTicket): number => {
|
|
44
|
+
const selectedRelease = activeReleases?.find((item) => item.id === release.releaseId);
|
|
45
|
+
const availableQuantity = selectedRelease ? selectedRelease.availableTickets : 0;
|
|
46
|
+
return availableQuantity > 10 ? 10 : availableQuantity;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const isMaxQuantity = (releaseId: number) => {
|
|
50
|
+
const release = tickets.find((ticket) => ticket.releaseId === releaseId);
|
|
51
|
+
if (!release) return false;
|
|
52
|
+
return getSelectedQuantity(releaseId) >= getAvailableTicketsForRelease(release);
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
const addRelease = (product?: IEventProductForm) => {
|
|
56
|
+
setValue(`tickets.${eventId}`, [
|
|
57
|
+
...tickets,
|
|
58
|
+
{
|
|
59
|
+
releaseId: release.id,
|
|
60
|
+
quantity: 1,
|
|
61
|
+
itemName: '',
|
|
62
|
+
price: 0,
|
|
63
|
+
products: product ? [product] : [],
|
|
64
|
+
extraFields: release.extraFields?.length
|
|
65
|
+
? [
|
|
66
|
+
release.extraFields.map((field) => ({
|
|
67
|
+
eventExtraFieldId: field.id,
|
|
68
|
+
value: '',
|
|
69
|
+
})),
|
|
70
|
+
]
|
|
71
|
+
: [],
|
|
72
|
+
},
|
|
73
|
+
]);
|
|
74
|
+
setOpenVariantDialog(null);
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
const increaseQuantity = (product?: IEventProductForm) => {
|
|
78
|
+
const addedRelease = tickets.find((ticket) => ticket.releaseId === release.id);
|
|
79
|
+
if (addedRelease) {
|
|
80
|
+
const newQuantity = Number(addedRelease.quantity) + 1;
|
|
81
|
+
const maxQuantity = getAvailableTicketsForRelease(addedRelease);
|
|
82
|
+
setValue(
|
|
83
|
+
`tickets.${eventId}`,
|
|
84
|
+
tickets.map((ticket) =>
|
|
85
|
+
ticket.releaseId === release.id
|
|
86
|
+
? {
|
|
87
|
+
...ticket,
|
|
88
|
+
quantity: newQuantity > maxQuantity ? maxQuantity : newQuantity,
|
|
89
|
+
products: product ? [...ticket.products, product] : ticket.products,
|
|
90
|
+
extraFields: release.extraFields?.length
|
|
91
|
+
? [
|
|
92
|
+
...ticket.extraFields,
|
|
93
|
+
release.extraFields.map((field) => ({
|
|
94
|
+
eventExtraFieldId: field.id,
|
|
95
|
+
value: '',
|
|
96
|
+
})),
|
|
97
|
+
]
|
|
98
|
+
: [],
|
|
99
|
+
}
|
|
100
|
+
: ticket
|
|
101
|
+
)
|
|
102
|
+
);
|
|
103
|
+
setOpenVariantDialog(null);
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
const decreaseQuantity = useCallback(() => {
|
|
108
|
+
const addedRelease = tickets.find((ticket) => ticket.releaseId === release.id);
|
|
109
|
+
if (addedRelease) {
|
|
110
|
+
const newQuantity = Number(addedRelease.quantity) - 1;
|
|
111
|
+
if (newQuantity < 1) {
|
|
112
|
+
setValue(
|
|
113
|
+
`tickets.${eventId}`,
|
|
114
|
+
tickets.filter((ticket) => ticket.releaseId !== release.id)
|
|
115
|
+
);
|
|
116
|
+
} else {
|
|
117
|
+
setValue(
|
|
118
|
+
`tickets.${eventId}`,
|
|
119
|
+
tickets.map((ticket) => {
|
|
120
|
+
if (ticket.releaseId !== release.id) return ticket;
|
|
121
|
+
|
|
122
|
+
return {
|
|
123
|
+
...ticket,
|
|
124
|
+
quantity: newQuantity,
|
|
125
|
+
products: ticket?.products?.slice(0, -1), // non-mutating "pop"
|
|
126
|
+
extraFields: ticket?.extraFields?.slice(0, -1),
|
|
127
|
+
};
|
|
128
|
+
})
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}, [tickets, release.id, setValue]);
|
|
133
|
+
|
|
134
|
+
return (
|
|
135
|
+
<Box>
|
|
136
|
+
<Stack direction="row" spacing={1}>
|
|
137
|
+
<Stack
|
|
138
|
+
direction="row"
|
|
139
|
+
spacing={1}
|
|
140
|
+
justifyContent="space-between"
|
|
141
|
+
alignItems="center"
|
|
142
|
+
sx={{ width: '100%', backgroundColor: 'grey.200', p: 1, pl: 1.5, borderRadius: 1 }}
|
|
143
|
+
>
|
|
144
|
+
<Stack direction="row" spacing={2} alignItems="center">
|
|
145
|
+
<Stack direction="row" spacing={0.5} alignItems="center">
|
|
146
|
+
<Iconify
|
|
147
|
+
icon="ion:ticket-outline"
|
|
148
|
+
color="primary.main"
|
|
149
|
+
sx={{ width: 24, height: 24 }}
|
|
150
|
+
/>
|
|
151
|
+
{release.product && (
|
|
152
|
+
<>
|
|
153
|
+
<Typography fontSize={20} lineHeight={1}>
|
|
154
|
+
+
|
|
155
|
+
</Typography>
|
|
156
|
+
<Iconify
|
|
157
|
+
icon="lucide-lab:shirt-t"
|
|
158
|
+
color="primary.main"
|
|
159
|
+
sx={{ width: 24, height: 24 }}
|
|
160
|
+
/>
|
|
161
|
+
</>
|
|
162
|
+
)}
|
|
163
|
+
</Stack>
|
|
164
|
+
<Typography color="grey.500">
|
|
165
|
+
{release.releaseCategoryName} - {release.name} -{' '}
|
|
166
|
+
{fCurrency(release.price, lang, currency)}
|
|
167
|
+
</Typography>
|
|
168
|
+
</Stack>
|
|
169
|
+
{isReleaseSelected(release.id) ? (
|
|
170
|
+
<Stack direction="row" spacing={1} py={0.5}>
|
|
171
|
+
<IconButton onClick={() => decreaseQuantity()} size="small" color="primary">
|
|
172
|
+
<Iconify icon="eva:minus-fill" />
|
|
173
|
+
</IconButton>
|
|
174
|
+
<Typography color="grey.500">{getSelectedQuantity(release.id)}</Typography>
|
|
175
|
+
<IconButton
|
|
176
|
+
onClick={() =>
|
|
177
|
+
release.product ? setOpenVariantDialog('increase') : increaseQuantity()
|
|
178
|
+
}
|
|
179
|
+
size="small"
|
|
180
|
+
color="primary"
|
|
181
|
+
disabled={isMaxQuantity(release.id)}
|
|
182
|
+
>
|
|
183
|
+
<Iconify icon="eva:plus-fill" />
|
|
184
|
+
</IconButton>
|
|
185
|
+
</Stack>
|
|
186
|
+
) : (
|
|
187
|
+
<Button
|
|
188
|
+
onClick={() =>
|
|
189
|
+
!release.locked && (release.product ? setOpenVariantDialog('add') : addRelease())
|
|
190
|
+
}
|
|
191
|
+
variant="contained"
|
|
192
|
+
disabled={release.locked}
|
|
193
|
+
>
|
|
194
|
+
{t('add')}
|
|
195
|
+
</Button>
|
|
196
|
+
)}
|
|
197
|
+
</Stack>
|
|
198
|
+
</Stack>
|
|
199
|
+
<Typography
|
|
200
|
+
variant="caption"
|
|
201
|
+
content="div"
|
|
202
|
+
mt={2}
|
|
203
|
+
mb={release.extraFields?.length ? 2 : 0}
|
|
204
|
+
display="block"
|
|
205
|
+
>
|
|
206
|
+
{release.description}
|
|
207
|
+
</Typography>
|
|
208
|
+
{release.extraFields && release.extraFields.length > 0 && (
|
|
209
|
+
<ReleaseExtraFields
|
|
210
|
+
release={release}
|
|
211
|
+
eventId={eventId}
|
|
212
|
+
releaseIndex={index}
|
|
213
|
+
quantity={countTickets}
|
|
214
|
+
/>
|
|
215
|
+
)}
|
|
216
|
+
{release.product && (
|
|
217
|
+
<ProductVariantsDialog
|
|
218
|
+
eventProduct={release.product}
|
|
219
|
+
openDialog={!!openVariantDialog}
|
|
220
|
+
callback={openVariantDialog === 'increase' ? increaseQuantity : addRelease}
|
|
221
|
+
onClose={() => setOpenVariantDialog(null)}
|
|
222
|
+
selectedQuantityByVariant={getSelectedQuantityByVariant(products, tickets)}
|
|
223
|
+
eventId={eventId}
|
|
224
|
+
/>
|
|
225
|
+
)}
|
|
226
|
+
</Box>
|
|
227
|
+
);
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
export default ReleaseWithMerchandise;
|
package/src/form/TicketForm.tsx
CHANGED
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
Typography,
|
|
15
15
|
} from '@mui/material';
|
|
16
16
|
import dayjs from 'dayjs';
|
|
17
|
-
import TicketSelection from '@form/
|
|
17
|
+
import TicketSelection from '@form/TicketSelection';
|
|
18
18
|
import ContactPerson from '@form/ContactPerson';
|
|
19
19
|
import Payment from '@form/Payment';
|
|
20
20
|
import EmailConfirmation from '@form/EmailConfirmation';
|
|
@@ -44,8 +44,8 @@ import {
|
|
|
44
44
|
import ReleaseCountdown from '@form/ReleaseCountdown';
|
|
45
45
|
import { cloneObject } from '@utils/global';
|
|
46
46
|
import PaymentPending from '@form/PaymentPending';
|
|
47
|
-
import MerchandiseSelection from '@form/
|
|
48
|
-
import TicketWithMerchandiseSelection from '@form/
|
|
47
|
+
import MerchandiseSelection from '@form/MerchandiseSelection';
|
|
48
|
+
import TicketWithMerchandiseSelection from '@form/TicketWithMerchandiseSelection';
|
|
49
49
|
import useActiveEventProducts from '@hooks/data/useActiveEventProducts';
|
|
50
50
|
import Shipping from '@form/Shipping';
|
|
51
51
|
import useErrors from '@hooks/useErrors';
|
|
@@ -53,12 +53,9 @@ import { EventType } from '@utils/data/event';
|
|
|
53
53
|
import TimeslotSelection from '@form/TimeslotSelection';
|
|
54
54
|
import useGlobal from '@hooks/useGlobal';
|
|
55
55
|
import { Trans } from '@components/Trans';
|
|
56
|
-
import { EVENTLOOK_ORDER_FORM_ID
|
|
56
|
+
import { EVENTLOOK_ORDER_FORM_ID } from '@utils/data/global.ts';
|
|
57
57
|
import ChildEventSection from './ChildEvents';
|
|
58
|
-
import TicketSelectionMap from '@form/
|
|
59
|
-
import PaymentOverviewDrawer from './PaymentOverviewDrawer';
|
|
60
|
-
import { getPlaceAsString } from '@utils/place';
|
|
61
|
-
import Services from '@form/services';
|
|
58
|
+
import TicketSelectionMap from '@form/TicketSelectionMap.tsx';
|
|
62
59
|
|
|
63
60
|
interface Props {
|
|
64
61
|
event: IEvent;
|
|
@@ -66,7 +63,6 @@ interface Props {
|
|
|
66
63
|
selectedReleaseId?: number;
|
|
67
64
|
isIframe?: boolean;
|
|
68
65
|
isInline?: boolean;
|
|
69
|
-
headerSlot?: React.ReactNode;
|
|
70
66
|
}
|
|
71
67
|
|
|
72
68
|
const TicketForm: React.FC<Props> = ({
|
|
@@ -75,7 +71,6 @@ const TicketForm: React.FC<Props> = ({
|
|
|
75
71
|
selectedReleaseId,
|
|
76
72
|
isIframe,
|
|
77
73
|
isInline,
|
|
78
|
-
headerSlot,
|
|
79
74
|
}) => {
|
|
80
75
|
const { t, setGlobal, callbacks, links, user, options, showSnackbar, content, seatingIframeUrl } =
|
|
81
76
|
useGlobal();
|
|
@@ -449,7 +444,7 @@ const TicketForm: React.FC<Props> = ({
|
|
|
449
444
|
}, [window.location.search]);
|
|
450
445
|
|
|
451
446
|
useEffect(() => {
|
|
452
|
-
const subscription = methods.watch((value) => {
|
|
447
|
+
const subscription = methods.watch((value, { name }) => {
|
|
453
448
|
if (
|
|
454
449
|
JSON.stringify(defaultValues) !== JSON.stringify(value) &&
|
|
455
450
|
!hasFiredBeginCheckout.current
|
|
@@ -476,7 +471,7 @@ const TicketForm: React.FC<Props> = ({
|
|
|
476
471
|
useEffect(() => {
|
|
477
472
|
if (hasGopayId || isPaying || paymentRedirect) {
|
|
478
473
|
if (options?.autoscrollAfterViewChange) {
|
|
479
|
-
const orderForm = document.getElementById(
|
|
474
|
+
const orderForm = document.getElementById(EVENTLOOK_ORDER_FORM_ID);
|
|
480
475
|
if (orderForm) {
|
|
481
476
|
orderForm.scrollIntoView({ behavior: 'smooth' });
|
|
482
477
|
}
|
|
@@ -488,7 +483,7 @@ const TicketForm: React.FC<Props> = ({
|
|
|
488
483
|
return <ReleaseCountdown event={event} setShowReleaseDate={setShowReleaseDate} />;
|
|
489
484
|
|
|
490
485
|
return (
|
|
491
|
-
<Box id={
|
|
486
|
+
<Box id={EVENTLOOK_ORDER_FORM_ID}>
|
|
492
487
|
{hasGopayId ? (
|
|
493
488
|
<PaymentSuccess setIsPaying={setIsPaying} isIframe={isIframe} pixels={pixels} />
|
|
494
489
|
) : isPaying ? (
|
|
@@ -501,45 +496,21 @@ const TicketForm: React.FC<Props> = ({
|
|
|
501
496
|
isInline={isInline}
|
|
502
497
|
/>
|
|
503
498
|
) : (
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
onSubmit={methods.handleSubmit(onSubmit)}
|
|
508
|
-
formId={EVENTLOOK_ORDER_FORM_ID}
|
|
509
|
-
>
|
|
510
|
-
<Stack
|
|
499
|
+
// @ts-ignore
|
|
500
|
+
<FormProvider methods={methods} onSubmit={methods.handleSubmit(onSubmit)}>
|
|
501
|
+
<Typography
|
|
511
502
|
className="overview-card__event-info"
|
|
512
503
|
display={{ md: 'none' }}
|
|
504
|
+
variant="h4"
|
|
513
505
|
sx={{
|
|
514
506
|
mb: 2,
|
|
515
507
|
}}
|
|
516
508
|
>
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
</Typography>
|
|
520
|
-
<Typography variant="h5" component="h2">
|
|
521
|
-
{dayjs(event.startDate).format('DD.MM.YYYY HH:mm')}
|
|
522
|
-
</Typography>
|
|
523
|
-
<Typography variant="body2" mt={1}>
|
|
524
|
-
{getPlaceAsString(event.place)}
|
|
525
|
-
</Typography>
|
|
526
|
-
{headerSlot ? <>{headerSlot}</> : null}
|
|
527
|
-
</Stack>
|
|
509
|
+
{event.name} - {dayjs(event.startDate).format('DD.MM.YYYY HH:mm')}
|
|
510
|
+
</Typography>
|
|
528
511
|
<Grid container spacing={2}>
|
|
529
512
|
<Grid item xs={12} md={8}>
|
|
530
|
-
<Stepper
|
|
531
|
-
orientation="vertical"
|
|
532
|
-
sx={(theme) => ({
|
|
533
|
-
[theme.breakpoints.down('sm')]: {
|
|
534
|
-
'& .MuiStepContent-root': {
|
|
535
|
-
borderLeftWidth: 0,
|
|
536
|
-
paddingLeft: 0,
|
|
537
|
-
marginLeft: 0,
|
|
538
|
-
},
|
|
539
|
-
'& .MuiStepConnector-line': { borderLeftWidth: 0 },
|
|
540
|
-
},
|
|
541
|
-
})}
|
|
542
|
-
>
|
|
513
|
+
<Stepper orientation="vertical">
|
|
543
514
|
{event.type === EventType.RECURRING && (
|
|
544
515
|
<Step active>
|
|
545
516
|
<StepLabel>{t('event.tickets.stepper.6.title')}</StepLabel>
|
|
@@ -572,12 +543,6 @@ const TicketForm: React.FC<Props> = ({
|
|
|
572
543
|
</StepContent>
|
|
573
544
|
</Step>
|
|
574
545
|
)}
|
|
575
|
-
<Step active>
|
|
576
|
-
<StepLabel>{t('event.tickets.stepper.8.title')}</StepLabel>
|
|
577
|
-
<StepContent>
|
|
578
|
-
<Services event={event} />
|
|
579
|
-
</StepContent>
|
|
580
|
-
</Step>
|
|
581
546
|
{event.children.length && (
|
|
582
547
|
<Step active>
|
|
583
548
|
<StepLabel>{t('event.tickets.stepper.7.title')}</StepLabel>
|
|
@@ -611,7 +576,7 @@ const TicketForm: React.FC<Props> = ({
|
|
|
611
576
|
</StepContent>
|
|
612
577
|
</Step>
|
|
613
578
|
</Stepper>
|
|
614
|
-
<Stack mt={2} ml={
|
|
579
|
+
<Stack mt={2} ml={4}>
|
|
615
580
|
<RHFCheckbox
|
|
616
581
|
name="termsAndConditions"
|
|
617
582
|
label={
|
|
@@ -631,13 +596,10 @@ const TicketForm: React.FC<Props> = ({
|
|
|
631
596
|
/>
|
|
632
597
|
</Stack>
|
|
633
598
|
</Grid>
|
|
634
|
-
<Grid item xs={12} md={4}
|
|
599
|
+
<Grid item xs={12} md={4}>
|
|
635
600
|
<PaymentOverviewBox event={event} />
|
|
636
601
|
</Grid>
|
|
637
602
|
</Grid>
|
|
638
|
-
|
|
639
|
-
<PaymentOverviewDrawer event={event} totalPrice={values.total} />
|
|
640
|
-
|
|
641
603
|
<EmailConfirmation
|
|
642
604
|
open={formStep === 2 && !isIframe}
|
|
643
605
|
onClose={() => setFormStep(1)}
|
|
@@ -651,7 +613,7 @@ const TicketForm: React.FC<Props> = ({
|
|
|
651
613
|
};
|
|
652
614
|
|
|
653
615
|
const CustomLink: React.FC<PropsWithChildren<LinkProps>> = ({ href = '', children, ...other }) => (
|
|
654
|
-
<Link href={href} {...other}
|
|
616
|
+
<Link href={href} {...other}>
|
|
655
617
|
{children}
|
|
656
618
|
</Link>
|
|
657
619
|
);
|