@eventlook/sdk 1.4.46-beta.7 → 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.
Files changed (228) hide show
  1. package/.claude/settings.local.json +9 -0
  2. package/dist/cjs/components/Image.js +29 -14
  3. package/dist/cjs/components/Image.js.map +1 -1
  4. package/dist/cjs/components/hook-form/FormProvider.js +2 -2
  5. package/dist/cjs/components/hook-form/FormProvider.js.map +1 -1
  6. package/dist/cjs/form/ChildEventDialog.js +3 -3
  7. package/dist/cjs/form/ChildEventDialog.js.map +1 -1
  8. package/dist/cjs/form/ContactPerson.js +1 -1
  9. package/dist/cjs/form/ContactPerson.js.map +1 -1
  10. package/dist/cjs/form/Payment.js +2 -2
  11. package/dist/cjs/form/Payment.js.map +1 -1
  12. package/dist/cjs/form/PaymentOverviewBox.js +61 -47
  13. package/dist/cjs/form/PaymentOverviewBox.js.map +1 -1
  14. package/dist/cjs/form/PaymentPending.js +4 -1
  15. package/dist/cjs/form/PaymentPending.js.map +1 -1
  16. package/dist/cjs/form/ReleaseWithMerchandise.js +48 -57
  17. package/dist/cjs/form/ReleaseWithMerchandise.js.map +1 -1
  18. package/dist/cjs/form/TicketForm.js +25 -43
  19. package/dist/cjs/form/TicketForm.js.map +1 -1
  20. package/dist/cjs/form/TicketSelection.js +6 -5
  21. package/dist/cjs/form/TicketSelection.js.map +1 -1
  22. package/dist/cjs/form/TicketWithMerchandiseSelection.js +5 -3
  23. package/dist/cjs/form/TicketWithMerchandiseSelection.js.map +1 -1
  24. package/dist/cjs/form/index.js +1 -1
  25. package/dist/cjs/form/index.js.map +1 -1
  26. package/dist/cjs/form/payment/FeeBox.js +16 -4
  27. package/dist/cjs/form/payment/FeeBox.js.map +1 -1
  28. package/dist/cjs/form/payment/PaymentOverviewCheckbox.js +28 -34
  29. package/dist/cjs/form/payment/PaymentOverviewCheckbox.js.map +1 -1
  30. package/dist/cjs/form/product/ProductCard.js +36 -117
  31. package/dist/cjs/form/product/ProductCard.js.map +1 -1
  32. package/dist/cjs/form/product/ProductVariantsDialog.js +96 -158
  33. package/dist/cjs/form/product/ProductVariantsDialog.js.map +1 -1
  34. package/dist/cjs/locales/cs.js +2 -17
  35. package/dist/cjs/locales/cs.js.map +1 -1
  36. package/dist/cjs/locales/en.js +2 -17
  37. package/dist/cjs/locales/en.js.map +1 -1
  38. package/dist/cjs/locales/es.js +1 -16
  39. package/dist/cjs/locales/es.js.map +1 -1
  40. package/dist/cjs/locales/pl.js +1 -16
  41. package/dist/cjs/locales/pl.js.map +1 -1
  42. package/dist/cjs/locales/sk.js +1 -16
  43. package/dist/cjs/locales/sk.js.map +1 -1
  44. package/dist/cjs/locales/uk.js +1 -16
  45. package/dist/cjs/locales/uk.js.map +1 -1
  46. package/dist/cjs/utils/data/global.js +0 -2
  47. package/dist/cjs/utils/data/global.js.map +1 -1
  48. package/dist/esm/components/Image.js +30 -15
  49. package/dist/esm/components/Image.js.map +1 -1
  50. package/dist/esm/components/hook-form/FormProvider.js +2 -2
  51. package/dist/esm/components/hook-form/FormProvider.js.map +1 -1
  52. package/dist/esm/form/ChildEventDialog.js +3 -3
  53. package/dist/esm/form/ChildEventDialog.js.map +1 -1
  54. package/dist/esm/form/ContactPerson.js +1 -1
  55. package/dist/esm/form/ContactPerson.js.map +1 -1
  56. package/dist/esm/form/Payment.js +2 -2
  57. package/dist/esm/form/Payment.js.map +1 -1
  58. package/dist/esm/form/PaymentOverviewBox.js +62 -48
  59. package/dist/esm/form/PaymentOverviewBox.js.map +1 -1
  60. package/dist/esm/form/PaymentPending.js +4 -1
  61. package/dist/esm/form/PaymentPending.js.map +1 -1
  62. package/dist/esm/form/ReleaseWithMerchandise.js +49 -58
  63. package/dist/esm/form/ReleaseWithMerchandise.js.map +1 -1
  64. package/dist/esm/form/TicketForm.js +27 -45
  65. package/dist/esm/form/TicketForm.js.map +1 -1
  66. package/dist/esm/form/TicketSelection.js +6 -5
  67. package/dist/esm/form/TicketSelection.js.map +1 -1
  68. package/dist/esm/form/TicketWithMerchandiseSelection.js +6 -4
  69. package/dist/esm/form/TicketWithMerchandiseSelection.js.map +1 -1
  70. package/dist/esm/form/index.js +1 -1
  71. package/dist/esm/form/index.js.map +1 -1
  72. package/dist/esm/form/payment/FeeBox.js +17 -5
  73. package/dist/esm/form/payment/FeeBox.js.map +1 -1
  74. package/dist/esm/form/payment/PaymentOverviewCheckbox.js +30 -36
  75. package/dist/esm/form/payment/PaymentOverviewCheckbox.js.map +1 -1
  76. package/dist/esm/form/product/ProductCard.js +37 -118
  77. package/dist/esm/form/product/ProductCard.js.map +1 -1
  78. package/dist/esm/form/product/ProductVariantsDialog.js +98 -160
  79. package/dist/esm/form/product/ProductVariantsDialog.js.map +1 -1
  80. package/dist/esm/locales/cs.js +2 -17
  81. package/dist/esm/locales/cs.js.map +1 -1
  82. package/dist/esm/locales/en.js +2 -17
  83. package/dist/esm/locales/en.js.map +1 -1
  84. package/dist/esm/locales/es.js +1 -16
  85. package/dist/esm/locales/es.js.map +1 -1
  86. package/dist/esm/locales/pl.js +1 -16
  87. package/dist/esm/locales/pl.js.map +1 -1
  88. package/dist/esm/locales/sk.js +1 -16
  89. package/dist/esm/locales/sk.js.map +1 -1
  90. package/dist/esm/locales/uk.js +1 -16
  91. package/dist/esm/locales/uk.js.map +1 -1
  92. package/dist/esm/utils/data/global.js +1 -2
  93. package/dist/esm/utils/data/global.js.map +1 -1
  94. package/dist/types/components/Image.d.ts +4 -4
  95. package/dist/types/form/style.d.ts +1 -1
  96. package/package.json +2 -8
  97. package/rollup.config.mjs +0 -2
  98. package/src/components/Image.tsx +48 -27
  99. package/src/components/hook-form/FormProvider.tsx +2 -5
  100. package/src/form/ChildEventDialog.tsx +3 -3
  101. package/src/form/ContactPerson.tsx +1 -1
  102. package/src/form/MerchandiseSelection.tsx +29 -0
  103. package/src/form/Payment.tsx +2 -2
  104. package/src/form/PaymentOverviewBox.tsx +122 -89
  105. package/src/form/PaymentPending.tsx +1 -1
  106. package/src/form/ReleaseWithMerchandise.tsx +230 -0
  107. package/src/form/TicketForm.tsx +25 -63
  108. package/src/form/{tickets/TicketSelection.tsx → TicketSelection.tsx} +128 -24
  109. package/src/form/{tickets/TicketSelectionMap.tsx → TicketSelectionMap.tsx} +1 -9
  110. package/src/form/{tickets/TicketWithMerchandiseSelection.tsx → TicketWithMerchandiseSelection.tsx} +7 -3
  111. package/src/form/index.tsx +1 -3
  112. package/src/form/payment/FeeBox.tsx +31 -4
  113. package/src/form/payment/PaymentOverviewCheckbox.tsx +56 -57
  114. package/src/form/product/ProductCard.tsx +59 -179
  115. package/src/form/product/ProductVariantsDialog.tsx +140 -253
  116. package/src/locales/cs.tsx +2 -17
  117. package/src/locales/en.tsx +2 -17
  118. package/src/locales/es.tsx +1 -16
  119. package/src/locales/pl.tsx +1 -16
  120. package/src/locales/sk.tsx +1 -16
  121. package/src/locales/uk.tsx +1 -16
  122. package/src/utils/data/global.ts +0 -1
  123. package/tsconfig.json +1 -2
  124. package/.env.example +0 -1
  125. package/dist/cjs/_virtual/_commonjsHelpers.js +0 -8
  126. package/dist/cjs/_virtual/_commonjsHelpers.js.map +0 -1
  127. package/dist/cjs/_virtual/index.js +0 -6
  128. package/dist/cjs/_virtual/index.js.map +0 -1
  129. package/dist/cjs/_virtual/index2.js +0 -6
  130. package/dist/cjs/_virtual/index2.js.map +0 -1
  131. package/dist/cjs/_virtual/index3.js +0 -6
  132. package/dist/cjs/_virtual/index3.js.map +0 -1
  133. package/dist/cjs/_virtual/react-is.development.js +0 -6
  134. package/dist/cjs/_virtual/react-is.development.js.map +0 -1
  135. package/dist/cjs/_virtual/react-is.development2.js +0 -6
  136. package/dist/cjs/_virtual/react-is.development2.js.map +0 -1
  137. package/dist/cjs/_virtual/react-is.production.js +0 -6
  138. package/dist/cjs/_virtual/react-is.production.js.map +0 -1
  139. package/dist/cjs/_virtual/react-is.production.min.js +0 -6
  140. package/dist/cjs/_virtual/react-is.production.min.js.map +0 -1
  141. package/dist/cjs/form/PaymentOverviewDrawer.js +0 -149
  142. package/dist/cjs/form/PaymentOverviewDrawer.js.map +0 -1
  143. package/dist/cjs/form/TicketQuantityControl.js +0 -51
  144. package/dist/cjs/form/TicketQuantityControl.js.map +0 -1
  145. package/dist/cjs/form/TicketSelectionMobile.js +0 -98
  146. package/dist/cjs/form/TicketSelectionMobile.js.map +0 -1
  147. package/dist/cjs/form/merchandise/MerchandiseSelection.js +0 -14
  148. package/dist/cjs/form/merchandise/MerchandiseSelection.js.map +0 -1
  149. package/dist/cjs/form/merchandise/MerchandiseSlider.js +0 -40
  150. package/dist/cjs/form/merchandise/MerchandiseSlider.js.map +0 -1
  151. package/dist/cjs/form/merchendise/MerchandiseSelection.js +0 -19
  152. package/dist/cjs/form/merchendise/MerchandiseSelection.js.map +0 -1
  153. package/dist/cjs/form/merchendise/MerchandiseSlider.js +0 -75
  154. package/dist/cjs/form/merchendise/MerchandiseSlider.js.map +0 -1
  155. package/dist/cjs/form/services/index.js +0 -134
  156. package/dist/cjs/form/services/index.js.map +0 -1
  157. package/dist/cjs/form/tickets/ReleaseDescription.js +0 -23
  158. package/dist/cjs/form/tickets/ReleaseDescription.js.map +0 -1
  159. package/dist/cjs/form/tickets/ReleaseWithMerchandise.js +0 -141
  160. package/dist/cjs/form/tickets/ReleaseWithMerchandise.js.map +0 -1
  161. package/dist/cjs/form/tickets/TicketQuantityControl.js +0 -52
  162. package/dist/cjs/form/tickets/TicketQuantityControl.js.map +0 -1
  163. package/dist/cjs/form/tickets/TicketSelection.js +0 -139
  164. package/dist/cjs/form/tickets/TicketSelection.js.map +0 -1
  165. package/dist/cjs/form/tickets/TicketSelectionMap.js +0 -73
  166. package/dist/cjs/form/tickets/TicketSelectionMap.js.map +0 -1
  167. package/dist/cjs/form/tickets/TicketSelectionMobile.js +0 -90
  168. package/dist/cjs/form/tickets/TicketSelectionMobile.js.map +0 -1
  169. package/dist/cjs/form/tickets/TicketWithMerchandiseSelection.js +0 -117
  170. package/dist/cjs/form/tickets/TicketWithMerchandiseSelection.js.map +0 -1
  171. package/dist/esm/_virtual/_commonjsHelpers.js +0 -6
  172. package/dist/esm/_virtual/_commonjsHelpers.js.map +0 -1
  173. package/dist/esm/_virtual/index.js +0 -4
  174. package/dist/esm/_virtual/index.js.map +0 -1
  175. package/dist/esm/_virtual/index2.js +0 -4
  176. package/dist/esm/_virtual/index2.js.map +0 -1
  177. package/dist/esm/_virtual/index3.js +0 -4
  178. package/dist/esm/_virtual/index3.js.map +0 -1
  179. package/dist/esm/_virtual/react-is.development.js +0 -4
  180. package/dist/esm/_virtual/react-is.development.js.map +0 -1
  181. package/dist/esm/_virtual/react-is.development2.js +0 -4
  182. package/dist/esm/_virtual/react-is.development2.js.map +0 -1
  183. package/dist/esm/_virtual/react-is.production.js +0 -4
  184. package/dist/esm/_virtual/react-is.production.js.map +0 -1
  185. package/dist/esm/_virtual/react-is.production.min.js +0 -4
  186. package/dist/esm/_virtual/react-is.production.min.js.map +0 -1
  187. package/dist/esm/form/PaymentOverviewDrawer.js +0 -145
  188. package/dist/esm/form/PaymentOverviewDrawer.js.map +0 -1
  189. package/dist/esm/form/TicketQuantityControl.js +0 -47
  190. package/dist/esm/form/TicketQuantityControl.js.map +0 -1
  191. package/dist/esm/form/TicketSelectionMobile.js +0 -94
  192. package/dist/esm/form/TicketSelectionMobile.js.map +0 -1
  193. package/dist/esm/form/merchandise/MerchandiseSelection.js +0 -10
  194. package/dist/esm/form/merchandise/MerchandiseSelection.js.map +0 -1
  195. package/dist/esm/form/merchandise/MerchandiseSlider.js +0 -36
  196. package/dist/esm/form/merchandise/MerchandiseSlider.js.map +0 -1
  197. package/dist/esm/form/merchendise/MerchandiseSelection.js +0 -15
  198. package/dist/esm/form/merchendise/MerchandiseSelection.js.map +0 -1
  199. package/dist/esm/form/merchendise/MerchandiseSlider.js +0 -71
  200. package/dist/esm/form/merchendise/MerchandiseSlider.js.map +0 -1
  201. package/dist/esm/form/services/index.js +0 -130
  202. package/dist/esm/form/services/index.js.map +0 -1
  203. package/dist/esm/form/tickets/ReleaseDescription.js +0 -19
  204. package/dist/esm/form/tickets/ReleaseDescription.js.map +0 -1
  205. package/dist/esm/form/tickets/ReleaseWithMerchandise.js +0 -137
  206. package/dist/esm/form/tickets/ReleaseWithMerchandise.js.map +0 -1
  207. package/dist/esm/form/tickets/TicketQuantityControl.js +0 -48
  208. package/dist/esm/form/tickets/TicketQuantityControl.js.map +0 -1
  209. package/dist/esm/form/tickets/TicketSelection.js +0 -135
  210. package/dist/esm/form/tickets/TicketSelection.js.map +0 -1
  211. package/dist/esm/form/tickets/TicketSelectionMap.js +0 -69
  212. package/dist/esm/form/tickets/TicketSelectionMap.js.map +0 -1
  213. package/dist/esm/form/tickets/TicketSelectionMobile.js +0 -86
  214. package/dist/esm/form/tickets/TicketSelectionMobile.js.map +0 -1
  215. package/dist/esm/form/tickets/TicketWithMerchandiseSelection.js +0 -113
  216. package/dist/esm/form/tickets/TicketWithMerchandiseSelection.js.map +0 -1
  217. package/dist/types/form/PaymentOverviewDrawer.d.ts +0 -8
  218. package/dist/types/form/merchendise/MerchandiseSelection.d.ts +0 -9
  219. package/dist/types/form/merchendise/MerchandiseSlider.d.ts +0 -10
  220. package/dist/types/form/merchendise/MerchendiseSlider.d.ts +0 -0
  221. package/src/form/PaymentOverviewDrawer.tsx +0 -228
  222. package/src/form/merchandise/MerchandiseSelection.tsx +0 -24
  223. package/src/form/merchandise/MerchandiseSlider.tsx +0 -62
  224. package/src/form/services/index.tsx +0 -263
  225. package/src/form/tickets/ReleaseDescription.tsx +0 -46
  226. package/src/form/tickets/ReleaseWithMerchandise.tsx +0 -239
  227. package/src/form/tickets/TicketQuantityControl.tsx +0 -94
  228. package/src/form/tickets/TicketSelectionMobile.tsx +0 -177
