@eventlook/sdk 1.4.45 → 1.4.46-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (589) hide show
  1. package/.env.example +1 -0
  2. package/package.json +3 -1
  3. package/rollup.config.mjs +2 -0
  4. package/src/components/hook-form/FormProvider.tsx +5 -2
  5. package/src/form/ChildEventDialog.tsx +3 -3
  6. package/src/form/ContactPerson.tsx +1 -1
  7. package/src/form/PaymentOverviewBox.tsx +39 -72
  8. package/src/form/PaymentOverviewDrawer.tsx +169 -0
  9. package/src/form/PaymentPending.tsx +1 -1
  10. package/src/form/TicketForm.tsx +53 -17
  11. package/src/form/index.tsx +3 -1
  12. package/src/form/merchandise/MerchandiseSelection.tsx +24 -0
  13. package/src/form/merchandise/MerchandiseSlider.tsx +61 -0
  14. package/src/form/payment/FeeBox.tsx +0 -10
  15. package/src/form/payment/PaymentOverviewCheckbox.tsx +33 -56
  16. package/src/form/product/ProductCard.tsx +60 -55
  17. package/src/form/product/ProductVariantsDialog.tsx +195 -137
  18. package/src/form/services/index.tsx +217 -0
  19. package/src/form/tickets/ReleaseDescription.tsx +57 -0
  20. package/src/form/tickets/ReleaseWithMerchandise.tsx +237 -0
  21. package/src/form/tickets/TicketQuantityControl.tsx +93 -0
  22. package/src/form/{TicketSelection.tsx → tickets/TicketSelection.tsx} +130 -101
  23. package/src/form/tickets/TicketSelectionMobile.tsx +175 -0
  24. package/src/form/{TicketWithMerchandiseSelection.tsx → tickets/TicketWithMerchandiseSelection.tsx} +3 -7
  25. package/src/locales/cs.tsx +7 -1
  26. package/src/locales/en.tsx +7 -1
  27. package/src/locales/es.tsx +6 -0
  28. package/src/locales/pl.tsx +6 -0
  29. package/src/locales/sk.tsx +6 -0
  30. package/src/locales/uk.tsx +6 -0
  31. package/src/utils/data/global.ts +1 -0
  32. package/tsconfig.json +2 -1
  33. package/.claude/settings.local.json +0 -9
  34. package/dist/cjs/components/ClientOnly.js +0 -19
  35. package/dist/cjs/components/ClientOnly.js.map +0 -1
  36. package/dist/cjs/components/CustomSkeleton.js +0 -15
  37. package/dist/cjs/components/CustomSkeleton.js.map +0 -1
  38. package/dist/cjs/components/Image.js +0 -56
  39. package/dist/cjs/components/Image.js.map +0 -1
  40. package/dist/cjs/components/Label.js +0 -65
  41. package/dist/cjs/components/Label.js.map +0 -1
  42. package/dist/cjs/components/TextIconLabel.js +0 -19
  43. package/dist/cjs/components/TextIconLabel.js.map +0 -1
  44. package/dist/cjs/components/TicketFormSkeleton.js +0 -55
  45. package/dist/cjs/components/TicketFormSkeleton.js.map +0 -1
  46. package/dist/cjs/components/Trans.js +0 -87
  47. package/dist/cjs/components/Trans.js.map +0 -1
  48. package/dist/cjs/components/animate/IconButtonAnimate.js +0 -29
  49. package/dist/cjs/components/animate/IconButtonAnimate.js.map +0 -1
  50. package/dist/cjs/components/animate/MotionContainer.js +0 -18
  51. package/dist/cjs/components/animate/MotionContainer.js.map +0 -1
  52. package/dist/cjs/components/animate/variants/bounce.js +0 -98
  53. package/dist/cjs/components/animate/variants/bounce.js.map +0 -1
  54. package/dist/cjs/components/animate/variants/container.js +0 -25
  55. package/dist/cjs/components/animate/variants/container.js.map +0 -1
  56. package/dist/cjs/components/animate/variants/transition.js +0 -17
  57. package/dist/cjs/components/animate/variants/transition.js.map +0 -1
  58. package/dist/cjs/components/confirm-dialog/ConfirmDialog.js +0 -24
  59. package/dist/cjs/components/confirm-dialog/ConfirmDialog.js.map +0 -1
  60. package/dist/cjs/components/hook-form/FormProvider.js +0 -14
  61. package/dist/cjs/components/hook-form/FormProvider.js.map +0 -1
  62. package/dist/cjs/components/hook-form/RHFCheckbox.js +0 -15
  63. package/dist/cjs/components/hook-form/RHFCheckbox.js.map +0 -1
  64. package/dist/cjs/components/hook-form/RHFDatePicker.js +0 -22
  65. package/dist/cjs/components/hook-form/RHFDatePicker.js.map +0 -1
  66. package/dist/cjs/components/hook-form/RHFPhone.js +0 -24
  67. package/dist/cjs/components/hook-form/RHFPhone.js.map +0 -1
  68. package/dist/cjs/components/hook-form/RHFRadioGroup.js +0 -29
  69. package/dist/cjs/components/hook-form/RHFRadioGroup.js.map +0 -1
  70. package/dist/cjs/components/hook-form/RHFSelect.js +0 -34
  71. package/dist/cjs/components/hook-form/RHFSelect.js.map +0 -1
  72. package/dist/cjs/components/hook-form/RHFTextField.js +0 -15
  73. package/dist/cjs/components/hook-form/RHFTextField.js.map +0 -1
  74. package/dist/cjs/components/iconify/Iconify.js +0 -14
  75. package/dist/cjs/components/iconify/Iconify.js.map +0 -1
  76. package/dist/cjs/context/GlobalContext.js +0 -65
  77. package/dist/cjs/context/GlobalContext.js.map +0 -1
  78. package/dist/cjs/form/ChildEventCard.js +0 -60
  79. package/dist/cjs/form/ChildEventCard.js.map +0 -1
  80. package/dist/cjs/form/ChildEventDialog.js +0 -30
  81. package/dist/cjs/form/ChildEventDialog.js.map +0 -1
  82. package/dist/cjs/form/ChildEvents.js +0 -17
  83. package/dist/cjs/form/ChildEvents.js.map +0 -1
  84. package/dist/cjs/form/ContactPerson.js +0 -40
  85. package/dist/cjs/form/ContactPerson.js.map +0 -1
  86. package/dist/cjs/form/EmailConfirmation.js +0 -28
  87. package/dist/cjs/form/EmailConfirmation.js.map +0 -1
  88. package/dist/cjs/form/MerchandiseSelection.js +0 -17
  89. package/dist/cjs/form/MerchandiseSelection.js.map +0 -1
  90. package/dist/cjs/form/OrderSuccess.js +0 -57
  91. package/dist/cjs/form/OrderSuccess.js.map +0 -1
  92. package/dist/cjs/form/Payment.js +0 -214
  93. package/dist/cjs/form/Payment.js.map +0 -1
  94. package/dist/cjs/form/PaymentOverviewBox.js +0 -413
  95. package/dist/cjs/form/PaymentOverviewBox.js.map +0 -1
  96. package/dist/cjs/form/PaymentPending.js +0 -26
  97. package/dist/cjs/form/PaymentPending.js.map +0 -1
  98. package/dist/cjs/form/PaymentSuccess.js +0 -203
  99. package/dist/cjs/form/PaymentSuccess.js.map +0 -1
  100. package/dist/cjs/form/ReleaseCountdown.js +0 -34
  101. package/dist/cjs/form/ReleaseCountdown.js.map +0 -1
  102. package/dist/cjs/form/ReleaseWithMerchandise.js +0 -130
  103. package/dist/cjs/form/ReleaseWithMerchandise.js.map +0 -1
  104. package/dist/cjs/form/ScriptLoader.js +0 -21
  105. package/dist/cjs/form/ScriptLoader.js.map +0 -1
  106. package/dist/cjs/form/Shipping.js +0 -119
  107. package/dist/cjs/form/Shipping.js.map +0 -1
  108. package/dist/cjs/form/TicketForm.js +0 -470
  109. package/dist/cjs/form/TicketForm.js.map +0 -1
  110. package/dist/cjs/form/TicketSelection.js +0 -177
  111. package/dist/cjs/form/TicketSelection.js.map +0 -1
  112. package/dist/cjs/form/TicketSelectionMap.js +0 -67
  113. package/dist/cjs/form/TicketSelectionMap.js.map +0 -1
  114. package/dist/cjs/form/TicketWithMerchandiseSelection.js +0 -121
  115. package/dist/cjs/form/TicketWithMerchandiseSelection.js.map +0 -1
  116. package/dist/cjs/form/TimeslotSelection.js +0 -68
  117. package/dist/cjs/form/TimeslotSelection.js.map +0 -1
  118. package/dist/cjs/form/extra-field/ExtraField.js +0 -20
  119. package/dist/cjs/form/extra-field/ExtraField.js.map +0 -1
  120. package/dist/cjs/form/extra-field/ReleaseExtraFields.js +0 -60
  121. package/dist/cjs/form/extra-field/ReleaseExtraFields.js.map +0 -1
  122. package/dist/cjs/form/index.js +0 -69
  123. package/dist/cjs/form/index.js.map +0 -1
  124. package/dist/cjs/form/payment/FeeBox.js +0 -42
  125. package/dist/cjs/form/payment/FeeBox.js.map +0 -1
  126. package/dist/cjs/form/payment/PaymentOverviewCheckbox.js +0 -48
  127. package/dist/cjs/form/payment/PaymentOverviewCheckbox.js.map +0 -1
  128. package/dist/cjs/form/payment/PaymentSkeleton.js +0 -14
  129. package/dist/cjs/form/payment/PaymentSkeleton.js.map +0 -1
  130. package/dist/cjs/form/product/ProductCard.js +0 -61
  131. package/dist/cjs/form/product/ProductCard.js.map +0 -1
  132. package/dist/cjs/form/product/ProductVariantsDialog.js +0 -173
  133. package/dist/cjs/form/product/ProductVariantsDialog.js.map +0 -1
  134. package/dist/cjs/form/shipping/ShippingSkeleton.js +0 -14
  135. package/dist/cjs/form/shipping/ShippingSkeleton.js.map +0 -1
  136. package/dist/cjs/form/style.js +0 -50
  137. package/dist/cjs/form/style.js.map +0 -1
  138. package/dist/cjs/form/timeslot/TimeslotCalendar.js +0 -57
  139. package/dist/cjs/form/timeslot/TimeslotCalendar.js.map +0 -1
  140. package/dist/cjs/hooks/data/useActiveEventProducts.js +0 -22
  141. package/dist/cjs/hooks/data/useActiveEventProducts.js.map +0 -1
  142. package/dist/cjs/hooks/data/useAllowedPaymentMethods.js +0 -22
  143. package/dist/cjs/hooks/data/useAllowedPaymentMethods.js.map +0 -1
  144. package/dist/cjs/hooks/data/useEvent.js +0 -22
  145. package/dist/cjs/hooks/data/useEvent.js.map +0 -1
  146. package/dist/cjs/hooks/data/useEventActiveReleases.js +0 -26
  147. package/dist/cjs/hooks/data/useEventActiveReleases.js.map +0 -1
  148. package/dist/cjs/hooks/data/useEventShippingMethods.js +0 -22
  149. package/dist/cjs/hooks/data/useEventShippingMethods.js.map +0 -1
  150. package/dist/cjs/hooks/data/useEventTimeslots.js +0 -23
  151. package/dist/cjs/hooks/data/useEventTimeslots.js.map +0 -1
  152. package/dist/cjs/hooks/useCountdown.js +0 -40
  153. package/dist/cjs/hooks/useCountdown.js.map +0 -1
  154. package/dist/cjs/hooks/useDebounce.js +0 -17
  155. package/dist/cjs/hooks/useDebounce.js.map +0 -1
  156. package/dist/cjs/hooks/useErrors.js +0 -28
  157. package/dist/cjs/hooks/useErrors.js.map +0 -1
  158. package/dist/cjs/hooks/useFirstRender.js +0 -14
  159. package/dist/cjs/hooks/useFirstRender.js.map +0 -1
  160. package/dist/cjs/hooks/useGlobal.js +0 -11
  161. package/dist/cjs/hooks/useGlobal.js.map +0 -1
  162. package/dist/cjs/hooks/useResponsive.js +0 -29
  163. package/dist/cjs/hooks/useResponsive.js.map +0 -1
  164. package/dist/cjs/index.js.map +0 -1
  165. package/dist/cjs/locales/cs.js +0 -163
  166. package/dist/cjs/locales/cs.js.map +0 -1
  167. package/dist/cjs/locales/en.js +0 -164
  168. package/dist/cjs/locales/en.js.map +0 -1
  169. package/dist/cjs/locales/es.js +0 -164
  170. package/dist/cjs/locales/es.js.map +0 -1
  171. package/dist/cjs/locales/index.js +0 -18
  172. package/dist/cjs/locales/index.js.map +0 -1
  173. package/dist/cjs/locales/pl.js +0 -164
  174. package/dist/cjs/locales/pl.js.map +0 -1
  175. package/dist/cjs/locales/sk.js +0 -164
  176. package/dist/cjs/locales/sk.js.map +0 -1
  177. package/dist/cjs/locales/uk.js +0 -164
  178. package/dist/cjs/locales/uk.js.map +0 -1
  179. package/dist/cjs/modules/event-timeslot.js +0 -12
  180. package/dist/cjs/modules/event-timeslot.js.map +0 -1
  181. package/dist/cjs/modules/event.js +0 -24
  182. package/dist/cjs/modules/event.js.map +0 -1
  183. package/dist/cjs/modules/order.js +0 -14
  184. package/dist/cjs/modules/order.js.map +0 -1
  185. package/dist/cjs/modules/promo-code.js +0 -13
  186. package/dist/cjs/modules/promo-code.js.map +0 -1
  187. package/dist/cjs/modules/shopping-cart.js +0 -16
  188. package/dist/cjs/modules/shopping-cart.js.map +0 -1
  189. package/dist/cjs/utils/axios.js +0 -20
  190. package/dist/cjs/utils/axios.js.map +0 -1
  191. package/dist/cjs/utils/data/cookie.js +0 -6
  192. package/dist/cjs/utils/data/cookie.js.map +0 -1
  193. package/dist/cjs/utils/data/currency.js +0 -9
  194. package/dist/cjs/utils/data/currency.js.map +0 -1
  195. package/dist/cjs/utils/data/event.js +0 -8
  196. package/dist/cjs/utils/data/event.js.map +0 -1
  197. package/dist/cjs/utils/data/extra-field.js +0 -16
  198. package/dist/cjs/utils/data/extra-field.js.map +0 -1
  199. package/dist/cjs/utils/data/gender.js +0 -9
  200. package/dist/cjs/utils/data/gender.js.map +0 -1
  201. package/dist/cjs/utils/data/global.js +0 -6
  202. package/dist/cjs/utils/data/global.js.map +0 -1
  203. package/dist/cjs/utils/data/gopay.js +0 -14
  204. package/dist/cjs/utils/data/gopay.js.map +0 -1
  205. package/dist/cjs/utils/data/language.js +0 -14
  206. package/dist/cjs/utils/data/language.js.map +0 -1
  207. package/dist/cjs/utils/data/lottie/bank-transfer.json.js +0 -20
  208. package/dist/cjs/utils/data/lottie/bank-transfer.json.js.map +0 -1
  209. package/dist/cjs/utils/data/promo-code.js +0 -8
  210. package/dist/cjs/utils/data/promo-code.js.map +0 -1
  211. package/dist/cjs/utils/data/shipping-method.js +0 -8
  212. package/dist/cjs/utils/data/shipping-method.js.map +0 -1
  213. package/dist/cjs/utils/formatNumber.js +0 -19
  214. package/dist/cjs/utils/formatNumber.js.map +0 -1
  215. package/dist/cjs/utils/global.js +0 -26
  216. package/dist/cjs/utils/global.js.map +0 -1
  217. package/dist/cjs/utils/gtm.js +0 -125
  218. package/dist/cjs/utils/gtm.js.map +0 -1
  219. package/dist/cjs/utils/isBrowser.js +0 -6
  220. package/dist/cjs/utils/isBrowser.js.map +0 -1
  221. package/dist/cjs/utils/place.js +0 -6
  222. package/dist/cjs/utils/place.js.map +0 -1
  223. package/dist/cjs/utils/price.js +0 -15
  224. package/dist/cjs/utils/price.js.map +0 -1
  225. package/dist/cjs/utils/product.js +0 -29
  226. package/dist/cjs/utils/product.js.map +0 -1
  227. package/dist/cjs/utils/translation.js +0 -6
  228. package/dist/cjs/utils/translation.js.map +0 -1
  229. package/dist/cjs/utils/url.js +0 -18
  230. package/dist/cjs/utils/url.js.map +0 -1
  231. package/dist/esm/components/ClientOnly.js +0 -15
  232. package/dist/esm/components/ClientOnly.js.map +0 -1
  233. package/dist/esm/components/CustomSkeleton.js +0 -11
  234. package/dist/esm/components/CustomSkeleton.js.map +0 -1
  235. package/dist/esm/components/Image.js +0 -52
  236. package/dist/esm/components/Image.js.map +0 -1
  237. package/dist/esm/components/Label.js +0 -61
  238. package/dist/esm/components/Label.js.map +0 -1
  239. package/dist/esm/components/TextIconLabel.js +0 -15
  240. package/dist/esm/components/TextIconLabel.js.map +0 -1
  241. package/dist/esm/components/TicketFormSkeleton.js +0 -51
  242. package/dist/esm/components/TicketFormSkeleton.js.map +0 -1
  243. package/dist/esm/components/Trans.js +0 -85
  244. package/dist/esm/components/Trans.js.map +0 -1
  245. package/dist/esm/components/animate/IconButtonAnimate.js +0 -27
  246. package/dist/esm/components/animate/IconButtonAnimate.js.map +0 -1
  247. package/dist/esm/components/animate/MotionContainer.js +0 -14
  248. package/dist/esm/components/animate/MotionContainer.js.map +0 -1
  249. package/dist/esm/components/animate/variants/bounce.js +0 -96
  250. package/dist/esm/components/animate/variants/bounce.js.map +0 -1
  251. package/dist/esm/components/animate/variants/container.js +0 -23
  252. package/dist/esm/components/animate/variants/container.js.map +0 -1
  253. package/dist/esm/components/animate/variants/transition.js +0 -14
  254. package/dist/esm/components/animate/variants/transition.js.map +0 -1
  255. package/dist/esm/components/confirm-dialog/ConfirmDialog.js +0 -20
  256. package/dist/esm/components/confirm-dialog/ConfirmDialog.js.map +0 -1
  257. package/dist/esm/components/hook-form/FormProvider.js +0 -10
  258. package/dist/esm/components/hook-form/FormProvider.js.map +0 -1
  259. package/dist/esm/components/hook-form/RHFCheckbox.js +0 -13
  260. package/dist/esm/components/hook-form/RHFCheckbox.js.map +0 -1
  261. package/dist/esm/components/hook-form/RHFDatePicker.js +0 -18
  262. package/dist/esm/components/hook-form/RHFDatePicker.js.map +0 -1
  263. package/dist/esm/components/hook-form/RHFPhone.js +0 -20
  264. package/dist/esm/components/hook-form/RHFPhone.js.map +0 -1
  265. package/dist/esm/components/hook-form/RHFRadioGroup.js +0 -25
  266. package/dist/esm/components/hook-form/RHFRadioGroup.js.map +0 -1
  267. package/dist/esm/components/hook-form/RHFSelect.js +0 -32
  268. package/dist/esm/components/hook-form/RHFSelect.js.map +0 -1
  269. package/dist/esm/components/hook-form/RHFTextField.js +0 -11
  270. package/dist/esm/components/hook-form/RHFTextField.js.map +0 -1
  271. package/dist/esm/components/iconify/Iconify.js +0 -10
  272. package/dist/esm/components/iconify/Iconify.js.map +0 -1
  273. package/dist/esm/context/GlobalContext.js +0 -62
  274. package/dist/esm/context/GlobalContext.js.map +0 -1
  275. package/dist/esm/form/ChildEventCard.js +0 -56
  276. package/dist/esm/form/ChildEventCard.js.map +0 -1
  277. package/dist/esm/form/ChildEventDialog.js +0 -26
  278. package/dist/esm/form/ChildEventDialog.js.map +0 -1
  279. package/dist/esm/form/ChildEvents.js +0 -13
  280. package/dist/esm/form/ChildEvents.js.map +0 -1
  281. package/dist/esm/form/ContactPerson.js +0 -36
  282. package/dist/esm/form/ContactPerson.js.map +0 -1
  283. package/dist/esm/form/EmailConfirmation.js +0 -24
  284. package/dist/esm/form/EmailConfirmation.js.map +0 -1
  285. package/dist/esm/form/MerchandiseSelection.js +0 -13
  286. package/dist/esm/form/MerchandiseSelection.js.map +0 -1
  287. package/dist/esm/form/OrderSuccess.js +0 -53
  288. package/dist/esm/form/OrderSuccess.js.map +0 -1
  289. package/dist/esm/form/Payment.js +0 -210
  290. package/dist/esm/form/Payment.js.map +0 -1
  291. package/dist/esm/form/PaymentOverviewBox.js +0 -409
  292. package/dist/esm/form/PaymentOverviewBox.js.map +0 -1
  293. package/dist/esm/form/PaymentPending.js +0 -22
  294. package/dist/esm/form/PaymentPending.js.map +0 -1
  295. package/dist/esm/form/PaymentSuccess.js +0 -199
  296. package/dist/esm/form/PaymentSuccess.js.map +0 -1
  297. package/dist/esm/form/ReleaseCountdown.js +0 -30
  298. package/dist/esm/form/ReleaseCountdown.js.map +0 -1
  299. package/dist/esm/form/ReleaseWithMerchandise.js +0 -126
  300. package/dist/esm/form/ReleaseWithMerchandise.js.map +0 -1
  301. package/dist/esm/form/ScriptLoader.js +0 -17
  302. package/dist/esm/form/ScriptLoader.js.map +0 -1
  303. package/dist/esm/form/Shipping.js +0 -115
  304. package/dist/esm/form/Shipping.js.map +0 -1
  305. package/dist/esm/form/TicketForm.js +0 -447
  306. package/dist/esm/form/TicketForm.js.map +0 -1
  307. package/dist/esm/form/TicketSelection.js +0 -173
  308. package/dist/esm/form/TicketSelection.js.map +0 -1
  309. package/dist/esm/form/TicketSelectionMap.js +0 -63
  310. package/dist/esm/form/TicketSelectionMap.js.map +0 -1
  311. package/dist/esm/form/TicketWithMerchandiseSelection.js +0 -117
  312. package/dist/esm/form/TicketWithMerchandiseSelection.js.map +0 -1
  313. package/dist/esm/form/TimeslotSelection.js +0 -64
  314. package/dist/esm/form/TimeslotSelection.js.map +0 -1
  315. package/dist/esm/form/extra-field/ExtraField.js +0 -16
  316. package/dist/esm/form/extra-field/ExtraField.js.map +0 -1
  317. package/dist/esm/form/extra-field/ReleaseExtraFields.js +0 -56
  318. package/dist/esm/form/extra-field/ReleaseExtraFields.js.map +0 -1
  319. package/dist/esm/form/index.js +0 -65
  320. package/dist/esm/form/index.js.map +0 -1
  321. package/dist/esm/form/payment/FeeBox.js +0 -38
  322. package/dist/esm/form/payment/FeeBox.js.map +0 -1
  323. package/dist/esm/form/payment/PaymentOverviewCheckbox.js +0 -44
  324. package/dist/esm/form/payment/PaymentOverviewCheckbox.js.map +0 -1
  325. package/dist/esm/form/payment/PaymentSkeleton.js +0 -10
  326. package/dist/esm/form/payment/PaymentSkeleton.js.map +0 -1
  327. package/dist/esm/form/product/ProductCard.js +0 -57
  328. package/dist/esm/form/product/ProductCard.js.map +0 -1
  329. package/dist/esm/form/product/ProductVariantsDialog.js +0 -169
  330. package/dist/esm/form/product/ProductVariantsDialog.js.map +0 -1
  331. package/dist/esm/form/shipping/ShippingSkeleton.js +0 -10
  332. package/dist/esm/form/shipping/ShippingSkeleton.js.map +0 -1
  333. package/dist/esm/form/style.js +0 -44
  334. package/dist/esm/form/style.js.map +0 -1
  335. package/dist/esm/form/timeslot/TimeslotCalendar.js +0 -53
  336. package/dist/esm/form/timeslot/TimeslotCalendar.js.map +0 -1
  337. package/dist/esm/hooks/data/useActiveEventProducts.js +0 -18
  338. package/dist/esm/hooks/data/useActiveEventProducts.js.map +0 -1
  339. package/dist/esm/hooks/data/useAllowedPaymentMethods.js +0 -18
  340. package/dist/esm/hooks/data/useAllowedPaymentMethods.js.map +0 -1
  341. package/dist/esm/hooks/data/useEvent.js +0 -18
  342. package/dist/esm/hooks/data/useEvent.js.map +0 -1
  343. package/dist/esm/hooks/data/useEventActiveReleases.js +0 -22
  344. package/dist/esm/hooks/data/useEventActiveReleases.js.map +0 -1
  345. package/dist/esm/hooks/data/useEventShippingMethods.js +0 -18
  346. package/dist/esm/hooks/data/useEventShippingMethods.js.map +0 -1
  347. package/dist/esm/hooks/data/useEventTimeslots.js +0 -19
  348. package/dist/esm/hooks/data/useEventTimeslots.js.map +0 -1
  349. package/dist/esm/hooks/useCountdown.js +0 -36
  350. package/dist/esm/hooks/useCountdown.js.map +0 -1
  351. package/dist/esm/hooks/useDebounce.js +0 -13
  352. package/dist/esm/hooks/useDebounce.js.map +0 -1
  353. package/dist/esm/hooks/useErrors.js +0 -24
  354. package/dist/esm/hooks/useErrors.js.map +0 -1
  355. package/dist/esm/hooks/useFirstRender.js +0 -12
  356. package/dist/esm/hooks/useFirstRender.js.map +0 -1
  357. package/dist/esm/hooks/useGlobal.js +0 -7
  358. package/dist/esm/hooks/useGlobal.js.map +0 -1
  359. package/dist/esm/hooks/useResponsive.js +0 -25
  360. package/dist/esm/hooks/useResponsive.js.map +0 -1
  361. package/dist/esm/index.js +0 -6
  362. package/dist/esm/index.js.map +0 -1
  363. package/dist/esm/locales/cs.js +0 -159
  364. package/dist/esm/locales/cs.js.map +0 -1
  365. package/dist/esm/locales/en.js +0 -160
  366. package/dist/esm/locales/en.js.map +0 -1
  367. package/dist/esm/locales/es.js +0 -160
  368. package/dist/esm/locales/es.js.map +0 -1
  369. package/dist/esm/locales/index.js +0 -7
  370. package/dist/esm/locales/index.js.map +0 -1
  371. package/dist/esm/locales/pl.js +0 -160
  372. package/dist/esm/locales/pl.js.map +0 -1
  373. package/dist/esm/locales/sk.js +0 -160
  374. package/dist/esm/locales/sk.js.map +0 -1
  375. package/dist/esm/locales/uk.js +0 -160
  376. package/dist/esm/locales/uk.js.map +0 -1
  377. package/dist/esm/modules/event-timeslot.js +0 -10
  378. package/dist/esm/modules/event-timeslot.js.map +0 -1
  379. package/dist/esm/modules/event.js +0 -19
  380. package/dist/esm/modules/event.js.map +0 -1
  381. package/dist/esm/modules/order.js +0 -10
  382. package/dist/esm/modules/order.js.map +0 -1
  383. package/dist/esm/modules/promo-code.js +0 -11
  384. package/dist/esm/modules/promo-code.js.map +0 -1
  385. package/dist/esm/modules/shopping-cart.js +0 -13
  386. package/dist/esm/modules/shopping-cart.js.map +0 -1
  387. package/dist/esm/utils/axios.js +0 -16
  388. package/dist/esm/utils/axios.js.map +0 -1
  389. package/dist/esm/utils/data/cookie.js +0 -4
  390. package/dist/esm/utils/data/cookie.js.map +0 -1
  391. package/dist/esm/utils/data/currency.js +0 -9
  392. package/dist/esm/utils/data/currency.js.map +0 -1
  393. package/dist/esm/utils/data/event.js +0 -8
  394. package/dist/esm/utils/data/event.js.map +0 -1
  395. package/dist/esm/utils/data/extra-field.js +0 -16
  396. package/dist/esm/utils/data/extra-field.js.map +0 -1
  397. package/dist/esm/utils/data/gender.js +0 -9
  398. package/dist/esm/utils/data/gender.js.map +0 -1
  399. package/dist/esm/utils/data/global.js +0 -4
  400. package/dist/esm/utils/data/global.js.map +0 -1
  401. package/dist/esm/utils/data/gopay.js +0 -14
  402. package/dist/esm/utils/data/gopay.js.map +0 -1
  403. package/dist/esm/utils/data/language.js +0 -14
  404. package/dist/esm/utils/data/language.js.map +0 -1
  405. package/dist/esm/utils/data/lottie/bank-transfer.json.js +0 -4
  406. package/dist/esm/utils/data/lottie/bank-transfer.json.js.map +0 -1
  407. package/dist/esm/utils/data/promo-code.js +0 -8
  408. package/dist/esm/utils/data/promo-code.js.map +0 -1
  409. package/dist/esm/utils/data/shipping-method.js +0 -8
  410. package/dist/esm/utils/data/shipping-method.js.map +0 -1
  411. package/dist/esm/utils/formatNumber.js +0 -17
  412. package/dist/esm/utils/formatNumber.js.map +0 -1
  413. package/dist/esm/utils/global.js +0 -21
  414. package/dist/esm/utils/global.js.map +0 -1
  415. package/dist/esm/utils/gtm.js +0 -112
  416. package/dist/esm/utils/gtm.js.map +0 -1
  417. package/dist/esm/utils/isBrowser.js +0 -4
  418. package/dist/esm/utils/isBrowser.js.map +0 -1
  419. package/dist/esm/utils/place.js +0 -4
  420. package/dist/esm/utils/place.js.map +0 -1
  421. package/dist/esm/utils/price.js +0 -12
  422. package/dist/esm/utils/price.js.map +0 -1
  423. package/dist/esm/utils/product.js +0 -27
  424. package/dist/esm/utils/product.js.map +0 -1
  425. package/dist/esm/utils/translation.js +0 -4
  426. package/dist/esm/utils/translation.js.map +0 -1
  427. package/dist/esm/utils/url.js +0 -16
  428. package/dist/esm/utils/url.js.map +0 -1
  429. package/dist/types/components/ClientOnly.d.ts +0 -5
  430. package/dist/types/components/CustomSkeleton.d.ts +0 -4
  431. package/dist/types/components/Image.d.ts +0 -14
  432. package/dist/types/components/Label.d.ts +0 -11
  433. package/dist/types/components/TextIconLabel.d.ts +0 -11
  434. package/dist/types/components/TicketFormSkeleton.d.ts +0 -3
  435. package/dist/types/components/Trans.d.ts +0 -12
  436. package/dist/types/components/animate/DialogAnimate.d.ts +0 -9
  437. package/dist/types/components/animate/IconButtonAnimate.d.ts +0 -7
  438. package/dist/types/components/animate/MotionContainer.d.ts +0 -10
  439. package/dist/types/components/animate/MotionLazyContainer.d.ts +0 -6
  440. package/dist/types/components/animate/MotionViewport.d.ts +0 -10
  441. package/dist/types/components/animate/TextAnimate.d.ts +0 -9
  442. package/dist/types/components/animate/index.d.ts +0 -7
  443. package/dist/types/components/animate/variants/actions.d.ts +0 -5
  444. package/dist/types/components/animate/variants/background.d.ts +0 -104
  445. package/dist/types/components/animate/variants/bounce.d.ts +0 -131
  446. package/dist/types/components/animate/variants/container.d.ts +0 -19
  447. package/dist/types/components/animate/variants/fade.d.ts +0 -217
  448. package/dist/types/components/animate/variants/flip.d.ts +0 -75
  449. package/dist/types/components/animate/variants/index.d.ts +0 -12
  450. package/dist/types/components/animate/variants/path.d.ts +0 -14
  451. package/dist/types/components/animate/variants/rotate.d.ts +0 -39
  452. package/dist/types/components/animate/variants/scale.d.ts +0 -75
  453. package/dist/types/components/animate/variants/slide.d.ts +0 -155
  454. package/dist/types/components/animate/variants/transition.d.ts +0 -13
  455. package/dist/types/components/animate/variants/zoom.d.ts +0 -199
  456. package/dist/types/components/confirm-dialog/ConfirmDialog.d.ts +0 -3
  457. package/dist/types/components/confirm-dialog/index.d.ts +0 -1
  458. package/dist/types/components/confirm-dialog/types.d.ts +0 -8
  459. package/dist/types/components/hook-form/FormProvider.d.ts +0 -9
  460. package/dist/types/components/hook-form/RHFAutocomplete.d.ts +0 -9
  461. package/dist/types/components/hook-form/RHFCheckbox.d.ts +0 -20
  462. package/dist/types/components/hook-form/RHFCodes.d.ts +0 -8
  463. package/dist/types/components/hook-form/RHFDatePicker.d.ts +0 -9
  464. package/dist/types/components/hook-form/RHFPhone.d.ts +0 -8
  465. package/dist/types/components/hook-form/RHFRadioGroup.d.ts +0 -14
  466. package/dist/types/components/hook-form/RHFSelect.d.ts +0 -23
  467. package/dist/types/components/hook-form/RHFSlider.d.ts +0 -8
  468. package/dist/types/components/hook-form/RHFSwitch.d.ts +0 -8
  469. package/dist/types/components/hook-form/RHFTextField.d.ts +0 -7
  470. package/dist/types/components/hook-form/index.d.ts +0 -9
  471. package/dist/types/components/iconify/Iconify.d.ts +0 -10
  472. package/dist/types/components/iconify/index.d.ts +0 -2
  473. package/dist/types/components/iconify/types.d.ts +0 -2
  474. package/dist/types/components/index.d.ts +0 -4
  475. package/dist/types/context/GlobalContext.d.ts +0 -16
  476. package/dist/types/form/ChildEventCard.d.ts +0 -7
  477. package/dist/types/form/ChildEventDialog.d.ts +0 -9
  478. package/dist/types/form/ChildEvents.d.ts +0 -8
  479. package/dist/types/form/ContactPerson.d.ts +0 -7
  480. package/dist/types/form/EmailConfirmation.d.ts +0 -8
  481. package/dist/types/form/MerchandiseSelection.d.ts +0 -9
  482. package/dist/types/form/OrderSuccess.d.ts +0 -9
  483. package/dist/types/form/Payment.d.ts +0 -7
  484. package/dist/types/form/PaymentOverviewBox.d.ts +0 -7
  485. package/dist/types/form/PaymentPending.d.ts +0 -3
  486. package/dist/types/form/PaymentSuccess.d.ts +0 -9
  487. package/dist/types/form/ReleaseCountdown.d.ts +0 -8
  488. package/dist/types/form/ReleaseWithMerchandise.d.ts +0 -12
  489. package/dist/types/form/ScriptLoader.d.ts +0 -3
  490. package/dist/types/form/Shipping.d.ts +0 -7
  491. package/dist/types/form/TicketForm.d.ts +0 -11
  492. package/dist/types/form/TicketSelection.d.ts +0 -7
  493. package/dist/types/form/TicketSelectionMap.d.ts +0 -7
  494. package/dist/types/form/TicketWithMerchandiseSelection.d.ts +0 -7
  495. package/dist/types/form/TimeslotSelection.d.ts +0 -7
  496. package/dist/types/form/extra-field/ExtraField.d.ts +0 -9
  497. package/dist/types/form/extra-field/ReleaseExtraFields.d.ts +0 -10
  498. package/dist/types/form/index.d.ts +0 -26
  499. package/dist/types/form/payment/FeeBox.d.ts +0 -8
  500. package/dist/types/form/payment/PaymentOverviewCheckbox.d.ts +0 -12
  501. package/dist/types/form/payment/PaymentSkeleton.d.ts +0 -7
  502. package/dist/types/form/product/ProductCard.d.ts +0 -9
  503. package/dist/types/form/product/ProductVariantsDialog.d.ts +0 -14
  504. package/dist/types/form/shipping/ShippingSkeleton.d.ts +0 -7
  505. package/dist/types/form/style.d.ts +0 -11
  506. package/dist/types/form/timeslot/TimeslotCalendar.d.ts +0 -12
  507. package/dist/types/hooks/data/useActiveEventProducts.d.ts +0 -8
  508. package/dist/types/hooks/data/useAllowedPaymentMethods.d.ts +0 -9
  509. package/dist/types/hooks/data/useEvent.d.ts +0 -8
  510. package/dist/types/hooks/data/useEventActiveReleases.d.ts +0 -8
  511. package/dist/types/hooks/data/useEventShippingMethods.d.ts +0 -8
  512. package/dist/types/hooks/data/useEventTimeslots.d.ts +0 -10
  513. package/dist/types/hooks/useCountdown.d.ts +0 -6
  514. package/dist/types/hooks/useDebounce.d.ts +0 -1
  515. package/dist/types/hooks/useErrors.d.ts +0 -4
  516. package/dist/types/hooks/useEventListener.d.ts +0 -5
  517. package/dist/types/hooks/useFirstRender.d.ts +0 -1
  518. package/dist/types/hooks/useGlobal.d.ts +0 -2
  519. package/dist/types/hooks/useResponsive.d.ts +0 -8
  520. package/dist/types/index.d.ts +0 -4
  521. package/dist/types/locales/cs.d.ts +0 -157
  522. package/dist/types/locales/en.d.ts +0 -158
  523. package/dist/types/locales/es.d.ts +0 -158
  524. package/dist/types/locales/index.d.ts +0 -6
  525. package/dist/types/locales/pl.d.ts +0 -158
  526. package/dist/types/locales/sk.d.ts +0 -158
  527. package/dist/types/locales/uk.d.ts +0 -158
  528. package/dist/types/modules/event-timeslot.d.ts +0 -2
  529. package/dist/types/modules/event.d.ts +0 -5
  530. package/dist/types/modules/order.d.ts +0 -7
  531. package/dist/types/modules/promo-code.d.ts +0 -1
  532. package/dist/types/modules/shopping-cart.d.ts +0 -4
  533. package/dist/types/utils/axios.d.ts +0 -2
  534. package/dist/types/utils/data/cookie.d.ts +0 -1
  535. package/dist/types/utils/data/currency.d.ts +0 -5
  536. package/dist/types/utils/data/event.d.ts +0 -4
  537. package/dist/types/utils/data/extra-field.d.ts +0 -11
  538. package/dist/types/utils/data/gender.d.ts +0 -5
  539. package/dist/types/utils/data/global.d.ts +0 -1
  540. package/dist/types/utils/data/gopay.d.ts +0 -10
  541. package/dist/types/utils/data/language.d.ts +0 -10
  542. package/dist/types/utils/data/order.d.ts +0 -4
  543. package/dist/types/utils/data/product.d.ts +0 -3
  544. package/dist/types/utils/data/promo-code.d.ts +0 -4
  545. package/dist/types/utils/data/shipping-method.d.ts +0 -4
  546. package/dist/types/utils/data/shopping-cart.d.ts +0 -5
  547. package/dist/types/utils/formatNumber.d.ts +0 -8
  548. package/dist/types/utils/global.d.ts +0 -4
  549. package/dist/types/utils/gtm.d.ts +0 -28
  550. package/dist/types/utils/isBrowser.d.ts +0 -1
  551. package/dist/types/utils/place.d.ts +0 -2
  552. package/dist/types/utils/price.d.ts +0 -5
  553. package/dist/types/utils/product.d.ts +0 -3
  554. package/dist/types/utils/translation.d.ts +0 -2
  555. package/dist/types/utils/types/animate.d.ts +0 -26
  556. package/dist/types/utils/types/artist.type.d.ts +0 -17
  557. package/dist/types/utils/types/company.type.d.ts +0 -12
  558. package/dist/types/utils/types/country.type.d.ts +0 -39
  559. package/dist/types/utils/types/customer.type.d.ts +0 -10
  560. package/dist/types/utils/types/event-product.type.d.ts +0 -15
  561. package/dist/types/utils/types/event-timeslot.type.d.ts +0 -15
  562. package/dist/types/utils/types/event.type.d.ts +0 -67
  563. package/dist/types/utils/types/extra-field.type.d.ts +0 -18
  564. package/dist/types/utils/types/file.type.d.ts +0 -6
  565. package/dist/types/utils/types/global.type.d.ts +0 -76
  566. package/dist/types/utils/types/gtm.type.d.ts +0 -90
  567. package/dist/types/utils/types/locale.type.d.ts +0 -4
  568. package/dist/types/utils/types/order.type.d.ts +0 -69
  569. package/dist/types/utils/types/palette.type.d.ts +0 -1
  570. package/dist/types/utils/types/payment-method.type.d.ts +0 -23
  571. package/dist/types/utils/types/pixel.type.d.ts +0 -7
  572. package/dist/types/utils/types/place.type.d.ts +0 -19
  573. package/dist/types/utils/types/product-image.type.d.ts +0 -5
  574. package/dist/types/utils/types/product-parameter.type.d.ts +0 -7
  575. package/dist/types/utils/types/product-variant.type.d.ts +0 -9
  576. package/dist/types/utils/types/product.type.d.ts +0 -57
  577. package/dist/types/utils/types/project.type.d.ts +0 -24
  578. package/dist/types/utils/types/promo-code.type.d.ts +0 -15
  579. package/dist/types/utils/types/release-category.type.d.ts +0 -17
  580. package/dist/types/utils/types/release.type.d.ts +0 -28
  581. package/dist/types/utils/types/shipping-method.type.d.ts +0 -11
  582. package/dist/types/utils/types/shopping-cart.type.d.ts +0 -78
  583. package/dist/types/utils/types/ticket.type.d.ts +0 -110
  584. package/dist/types/utils/types/translation.type.d.ts +0 -18
  585. package/dist/types/utils/types/user.type.d.ts +0 -9
  586. package/dist/types/utils/url.d.ts +0 -1
  587. package/src/form/MerchandiseSelection.tsx +0 -29
  588. package/src/form/ReleaseWithMerchandise.tsx +0 -230
  589. /package/src/form/{TicketSelectionMap.tsx → tickets/TicketSelectionMap.tsx} +0 -0
