@eventlook/sdk 1.7.6 → 1.7.8
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/.gitlab-ci.yml +51 -0
- package/README.md +7 -0
- package/dist/cjs/index.js +25692 -16
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +25674 -12
- package/dist/esm/index.js.map +1 -1
- package/dist/types/components/RichText.d.ts +7 -0
- package/dist/types/context/SeatPickerContext.d.ts +13 -0
- package/dist/types/embed.d.ts +49 -0
- package/dist/types/locales/cs.d.ts +1 -0
- package/dist/types/locales/en.d.ts +1 -0
- package/dist/types/locales/es.d.ts +1 -0
- package/dist/types/locales/pl.d.ts +1 -0
- package/dist/types/locales/sk.d.ts +1 -0
- package/dist/types/locales/uk.d.ts +1 -0
- package/dist/types/utils/render-rich-text.d.ts +2 -0
- package/dist/types/utils/types/event.type.d.ts +1 -0
- package/package.json +4 -2
- package/rollup.embed.config.mjs +74 -0
- package/src/components/RichText.tsx +33 -0
- package/src/context/SeatPickerContext.tsx +35 -0
- package/src/embed.tsx +243 -0
- package/src/form/Payment.tsx +6 -1
- package/src/form/PaymentOverviewBox.tsx +35 -19
- package/src/form/PaymentPending.tsx +7 -24
- package/src/form/ReleaseWithMerchandise.tsx +8 -1
- package/src/form/TicketForm.tsx +204 -164
- package/src/form/services/index.tsx +1 -0
- package/src/form/tickets/TicketSelectionMap.tsx +240 -73
- package/src/index.ts +4 -0
- package/src/locales/cs.tsx +1 -0
- package/src/locales/en.tsx +1 -0
- package/src/locales/es.tsx +1 -0
- package/src/locales/pl.tsx +1 -0
- package/src/locales/sk.tsx +1 -0
- package/src/locales/uk.tsx +1 -0
- package/src/react-dom-client.d.ts +11 -0
- package/src/utils/axios.ts +3 -0
- package/src/utils/render-rich-text.ts +100 -0
- package/src/utils/types/event.type.ts +1 -0
- package/dist/cjs/index-Dh-sV_wk.js +0 -41946
- package/dist/cjs/index-Dh-sV_wk.js.map +0 -1
- package/dist/cjs/index.umd-CJ-ZDtw8.js +0 -13397
- package/dist/cjs/index.umd-CJ-ZDtw8.js.map +0 -1
- package/dist/esm/index-DPHu9Sfs.js +0 -41925
- package/dist/esm/index-DPHu9Sfs.js.map +0 -1
- package/dist/esm/index.umd-DPIwz_aJ.js +0 -13395
- package/dist/esm/index.umd-DPIwz_aJ.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
2
2
|
import { Iconify, Image, TextIconLabel } from '@components';
|
|
3
|
-
import { Box, Button, Divider, Grid, Stack, Typography } from '@mui/material';
|
|
3
|
+
import { Box, Button, Divider, Grid, IconButton, Stack, Typography } from '@mui/material';
|
|
4
4
|
import PaymentOverviewCheckbox from '@form/payment/PaymentOverviewCheckbox';
|
|
5
5
|
import locationIcon from '@iconify/icons-carbon/location';
|
|
6
6
|
import { getPlaceAsString } from '@utils/place';
|
|
@@ -27,6 +27,7 @@ import useActiveEventProducts from '@hooks/data/useActiveEventProducts';
|
|
|
27
27
|
import useDebounce from '@hooks/useDebounce';
|
|
28
28
|
import { EVENTLOOK_ORDER_FORM_ID } from '@utils/data/global';
|
|
29
29
|
import { isInsuranceAvailable } from '@utils/insurance';
|
|
30
|
+
import { useSeatPicker } from '@context/SeatPickerContext';
|
|
30
31
|
|
|
31
32
|
interface Props {
|
|
32
33
|
event: IEvent;
|
|
@@ -34,8 +35,9 @@ interface Props {
|
|
|
34
35
|
hideBuyButton?: boolean;
|
|
35
36
|
}
|
|
36
37
|
|
|
37
|
-
const PaymentOverviewBox: React.FC<Props> = ({ event,
|
|
38
|
+
const PaymentOverviewBox: React.FC<Props> = ({ event, hideBuyButton }) => {
|
|
38
39
|
const { t, lang, options } = useGlobal();
|
|
40
|
+
const { deselect } = useSeatPicker();
|
|
39
41
|
const xs = useResponsive('only', 'xs');
|
|
40
42
|
const md = useResponsive('only', 'md');
|
|
41
43
|
const isMobile = useResponsive('down', 'md');
|
|
@@ -95,6 +97,7 @@ const PaymentOverviewBox: React.FC<Props> = ({ event, withoutPadding, hideBuyBut
|
|
|
95
97
|
price: release?.price || 0,
|
|
96
98
|
quantity: ticket.quantity,
|
|
97
99
|
releaseId: ticket.releaseId,
|
|
100
|
+
location: ticket.location,
|
|
98
101
|
products: ticket.products.map((product) => {
|
|
99
102
|
const variant = release?.product?.eventProductVariants.find(
|
|
100
103
|
(variant) => variant.id === product.eventProductVariantId
|
|
@@ -423,7 +426,7 @@ const PaymentOverviewBox: React.FC<Props> = ({ event, withoutPadding, hideBuyBut
|
|
|
423
426
|
return (
|
|
424
427
|
<OverviewCard id="overview-card" stickyHeaderTop={options?.stickyHeaderTop || 0}>
|
|
425
428
|
{!isMobile && (
|
|
426
|
-
<Stack className="overview-card__event-info"
|
|
429
|
+
<Stack className="overview-card__event-info" spacing={2} sx={{ pt: 2, px: 2, pb: 1 }}>
|
|
427
430
|
<Typography variant="h6">{event.name}</Typography>
|
|
428
431
|
<Box>
|
|
429
432
|
<Grid container spacing={1}>
|
|
@@ -487,18 +490,19 @@ const PaymentOverviewBox: React.FC<Props> = ({ event, withoutPadding, hideBuyBut
|
|
|
487
490
|
)}
|
|
488
491
|
<Stack
|
|
489
492
|
className="overview-card__order-info"
|
|
490
|
-
// Keep horizontal padding on mobile even when `withoutPadding` — that
|
|
491
|
-
// flag is only meant to drop the vertical gap under the header, not let
|
|
492
|
-
// the rows run into the card edge.
|
|
493
493
|
sx={{
|
|
494
494
|
px: 2,
|
|
495
|
-
|
|
496
|
-
|
|
495
|
+
// Desktop gets its top spacing from the event-info block above; on
|
|
496
|
+
// mobile that block isn't rendered, so pad the card edge directly.
|
|
497
|
+
pt: { xs: 2, md: 0 },
|
|
498
|
+
pb: 2,
|
|
497
499
|
}}
|
|
498
500
|
spacing={1.25}
|
|
499
501
|
useFlexGap
|
|
500
502
|
>
|
|
501
|
-
{!!selectedTickets.length && !isMobile &&
|
|
503
|
+
{!!selectedTickets.length && !isMobile && (
|
|
504
|
+
<Divider sx={{ borderStyle: 'dashed', mt: 0, mb: 1 }} />
|
|
505
|
+
)}
|
|
502
506
|
|
|
503
507
|
{!!selectedTickets.length && (
|
|
504
508
|
<Stack spacing={1}>
|
|
@@ -537,17 +541,29 @@ const PaymentOverviewBox: React.FC<Props> = ({ event, withoutPadding, hideBuyBut
|
|
|
537
541
|
<Typography variant="body2">
|
|
538
542
|
{ticket.quantity}x {ticket.itemName}
|
|
539
543
|
</Typography>
|
|
540
|
-
<
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
544
|
+
<Stack direction="row" alignItems="center" spacing={0.5}>
|
|
545
|
+
<Typography variant="body2">
|
|
546
|
+
{fCurrency(
|
|
547
|
+
calculatePriceWithDiscount(
|
|
548
|
+
ticket.price,
|
|
549
|
+
promoCodesValues.percent,
|
|
550
|
+
promoCodesValues.fixedDevidedTickets
|
|
551
|
+
) * Number(ticket.quantity),
|
|
552
|
+
lang,
|
|
553
|
+
event.currency
|
|
554
|
+
)}
|
|
555
|
+
</Typography>
|
|
556
|
+
{ticket.location?.id && (
|
|
557
|
+
<IconButton
|
|
558
|
+
size="small"
|
|
559
|
+
aria-label={t('remove')}
|
|
560
|
+
onClick={() => deselect(ticket.location!.id)}
|
|
561
|
+
sx={{ p: 0.25, color: 'text.secondary' }}
|
|
562
|
+
>
|
|
563
|
+
<Iconify icon="eva:close-outline" width={16} height={16} />
|
|
564
|
+
</IconButton>
|
|
549
565
|
)}
|
|
550
|
-
</
|
|
566
|
+
</Stack>
|
|
551
567
|
</Stack>
|
|
552
568
|
{ticket.products.map((product, index2) => (
|
|
553
569
|
<Stack
|
|
@@ -1,41 +1,24 @@
|
|
|
1
|
-
import React
|
|
2
|
-
import { Box, Typography } from '@mui/material';
|
|
3
|
-
import bankTransferAnimation from '../utils/data/lottie/bank-transfer.json';
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Box, CircularProgress, Typography } from '@mui/material';
|
|
4
3
|
import { varBounce } from '@components/animate';
|
|
5
4
|
import { m } from 'motion/react';
|
|
6
5
|
import useGlobal from '@hooks/useGlobal';
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
// Payment-pending is a brief transitional screen (waiting on a bank transfer).
|
|
8
|
+
// A spinner conveys "waiting" and avoids bundling lottie-web (~300 KB) just for a
|
|
9
|
+
// looping animation here.
|
|
10
10
|
const PaymentPending: React.FC = () => {
|
|
11
11
|
const { t } = useGlobal();
|
|
12
|
-
const [LottieComponent, setLottieComponent] = useState<React.ComponentType<any> | null>(null);
|
|
13
|
-
|
|
14
|
-
useEffect(() => {
|
|
15
|
-
if (typeof window === 'undefined') return;
|
|
16
|
-
|
|
17
|
-
let isMounted = true;
|
|
18
|
-
|
|
19
|
-
import('lottie-react').then((module) => {
|
|
20
|
-
if (isMounted) {
|
|
21
|
-
setLottieComponent(() => module.default);
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
return () => {
|
|
26
|
-
isMounted = false;
|
|
27
|
-
};
|
|
28
|
-
}, []);
|
|
29
12
|
|
|
30
13
|
return (
|
|
31
14
|
<Box textAlign="center">
|
|
32
15
|
<m.div variants={varBounce().in}>
|
|
33
|
-
<Typography variant="h4" sx={{ mb:
|
|
16
|
+
<Typography variant="h4" sx={{ mb: 3, maxWidth: 600, mx: 'auto' }}>
|
|
34
17
|
{t('event.tickets.payment_pending')}
|
|
35
18
|
</Typography>
|
|
36
19
|
</m.div>
|
|
37
20
|
<Box maxWidth={600} mx="auto">
|
|
38
|
-
|
|
21
|
+
<CircularProgress size={64} thickness={4} />
|
|
39
22
|
</Box>
|
|
40
23
|
</Box>
|
|
41
24
|
);
|
|
@@ -139,7 +139,14 @@ const ReleaseWithMerchandise: React.FC<Props> = ({
|
|
|
139
139
|
spacing={1}
|
|
140
140
|
justifyContent="space-between"
|
|
141
141
|
alignItems="center"
|
|
142
|
-
sx={{
|
|
142
|
+
sx={{
|
|
143
|
+
width: '100%',
|
|
144
|
+
backgroundColor: (theme) =>
|
|
145
|
+
theme.palette.mode === 'light' ? theme.palette.grey[200] : theme.palette.grey[800],
|
|
146
|
+
p: 1,
|
|
147
|
+
pl: 1.5,
|
|
148
|
+
borderRadius: 1,
|
|
149
|
+
}}
|
|
143
150
|
>
|
|
144
151
|
<Stack direction="row" spacing={2} alignItems="center">
|
|
145
152
|
<Stack direction="row" spacing={0.5} alignItems="center">
|
package/src/form/TicketForm.tsx
CHANGED
|
@@ -19,6 +19,7 @@ import TicketSelection from '@form/tickets/TicketSelection';
|
|
|
19
19
|
import ContactPerson from '@form/ContactPerson';
|
|
20
20
|
import Payment from '@form/Payment';
|
|
21
21
|
import EmailConfirmation from '@form/EmailConfirmation';
|
|
22
|
+
import { SeatPickerProvider } from '@context/SeatPickerContext';
|
|
22
23
|
import React, { useEffect, useMemo, useRef, useState } from 'react';
|
|
23
24
|
import { PropsWithChildren } from '@utils/types/global.type';
|
|
24
25
|
import { getSearchParamsInObject } from '@utils/url';
|
|
@@ -29,6 +30,8 @@ import { yupResolver } from '@hookform/resolvers/yup';
|
|
|
29
30
|
import { postOrder } from '@modules/order';
|
|
30
31
|
import { IEvent } from '@utils/types/event.type';
|
|
31
32
|
import PaymentOverviewBox from '@form/PaymentOverviewBox';
|
|
33
|
+
import RichText from '@components/RichText';
|
|
34
|
+
import { isEmptyRichText } from '@utils/render-rich-text';
|
|
32
35
|
import { IEcommerce, IPixels } from '@utils/types/gtm.type';
|
|
33
36
|
import {
|
|
34
37
|
getGtmAddPaymentInfo,
|
|
@@ -669,206 +672,243 @@ const TicketForm: React.FC<Props> = ({
|
|
|
669
672
|
locale={lang}
|
|
670
673
|
apiRef={stripeCheckoutRef}
|
|
671
674
|
>
|
|
672
|
-
<
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
<Stack
|
|
679
|
-
className="overview-card__event-info"
|
|
680
|
-
display={{ md: 'none' }}
|
|
681
|
-
sx={{
|
|
682
|
-
mb: 2,
|
|
683
|
-
}}
|
|
675
|
+
<SeatPickerProvider>
|
|
676
|
+
<FormProvider
|
|
677
|
+
methods={methods}
|
|
678
|
+
// @ts-ignore -- handleSubmit type mismatch with FormProvider onSubmit prop
|
|
679
|
+
onSubmit={methods.handleSubmit(onSubmit, onInvalid)}
|
|
680
|
+
formId={EVENTLOOK_ORDER_FORM_ID}
|
|
684
681
|
>
|
|
685
|
-
<
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
682
|
+
<Stack
|
|
683
|
+
className="overview-card__event-info"
|
|
684
|
+
display={{ md: 'none' }}
|
|
685
|
+
sx={{
|
|
686
|
+
mb: 2,
|
|
687
|
+
}}
|
|
688
|
+
>
|
|
689
|
+
<Typography variant="h3" component="h1">
|
|
690
|
+
{event.name}
|
|
691
|
+
</Typography>
|
|
692
|
+
<Typography variant="h5" component="h2">
|
|
693
|
+
{dayjs(event.startDate).format('DD.MM.YYYY HH:mm')}
|
|
694
|
+
</Typography>
|
|
695
|
+
<Typography variant="body2" mt={1}>
|
|
696
|
+
{getPlaceAsString(event.place)}
|
|
697
|
+
</Typography>
|
|
698
|
+
{headerSlot ? <>{headerSlot}</> : null}
|
|
699
|
+
</Stack>
|
|
700
|
+
<Grid
|
|
701
|
+
container
|
|
702
|
+
spacing={2}
|
|
703
|
+
sx={{
|
|
704
|
+
pb: {
|
|
705
|
+
xs: isPaymentOverviewDrawerOpen ? cartItemCount * 4 + 18 : 0,
|
|
706
|
+
md: 0,
|
|
707
|
+
},
|
|
708
|
+
}}
|
|
709
|
+
>
|
|
710
|
+
<Grid size={{ xs: 12, md: 8 }}>
|
|
711
|
+
{!isEmptyRichText(event.purchaseInstructions) && (
|
|
712
|
+
<Box
|
|
713
|
+
sx={(theme) => ({
|
|
714
|
+
display: 'flex',
|
|
715
|
+
gap: 1.25,
|
|
716
|
+
mb: 3,
|
|
717
|
+
p: 2,
|
|
718
|
+
borderRadius: 1,
|
|
719
|
+
backgroundColor: theme.palette.action.hover,
|
|
720
|
+
color: theme.palette.text.secondary,
|
|
721
|
+
fontSize: '0.875rem',
|
|
722
|
+
lineHeight: 1.5,
|
|
723
|
+
})}
|
|
724
|
+
>
|
|
725
|
+
<Box
|
|
726
|
+
component="svg"
|
|
727
|
+
viewBox="0 0 24 24"
|
|
728
|
+
aria-hidden
|
|
729
|
+
sx={{
|
|
730
|
+
flexShrink: 0,
|
|
731
|
+
width: 18,
|
|
732
|
+
height: 18,
|
|
733
|
+
mt: '1px',
|
|
734
|
+
fill: 'currentColor',
|
|
735
|
+
}}
|
|
736
|
+
>
|
|
737
|
+
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z" />
|
|
738
|
+
</Box>
|
|
739
|
+
<RichText content={event.purchaseInstructions} />
|
|
740
|
+
</Box>
|
|
741
|
+
)}
|
|
742
|
+
<Stepper
|
|
743
|
+
orientation="vertical"
|
|
744
|
+
sx={(theme) => ({
|
|
745
|
+
[theme.breakpoints.down('sm')]: {
|
|
746
|
+
'& .MuiStepContent-root': {
|
|
747
|
+
borderLeftWidth: 0,
|
|
748
|
+
paddingLeft: 0,
|
|
749
|
+
marginLeft: 0,
|
|
750
|
+
},
|
|
751
|
+
'& .MuiStepConnector-line': { borderLeftWidth: 0 },
|
|
715
752
|
},
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
753
|
+
})}
|
|
754
|
+
>
|
|
755
|
+
{event.type === EventType.RECURRING && (
|
|
756
|
+
<Step active>
|
|
757
|
+
<StepLabel>{t('event.tickets.stepper.6.title')}</StepLabel>
|
|
758
|
+
<StepContent sx={{ pr: { xs: 0 } }}>
|
|
759
|
+
<TimeslotSelection event={event} />
|
|
760
|
+
</StepContent>
|
|
761
|
+
</Step>
|
|
762
|
+
)}
|
|
721
763
|
<Step active>
|
|
722
|
-
<StepLabel>{t('event.tickets.stepper.
|
|
764
|
+
<StepLabel>{t('event.tickets.stepper.1.title')}</StepLabel>
|
|
723
765
|
<StepContent sx={{ pr: { xs: 0 } }}>
|
|
724
|
-
|
|
766
|
+
{event.mapId && seatingIframeUrl ? (
|
|
767
|
+
<TicketSelectionMap event={event} />
|
|
768
|
+
) : event.hasMerchandise ? (
|
|
769
|
+
<TicketWithMerchandiseSelection event={event} />
|
|
770
|
+
) : (
|
|
771
|
+
<TicketSelection event={event} />
|
|
772
|
+
)}
|
|
725
773
|
</StepContent>
|
|
726
774
|
</Step>
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
</Step>
|
|
740
|
-
{event.hasMerchandise && eventProducts.length && (
|
|
775
|
+
{event.hasMerchandise && eventProducts.length && (
|
|
776
|
+
<Step active>
|
|
777
|
+
<StepLabel>{t('event.tickets.stepper.4.title')}</StepLabel>
|
|
778
|
+
<StepContent sx={{ pr: { xs: 0 } }}>
|
|
779
|
+
<MerchandiseSelection
|
|
780
|
+
eventProducts={eventProducts}
|
|
781
|
+
eventId={event.id}
|
|
782
|
+
isLoading={isLoading}
|
|
783
|
+
/>
|
|
784
|
+
</StepContent>
|
|
785
|
+
</Step>
|
|
786
|
+
)}
|
|
741
787
|
<Step active>
|
|
742
|
-
<StepLabel>{t('event.tickets.stepper.
|
|
788
|
+
<StepLabel>{t('event.tickets.stepper.8.title')}</StepLabel>
|
|
743
789
|
<StepContent sx={{ pr: { xs: 0 } }}>
|
|
744
|
-
<
|
|
745
|
-
eventProducts={eventProducts}
|
|
746
|
-
eventId={event.id}
|
|
747
|
-
isLoading={isLoading}
|
|
748
|
-
/>
|
|
790
|
+
<Services event={event} />
|
|
749
791
|
</StepContent>
|
|
750
792
|
</Step>
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
793
|
+
{event.children.length && (
|
|
794
|
+
<Step active>
|
|
795
|
+
<StepLabel>{t('event.tickets.stepper.7.title')}</StepLabel>
|
|
796
|
+
<StepContent sx={{ pr: { xs: 0 } }}>
|
|
797
|
+
<ChildEventSection events={event.children} />
|
|
798
|
+
</StepContent>
|
|
799
|
+
</Step>
|
|
800
|
+
)}
|
|
759
801
|
<Step active>
|
|
760
|
-
<StepLabel>{t('event.tickets.stepper.
|
|
802
|
+
<StepLabel>{t('event.tickets.stepper.2.title')}</StepLabel>
|
|
761
803
|
<StepContent sx={{ pr: { xs: 0 } }}>
|
|
762
|
-
<
|
|
804
|
+
<ContactPerson event={event} />
|
|
763
805
|
</StepContent>
|
|
764
806
|
</Step>
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
807
|
+
{event.hasMerchandise && showShippingMethods() && (
|
|
808
|
+
<Step active>
|
|
809
|
+
<StepLabel>{t('event.tickets.stepper.5.title')}</StepLabel>
|
|
810
|
+
<StepContent sx={{ pr: { xs: 0 } }}>
|
|
811
|
+
<Shipping event={event} />
|
|
812
|
+
</StepContent>
|
|
813
|
+
</Step>
|
|
814
|
+
)}
|
|
773
815
|
<Step active>
|
|
774
|
-
<StepLabel>
|
|
816
|
+
<StepLabel>
|
|
817
|
+
{t(
|
|
818
|
+
`event.tickets.stepper.3.${values.isPaymentVerify ? 'title_verify' : 'title'}`
|
|
819
|
+
)}
|
|
820
|
+
</StepLabel>
|
|
775
821
|
<StepContent sx={{ pr: { xs: 0 } }}>
|
|
776
|
-
<
|
|
822
|
+
<Payment event={event} stripeReady={stripeReady} />
|
|
777
823
|
</StepContent>
|
|
778
824
|
</Step>
|
|
779
|
-
|
|
780
|
-
<
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
<StepContent sx={{ pr: { xs: 0 } }}>
|
|
787
|
-
<Payment event={event} stripeReady={stripeReady} />
|
|
788
|
-
</StepContent>
|
|
789
|
-
</Step>
|
|
790
|
-
</Stepper>
|
|
791
|
-
<Stack
|
|
792
|
-
ref={termsAndConditionsRef}
|
|
793
|
-
mt={2}
|
|
794
|
-
ml={{ xs: 1, md: 4 }}
|
|
795
|
-
sx={{ scrollMarginBottom: { xs: 220, md: 0 } }}
|
|
796
|
-
>
|
|
797
|
-
<RHFCheckbox
|
|
798
|
-
name="termsAndConditions"
|
|
799
|
-
label={
|
|
800
|
-
<>
|
|
801
|
-
<Trans
|
|
802
|
-
text="event.tickets.terms_and_conditions"
|
|
803
|
-
values={{
|
|
804
|
-
termsAndConditionsCompanies: options?.termsAndConditionsCompanies
|
|
805
|
-
? options.termsAndConditionsCompanies.join(t('and'))
|
|
806
|
-
: ['Eventlook', 'GoPay'].join(` ${t('and')} `),
|
|
807
|
-
}}
|
|
808
|
-
components={{
|
|
809
|
-
0: (
|
|
810
|
-
<CustomLink key={2} href={links.termsAndConditions} target="_blank" />
|
|
811
|
-
),
|
|
812
|
-
1: <CustomLink key={1} href={links.gdpr} target="_blank" />,
|
|
813
|
-
}}
|
|
814
|
-
/>
|
|
815
|
-
</>
|
|
816
|
-
}
|
|
817
|
-
/>
|
|
818
|
-
{values.ticketInsurance && (
|
|
825
|
+
</Stepper>
|
|
826
|
+
<Stack
|
|
827
|
+
ref={termsAndConditionsRef}
|
|
828
|
+
mt={2}
|
|
829
|
+
ml={{ xs: 1, md: 4 }}
|
|
830
|
+
sx={{ scrollMarginBottom: { xs: 220, md: 0 } }}
|
|
831
|
+
>
|
|
819
832
|
<RHFCheckbox
|
|
820
|
-
name="
|
|
833
|
+
name="termsAndConditions"
|
|
821
834
|
label={
|
|
822
835
|
<>
|
|
823
836
|
<Trans
|
|
824
|
-
text="event.tickets.
|
|
837
|
+
text="event.tickets.terms_and_conditions"
|
|
838
|
+
values={{
|
|
839
|
+
termsAndConditionsCompanies: options?.termsAndConditionsCompanies
|
|
840
|
+
? options.termsAndConditionsCompanies.join(t('and'))
|
|
841
|
+
: ['Eventlook', 'GoPay'].join(` ${t('and')} `),
|
|
842
|
+
}}
|
|
825
843
|
components={{
|
|
826
844
|
0: (
|
|
827
845
|
<CustomLink
|
|
828
846
|
key={2}
|
|
829
|
-
href=
|
|
830
|
-
target="_blank"
|
|
831
|
-
/>
|
|
832
|
-
),
|
|
833
|
-
1: (
|
|
834
|
-
<CustomLink
|
|
835
|
-
key={1}
|
|
836
|
-
href="https://eventigo.s3-central.vshosting.cloud/production/colonnade/ipid-storno-cz-112025.pdf"
|
|
847
|
+
href={links.termsAndConditions}
|
|
837
848
|
target="_blank"
|
|
838
849
|
/>
|
|
839
850
|
),
|
|
851
|
+
1: <CustomLink key={1} href={links.gdpr} target="_blank" />,
|
|
840
852
|
}}
|
|
841
853
|
/>
|
|
842
854
|
</>
|
|
843
855
|
}
|
|
844
856
|
/>
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
857
|
+
{values.ticketInsurance && (
|
|
858
|
+
<RHFCheckbox
|
|
859
|
+
name="insuranceTermsAndConditions"
|
|
860
|
+
label={
|
|
861
|
+
<>
|
|
862
|
+
<Trans
|
|
863
|
+
text="event.tickets.insurance.checkbox"
|
|
864
|
+
components={{
|
|
865
|
+
0: (
|
|
866
|
+
<CustomLink
|
|
867
|
+
key={2}
|
|
868
|
+
href="https://eventigo.s3-central.vshosting.cloud/production/colonnade/pp-storno-cz-eventlook-012026.pdf"
|
|
869
|
+
target="_blank"
|
|
870
|
+
/>
|
|
871
|
+
),
|
|
872
|
+
1: (
|
|
873
|
+
<CustomLink
|
|
874
|
+
key={1}
|
|
875
|
+
href="https://eventigo.s3-central.vshosting.cloud/production/colonnade/ipid-storno-cz-112025.pdf"
|
|
876
|
+
target="_blank"
|
|
877
|
+
/>
|
|
878
|
+
),
|
|
879
|
+
}}
|
|
880
|
+
/>
|
|
881
|
+
</>
|
|
882
|
+
}
|
|
883
|
+
/>
|
|
884
|
+
)}
|
|
885
|
+
</Stack>
|
|
886
|
+
</Grid>
|
|
887
|
+
<Grid size={12} sx={{ display: { xs: 'block', md: 'none' } }}>
|
|
888
|
+
<Divider sx={{ borderStyle: 'dashed' }} />
|
|
889
|
+
</Grid>
|
|
890
|
+
<Grid size={{ xs: 12, md: 4 }} sx={{ mt: { xs: 0, md: 0 } }}>
|
|
891
|
+
<PaymentOverviewBox event={event} withoutPadding />
|
|
892
|
+
</Grid>
|
|
850
893
|
</Grid>
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
894
|
+
|
|
895
|
+
{!isIframe && (
|
|
896
|
+
<PaymentOverviewDrawer
|
|
897
|
+
event={event}
|
|
898
|
+
totalPrice={values.total}
|
|
899
|
+
termsAndConditionsRef={termsAndConditionsRef}
|
|
900
|
+
onOpenChange={setIsPaymentOverviewDrawerOpen}
|
|
901
|
+
/>
|
|
902
|
+
)}
|
|
903
|
+
|
|
904
|
+
<EmailConfirmation
|
|
905
|
+
open={formStep === 2 && !isIframe}
|
|
906
|
+
onClose={() => setFormStep(1)}
|
|
907
|
+
// @ts-ignore -- handleSubmit type mismatch with onConfirm prop
|
|
908
|
+
onConfirm={methods.handleSubmit(onSubmit, onInvalid)}
|
|
862
909
|
/>
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
<EmailConfirmation
|
|
866
|
-
open={formStep === 2 && !isIframe}
|
|
867
|
-
onClose={() => setFormStep(1)}
|
|
868
|
-
// @ts-ignore -- handleSubmit type mismatch with onConfirm prop
|
|
869
|
-
onConfirm={methods.handleSubmit(onSubmit, onInvalid)}
|
|
870
|
-
/>
|
|
871
|
-
</FormProvider>
|
|
910
|
+
</FormProvider>
|
|
911
|
+
</SeatPickerProvider>
|
|
872
912
|
</StripeCheckoutProvider>
|
|
873
913
|
)}
|
|
874
914
|
</Box>
|