@@ -1,5 +1,4 @@
1
- import React from 'react';
2
- import { LazyLoadImage, LazyLoadImageProps } from 'react-lazy-load-image-component';
1
+ import React, { useState } from 'react';
3
2
  import { Theme } from '@mui/material/styles';
4
3
  import { Box, BoxProps, SxProps } from '@mui/material';
5
4
 
@@ -7,9 +6,9 @@ import { Box, BoxProps, SxProps } from '@mui/material';
7
6
 
8
7
  export type ImageRatio = '4/3' | '3/4' | '6/4' | '4/6' | '16/9' | '9/16' | '21/9' | '9/21' | '1/1';
9
8
 
10
- type IProps = BoxProps & LazyLoadImageProps;
11
-
12
- interface Props extends IProps {
9
+ interface Props extends BoxProps {
10
+ src?: string;
11
+ alt?: string;
13
12
  sx?: SxProps<Theme>;
14
13
  ratio?: ImageRatio;
15
14
  disabledEffect?: boolean;
@@ -19,11 +18,17 @@ interface Props extends IProps {
19
18
  export default function Image({
20
19
  ratio,
21
20
  disabledEffect = false,
22
- effect = 'blur',
23
21
  objectFit = 'cover',
24
22
  sx,
23
+ src,
24
+ alt = '',
25
25
  ...other
26
26
  }: Props) {
27
+ const [imgError, setImgError] = useState(false);
28
+ const [loaded, setLoaded] = useState(false);
29
+
30
+ const imgSrc = imgError || !src ? '/assets/img_placeholder.svg' : src;
31
+
27
32
  if (ratio) {
28
33
  return (
29
34
  <Box
@@ -35,25 +40,30 @@ export default function Image({
35
40
  overflow: 'hidden',
36
41
  position: 'relative',
37
42
  pt: getRatio(ratio),
38
- '& .wrapper': {
39
- top: 0,
40
- left: 0,
41
- right: 0,
42
- bottom: 0,
43
- lineHeight: 0,
44
- position: 'absolute',
45
- backgroundSize: 'cover !important',
46
- },
47
43
  ...sx,
48
44
  }}
49
45
  >
50
46
  <Box
51
- component={LazyLoadImage}
52
- wrapperClassName="wrapper"
53
- effect={disabledEffect ? undefined : effect}
54
- placeholderSrc="/assets/img_placeholder.svg"
55
- sx={{ width: 1, height: 1, objectFit: 'cover' }}
56
- {...other}
47
+ component="img"
48
+ src={imgSrc}
49
+ alt={alt}
50
+ loading="lazy"
51
+ decoding="async"
52
+ onLoad={() => setLoaded(true)}
53
+ onError={() => {
54
+ if (!imgError) setImgError(true);
55
+ }}
56
+ sx={{
57
+ position: 'absolute',
58
+ top: 0,
59
+ left: 0,
60
+ width: 1,
61
+ height: 1,
62
+ objectFit: 'cover',
63
+ ...(disabledEffect
64
+ ? {}
65
+ : { opacity: loaded ? 1 : 0, transition: 'opacity 0.3s ease-in-out' }),
66
+ }}
57
67
  />
58
68
  </Box>
59
69
  );
@@ -66,16 +76,27 @@ export default function Image({
66
76
  lineHeight: 1,
67
77
  display: 'block',
68
78
  overflow: 'hidden',
69
- '& .wrapper': { width: 1, height: 1, backgroundSize: 'cover !important' },
70
79
  ...sx,
71
80
  }}
72
81
  >
73
82
  <Box
74
- component={LazyLoadImage}
75
- wrapperClassName="wrapper"
76
- effect={disabledEffect ? undefined : effect}
77
- placeholderSrc="/assets/img_placeholder.svg"
78
- sx={{ width: 1, height: 1, objectFit }}
83
+ component="img"
84
+ src={imgSrc}
85
+ alt={alt}
86
+ loading="lazy"
87
+ decoding="async"
88
+ onLoad={() => setLoaded(true)}
89
+ onError={() => {
90
+ if (!imgError) setImgError(true);
91
+ }}
92
+ sx={{
93
+ width: 1,
94
+ height: 1,
95
+ objectFit,
96
+ ...(disabledEffect
97
+ ? {}
98
+ : { opacity: loaded ? 1 : 0, transition: 'opacity 0.3s ease-in-out' }),
99
+ }}
79
100
  {...other}
80
101
  />
81
102
  </Box>
@@ -7,15 +7,12 @@ type Props = {
7
7
  children: React.ReactNode;
8
8
  methods: UseFormReturn<any>;
9
9
  onSubmit?: VoidFunction;
10
- formId?: string;
11
10
  };
12
11
 
13
- export default function FormProvider({ children, onSubmit, methods, formId }: Props) {
12
+ export default function FormProvider({ children, onSubmit, methods }: Props) {
14
13
  return (
15
14
  <Form {...methods}>
16
- <form id={formId} onSubmit={onSubmit}>
17
- {children}
18
- </form>
15
+ <form onSubmit={onSubmit}>{children}</form>
19
16
  </Form>
20
17
  );
21
18
  }
@@ -2,10 +2,10 @@ import useActiveEventProducts from '@hooks/data/useActiveEventProducts';
2
2
  import { Dialog, DialogContent, Stack, Step, StepContent, StepLabel, Stepper } from '@mui/material';
3
3
  import { IEvent } from '@utils/types/event.type';
4
4
  import React from 'react';
5
- import TicketWithMerchandiseSelection from './tickets/TicketWithMerchandiseSelection';
6
- import TicketSelection from './tickets/TicketSelection';
5
+ import TicketWithMerchandiseSelection from './TicketWithMerchandiseSelection';
6
+ import TicketSelection from './TicketSelection';
7
7
  import useGlobal from '@hooks/useGlobal';
8
- import MerchandiseSelection from './merchandise/MerchandiseSelection';
8
+ import MerchandiseSelection from './MerchandiseSelection';
9
9
 
10
10
  interface Props {
11
11
  event: IEvent;
@@ -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={{ xs: 1, md: 2 }}>
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;
@@ -286,7 +286,7 @@ const Payment: React.FC<Props> = ({ event }) => {
286
286
  src={payment.image.url}
287
287
  sx={{
288
288
  height: '20px',
289
- '& .wrapper img': {
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
- '& .wrapper img': {
323
+ '& img': {
324
324
  objectFit: 'contain',
325
325
  objectPosition: 'left',
326
326
  },
@@ -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, Divider, Grid, Stack, Typography } from '@mui/material';
3
+ import { Box, Divider, Grid, IconButton, Stack, Typography } from '@mui/material';
4
4
  import PaymentOverviewCheckbox from '@form/payment/PaymentOverviewCheckbox.tsx';
5
5
  import locationIcon from '@iconify/icons-carbon/location';
6
6
  import { getPlaceAsString } from '@utils/place';
@@ -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',
@@ -386,29 +385,29 @@ const PaymentOverviewBox: React.FC<Props> = ({ event }) => {
386
385
  }
387
386
  }, []);
388
387
 
389
- // const removeProduct = (variant: ISelectedProductVariant) => {
390
- // const { eventId, variantId } = variant;
391
- // const list = Array.isArray(products[eventId]) ? [...products[eventId]] : [];
388
+ const removeProduct = (variant: ISelectedProductVariant) => {
389
+ const { eventId, variantId } = variant;
390
+ const list = Array.isArray(products[eventId]) ? [...products[eventId]] : [];
392
391
 
393
- // const idx = list.findIndex((p) => Number(p.eventProductVariantId) === Number(variantId));
394
- // if (idx === -1) return;
395
- // const item = list[idx];
392
+ const idx = list.findIndex((p) => Number(p.eventProductVariantId) === Number(variantId));
393
+ if (idx === -1) return;
394
+ const item = list[idx];
396
395
 
397
- // if ((item.quantity ?? 0) <= 1) {
398
- // list.splice(idx, 1);
399
- // } else {
400
- // list[idx] = { ...item, quantity: (item.quantity ?? 1) - 1 };
401
- // }
396
+ if ((item.quantity ?? 0) <= 1) {
397
+ list.splice(idx, 1);
398
+ } else {
399
+ list[idx] = { ...item, quantity: (item.quantity ?? 1) - 1 };
400
+ }
402
401
 
403
- // const next = { ...products, [eventId]: list };
402
+ const next = { ...products, [eventId]: list };
404
403
 
405
- // if (list.length === 0) {
406
- // const { [eventId]: _removed, ...rest } = next;
407
- // setValue('products', rest);
408
- // } else {
409
- // setValue('products', next);
410
- // }
411
- // };
404
+ if (list.length === 0) {
405
+ const { [eventId]: _removed, ...rest } = next;
406
+ setValue('products', rest);
407
+ } else {
408
+ setValue('products', next);
409
+ }
410
+ };
412
411
 
413
412
  return (
414
413
  <OverviewCard id="overview-card" stickyHeaderTop={options?.stickyHeaderTop || 0}>
@@ -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
  >
@@ -475,49 +473,15 @@ const PaymentOverviewBox: React.FC<Props> = ({ event }) => {
475
473
  </Stack>
476
474
  </Stack>
477
475
  )}
478
- <Stack
479
- className="overview-card__order-info"
480
- p={2}
481
- pt={{ xs: 0, sm: 2 }}
482
- spacing={0.75}
483
- useFlexGap
484
- >
476
+ <Stack className="overview-card__order-info" p={2} spacing={1}>
485
477
  {!!selectedTickets.length && !isMobile && <Divider sx={{ borderStyle: 'dashed' }} />}
486
-
487
- {!!selectedTickets.length && (
488
- <Stack spacing={0.5}>
489
- {/* TODO: Uncomment this when Colonnade response - must update terms and conditions and email info */}
490
- <PaymentOverviewCheckbox
491
- checkboxName="ticketInsurance"
492
- label={t('event.tickets.insurance.label')}
493
- value={
494
- <>
495
- {ticketInsurance && totalItemCount.totalTickets > 0 ? '' : '+ '}
496
- {fCurrency(ticketInsurancePricePerUnit, lang, event.currency)} /{' '}
497
- {t('event.tickets.insurance.per_ticket')}
498
- </>
499
- }
500
- />
501
- <PaymentOverviewCheckbox
502
- checkboxName="smsNotification"
503
- label={t('event.tickets.sms_notification.label')}
504
- value={
505
- <>
506
- {smsNotification && totalItemCount.totalTickets > 0 ? '' : '+ '}
507
- {fCurrency(smsNotificationPrice, lang, event.currency)}
508
- </>
509
- }
510
- />
511
- <Divider sx={{ borderStyle: 'dashed' }} />
512
- </Stack>
513
- )}
514
478
  {selectedTickets.map((ticket, index) => (
515
479
  <Box key={index}>
516
480
  <Stack direction="row" justifyContent="space-between" alignItems="center" spacing={2}>
517
- <Typography variant="body2">
481
+ <Typography variant="caption">
518
482
  {ticket.quantity}x {ticket.itemName}
519
483
  </Typography>
520
- <Typography variant="body2">
484
+ <Typography variant="caption">
521
485
  {fCurrency(
522
486
  calculatePriceWithDiscount(
523
487
  ticket.price,
@@ -537,10 +501,10 @@ const PaymentOverviewBox: React.FC<Props> = ({ event }) => {
537
501
  alignItems="center"
538
502
  spacing={2}
539
503
  >
540
- <Typography variant="body2">
504
+ <Typography variant="caption">
541
505
  - {product.quantity}x {product.name}
542
506
  </Typography>
543
- <Typography variant="body2">
507
+ <Typography variant="caption">
544
508
  {product.price > 0
545
509
  ? fCurrency(
546
510
  calculatePriceWithDiscount(
@@ -562,49 +526,118 @@ const PaymentOverviewBox: React.FC<Props> = ({ event }) => {
562
526
  {selectedVariants.map((variant, index) => (
563
527
  <Box key={index}>
564
528
  <Stack direction="row" justifyContent="space-between" alignItems="center" spacing={2}>
565
- <Typography variant="body2">
529
+ <Typography variant="caption">
566
530
  {variant.quantity}x {variant.name}
567
531
  </Typography>
568
- <Typography variant="body2">
569
- {fCurrency(
570
- calculatePriceWithDiscount(
571
- variant.price,
572
- promoCodesValues.productDiscountPercent,
573
- promoCodesValues.fixedDevidedProducts
574
- ? promoCodesValues.fixedDevidedProducts * variant.quantity
575
- : 0
576
- ),
577
- lang,
578
- event.currency
579
- )}
580
- </Typography>
532
+ <Stack direction="row" spacing={1} alignItems="center">
533
+ <Typography variant="caption">
534
+ {fCurrency(
535
+ calculatePriceWithDiscount(
536
+ variant.price,
537
+ promoCodesValues.productDiscountPercent,
538
+ promoCodesValues.fixedDevidedProducts
539
+ ? promoCodesValues.fixedDevidedProducts * variant.quantity
540
+ : 0
541
+ ),
542
+ lang,
543
+ event.currency
544
+ )}
545
+ </Typography>
546
+ <IconButton onClick={() => removeProduct(variant)} color="primary" size="small">
547
+ <Iconify icon="carbon:trash-can" />
548
+ </IconButton>
549
+ </Stack>
581
550
  </Stack>
582
551
  </Box>
583
552
  ))}
584
553
  {!!shippingFee && (
585
554
  <Stack direction="row" justifyContent="space-between" alignItems="center" spacing={2}>
586
- <Typography variant="body2">{t('form.labels.shipping_fee')}</Typography>
587
- <Typography variant="body2">{fCurrency(shippingFee, lang, event.currency)}</Typography>
555
+ <Typography variant="caption">{t('form.labels.shipping_fee')}</Typography>
556
+ <Typography variant="caption">
557
+ {fCurrency(shippingFee, lang, event.currency)}
558
+ </Typography>
559
+ </Stack>
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>
588
575
  </Stack>
589
576
  )}
590
577
  {!!total && !!totalFee && (
591
578
  <Stack direction="row" justifyContent="space-between" alignItems="center" spacing={2}>
592
- <Typography variant="body2">{t('form.labels.service_fee')}</Typography>
593
- <Typography variant="body2">{getFee}</Typography>
579
+ <Typography variant="caption">{t('form.labels.service_fee')}</Typography>
580
+ <Typography variant="caption">{getFee}</Typography>
594
581
  </Stack>
595
582
  )}
596
583
  {((!!selectedTickets.length && isMobile) || !isMobile) && (
597
584
  <Divider sx={{ borderStyle: 'dashed' }} />
598
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
+ )}
599
639
  <FeeBox event={event} />
600
- <LoadingButton
601
- type="submit"
602
- form={EVENTLOOK_ORDER_FORM_ID}
603
- variant="contained"
604
- size="large"
605
- fullWidth
606
- sx={{ height: { xs: 36, md: 40 } }}
607
- >
640
+ <LoadingButton type="submit" variant="contained" size="large" fullWidth>
608
641
  {t(isPaymentVerify ? 'verify' : 'buy')}
609
642
  </LoadingButton>
610
643
  </Stack>
@@ -17,7 +17,7 @@ const PaymentPending: React.FC = () => {
17
17
  </Typography>
18
18
  </m.div>
19
19
  <Box maxWidth={600} mx="auto">
20
- {/* <Lottie animationData={bankTransferAnimation} /> */}
20
+ <Lottie animationData={bankTransferAnimation} />
21
21
  </Box>
22
22
  </Box>
23
23
  );