@@ -0,0 +1,61 @@
1
+ import React from 'react';
2
+ import useEmblaCarousel from 'embla-carousel-react';
3
+ import { Box, SxProps } from '@mui/material';
4
+ import { useTheme } from '@mui/material/styles';
5
+ import { IEventProduct } from '@utils/types/event-product.type';
6
+ import ProductCard from '@form/product/ProductCard';
7
+
8
+ interface Props {
9
+ sx?: SxProps;
10
+ eventProducts: IEventProduct[];
11
+ eventId: number;
12
+ }
13
+
14
+ const MerchandiseSlider: React.FC<Props> = ({ eventProducts, eventId, sx }) => {
15
+ const [emblaRef] = useEmblaCarousel();
16
+ const theme = useTheme();
17
+
18
+ return (
19
+ <Box sx={sx}>
20
+ <Box
21
+ sx={{
22
+ overflow: 'hidden',
23
+ padding: theme.spacing(8, 3),
24
+ margin: theme.spacing(-8, -3),
25
+ }}
26
+ >
27
+ <Box ref={emblaRef} className="embla" sx={{ overflow: 'visible' }}>
28
+ <Box
29
+ className="embla__container"
30
+ sx={{
31
+ display: 'flex',
32
+ }}
33
+ >
34
+ {eventProducts.map((eventProduct, index) => (
35
+ <Box
36
+ key={`event-slide-${index}`}
37
+ className="embla__slide"
38
+ sx={{
39
+ flex: `0 0 ${eventProducts.length > 1 ? '78%' : '100%'}`,
40
+ minWidth: 0,
41
+ margin: `0 ${theme.spacing(1)}`,
42
+ transition: 'opacity 0.2s ease',
43
+ [theme.breakpoints.up('sm')]: {
44
+ flex: '0 0 43%',
45
+ },
46
+ [theme.breakpoints.up('md')]: {
47
+ flex: '0 0 33.3333%',
48
+ },
49
+ }}
50
+ >
51
+ <ProductCard eventProduct={eventProduct} eventId={eventId} isOnlyMerchandise />
52
+ </Box>
53
+ ))}
54
+ </Box>
55
+ </Box>
56
+ </Box>
57
+ </Box>
58
+ );
59
+ };
60
+
61
+ export default MerchandiseSlider;
@@ -63,16 +63,6 @@ const FeeBox: React.FC<Props> = ({ event, align = 'left' }) => {
63
63
  </Stack>
64
64
  <Typography variant="subtitle1">{fCurrency(values.total, lang, event.currency)}</Typography>
65
65
  </Stack>
66
- {!!values.totalFee && (
67
- <Typography
68
- variant="caption"
69
- sx={{
70
- color: (theme) => theme.palette.grey.A700,
71
- }}
72
- >
73
- {t('form.labels.with_fee')}
74
- </Typography>
75
- )}
76
66
  </Box>
77
67
  );
78
68
  };
@@ -1,14 +1,6 @@
1
- import React, { JSX, useState } from 'react';
2
- import {
3
- Dialog,
4
- DialogContent,
5
- DialogTitle,
6
- IconButton,
7
- Link,
8
- Stack,
9
- Typography,
10
- } from '@mui/material';
11
- import { RHFCheckbox } from '@components/hook-form';
1
+ import React, { JSX } from 'react';
2
+ import { Button, Stack, Typography } from '@mui/material';
3
+ import { Controller, useFormContext } from 'react-hook-form';
12
4
  import useGlobal from '@hooks/useGlobal.ts';
13
5
  import { Iconify } from '@components';
14
6
 
@@ -16,70 +8,55 @@ interface Props {
16
8
  checkboxName: string;
17
9
  label: string;
18
10
  value: string | JSX.Element;
19
- modal: {
20
- title: string;
21
- description: string | JSX.Element;
22
- };
23
11
  }
24
12
 
25
- const PaymentOverviewCheckbox: React.FC<Props> = ({ checkboxName, label, value, modal }) => {
13
+ const PaymentOverviewCheckbox: React.FC<Props> = ({ checkboxName, label, value }) => {
26
14
  const { t } = useGlobal();
27
- const [open, setOpen] = useState(false);
28
-
29
- const handleOpen = (e: React.MouseEvent<HTMLAnchorElement>) => {
30
- e.preventDefault();
31
- e.stopPropagation();
32
- setOpen(true);
33
- };
34
- const handleClose = () => setOpen(false);
15
+ const { control } = useFormContext();
35
16
 
36
17
  return (
37
18
  <>
38
- <RHFCheckbox
19
+ <Controller
39
20
  name={checkboxName}
40
- label={
21
+ control={control}
22
+ render={({ field }) => (
41
23
  <Stack
42
24
  direction="row"
43
25
  justifyContent="space-between"
44
26
  alignItems="center"
45
27
  spacing={1}
46
- sx={{ width: '100%' }}
28
+ sx={{ width: '100%', mb: 0.5 }}
47
29
  >
48
30
  <Typography variant="caption" sx={{ flex: 1 }}>
49
31
  {label}
50
32
  </Typography>
51
- <Stack alignItems="flex-end">
52
- <Typography variant="caption" fontWeight="600">
53
- {value}
54
- </Typography>
55
- <Link variant="caption" onClick={handleOpen}>
56
- {t('more_info')}
57
- </Link>
33
+ <Stack direction="row" alignItems="center" spacing={1}>
34
+ <Typography variant="caption">{value}</Typography>
35
+ {!field.value && (
36
+ <Button
37
+ variant="outlined"
38
+ color="primary"
39
+ size="small"
40
+ startIcon={<Iconify icon="carbon:add" />}
41
+ onClick={(event) => {
42
+ event.preventDefault();
43
+ event.stopPropagation();
44
+ field.onChange(true);
45
+ }}
46
+ sx={{
47
+ borderRadius: 1,
48
+ textTransform: 'none',
49
+ px: 1.5,
50
+ minWidth: 96,
51
+ }}
52
+ >
53
+ {t('add')}
54
+ </Button>
55
+ )}
58
56
  </Stack>
59
57
  </Stack>
60
- }
61
- sx={{
62
- width: 'calc(100% + 11px)',
63
- mb: 0.5,
64
- '& > .MuiTypography-root': {
65
- width: '100%',
66
- },
67
- }}
58
+ )}
68
59
  />
69
-
70
- <Dialog open={open} onClose={handleClose} maxWidth="sm" fullWidth>
71
- <DialogTitle
72
- sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}
73
- >
74
- {modal.title}
75
- <IconButton onClick={handleClose} size="small">
76
- <Iconify icon="carbon:close" />
77
- </IconButton>
78
- </DialogTitle>
79
- <DialogContent>
80
- <Typography variant="body2">{modal.description}</Typography>
81
- </DialogContent>
82
- </Dialog>
83
60
  </>
84
61
  );
85
62
  };
@@ -1,5 +1,4 @@
1
- import { Button, Card, Stack, Typography } from '@mui/material';
2
- import { Iconify } from '@components/iconify';
1
+ import { Box, Button, Card, Stack, Typography } from '@mui/material';
3
2
  import Image from '@components/Image';
4
3
  import { IEventProduct } from '@utils/types/event-product.type';
5
4
  import React, { useMemo, useState } from 'react';
@@ -9,6 +8,7 @@ import { useFormContext, useWatch } from 'react-hook-form';
9
8
  import { ITicketForm, ITicketFormTicket } from '@utils/types/ticket.type';
10
9
  import { getSelectedQuantityByVariant } from '@utils/product';
11
10
  import useGlobal from '@hooks/useGlobal.ts';
11
+ import { fCurrency } from '@utils/formatNumber';
12
12
 
13
13
  interface Props {
14
14
  eventProduct: IEventProduct;
@@ -17,72 +17,77 @@ interface Props {
17
17
  }
18
18
 
19
19
  const ProductCard: React.FC<Props> = ({ eventProduct, eventId, isOnlyMerchandise }) => {
20
- const { t } = useGlobal();
20
+ const { t, lang } = useGlobal();
21
21
  const [openVariantDialog, setOpenVariantDialog] = useState<boolean>(false);
22
- const { setValue } = useFormContext<ITicketForm>();
22
+ const { setValue, getValues } = useFormContext<ITicketForm>();
23
23
  const tickets: ITicketFormTicket[] = useWatch({ name: `tickets.${eventId}`, defaultValue: [] });
24
24
  const products: IEventProductForm[] = useWatch({ name: `products.${eventId}`, defaultValue: [] });
25
25
 
26
- const onSelectVariant = (selectedVariant: IEventProductForm) => {
27
- const variant = products.find(
28
- (product) => product.eventProductVariantId === selectedVariant.eventProductVariantId
29
- );
26
+ const onSelectVariant = (selectedVariants: IEventProductForm[] | IEventProductForm) => {
27
+ const normalized = Array.isArray(selectedVariants) ? selectedVariants : [selectedVariants];
28
+ const currentProducts =
29
+ (getValues(`products.${eventId}`) as IEventProductForm[] | undefined) ?? [];
30
+ const nextProducts = [...currentProducts];
31
+
32
+ normalized.forEach((selectedVariant) => {
33
+ const index = nextProducts.findIndex(
34
+ (product) => product.eventProductVariantId === selectedVariant.eventProductVariantId
35
+ );
30
36
 
31
- if (variant) {
32
- if (selectedVariant.quantity === 0) {
33
- setValue(
34
- `products.${eventId}`,
35
- products.filter(
36
- (product) => product.eventProductVariantId !== variant.eventProductVariantId
37
- )
38
- );
37
+ if (index >= 0) {
38
+ if (selectedVariant.quantity <= 0) {
39
+ nextProducts.splice(index, 1);
40
+ } else {
41
+ nextProducts[index] = {
42
+ ...nextProducts[index],
43
+ quantity: selectedVariant.quantity,
44
+ };
45
+ }
39
46
  } else {
40
- setValue(
41
- `products.${eventId}`,
42
- products.map((product) => {
43
- if (product.eventProductVariantId === selectedVariant.eventProductVariantId) {
44
- return {
45
- ...product,
46
- quantity: selectedVariant.quantity,
47
- };
48
- }
49
- return product;
50
- })
51
- );
47
+ if (selectedVariant.quantity > 0) {
48
+ nextProducts.push(selectedVariant);
49
+ }
52
50
  }
53
- } else if (selectedVariant.quantity !== 0) {
54
- setValue(`products.${eventId}`, [...products, selectedVariant]);
55
- }
51
+ });
52
+
53
+ setValue(`products.${eventId}`, nextProducts, {
54
+ shouldDirty: true,
55
+ shouldValidate: true,
56
+ });
56
57
  };
57
58
 
58
- const eventNotEmpty = useMemo(() => products.some((product) => product?.quantity), [products]);
59
+ const eventNotEmpty = useMemo(() => {
60
+ const variantIds = new Set(eventProduct.eventProductVariants.map((variant) => variant.id));
61
+ return products.some(
62
+ (product) => product?.quantity && variantIds.has(product.eventProductVariantId)
63
+ );
64
+ }, [products, eventProduct.eventProductVariants]);
59
65
 
60
66
  return (
61
67
  <>
62
- <Card sx={{ p: 2 }}>
63
- <Stack spacing={1}>
64
- <Image src={eventProduct.product.previewImage.url} ratio="1/1" sx={{ borderRadius: 2 }} />
65
- <Typography variant="h5">{eventProduct.product.name}</Typography>
66
- <Typography
67
- variant="caption"
68
- dangerouslySetInnerHTML={{ __html: eventProduct.product.description }}
69
- sx={{
70
- height: 44,
71
- textOverflow: 'ellipsis',
72
- overflow: 'hidden',
73
- display: '-webkit-box',
74
- WebkitLineClamp: 2,
75
- WebkitBoxOrient: 'vertical',
76
- }}
68
+ <Card
69
+ sx={{
70
+ p: 0,
71
+ borderRadius: 0,
72
+ boxShadow: 'none',
73
+ background: 'none',
74
+ }}
75
+ >
76
+ <Stack spacing={0}>
77
+ <Image
78
+ src={eventProduct.product.previewImage.url}
79
+ ratio="16/9"
80
+ sx={{ borderRadius: 2 }}
77
81
  />
78
- <Button
79
- variant="contained"
80
- onClick={() => setOpenVariantDialog(true)}
81
- fullWidth
82
- startIcon={
83
- eventNotEmpty ? <Iconify icon="eva:edit-fill" /> : <Iconify icon="eva:plus-fill" />
84
- }
85
- >
82
+ <Typography variant="h5">{eventProduct.product.name}</Typography>
83
+ <Box>
84
+ <Typography variant="h6" color="primary">
85
+ {eventProduct.product.priceWithVat > 0
86
+ ? fCurrency(eventProduct.product.priceWithVat, lang, eventProduct.product.currency)
87
+ : t('free')}
88
+ </Typography>
89
+ </Box>
90
+ <Button variant="outlined" onClick={() => setOpenVariantDialog(true)} fullWidth>
86
91
  {eventNotEmpty ? t('change') : t('add')}
87
92
  </Button>
88
93
  </Stack>