@eventlook/sdk 1.4.49 → 1.4.50

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 (84) hide show
  1. package/dist/cjs/form/PaymentOverviewBox.js +0 -6
  2. package/dist/cjs/form/PaymentOverviewBox.js.map +1 -1
  3. package/dist/cjs/form/ReleaseWithMerchandise.js +48 -57
  4. package/dist/cjs/form/ReleaseWithMerchandise.js.map +1 -1
  5. package/dist/cjs/form/TicketSelection.js +6 -5
  6. package/dist/cjs/form/TicketSelection.js.map +1 -1
  7. package/dist/cjs/form/TicketWithMerchandiseSelection.js +5 -3
  8. package/dist/cjs/form/TicketWithMerchandiseSelection.js.map +1 -1
  9. package/dist/cjs/form/services/index.js +1 -18
  10. package/dist/cjs/form/services/index.js.map +1 -1
  11. package/dist/cjs/hooks/useFirstRender.js +14 -0
  12. package/dist/cjs/hooks/useFirstRender.js.map +1 -0
  13. package/dist/esm/form/PaymentOverviewBox.js +0 -6
  14. package/dist/esm/form/PaymentOverviewBox.js.map +1 -1
  15. package/dist/esm/form/ReleaseWithMerchandise.js +49 -58
  16. package/dist/esm/form/ReleaseWithMerchandise.js.map +1 -1
  17. package/dist/esm/form/TicketSelection.js +6 -5
  18. package/dist/esm/form/TicketSelection.js.map +1 -1
  19. package/dist/esm/form/TicketWithMerchandiseSelection.js +6 -4
  20. package/dist/esm/form/TicketWithMerchandiseSelection.js.map +1 -1
  21. package/dist/esm/form/services/index.js +2 -19
  22. package/dist/esm/form/services/index.js.map +1 -1
  23. package/dist/esm/hooks/useFirstRender.js +12 -0
  24. package/dist/esm/hooks/useFirstRender.js.map +1 -0
  25. package/dist/types/locales/cs.d.ts +5 -1
  26. package/package.json +1 -1
  27. package/src/form/PaymentOverviewBox.tsx +11 -11
  28. package/src/form/services/index.tsx +36 -36
  29. package/dist/cjs/_virtual/_commonjsHelpers.js +0 -8
  30. package/dist/cjs/_virtual/_commonjsHelpers.js.map +0 -1
  31. package/dist/cjs/_virtual/index.js +0 -6
  32. package/dist/cjs/_virtual/index.js.map +0 -1
  33. package/dist/cjs/_virtual/index2.js +0 -6
  34. package/dist/cjs/_virtual/index2.js.map +0 -1
  35. package/dist/cjs/_virtual/index3.js +0 -6
  36. package/dist/cjs/_virtual/index3.js.map +0 -1
  37. package/dist/cjs/_virtual/react-is.development.js +0 -6
  38. package/dist/cjs/_virtual/react-is.development.js.map +0 -1
  39. package/dist/cjs/_virtual/react-is.development2.js +0 -6
  40. package/dist/cjs/_virtual/react-is.development2.js.map +0 -1
  41. package/dist/cjs/_virtual/react-is.production.js +0 -6
  42. package/dist/cjs/_virtual/react-is.production.js.map +0 -1
  43. package/dist/cjs/_virtual/react-is.production.min.js +0 -6
  44. package/dist/cjs/_virtual/react-is.production.min.js.map +0 -1
  45. package/dist/cjs/form/TicketQuantityControl.js +0 -51
  46. package/dist/cjs/form/TicketQuantityControl.js.map +0 -1
  47. package/dist/cjs/form/TicketSelectionMobile.js +0 -98
  48. package/dist/cjs/form/TicketSelectionMobile.js.map +0 -1
  49. package/dist/cjs/form/merchendise/MerchandiseSelection.js +0 -19
  50. package/dist/cjs/form/merchendise/MerchandiseSelection.js.map +0 -1
  51. package/dist/cjs/form/merchendise/MerchandiseSlider.js +0 -75
  52. package/dist/cjs/form/merchendise/MerchandiseSlider.js.map +0 -1
  53. package/dist/cjs/hooks/useConsentScrollOnDrawerOpen.js +0 -59
  54. package/dist/cjs/hooks/useConsentScrollOnDrawerOpen.js.map +0 -1
  55. package/dist/esm/_virtual/_commonjsHelpers.js +0 -6
  56. package/dist/esm/_virtual/_commonjsHelpers.js.map +0 -1
  57. package/dist/esm/_virtual/index.js +0 -4
  58. package/dist/esm/_virtual/index.js.map +0 -1
  59. package/dist/esm/_virtual/index2.js +0 -4
  60. package/dist/esm/_virtual/index2.js.map +0 -1
  61. package/dist/esm/_virtual/index3.js +0 -4
  62. package/dist/esm/_virtual/index3.js.map +0 -1
  63. package/dist/esm/_virtual/react-is.development.js +0 -4
  64. package/dist/esm/_virtual/react-is.development.js.map +0 -1
  65. package/dist/esm/_virtual/react-is.development2.js +0 -4
  66. package/dist/esm/_virtual/react-is.development2.js.map +0 -1
  67. package/dist/esm/_virtual/react-is.production.js +0 -4
  68. package/dist/esm/_virtual/react-is.production.js.map +0 -1
  69. package/dist/esm/_virtual/react-is.production.min.js +0 -4
  70. package/dist/esm/_virtual/react-is.production.min.js.map +0 -1
  71. package/dist/esm/form/TicketQuantityControl.js +0 -47
  72. package/dist/esm/form/TicketQuantityControl.js.map +0 -1
  73. package/dist/esm/form/TicketSelectionMobile.js +0 -94
  74. package/dist/esm/form/TicketSelectionMobile.js.map +0 -1
  75. package/dist/esm/form/merchendise/MerchandiseSelection.js +0 -15
  76. package/dist/esm/form/merchendise/MerchandiseSelection.js.map +0 -1
  77. package/dist/esm/form/merchendise/MerchandiseSlider.js +0 -71
  78. package/dist/esm/form/merchendise/MerchandiseSlider.js.map +0 -1
  79. package/dist/esm/hooks/useConsentScrollOnDrawerOpen.js +0 -55
  80. package/dist/esm/hooks/useConsentScrollOnDrawerOpen.js.map +0 -1
  81. package/dist/types/form/PaymentOverviewDrawer.d.ts +0 -8
  82. package/dist/types/form/merchendise/MerchandiseSelection.d.ts +0 -9
  83. package/dist/types/form/merchendise/MerchandiseSlider.d.ts +0 -10
  84. package/dist/types/form/merchendise/MerchendiseSlider.d.ts +0 -0
@@ -347,12 +347,6 @@ const PaymentOverviewBox = ({ event: event$1, withoutPadding, hideBuyButton }) =
347
347
  React.createElement(material.Stack, { className: "overview-card__order-info", sx: { p: { xs: withoutPadding ? 0 : 2, md: 2 } }, pt: { xs: 0, sm: 2 }, spacing: 0.75, useFlexGap: true },
348
348
  !!selectedTickets.length && !isMobile && React.createElement(material.Divider, { sx: { borderStyle: 'dashed' } }),
349
349
  !!selectedTickets.length && (React.createElement(material.Stack, { spacing: 0.5 },
350
- React.createElement(PaymentOverviewCheckbox.default, { checkboxName: "ticketInsurance", label: t('event.tickets.insurance.label'), value: React.createElement(React.Fragment, null,
351
- ticketInsurance && totalItemCount.totalTickets > 0 ? '' : '+ ',
352
- formatNumber.fCurrency(ticketInsurancePricePerUnit, lang, event$1.currency),
353
- " /",
354
- ' ',
355
- t('event.tickets.insurance.per_ticket')) }),
356
350
  React.createElement(PaymentOverviewCheckbox.default, { checkboxName: "smsNotification", label: t('event.tickets.sms_notification.label'), value: React.createElement(React.Fragment, null,
357
351
  smsNotification && totalItemCount.totalTickets > 0 ? '' : '+ ',
358
352
  formatNumber.fCurrency(smsNotificationPrice, lang, event$1.currency)) }),
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentOverviewBox.js","sources":["../../../src/form/PaymentOverviewBox.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Iconify, Image, TextIconLabel } from '@components';\nimport { Box, Divider, Grid, Stack, Typography } from '@mui/material';\nimport PaymentOverviewCheckbox from '@form/payment/PaymentOverviewCheckbox.tsx';\nimport locationIcon from '@iconify/icons-carbon/location';\nimport { getPlaceAsString } from '@utils/place';\nimport { LoadingButton } from '@mui/lab';\nimport { OverviewCard } from '@form/style';\nimport { IEvent } from '@utils/types/event.type';\nimport { useFormContext, useWatch } from 'react-hook-form';\nimport { ITicketForm, ITicketFormTicket } from '@utils/types/ticket.type';\nimport useEventActiveReleases from '@hooks/data/useEventActiveReleases';\nimport useResponsive from '@hooks/useResponsive';\nimport { calculatePriceWithDiscount } from '@utils/price';\nimport FeeBox from '@form/payment/FeeBox';\nimport { IPromoCode } from '@utils/types/promo-code.type';\nimport { fCurrency } from '@utils/formatNumber';\nimport { IEventProductForm, ISelectedProductVariant } from '@utils/types/product.type';\nimport calendarIcon from '@iconify/icons-carbon/calendar';\nimport userIcon from '@iconify/icons-carbon/user';\nimport { EventType } from '@utils/data/event';\nimport dayjs from 'dayjs';\nimport useGlobal from '@hooks/useGlobal.ts';\nimport { calculateCart, getCart } from '@modules/shopping-cart.ts';\nimport { ICalculateShoppingCartDto, IShoppingCartDto } from '@utils/types/shopping-cart.type.ts';\nimport { PromoCodeTypes } from '@utils/data/promo-code.ts';\nimport useActiveEventProducts from '@hooks/data/useActiveEventProducts';\nimport useDebounce from '@hooks/useDebounce';\nimport { EVENTLOOK_ORDER_FORM_ID } from '@utils/data/global.ts';\n\ninterface Props {\n event: IEvent;\n withoutPadding?: boolean;\n hideBuyButton?: boolean;\n}\n\nconst PaymentOverviewBox: React.FC<Props> = ({ event, withoutPadding, hideBuyButton }) => {\n const { t, lang, options } = useGlobal();\n const xs = useResponsive('only', 'xs');\n const md = useResponsive('only', 'md');\n const isMobile = useResponsive('down', 'md');\n const { data: eventProducts } = useActiveEventProducts(event.id, true);\n const [shippingFee, setShippingFee] = useState(0);\n const { setValue, watch } = useFormContext<ITicketForm>();\n const values = watch();\n const {\n total,\n uuid,\n firstName,\n lastName,\n email,\n gender,\n birthdate,\n phone,\n promoCodes,\n shipping,\n totalFee,\n isPaymentVerify,\n ticketInsurance,\n smsNotification,\n smsNotificationPrice,\n ticketInsurancePricePerUnit,\n } = values;\n const tickets: Record<string, ITicketFormTicket[]> = useWatch({\n name: 'tickets',\n defaultValue: {},\n });\n const flatTickets: ITicketFormTicket[] = useMemo(() => Object.values(tickets).flat(), [tickets]);\n const products: Record<string, IEventProductForm[]> = useWatch({\n name: 'products',\n defaultValue: {},\n });\n const flatProducts: IEventProductForm[] = useMemo(\n () => Object.values(products).flat(),\n [products]\n );\n const eventTimeslotId: number | null = useWatch({ name: 'eventTimeslotId' });\n const paymentMethodId: number | null = useWatch({ name: 'paymentMethodId' });\n const paymentMethodOptionId: number | null = useWatch({ name: 'paymentMethodOptionId' });\n const { data: activeReleases } = useEventActiveReleases(\n event.id,\n true,\n event.type === EventType.RECURRING ? eventTimeslotId : undefined\n );\n const selectedTickets = useMemo(\n () =>\n flatTickets\n .filter((ticket) => ticket.quantity)\n .map((ticket) => {\n const release = activeReleases?.find((release) => release.id === ticket.releaseId);\n return {\n itemName: release ? `${release.releaseCategoryName} - ${release.name}` : '',\n price: release?.price || 0,\n quantity: ticket.quantity,\n releaseId: ticket.releaseId,\n products: ticket.products.map((product) => {\n const variant = release?.product?.eventProductVariants.find(\n (variant) => variant.id === product.eventProductVariantId\n );\n return {\n ...product,\n name:\n release?.product && variant\n ? `${release.product.product.name} - ${variant.productVariant.value}`\n : '',\n price: variant?.priceWithVat ?? product.price ?? 0,\n };\n }),\n };\n }),\n [flatTickets, activeReleases]\n );\n\n const selectedVariants = useMemo(() => {\n const selectedVariants: ISelectedProductVariant[] = [];\n for (const [eventId, productArray] of Object.entries(products))\n for (const product of productArray) {\n for (const eventProduct of eventProducts) {\n for (const variant of eventProduct.eventProductVariants) {\n if (product.eventProductVariantId === variant.id) {\n selectedVariants.push({\n variantId: product.eventProductVariantId,\n eventId: eventId,\n name: `${eventProduct.product.name} - ${variant.productVariant.value}`,\n price: variant.priceWithVat * product.quantity,\n quantity: product.quantity,\n });\n }\n }\n }\n }\n\n return selectedVariants;\n }, [event, flatProducts]);\n\n const getFee = useMemo(() => fCurrency(totalFee ?? 0, lang, event.currency), [totalFee]);\n\n const shoppingCartBody = useMemo<ICalculateShoppingCartDto>(\n () => ({\n uuid,\n eventId: event.id,\n tickets: Object.fromEntries(\n Object.entries(values.tickets).map(([id, items]) => [\n id,\n items\n .filter((item) => item.quantity && item.releaseId)\n .map((item) => ({\n ...item,\n eventTimeslotId: eventTimeslotId ?? null,\n })),\n ])\n ),\n products: Object.fromEntries(\n Object.entries(values.products).map(([id, items]) => [\n id,\n items.map(\n ({\n eventProductVariantId,\n productVariantId,\n quantity,\n price,\n excludedShippingMethodIds,\n }) => ({\n eventProductVariantId,\n productVariantId,\n quantity,\n price,\n excludedShippingMethodIds,\n })\n ),\n ])\n ),\n shipping: {\n shippingMethodId: shipping?.shippingMethodId ?? null,\n branchId: shipping?.branchId ?? null,\n price: shipping?.price ?? 0,\n },\n promoCodeIds: promoCodes?.map((p) => p.id) ?? null,\n language: lang,\n firstName,\n lastName,\n email,\n phone,\n birthdate,\n gender,\n paymentMethodId: paymentMethodId ? Number(paymentMethodId) : null,\n paymentMethodOptionId: paymentMethodOptionId ? Number(paymentMethodOptionId) : null,\n ticketInsurance,\n smsNotification,\n }),\n [\n uuid,\n event.id,\n tickets,\n products,\n shipping,\n promoCodes,\n lang,\n firstName,\n lastName,\n email,\n phone,\n birthdate,\n gender,\n paymentMethodId,\n paymentMethodOptionId,\n eventTimeslotId,\n ticketInsurance,\n smsNotification,\n ]\n );\n\n const debouncedShoppingCartBody = useDebounce(shoppingCartBody, 300);\n\n const setShoppingCartValues = (data: IShoppingCartDto, recalculate = false) => {\n if (!recalculate) {\n const hasTickets =\n !!data.tickets && typeof data.tickets === 'object' && Object.keys(data.tickets).length > 0;\n\n if (hasTickets) {\n setValue('tickets', data.tickets);\n }\n\n const hasProducts =\n !!data.products &&\n typeof data.products === 'object' &&\n Object.keys(data.products).length > 0;\n\n if (hasProducts) {\n setValue('products', data.products);\n }\n\n setValue('promoCodes', data.promoCodes || []);\n setValue('uuid', data.uuid);\n setValue('firstName', data.firstName || '');\n setValue('lastName', data.lastName || '');\n setValue('gender', data.gender || '');\n setValue('birthdate', data.birthdate ? dayjs(data.birthdate) : null);\n setValue('email', data.email || '');\n setValue('phone', data.phone || '');\n setValue('paymentMethodId', data.paymentMethodId ? data.paymentMethodId : null);\n setValue(\n 'paymentMethodOptionId',\n data.paymentMethodOptionId ? data.paymentMethodOptionId : null\n );\n setValue('shipping', data.shipping || { shippingMethodId: null, branchId: null, price: 0 });\n }\n const allTickets = Object.values(data?.tickets || {}).flat();\n if (allTickets.length && allTickets[0]?.eventTimeslotId) {\n setValue('eventTimeslotId', allTickets[0].eventTimeslotId);\n }\n setValue('originalPrice', data.originalPrice);\n setValue('total', data.totalPrice || 0);\n\n const feeTotal = (data.serviceFee ?? 0) + (data.paymentMethodFee ?? 0);\n setValue('totalFee', feeTotal);\n\n setShippingFee(data.shippingFee);\n setValue('ticketInsurance', data.ticketInsurance.enabled);\n setValue('ticketInsurancePrice', data.ticketInsurance.price);\n setValue('ticketInsurancePricePerUnit', data.ticketInsurance.pricePerUnit);\n setValue('smsNotification', data.smsNotification.enabled);\n setValue('smsNotificationPrice', data.smsNotification.price);\n };\n\n const totalItemCount = useMemo(() => {\n const count = {\n total: 0,\n totalTickets: 0,\n totalProducts: 0,\n };\n\n for (const ticket of flatTickets) {\n if (!ticket.quantity) continue;\n count.total += ticket.quantity;\n count.totalTickets += ticket.quantity;\n\n for (const product of ticket.products || []) {\n count.total += product.quantity;\n count.totalProducts += product.quantity;\n }\n }\n\n for (const product of flatProducts || []) {\n count.total += product.quantity;\n count.totalProducts += product.quantity;\n }\n\n return count;\n }, [flatTickets, flatProducts]);\n\n const promoCodesValues = useMemo(() => {\n const discount = {\n fixed: 0,\n fixedDevided: 0,\n fixedDevidedTickets: 0,\n fixedDevidedProducts: 0,\n percent: 0,\n ticketsDiscountFixed: 0,\n productDiscountFixed: 0,\n productDiscountPercent: 0,\n promoCodes: [] as IPromoCode[],\n };\n\n promoCodes.forEach((promoCode) => {\n const { type, applyDiscountToProducts, value } = promoCode;\n\n if (type === PromoCodeTypes.PERCENTAGE) {\n if (applyDiscountToProducts) {\n discount.productDiscountPercent += value;\n }\n discount.percent += value;\n } else if (type === PromoCodeTypes.FIXED) {\n if (applyDiscountToProducts) {\n discount.productDiscountFixed += value;\n } else {\n discount.ticketsDiscountFixed += value;\n }\n discount.fixed += value;\n }\n });\n\n discount.fixedDevidedProducts = discount.productDiscountFixed\n ? Math.ceil((discount.productDiscountFixed / totalItemCount.total) * 100) / 100\n : 0;\n\n discount.fixedDevidedTickets =\n Math.ceil((discount.ticketsDiscountFixed / totalItemCount.totalTickets) * 100) / 100;\n\n discount.fixedDevidedTickets += discount.fixedDevidedProducts;\n\n return discount;\n }, [promoCodes, flatTickets, flatProducts]);\n\n const hasOrderId = useMemo(() => {\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.has('id');\n }, []);\n\n useEffect(() => {\n if (!hasOrderId) {\n recalculateItems(debouncedShoppingCartBody);\n }\n }, [debouncedShoppingCartBody, hasOrderId]);\n\n /** Iframe code **/\n useEffect(() => {\n window.addEventListener('message', messageListener, false);\n return () => {\n window.removeEventListener('message', messageListener, false);\n };\n }, []);\n\n const messageListener = async (event: any) => {\n if (event.data.type === 'eventlookFrameScrollTop') {\n const dialog = document.getElementById('overview-card');\n if (dialog) {\n dialog.style.top = `${event.data.scrollTop}px`;\n }\n }\n };\n /** End Iframe code **/\n\n const recalculateItems = useCallback(async (body: ICalculateShoppingCartDto) => {\n try {\n const isInitial = !body.uuid;\n\n let response: any;\n if (isInitial) {\n const existing = localStorage.getItem('cartToken');\n const storedUuid =\n existing && existing !== 'undefined' && existing !== 'null' ? existing : null;\n response = await getCart(body.eventId, storedUuid);\n } else {\n response = await calculateCart(body);\n }\n\n const cart = response?.data;\n\n if (cart) {\n if (cart.uuid) {\n localStorage.setItem('cartToken', cart.uuid);\n }\n setShoppingCartValues(cart, !isInitial);\n }\n } catch (err) {\n console.error('Error calculating cart:', err);\n }\n }, []);\n\n // const removeProduct = (variant: ISelectedProductVariant) => {\n // const { eventId, variantId } = variant;\n // const list = Array.isArray(products[eventId]) ? [...products[eventId]] : [];\n\n // const idx = list.findIndex((p) => Number(p.eventProductVariantId) === Number(variantId));\n // if (idx === -1) return;\n // const item = list[idx];\n\n // if ((item.quantity ?? 0) <= 1) {\n // list.splice(idx, 1);\n // } else {\n // list[idx] = { ...item, quantity: (item.quantity ?? 1) - 1 };\n // }\n\n // const next = { ...products, [eventId]: list };\n\n // if (list.length === 0) {\n // const { [eventId]: _removed, ...rest } = next;\n // setValue('products', rest);\n // } else {\n // setValue('products', next);\n // }\n // };\n\n return (\n <OverviewCard id=\"overview-card\" stickyHeaderTop={options?.stickyHeaderTop || 0}>\n {!isMobile && (\n <Stack className=\"overview-card__event-info\" p={2} spacing={2}>\n <Typography variant=\"h6\">{event.name}</Typography>\n <Box>\n <Grid container spacing={1}>\n <Grid item xs={6}>\n <Image src={event.image.url} alt={event.name} ratio=\"16/9\" borderRadius={2} />\n </Grid>\n <Grid item xs={6}>\n <TextIconLabel\n icon={\n <Iconify\n icon={locationIcon}\n sx={{ mr: 0.5, mt: 0.5, width: 18, height: 18, minWidth: 18 }}\n />\n }\n value={<Box>{getPlaceAsString(event.place)}</Box>}\n sx={{ typography: 'body3', color: 'text.secondary', alignItems: 'flex-start' }}\n />\n </Grid>\n </Grid>\n </Box>\n <Divider sx={{ borderStyle: 'dashed' }} />\n <Stack\n direction={{ xs: 'column', sm: 'row', md: 'column', lg: 'row' }}\n spacing={2}\n p={2}\n divider={\n <Divider\n orientation={xs || md ? 'horizontal' : 'vertical'}\n flexItem\n sx={{ borderStyle: 'dashed' }}\n />\n }\n sx={{\n backgroundColor: (theme) =>\n theme.palette.mode === 'light' ? theme.palette.grey[100] : theme.palette.grey[900],\n borderRadius: 1,\n }}\n >\n <Box width={{ sm: '50%', md: '100%', lg: '50%' }}>\n <TextIconLabel\n icon={<Iconify icon={calendarIcon} sx={{ minWidth: 20, height: 20, mr: 1 }} />}\n value={t('form.labels.start_date')}\n sx={{ color: 'text.secondary' }}\n />\n <Typography variant=\"body2\" fontWeight={700}>\n {dayjs(event.startDate).format('DD.MM.YYYY HH:mm')}\n </Typography>\n </Box>\n <Box width={{ sm: '50%', md: '100%', lg: '50%' }}>\n <TextIconLabel\n icon={<Iconify icon={userIcon} sx={{ minWidth: 20, height: 20, mr: 1 }} />}\n value={t('form.labels.organizer')}\n sx={{ color: 'text.secondary' }}\n />\n <Typography variant=\"body2\" fontWeight={700}>\n {event.company.displayName}\n </Typography>\n </Box>\n </Stack>\n </Stack>\n )}\n <Stack\n className=\"overview-card__order-info\"\n sx={{ p: { xs: withoutPadding ? 0 : 2, md: 2 } }}\n pt={{ xs: 0, sm: 2 }}\n spacing={0.75}\n useFlexGap\n >\n {!!selectedTickets.length && !isMobile && <Divider sx={{ borderStyle: 'dashed' }} />}\n\n {!!selectedTickets.length && (\n <Stack spacing={0.5}>\n {/* TODO: Uncomment this when Colonnade response - must update terms and conditions and email info */}\n <PaymentOverviewCheckbox\n checkboxName=\"ticketInsurance\"\n label={t('event.tickets.insurance.label')}\n value={\n <>\n {ticketInsurance && totalItemCount.totalTickets > 0 ? '' : '+ '}\n {fCurrency(ticketInsurancePricePerUnit, lang, event.currency)} /{' '}\n {t('event.tickets.insurance.per_ticket')}\n </>\n }\n />\n <PaymentOverviewCheckbox\n checkboxName=\"smsNotification\"\n label={t('event.tickets.sms_notification.label')}\n value={\n <>\n {smsNotification && totalItemCount.totalTickets > 0 ? '' : '+ '}\n {fCurrency(smsNotificationPrice, lang, event.currency)}\n </>\n }\n />\n <Divider sx={{ borderStyle: 'dashed' }} />\n </Stack>\n )}\n {selectedTickets.map((ticket, index) => (\n <Box key={index}>\n <Stack direction=\"row\" justifyContent=\"space-between\" alignItems=\"center\" spacing={2}>\n <Typography variant=\"body2\">\n {ticket.quantity}x {ticket.itemName}\n </Typography>\n <Typography variant=\"body2\">\n {fCurrency(\n calculatePriceWithDiscount(\n ticket.price,\n promoCodesValues.percent,\n promoCodesValues.fixedDevidedTickets\n ) * Number(ticket.quantity),\n lang,\n event.currency\n )}\n </Typography>\n </Stack>\n {ticket.products.map((product, index2) => (\n <Stack\n key={index2}\n direction=\"row\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n spacing={2}\n >\n <Typography variant=\"body2\">\n - {product.quantity}x {product.name}\n </Typography>\n <Typography variant=\"body2\">\n {product.price > 0\n ? fCurrency(\n calculatePriceWithDiscount(\n product.price,\n promoCodesValues.productDiscountPercent,\n promoCodesValues.fixedDevidedProducts\n ? promoCodesValues.fixedDevidedProducts * product.quantity\n : 0\n ),\n lang,\n event.currency\n )\n : t('free')}\n </Typography>\n </Stack>\n ))}\n </Box>\n ))}\n {selectedVariants.map((variant, index) => (\n <Box key={index}>\n <Stack direction=\"row\" justifyContent=\"space-between\" alignItems=\"center\" spacing={2}>\n <Typography variant=\"body2\">\n {variant.quantity}x {variant.name}\n </Typography>\n <Typography variant=\"body2\">\n {fCurrency(\n calculatePriceWithDiscount(\n variant.price,\n promoCodesValues.productDiscountPercent,\n promoCodesValues.fixedDevidedProducts\n ? promoCodesValues.fixedDevidedProducts * variant.quantity\n : 0\n ),\n lang,\n event.currency\n )}\n </Typography>\n </Stack>\n </Box>\n ))}\n {!!shippingFee && (\n <Stack direction=\"row\" justifyContent=\"space-between\" alignItems=\"center\" spacing={2}>\n <Typography variant=\"body2\">{t('form.labels.shipping_fee')}</Typography>\n <Typography variant=\"body2\">{fCurrency(shippingFee, lang, event.currency)}</Typography>\n </Stack>\n )}\n {!!total && !!totalFee && (\n <Stack direction=\"row\" justifyContent=\"space-between\" alignItems=\"center\" spacing={2}>\n <Typography variant=\"body2\">{t('form.labels.service_fee')}</Typography>\n <Typography variant=\"body2\">{getFee}</Typography>\n </Stack>\n )}\n {((!!selectedTickets.length && isMobile) || !isMobile) && (\n <Divider sx={{ borderStyle: 'dashed' }} />\n )}\n {!hideBuyButton && (\n <>\n <FeeBox event={event} />\n <LoadingButton\n type=\"submit\"\n form={EVENTLOOK_ORDER_FORM_ID}\n variant=\"contained\"\n size=\"large\"\n fullWidth\n sx={{ height: { xs: 36, md: 40 } }}\n >\n {t(isPaymentVerify ? 'verify' : 'buy')}\n </LoadingButton>\n </>\n )}\n </Stack>\n </OverviewCard>\n );\n};\n\nexport default PaymentOverviewBox;\n"],"names":["event","useGlobal","useResponsive","useActiveEventProducts","useState","useFormContext","useWatch","useMemo","useEventActiveReleases","EventType","fCurrency","useDebounce","promoCode","PromoCodeTypes","useEffect","useCallback","getCart","calculateCart","OverviewCard","Stack","Typography","Box","Grid","Image","TextIconLabel","Iconify","getPlaceAsString","Divider","PaymentOverviewCheckbox","calculatePriceWithDiscount","FeeBox","LoadingButton","EVENTLOOK_ORDER_FORM_ID"],"mappings":"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"}
1
+ {"version":3,"file":"PaymentOverviewBox.js","sources":["../../../src/form/PaymentOverviewBox.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Iconify, Image, TextIconLabel } from '@components';\nimport { Box, Divider, Grid, Stack, Typography } from '@mui/material';\nimport PaymentOverviewCheckbox from '@form/payment/PaymentOverviewCheckbox.tsx';\nimport locationIcon from '@iconify/icons-carbon/location';\nimport { getPlaceAsString } from '@utils/place';\nimport { LoadingButton } from '@mui/lab';\nimport { OverviewCard } from '@form/style';\nimport { IEvent } from '@utils/types/event.type';\nimport { useFormContext, useWatch } from 'react-hook-form';\nimport { ITicketForm, ITicketFormTicket } from '@utils/types/ticket.type';\nimport useEventActiveReleases from '@hooks/data/useEventActiveReleases';\nimport useResponsive from '@hooks/useResponsive';\nimport { calculatePriceWithDiscount } from '@utils/price';\nimport FeeBox from '@form/payment/FeeBox';\nimport { IPromoCode } from '@utils/types/promo-code.type';\nimport { fCurrency } from '@utils/formatNumber';\nimport { IEventProductForm, ISelectedProductVariant } from '@utils/types/product.type';\nimport calendarIcon from '@iconify/icons-carbon/calendar';\nimport userIcon from '@iconify/icons-carbon/user';\nimport { EventType } from '@utils/data/event';\nimport dayjs from 'dayjs';\nimport useGlobal from '@hooks/useGlobal.ts';\nimport { calculateCart, getCart } from '@modules/shopping-cart.ts';\nimport { ICalculateShoppingCartDto, IShoppingCartDto } from '@utils/types/shopping-cart.type.ts';\nimport { PromoCodeTypes } from '@utils/data/promo-code.ts';\nimport useActiveEventProducts from '@hooks/data/useActiveEventProducts';\nimport useDebounce from '@hooks/useDebounce';\nimport { EVENTLOOK_ORDER_FORM_ID } from '@utils/data/global.ts';\n\ninterface Props {\n event: IEvent;\n withoutPadding?: boolean;\n hideBuyButton?: boolean;\n}\n\nconst PaymentOverviewBox: React.FC<Props> = ({ event, withoutPadding, hideBuyButton }) => {\n const { t, lang, options } = useGlobal();\n const xs = useResponsive('only', 'xs');\n const md = useResponsive('only', 'md');\n const isMobile = useResponsive('down', 'md');\n const { data: eventProducts } = useActiveEventProducts(event.id, true);\n const [shippingFee, setShippingFee] = useState(0);\n const { setValue, watch } = useFormContext<ITicketForm>();\n const values = watch();\n const {\n total,\n uuid,\n firstName,\n lastName,\n email,\n gender,\n birthdate,\n phone,\n promoCodes,\n shipping,\n totalFee,\n isPaymentVerify,\n ticketInsurance,\n smsNotification,\n smsNotificationPrice,\n ticketInsurancePricePerUnit,\n } = values;\n const tickets: Record<string, ITicketFormTicket[]> = useWatch({\n name: 'tickets',\n defaultValue: {},\n });\n const flatTickets: ITicketFormTicket[] = useMemo(() => Object.values(tickets).flat(), [tickets]);\n const products: Record<string, IEventProductForm[]> = useWatch({\n name: 'products',\n defaultValue: {},\n });\n const flatProducts: IEventProductForm[] = useMemo(\n () => Object.values(products).flat(),\n [products]\n );\n const eventTimeslotId: number | null = useWatch({ name: 'eventTimeslotId' });\n const paymentMethodId: number | null = useWatch({ name: 'paymentMethodId' });\n const paymentMethodOptionId: number | null = useWatch({ name: 'paymentMethodOptionId' });\n const { data: activeReleases } = useEventActiveReleases(\n event.id,\n true,\n event.type === EventType.RECURRING ? eventTimeslotId : undefined\n );\n const selectedTickets = useMemo(\n () =>\n flatTickets\n .filter((ticket) => ticket.quantity)\n .map((ticket) => {\n const release = activeReleases?.find((release) => release.id === ticket.releaseId);\n return {\n itemName: release ? `${release.releaseCategoryName} - ${release.name}` : '',\n price: release?.price || 0,\n quantity: ticket.quantity,\n releaseId: ticket.releaseId,\n products: ticket.products.map((product) => {\n const variant = release?.product?.eventProductVariants.find(\n (variant) => variant.id === product.eventProductVariantId\n );\n return {\n ...product,\n name:\n release?.product && variant\n ? `${release.product.product.name} - ${variant.productVariant.value}`\n : '',\n price: variant?.priceWithVat ?? product.price ?? 0,\n };\n }),\n };\n }),\n [flatTickets, activeReleases]\n );\n\n const selectedVariants = useMemo(() => {\n const selectedVariants: ISelectedProductVariant[] = [];\n for (const [eventId, productArray] of Object.entries(products))\n for (const product of productArray) {\n for (const eventProduct of eventProducts) {\n for (const variant of eventProduct.eventProductVariants) {\n if (product.eventProductVariantId === variant.id) {\n selectedVariants.push({\n variantId: product.eventProductVariantId,\n eventId: eventId,\n name: `${eventProduct.product.name} - ${variant.productVariant.value}`,\n price: variant.priceWithVat * product.quantity,\n quantity: product.quantity,\n });\n }\n }\n }\n }\n\n return selectedVariants;\n }, [event, flatProducts]);\n\n const getFee = useMemo(() => fCurrency(totalFee ?? 0, lang, event.currency), [totalFee]);\n\n const shoppingCartBody = useMemo<ICalculateShoppingCartDto>(\n () => ({\n uuid,\n eventId: event.id,\n tickets: Object.fromEntries(\n Object.entries(values.tickets).map(([id, items]) => [\n id,\n items\n .filter((item) => item.quantity && item.releaseId)\n .map((item) => ({\n ...item,\n eventTimeslotId: eventTimeslotId ?? null,\n })),\n ])\n ),\n products: Object.fromEntries(\n Object.entries(values.products).map(([id, items]) => [\n id,\n items.map(\n ({\n eventProductVariantId,\n productVariantId,\n quantity,\n price,\n excludedShippingMethodIds,\n }) => ({\n eventProductVariantId,\n productVariantId,\n quantity,\n price,\n excludedShippingMethodIds,\n })\n ),\n ])\n ),\n shipping: {\n shippingMethodId: shipping?.shippingMethodId ?? null,\n branchId: shipping?.branchId ?? null,\n price: shipping?.price ?? 0,\n },\n promoCodeIds: promoCodes?.map((p) => p.id) ?? null,\n language: lang,\n firstName,\n lastName,\n email,\n phone,\n birthdate,\n gender,\n paymentMethodId: paymentMethodId ? Number(paymentMethodId) : null,\n paymentMethodOptionId: paymentMethodOptionId ? Number(paymentMethodOptionId) : null,\n ticketInsurance,\n smsNotification,\n }),\n [\n uuid,\n event.id,\n tickets,\n products,\n shipping,\n promoCodes,\n lang,\n firstName,\n lastName,\n email,\n phone,\n birthdate,\n gender,\n paymentMethodId,\n paymentMethodOptionId,\n eventTimeslotId,\n ticketInsurance,\n smsNotification,\n ]\n );\n\n const debouncedShoppingCartBody = useDebounce(shoppingCartBody, 300);\n\n const setShoppingCartValues = (data: IShoppingCartDto, recalculate = false) => {\n if (!recalculate) {\n const hasTickets =\n !!data.tickets && typeof data.tickets === 'object' && Object.keys(data.tickets).length > 0;\n\n if (hasTickets) {\n setValue('tickets', data.tickets);\n }\n\n const hasProducts =\n !!data.products &&\n typeof data.products === 'object' &&\n Object.keys(data.products).length > 0;\n\n if (hasProducts) {\n setValue('products', data.products);\n }\n\n setValue('promoCodes', data.promoCodes || []);\n setValue('uuid', data.uuid);\n setValue('firstName', data.firstName || '');\n setValue('lastName', data.lastName || '');\n setValue('gender', data.gender || '');\n setValue('birthdate', data.birthdate ? dayjs(data.birthdate) : null);\n setValue('email', data.email || '');\n setValue('phone', data.phone || '');\n setValue('paymentMethodId', data.paymentMethodId ? data.paymentMethodId : null);\n setValue(\n 'paymentMethodOptionId',\n data.paymentMethodOptionId ? data.paymentMethodOptionId : null\n );\n setValue('shipping', data.shipping || { shippingMethodId: null, branchId: null, price: 0 });\n }\n const allTickets = Object.values(data?.tickets || {}).flat();\n if (allTickets.length && allTickets[0]?.eventTimeslotId) {\n setValue('eventTimeslotId', allTickets[0].eventTimeslotId);\n }\n setValue('originalPrice', data.originalPrice);\n setValue('total', data.totalPrice || 0);\n\n const feeTotal = (data.serviceFee ?? 0) + (data.paymentMethodFee ?? 0);\n setValue('totalFee', feeTotal);\n\n setShippingFee(data.shippingFee);\n setValue('ticketInsurance', data.ticketInsurance.enabled);\n setValue('ticketInsurancePrice', data.ticketInsurance.price);\n setValue('ticketInsurancePricePerUnit', data.ticketInsurance.pricePerUnit);\n setValue('smsNotification', data.smsNotification.enabled);\n setValue('smsNotificationPrice', data.smsNotification.price);\n };\n\n const totalItemCount = useMemo(() => {\n const count = {\n total: 0,\n totalTickets: 0,\n totalProducts: 0,\n };\n\n for (const ticket of flatTickets) {\n if (!ticket.quantity) continue;\n count.total += ticket.quantity;\n count.totalTickets += ticket.quantity;\n\n for (const product of ticket.products || []) {\n count.total += product.quantity;\n count.totalProducts += product.quantity;\n }\n }\n\n for (const product of flatProducts || []) {\n count.total += product.quantity;\n count.totalProducts += product.quantity;\n }\n\n return count;\n }, [flatTickets, flatProducts]);\n\n const promoCodesValues = useMemo(() => {\n const discount = {\n fixed: 0,\n fixedDevided: 0,\n fixedDevidedTickets: 0,\n fixedDevidedProducts: 0,\n percent: 0,\n ticketsDiscountFixed: 0,\n productDiscountFixed: 0,\n productDiscountPercent: 0,\n promoCodes: [] as IPromoCode[],\n };\n\n promoCodes.forEach((promoCode) => {\n const { type, applyDiscountToProducts, value } = promoCode;\n\n if (type === PromoCodeTypes.PERCENTAGE) {\n if (applyDiscountToProducts) {\n discount.productDiscountPercent += value;\n }\n discount.percent += value;\n } else if (type === PromoCodeTypes.FIXED) {\n if (applyDiscountToProducts) {\n discount.productDiscountFixed += value;\n } else {\n discount.ticketsDiscountFixed += value;\n }\n discount.fixed += value;\n }\n });\n\n discount.fixedDevidedProducts = discount.productDiscountFixed\n ? Math.ceil((discount.productDiscountFixed / totalItemCount.total) * 100) / 100\n : 0;\n\n discount.fixedDevidedTickets =\n Math.ceil((discount.ticketsDiscountFixed / totalItemCount.totalTickets) * 100) / 100;\n\n discount.fixedDevidedTickets += discount.fixedDevidedProducts;\n\n return discount;\n }, [promoCodes, flatTickets, flatProducts]);\n\n const hasOrderId = useMemo(() => {\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.has('id');\n }, []);\n\n useEffect(() => {\n if (!hasOrderId) {\n recalculateItems(debouncedShoppingCartBody);\n }\n }, [debouncedShoppingCartBody, hasOrderId]);\n\n /** Iframe code **/\n useEffect(() => {\n window.addEventListener('message', messageListener, false);\n return () => {\n window.removeEventListener('message', messageListener, false);\n };\n }, []);\n\n const messageListener = async (event: any) => {\n if (event.data.type === 'eventlookFrameScrollTop') {\n const dialog = document.getElementById('overview-card');\n if (dialog) {\n dialog.style.top = `${event.data.scrollTop}px`;\n }\n }\n };\n /** End Iframe code **/\n\n const recalculateItems = useCallback(async (body: ICalculateShoppingCartDto) => {\n try {\n const isInitial = !body.uuid;\n\n let response: any;\n if (isInitial) {\n const existing = localStorage.getItem('cartToken');\n const storedUuid =\n existing && existing !== 'undefined' && existing !== 'null' ? existing : null;\n response = await getCart(body.eventId, storedUuid);\n } else {\n response = await calculateCart(body);\n }\n\n const cart = response?.data;\n\n if (cart) {\n if (cart.uuid) {\n localStorage.setItem('cartToken', cart.uuid);\n }\n setShoppingCartValues(cart, !isInitial);\n }\n } catch (err) {\n console.error('Error calculating cart:', err);\n }\n }, []);\n\n // const removeProduct = (variant: ISelectedProductVariant) => {\n // const { eventId, variantId } = variant;\n // const list = Array.isArray(products[eventId]) ? [...products[eventId]] : [];\n\n // const idx = list.findIndex((p) => Number(p.eventProductVariantId) === Number(variantId));\n // if (idx === -1) return;\n // const item = list[idx];\n\n // if ((item.quantity ?? 0) <= 1) {\n // list.splice(idx, 1);\n // } else {\n // list[idx] = { ...item, quantity: (item.quantity ?? 1) - 1 };\n // }\n\n // const next = { ...products, [eventId]: list };\n\n // if (list.length === 0) {\n // const { [eventId]: _removed, ...rest } = next;\n // setValue('products', rest);\n // } else {\n // setValue('products', next);\n // }\n // };\n\n return (\n <OverviewCard id=\"overview-card\" stickyHeaderTop={options?.stickyHeaderTop || 0}>\n {!isMobile && (\n <Stack className=\"overview-card__event-info\" p={2} spacing={2}>\n <Typography variant=\"h6\">{event.name}</Typography>\n <Box>\n <Grid container spacing={1}>\n <Grid item xs={6}>\n <Image src={event.image.url} alt={event.name} ratio=\"16/9\" borderRadius={2} />\n </Grid>\n <Grid item xs={6}>\n <TextIconLabel\n icon={\n <Iconify\n icon={locationIcon}\n sx={{ mr: 0.5, mt: 0.5, width: 18, height: 18, minWidth: 18 }}\n />\n }\n value={<Box>{getPlaceAsString(event.place)}</Box>}\n sx={{ typography: 'body3', color: 'text.secondary', alignItems: 'flex-start' }}\n />\n </Grid>\n </Grid>\n </Box>\n <Divider sx={{ borderStyle: 'dashed' }} />\n <Stack\n direction={{ xs: 'column', sm: 'row', md: 'column', lg: 'row' }}\n spacing={2}\n p={2}\n divider={\n <Divider\n orientation={xs || md ? 'horizontal' : 'vertical'}\n flexItem\n sx={{ borderStyle: 'dashed' }}\n />\n }\n sx={{\n backgroundColor: (theme) =>\n theme.palette.mode === 'light' ? theme.palette.grey[100] : theme.palette.grey[900],\n borderRadius: 1,\n }}\n >\n <Box width={{ sm: '50%', md: '100%', lg: '50%' }}>\n <TextIconLabel\n icon={<Iconify icon={calendarIcon} sx={{ minWidth: 20, height: 20, mr: 1 }} />}\n value={t('form.labels.start_date')}\n sx={{ color: 'text.secondary' }}\n />\n <Typography variant=\"body2\" fontWeight={700}>\n {dayjs(event.startDate).format('DD.MM.YYYY HH:mm')}\n </Typography>\n </Box>\n <Box width={{ sm: '50%', md: '100%', lg: '50%' }}>\n <TextIconLabel\n icon={<Iconify icon={userIcon} sx={{ minWidth: 20, height: 20, mr: 1 }} />}\n value={t('form.labels.organizer')}\n sx={{ color: 'text.secondary' }}\n />\n <Typography variant=\"body2\" fontWeight={700}>\n {event.company.displayName}\n </Typography>\n </Box>\n </Stack>\n </Stack>\n )}\n <Stack\n className=\"overview-card__order-info\"\n sx={{ p: { xs: withoutPadding ? 0 : 2, md: 2 } }}\n pt={{ xs: 0, sm: 2 }}\n spacing={0.75}\n useFlexGap\n >\n {!!selectedTickets.length && !isMobile && <Divider sx={{ borderStyle: 'dashed' }} />}\n\n {!!selectedTickets.length && (\n <Stack spacing={0.5}>\n {/* TODO: Uncomment this when Colonnade response - must update terms and conditions and email info */}\n {/*<PaymentOverviewCheckbox*/}\n {/* checkboxName=\"ticketInsurance\"*/}\n {/* label={t('event.tickets.insurance.label')}*/}\n {/* value={*/}\n {/* <>*/}\n {/* {ticketInsurance && totalItemCount.totalTickets > 0 ? '' : '+ '}*/}\n {/* {fCurrency(ticketInsurancePricePerUnit, lang, event.currency)} /{' '}*/}\n {/* {t('event.tickets.insurance.per_ticket')}*/}\n {/* </>*/}\n {/* }*/}\n {/*/>*/}\n <PaymentOverviewCheckbox\n checkboxName=\"smsNotification\"\n label={t('event.tickets.sms_notification.label')}\n value={\n <>\n {smsNotification && totalItemCount.totalTickets > 0 ? '' : '+ '}\n {fCurrency(smsNotificationPrice, lang, event.currency)}\n </>\n }\n />\n <Divider sx={{ borderStyle: 'dashed' }} />\n </Stack>\n )}\n {selectedTickets.map((ticket, index) => (\n <Box key={index}>\n <Stack direction=\"row\" justifyContent=\"space-between\" alignItems=\"center\" spacing={2}>\n <Typography variant=\"body2\">\n {ticket.quantity}x {ticket.itemName}\n </Typography>\n <Typography variant=\"body2\">\n {fCurrency(\n calculatePriceWithDiscount(\n ticket.price,\n promoCodesValues.percent,\n promoCodesValues.fixedDevidedTickets\n ) * Number(ticket.quantity),\n lang,\n event.currency\n )}\n </Typography>\n </Stack>\n {ticket.products.map((product, index2) => (\n <Stack\n key={index2}\n direction=\"row\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n spacing={2}\n >\n <Typography variant=\"body2\">\n - {product.quantity}x {product.name}\n </Typography>\n <Typography variant=\"body2\">\n {product.price > 0\n ? fCurrency(\n calculatePriceWithDiscount(\n product.price,\n promoCodesValues.productDiscountPercent,\n promoCodesValues.fixedDevidedProducts\n ? promoCodesValues.fixedDevidedProducts * product.quantity\n : 0\n ),\n lang,\n event.currency\n )\n : t('free')}\n </Typography>\n </Stack>\n ))}\n </Box>\n ))}\n {selectedVariants.map((variant, index) => (\n <Box key={index}>\n <Stack direction=\"row\" justifyContent=\"space-between\" alignItems=\"center\" spacing={2}>\n <Typography variant=\"body2\">\n {variant.quantity}x {variant.name}\n </Typography>\n <Typography variant=\"body2\">\n {fCurrency(\n calculatePriceWithDiscount(\n variant.price,\n promoCodesValues.productDiscountPercent,\n promoCodesValues.fixedDevidedProducts\n ? promoCodesValues.fixedDevidedProducts * variant.quantity\n : 0\n ),\n lang,\n event.currency\n )}\n </Typography>\n </Stack>\n </Box>\n ))}\n {!!shippingFee && (\n <Stack direction=\"row\" justifyContent=\"space-between\" alignItems=\"center\" spacing={2}>\n <Typography variant=\"body2\">{t('form.labels.shipping_fee')}</Typography>\n <Typography variant=\"body2\">{fCurrency(shippingFee, lang, event.currency)}</Typography>\n </Stack>\n )}\n {!!total && !!totalFee && (\n <Stack direction=\"row\" justifyContent=\"space-between\" alignItems=\"center\" spacing={2}>\n <Typography variant=\"body2\">{t('form.labels.service_fee')}</Typography>\n <Typography variant=\"body2\">{getFee}</Typography>\n </Stack>\n )}\n {((!!selectedTickets.length && isMobile) || !isMobile) && (\n <Divider sx={{ borderStyle: 'dashed' }} />\n )}\n {!hideBuyButton && (\n <>\n <FeeBox event={event} />\n <LoadingButton\n type=\"submit\"\n form={EVENTLOOK_ORDER_FORM_ID}\n variant=\"contained\"\n size=\"large\"\n fullWidth\n sx={{ height: { xs: 36, md: 40 } }}\n >\n {t(isPaymentVerify ? 'verify' : 'buy')}\n </LoadingButton>\n </>\n )}\n </Stack>\n </OverviewCard>\n );\n};\n\nexport default PaymentOverviewBox;\n"],"names":["event","useGlobal","useResponsive","useActiveEventProducts","useState","useFormContext","useWatch","useMemo","useEventActiveReleases","EventType","fCurrency","useDebounce","promoCode","PromoCodeTypes","useEffect","useCallback","getCart","calculateCart","OverviewCard","Stack","Typography","Box","Grid","Image","TextIconLabel","Iconify","getPlaceAsString","Divider","PaymentOverviewCheckbox","calculatePriceWithDiscount","FeeBox","LoadingButton","EVENTLOOK_ORDER_FORM_ID"],"mappings":"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"}
@@ -4,25 +4,23 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var material = require('@mui/material');
7
+ var Iconify = require('../components/iconify/Iconify.js');
7
8
  var ProductVariantsDialog = require('./product/ProductVariantsDialog.js');
8
- var TicketQuantityControl = require('./tickets/TicketQuantityControl.js');
9
9
  var reactHookForm = require('react-hook-form');
10
10
  var formatNumber = require('../utils/formatNumber.js');
11
11
  var product = require('../utils/product.js');
12
12
  var ReleaseExtraFields = require('./extra-field/ReleaseExtraFields.js');
13
- var ReleaseDescription = require('./tickets/ReleaseDescription.js');
14
13
  var useGlobal = require('../hooks/useGlobal.js');
15
14
 
16
15
  const ReleaseWithMerchandise = ({ eventId, release, activeReleases, currency, index, }) => {
17
16
  const { t, lang } = useGlobal.default();
18
17
  const [openVariantDialog, setOpenVariantDialog] = React.useState(null);
19
- const [isDescriptionExpanded, setIsDescriptionExpanded] = React.useState(false);
20
18
  const { setValue } = reactHookForm.useFormContext();
21
19
  const tickets = reactHookForm.useWatch({ name: `tickets.${eventId}`, defaultValue: [] });
22
20
  const products = reactHookForm.useWatch({ name: `products.${eventId}`, defaultValue: [] });
23
21
  const addedRelease = tickets.find((ticket) => ticket.releaseId === release.id);
24
22
  const countTickets = addedRelease?.quantity || 0;
25
- const getReleaseTitle = (release) => release.releaseCategoryName || release.name || '';
23
+ const isReleaseSelected = (id) => !!tickets.find((ticket) => ticket.releaseId === id);
26
24
  const getSelectedQuantity = (id) => tickets.find((ticket) => ticket.releaseId === id)?.quantity || 0;
27
25
  const getAvailableTicketsForRelease = (release) => {
28
26
  const selectedRelease = activeReleases?.find((item) => item.id === release.releaseId);
@@ -35,60 +33,45 @@ const ReleaseWithMerchandise = ({ eventId, release, activeReleases, currency, in
35
33
  return false;
36
34
  return getSelectedQuantity(releaseId) >= getAvailableTicketsForRelease(release);
37
35
  };
38
- const addRelease = (productsToAdd) => {
39
- const normalizedProducts = Array.isArray(productsToAdd)
40
- ? productsToAdd
41
- : productsToAdd
42
- ? [productsToAdd]
43
- : [];
44
- const quantity = normalizedProducts.length ? normalizedProducts.length : 1;
45
- const extraFields = release.extraFields?.length
46
- ? Array.from({ length: quantity }, () => release.extraFields.map((field) => ({
47
- eventExtraFieldId: field.id,
48
- value: '',
49
- })))
50
- : [];
36
+ const addRelease = (product) => {
51
37
  setValue(`tickets.${eventId}`, [
52
38
  ...tickets,
53
39
  {
54
40
  releaseId: release.id,
55
- quantity,
41
+ quantity: 1,
56
42
  itemName: '',
57
43
  price: 0,
58
- products: normalizedProducts,
59
- extraFields,
44
+ products: product ? [product] : [],
45
+ extraFields: release.extraFields?.length
46
+ ? [
47
+ release.extraFields.map((field) => ({
48
+ eventExtraFieldId: field.id,
49
+ value: '',
50
+ })),
51
+ ]
52
+ : [],
60
53
  },
61
54
  ]);
62
55
  setOpenVariantDialog(null);
63
56
  };
64
- const increaseQuantity = (productsToAdd) => {
65
- const normalizedProducts = Array.isArray(productsToAdd)
66
- ? productsToAdd
67
- : productsToAdd
68
- ? [productsToAdd]
69
- : [];
57
+ const increaseQuantity = (product) => {
70
58
  const addedRelease = tickets.find((ticket) => ticket.releaseId === release.id);
71
59
  if (addedRelease) {
72
- const increment = normalizedProducts.length ? normalizedProducts.length : 1;
60
+ const newQuantity = Number(addedRelease.quantity) + 1;
73
61
  const maxQuantity = getAvailableTicketsForRelease(addedRelease);
74
- const availableIncrement = Math.max(0, Math.min(increment, maxQuantity - Number(addedRelease.quantity)));
75
- if (availableIncrement === 0)
76
- return;
77
- const newQuantity = Number(addedRelease.quantity) + availableIncrement;
78
- const productsSlice = normalizedProducts.slice(0, availableIncrement);
79
- const extraFieldsToAdd = release.extraFields?.length
80
- ? Array.from({ length: availableIncrement }, () => release.extraFields.map((field) => ({
81
- eventExtraFieldId: field.id,
82
- value: '',
83
- })))
84
- : [];
85
62
  setValue(`tickets.${eventId}`, tickets.map((ticket) => ticket.releaseId === release.id
86
63
  ? {
87
64
  ...ticket,
88
65
  quantity: newQuantity > maxQuantity ? maxQuantity : newQuantity,
89
- products: [...ticket.products, ...productsSlice],
66
+ products: product ? [...ticket.products, product] : ticket.products,
90
67
  extraFields: release.extraFields?.length
91
- ? [...ticket.extraFields, ...extraFieldsToAdd]
68
+ ? [
69
+ ...ticket.extraFields,
70
+ release.extraFields.map((field) => ({
71
+ eventExtraFieldId: field.id,
72
+ value: '',
73
+ })),
74
+ ]
92
75
  : [],
93
76
  }
94
77
  : ticket));
@@ -116,23 +99,31 @@ const ReleaseWithMerchandise = ({ eventId, release, activeReleases, currency, in
116
99
  }
117
100
  }
118
101
  }, [tickets, release.id, setValue]);
119
- return (React.createElement(material.Box, { sx: {
120
- p: 1,
121
- pb: 0,
122
- borderRadius: 1,
123
- bgcolor: 'grey.100',
124
- } },
125
- React.createElement(material.Stack, { spacing: 0 },
126
- React.createElement(material.Box, null,
127
- React.createElement(material.Typography, { variant: "subtitle1", fontWeight: 600 }, getReleaseTitle(release))),
128
- React.createElement(material.Stack, { direction: "row", alignItems: "center", justifyContent: "space-between" },
129
- React.createElement(material.Stack, null,
130
- React.createElement(material.Typography, { variant: "body2" }, release.price === 0 ? t('free') : formatNumber.fCurrency(release.price, lang, currency)),
131
- React.createElement(ReleaseDescription.default, { description: release.description, isExpanded: isDescriptionExpanded, onToggle: () => setIsDescriptionExpanded((prev) => !prev), moreInfoLabel: t('more_info') })),
132
- React.createElement(TicketQuantityControl.default, { quantity: getSelectedQuantity(release.id), isDisabled: release.locked, canAddFirst: !release.locked, canAddMore: !isMaxQuantity(release.id), addLabel: t('add'), onDecrement: () => decreaseQuantity(), onIncrement: () => release.product ? setOpenVariantDialog('increase') : increaseQuantity(), onAddFirst: () => (release.product ? setOpenVariantDialog('add') : addRelease()) })),
133
- React.createElement(ReleaseDescription.default, { description: release.description, isExpanded: isDescriptionExpanded, onToggle: () => setIsDescriptionExpanded((prev) => !prev), moreInfoLabel: t('more_info'), showCollapse: true }),
134
- release.extraFields && release.extraFields.length > 0 && (React.createElement(ReleaseExtraFields.default, { release: release, eventId: eventId, releaseIndex: index, quantity: countTickets })),
135
- release.product && (React.createElement(ProductVariantsDialog.default, { eventProduct: release.product, openDialog: !!openVariantDialog, callback: openVariantDialog === 'increase' ? increaseQuantity : addRelease, onClose: () => setOpenVariantDialog(null), selectedQuantityByVariant: product.getSelectedQuantityByVariant(products, tickets), eventId: eventId, canAddOnlyOneAtATime: true })))));
102
+ return (React.createElement(material.Box, null,
103
+ React.createElement(material.Stack, { direction: "row", spacing: 1 },
104
+ React.createElement(material.Stack, { direction: "row", spacing: 1, justifyContent: "space-between", alignItems: "center", sx: { width: '100%', backgroundColor: 'grey.200', p: 1, pl: 1.5, borderRadius: 1 } },
105
+ React.createElement(material.Stack, { direction: "row", spacing: 2, alignItems: "center" },
106
+ React.createElement(material.Stack, { direction: "row", spacing: 0.5, alignItems: "center" },
107
+ React.createElement(Iconify.default, { icon: "ion:ticket-outline", color: "primary.main", sx: { width: 24, height: 24 } }),
108
+ release.product && (React.createElement(React.Fragment, null,
109
+ React.createElement(material.Typography, { fontSize: 20, lineHeight: 1 }, "+"),
110
+ React.createElement(Iconify.default, { icon: "lucide-lab:shirt-t", color: "primary.main", sx: { width: 24, height: 24 } })))),
111
+ React.createElement(material.Typography, { color: "grey.500" },
112
+ release.releaseCategoryName,
113
+ " - ",
114
+ release.name,
115
+ " -",
116
+ ' ',
117
+ formatNumber.fCurrency(release.price, lang, currency))),
118
+ isReleaseSelected(release.id) ? (React.createElement(material.Stack, { direction: "row", spacing: 1, py: 0.5 },
119
+ React.createElement(material.IconButton, { onClick: () => decreaseQuantity(), size: "small", color: "primary" },
120
+ React.createElement(Iconify.default, { icon: "eva:minus-fill" })),
121
+ React.createElement(material.Typography, { color: "grey.500" }, getSelectedQuantity(release.id)),
122
+ React.createElement(material.IconButton, { onClick: () => release.product ? setOpenVariantDialog('increase') : increaseQuantity(), size: "small", color: "primary", disabled: isMaxQuantity(release.id) },
123
+ React.createElement(Iconify.default, { icon: "eva:plus-fill" })))) : (React.createElement(material.Button, { onClick: () => !release.locked && (release.product ? setOpenVariantDialog('add') : addRelease()), variant: "contained", disabled: release.locked }, t('add'))))),
124
+ React.createElement(material.Typography, { variant: "caption", content: "div", mt: 2, mb: release.extraFields?.length ? 2 : 0, display: "block" }, release.description),
125
+ release.extraFields && release.extraFields.length > 0 && (React.createElement(ReleaseExtraFields.default, { release: release, eventId: eventId, releaseIndex: index, quantity: countTickets })),
126
+ release.product && (React.createElement(ProductVariantsDialog.default, { eventProduct: release.product, openDialog: !!openVariantDialog, callback: openVariantDialog === 'increase' ? increaseQuantity : addRelease, onClose: () => setOpenVariantDialog(null), selectedQuantityByVariant: product.getSelectedQuantityByVariant(products, tickets), eventId: eventId }))));
136
127
  };
137
128
 
138
129
  exports.default = ReleaseWithMerchandise;
@@ -1 +1 @@
1
- {"version":3,"file":"ReleaseWithMerchandise.js","sources":["../../../src/form/ReleaseWithMerchandise.tsx"],"sourcesContent":["import React, { useCallback, useState } from 'react';\nimport { Box, Stack, Typography } from '@mui/material';\nimport ProductVariantsDialog from '@form/product/ProductVariantsDialog';\nimport TicketQuantityControl from '@form/tickets/TicketQuantityControl';\nimport { IReleaseShort } from '@utils/types/release.type';\nimport { ITicketForm, ITicketFormTicket } from '@utils/types/ticket.type';\nimport { useFormContext, useWatch } from 'react-hook-form';\nimport { IEventProductForm } from '@utils/types/product.type';\nimport { fCurrency } from '@utils/formatNumber';\nimport { Currencies } from '@utils/data/currency';\nimport { getSelectedQuantityByVariant } from '@utils/product';\nimport ReleaseExtraFields from '@form/extra-field/ReleaseExtraFields';\nimport ReleaseDescription from '@form/tickets/ReleaseDescription';\nimport useGlobal from '@hooks/useGlobal.ts';\n\ninterface Props {\n eventId: number;\n release: IReleaseShort;\n activeReleases: IReleaseShort[];\n currency: Currencies;\n index: number;\n}\n\nconst ReleaseWithMerchandise: React.FC<Props> = ({\n eventId,\n release,\n activeReleases,\n currency,\n index,\n}) => {\n const { t, lang } = useGlobal();\n const [openVariantDialog, setOpenVariantDialog] = useState<'add' | 'increase' | null>(null);\n const [isDescriptionExpanded, setIsDescriptionExpanded] = useState(false);\n const { setValue } = useFormContext<ITicketForm>();\n const tickets: ITicketFormTicket[] = useWatch({ name: `tickets.${eventId}`, defaultValue: [] });\n const products: IEventProductForm[] = useWatch({ name: `products.${eventId}`, defaultValue: [] });\n const addedRelease = tickets.find((ticket) => ticket.releaseId === release.id);\n const countTickets = addedRelease?.quantity || 0;\n\n const getReleaseTitle = (release: IReleaseShort) =>\n release.releaseCategoryName || release.name || '';\n\n const getSelectedQuantity = (id: number) =>\n tickets.find((ticket) => ticket.releaseId === id)?.quantity || 0;\n\n const getAvailableTicketsForRelease = (release: ITicketFormTicket): number => {\n const selectedRelease = activeReleases?.find((item) => item.id === release.releaseId);\n const availableQuantity = selectedRelease ? selectedRelease.availableTickets : 0;\n return availableQuantity > 10 ? 10 : availableQuantity;\n };\n\n const isMaxQuantity = (releaseId: number) => {\n const release = tickets.find((ticket) => ticket.releaseId === releaseId);\n if (!release) return false;\n return getSelectedQuantity(releaseId) >= getAvailableTicketsForRelease(release);\n };\n\n const addRelease = (productsToAdd?: IEventProductForm[] | IEventProductForm) => {\n const normalizedProducts = Array.isArray(productsToAdd)\n ? productsToAdd\n : productsToAdd\n ? [productsToAdd]\n : [];\n const quantity = normalizedProducts.length ? normalizedProducts.length : 1;\n const extraFields = release.extraFields?.length\n ? Array.from({ length: quantity }, () =>\n release.extraFields!.map((field) => ({\n eventExtraFieldId: field.id,\n value: '',\n }))\n )\n : [];\n\n setValue(`tickets.${eventId}`, [\n ...tickets,\n {\n releaseId: release.id,\n quantity,\n itemName: '',\n price: 0,\n products: normalizedProducts,\n extraFields,\n },\n ]);\n setOpenVariantDialog(null);\n };\n\n const increaseQuantity = (productsToAdd?: IEventProductForm[] | IEventProductForm) => {\n const normalizedProducts = Array.isArray(productsToAdd)\n ? productsToAdd\n : productsToAdd\n ? [productsToAdd]\n : [];\n const addedRelease = tickets.find((ticket) => ticket.releaseId === release.id);\n if (addedRelease) {\n const increment = normalizedProducts.length ? normalizedProducts.length : 1;\n const maxQuantity = getAvailableTicketsForRelease(addedRelease);\n const availableIncrement = Math.max(\n 0,\n Math.min(increment, maxQuantity - Number(addedRelease.quantity))\n );\n if (availableIncrement === 0) return;\n\n const newQuantity = Number(addedRelease.quantity) + availableIncrement;\n const productsSlice = normalizedProducts.slice(0, availableIncrement);\n const extraFieldsToAdd = release.extraFields?.length\n ? Array.from({ length: availableIncrement }, () =>\n release.extraFields!.map((field) => ({\n eventExtraFieldId: field.id,\n value: '',\n }))\n )\n : [];\n\n setValue(\n `tickets.${eventId}`,\n tickets.map((ticket) =>\n ticket.releaseId === release.id\n ? {\n ...ticket,\n quantity: newQuantity > maxQuantity ? maxQuantity : newQuantity,\n products: [...ticket.products, ...productsSlice],\n extraFields: release.extraFields?.length\n ? [...ticket.extraFields, ...extraFieldsToAdd]\n : [],\n }\n : ticket\n )\n );\n setOpenVariantDialog(null);\n }\n };\n\n const decreaseQuantity = useCallback(() => {\n const addedRelease = tickets.find((ticket) => ticket.releaseId === release.id);\n if (addedRelease) {\n const newQuantity = Number(addedRelease.quantity) - 1;\n if (newQuantity < 1) {\n setValue(\n `tickets.${eventId}`,\n tickets.filter((ticket) => ticket.releaseId !== release.id)\n );\n } else {\n setValue(\n `tickets.${eventId}`,\n tickets.map((ticket) => {\n if (ticket.releaseId !== release.id) return ticket;\n\n return {\n ...ticket,\n quantity: newQuantity,\n products: ticket?.products?.slice(0, -1), // non-mutating \"pop\"\n extraFields: ticket?.extraFields?.slice(0, -1),\n };\n })\n );\n }\n }\n }, [tickets, release.id, setValue]);\n\n return (\n <Box\n sx={{\n p: 1,\n pb: 0,\n borderRadius: 1,\n bgcolor: 'grey.100',\n }}\n >\n <Stack spacing={0}>\n <Box>\n <Typography variant=\"subtitle1\" fontWeight={600}>\n {getReleaseTitle(release)}\n </Typography>\n </Box>\n\n <Stack direction=\"row\" alignItems=\"center\" justifyContent=\"space-between\">\n <Stack>\n <Typography variant=\"body2\">\n {release.price === 0 ? t('free') : fCurrency(release.price, lang, currency)}\n </Typography>\n\n <ReleaseDescription\n description={release.description}\n isExpanded={isDescriptionExpanded}\n onToggle={() => setIsDescriptionExpanded((prev) => !prev)}\n moreInfoLabel={t('more_info')}\n />\n </Stack>\n\n <TicketQuantityControl\n quantity={getSelectedQuantity(release.id)}\n isDisabled={release.locked}\n canAddFirst={!release.locked}\n canAddMore={!isMaxQuantity(release.id)}\n addLabel={t('add')}\n onDecrement={() => decreaseQuantity()}\n onIncrement={() =>\n release.product ? setOpenVariantDialog('increase') : increaseQuantity()\n }\n onAddFirst={() => (release.product ? setOpenVariantDialog('add') : addRelease())}\n />\n </Stack>\n\n <ReleaseDescription\n description={release.description}\n isExpanded={isDescriptionExpanded}\n onToggle={() => setIsDescriptionExpanded((prev) => !prev)}\n moreInfoLabel={t('more_info')}\n showCollapse\n />\n {release.extraFields && release.extraFields.length > 0 && (\n <ReleaseExtraFields\n release={release}\n eventId={eventId}\n releaseIndex={index}\n quantity={countTickets}\n />\n )}\n {release.product && (\n <ProductVariantsDialog\n eventProduct={release.product}\n openDialog={!!openVariantDialog}\n callback={openVariantDialog === 'increase' ? increaseQuantity : addRelease}\n onClose={() => setOpenVariantDialog(null)}\n selectedQuantityByVariant={getSelectedQuantityByVariant(products, tickets)}\n eventId={eventId}\n canAddOnlyOneAtATime\n />\n )}\n </Stack>\n </Box>\n );\n};\n\nexport default ReleaseWithMerchandise;\n"],"names":["useGlobal","useState","useFormContext","useWatch","useCallback","Box","Stack","Typography","fCurrency","ReleaseDescription","TicketQuantityControl","ReleaseExtraFields","ProductVariantsDialog","getSelectedQuantityByVariant"],"mappings":"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"}
1
+ {"version":3,"file":"ReleaseWithMerchandise.js","sources":["../../../src/form/ReleaseWithMerchandise.tsx"],"sourcesContent":["import React, { useCallback, useState } from 'react';\nimport { Box, Button, IconButton, Stack, Typography } from '@mui/material';\nimport { Iconify } from '@components/iconify';\nimport ProductVariantsDialog from '@form/product/ProductVariantsDialog';\nimport { IReleaseShort } from '@utils/types/release.type';\nimport { ITicketForm, ITicketFormTicket } from '@utils/types/ticket.type';\nimport { useFormContext, useWatch } from 'react-hook-form';\nimport { IEventProductForm } from '@utils/types/product.type';\nimport { fCurrency } from '@utils/formatNumber';\nimport { Currencies } from '@utils/data/currency';\nimport { getSelectedQuantityByVariant } from '@utils/product';\nimport ReleaseExtraFields from '@form/extra-field/ReleaseExtraFields';\nimport useGlobal from '@hooks/useGlobal.ts';\n\ninterface Props {\n eventId: number;\n release: IReleaseShort;\n activeReleases: IReleaseShort[];\n currency: Currencies;\n index: number;\n}\n\nconst ReleaseWithMerchandise: React.FC<Props> = ({\n eventId,\n release,\n activeReleases,\n currency,\n index,\n}) => {\n const { t, lang } = useGlobal();\n const [openVariantDialog, setOpenVariantDialog] = useState<'add' | 'increase' | null>(null);\n const { setValue } = useFormContext<ITicketForm>();\n const tickets: ITicketFormTicket[] = useWatch({ name: `tickets.${eventId}`, defaultValue: [] });\n const products: IEventProductForm[] = useWatch({ name: `products.${eventId}`, defaultValue: [] });\n const addedRelease = tickets.find((ticket) => ticket.releaseId === release.id);\n const countTickets = addedRelease?.quantity || 0;\n\n const isReleaseSelected = (id: number) => !!tickets.find((ticket) => ticket.releaseId === id);\n\n const getSelectedQuantity = (id: number) =>\n tickets.find((ticket) => ticket.releaseId === id)?.quantity || 0;\n\n const getAvailableTicketsForRelease = (release: ITicketFormTicket): number => {\n const selectedRelease = activeReleases?.find((item) => item.id === release.releaseId);\n const availableQuantity = selectedRelease ? selectedRelease.availableTickets : 0;\n return availableQuantity > 10 ? 10 : availableQuantity;\n };\n\n const isMaxQuantity = (releaseId: number) => {\n const release = tickets.find((ticket) => ticket.releaseId === releaseId);\n if (!release) return false;\n return getSelectedQuantity(releaseId) >= getAvailableTicketsForRelease(release);\n };\n\n const addRelease = (product?: IEventProductForm) => {\n setValue(`tickets.${eventId}`, [\n ...tickets,\n {\n releaseId: release.id,\n quantity: 1,\n itemName: '',\n price: 0,\n products: product ? [product] : [],\n extraFields: release.extraFields?.length\n ? [\n release.extraFields.map((field) => ({\n eventExtraFieldId: field.id,\n value: '',\n })),\n ]\n : [],\n },\n ]);\n setOpenVariantDialog(null);\n };\n\n const increaseQuantity = (product?: IEventProductForm) => {\n const addedRelease = tickets.find((ticket) => ticket.releaseId === release.id);\n if (addedRelease) {\n const newQuantity = Number(addedRelease.quantity) + 1;\n const maxQuantity = getAvailableTicketsForRelease(addedRelease);\n setValue(\n `tickets.${eventId}`,\n tickets.map((ticket) =>\n ticket.releaseId === release.id\n ? {\n ...ticket,\n quantity: newQuantity > maxQuantity ? maxQuantity : newQuantity,\n products: product ? [...ticket.products, product] : ticket.products,\n extraFields: release.extraFields?.length\n ? [\n ...ticket.extraFields,\n release.extraFields.map((field) => ({\n eventExtraFieldId: field.id,\n value: '',\n })),\n ]\n : [],\n }\n : ticket\n )\n );\n setOpenVariantDialog(null);\n }\n };\n\n const decreaseQuantity = useCallback(() => {\n const addedRelease = tickets.find((ticket) => ticket.releaseId === release.id);\n if (addedRelease) {\n const newQuantity = Number(addedRelease.quantity) - 1;\n if (newQuantity < 1) {\n setValue(\n `tickets.${eventId}`,\n tickets.filter((ticket) => ticket.releaseId !== release.id)\n );\n } else {\n setValue(\n `tickets.${eventId}`,\n tickets.map((ticket) => {\n if (ticket.releaseId !== release.id) return ticket;\n\n return {\n ...ticket,\n quantity: newQuantity,\n products: ticket?.products?.slice(0, -1), // non-mutating \"pop\"\n extraFields: ticket?.extraFields?.slice(0, -1),\n };\n })\n );\n }\n }\n }, [tickets, release.id, setValue]);\n\n return (\n <Box>\n <Stack direction=\"row\" spacing={1}>\n <Stack\n direction=\"row\"\n spacing={1}\n justifyContent=\"space-between\"\n alignItems=\"center\"\n sx={{ width: '100%', backgroundColor: 'grey.200', p: 1, pl: 1.5, borderRadius: 1 }}\n >\n <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n <Stack direction=\"row\" spacing={0.5} alignItems=\"center\">\n <Iconify\n icon=\"ion:ticket-outline\"\n color=\"primary.main\"\n sx={{ width: 24, height: 24 }}\n />\n {release.product && (\n <>\n <Typography fontSize={20} lineHeight={1}>\n +\n </Typography>\n <Iconify\n icon=\"lucide-lab:shirt-t\"\n color=\"primary.main\"\n sx={{ width: 24, height: 24 }}\n />\n </>\n )}\n </Stack>\n <Typography color=\"grey.500\">\n {release.releaseCategoryName} - {release.name} -{' '}\n {fCurrency(release.price, lang, currency)}\n </Typography>\n </Stack>\n {isReleaseSelected(release.id) ? (\n <Stack direction=\"row\" spacing={1} py={0.5}>\n <IconButton onClick={() => decreaseQuantity()} size=\"small\" color=\"primary\">\n <Iconify icon=\"eva:minus-fill\" />\n </IconButton>\n <Typography color=\"grey.500\">{getSelectedQuantity(release.id)}</Typography>\n <IconButton\n onClick={() =>\n release.product ? setOpenVariantDialog('increase') : increaseQuantity()\n }\n size=\"small\"\n color=\"primary\"\n disabled={isMaxQuantity(release.id)}\n >\n <Iconify icon=\"eva:plus-fill\" />\n </IconButton>\n </Stack>\n ) : (\n <Button\n onClick={() =>\n !release.locked && (release.product ? setOpenVariantDialog('add') : addRelease())\n }\n variant=\"contained\"\n disabled={release.locked}\n >\n {t('add')}\n </Button>\n )}\n </Stack>\n </Stack>\n <Typography\n variant=\"caption\"\n content=\"div\"\n mt={2}\n mb={release.extraFields?.length ? 2 : 0}\n display=\"block\"\n >\n {release.description}\n </Typography>\n {release.extraFields && release.extraFields.length > 0 && (\n <ReleaseExtraFields\n release={release}\n eventId={eventId}\n releaseIndex={index}\n quantity={countTickets}\n />\n )}\n {release.product && (\n <ProductVariantsDialog\n eventProduct={release.product}\n openDialog={!!openVariantDialog}\n callback={openVariantDialog === 'increase' ? increaseQuantity : addRelease}\n onClose={() => setOpenVariantDialog(null)}\n selectedQuantityByVariant={getSelectedQuantityByVariant(products, tickets)}\n eventId={eventId}\n />\n )}\n </Box>\n );\n};\n\nexport default ReleaseWithMerchandise;\n"],"names":["useGlobal","useState","useFormContext","useWatch","useCallback","Box","Stack","Iconify","Typography","fCurrency","IconButton","Button","ReleaseExtraFields","ProductVariantsDialog","getSelectedQuantityByVariant"],"mappings":"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"}
@@ -10,11 +10,11 @@ var useEventActiveReleases = require('../hooks/data/useEventActiveReleases.js');
10
10
  var formatNumber = require('../utils/formatNumber.js');
11
11
  var Iconify = require('../components/iconify/Iconify.js');
12
12
  var global = require('../utils/global.js');
13
+ var FeeBox = require('./payment/FeeBox.js');
13
14
  var useResponsive = require('../hooks/useResponsive.js');
14
15
  var ReleaseExtraFields = require('./extra-field/ReleaseExtraFields.js');
15
16
  var event = require('../utils/data/event.js');
16
17
  var useGlobal = require('../hooks/useGlobal.js');
17
- var TicketSelectionMobile = require('./tickets/TicketSelectionMobile.js');
18
18
 
19
19
  const TicketSelection = ({ event: event$1 }) => {
20
20
  const { t, lang } = useGlobal.default();
@@ -130,8 +130,8 @@ const TicketSelection = ({ event: event$1 }) => {
130
130
  }
131
131
  }
132
132
  };
133
- return (React.createElement(material.Stack, { spacing: 3, direction: "column", divider: !isMobile ? React.createElement(material.Divider, { sx: { borderStyle: 'dashed' } }) : undefined },
134
- isMobile ? (React.createElement(TicketSelectionMobile.default, { event: event$1, activeReleases: activeReleases, showLoading: showLoading, soldOutReleaseCategoryNames: soldOutReleaseCategoryNames, tickets: tickets, isQuantityDisabled: isQuantityDisabled, setValue: setValue, removeTicket: removeTicket, getExtraFields: getExtraFields })) : (tickets.map((item, index) => (React.createElement(material.Box, { key: index },
133
+ return (React.createElement(material.Stack, { spacing: 3, direction: "column", divider: React.createElement(material.Divider, { sx: { borderStyle: 'dashed' } }) },
134
+ tickets.map((item, index) => (React.createElement(material.Box, { key: index },
135
135
  React.createElement(material.Grid, { container: true, spacing: 3 },
136
136
  React.createElement(material.Grid, { item: true, xs: 12, md: 6 }, showLoading ? (React.createElement(material.Skeleton, { variant: "rounded", sx: {
137
137
  width: '100%',
@@ -165,11 +165,12 @@ const TicketSelection = ({ event: event$1 }) => {
165
165
  React.createElement(material.IconButton, { color: "primary", onClick: () => removeTicket(index) },
166
166
  React.createElement(Iconify.default, { icon: "carbon:trash-can" })))))))),
167
167
  activeReleases && item.releaseId && (React.createElement(material.Typography, { variant: "caption", content: "div", mt: 2, mb: getRelease(item.releaseId)?.extraFields?.length ? 2 : 0, display: "block" }, getRelease(item.releaseId)?.description ?? '')),
168
- getExtraFields(item.releaseId, index))))),
168
+ getExtraFields(item.releaseId, index)))),
169
169
  React.createElement(material.Box, null,
170
170
  React.createElement(material.Typography, { variant: "caption", component: "div", fontStyle: "italic", mb: 2 },
171
171
  "*",
172
- t('event.tickets.stepper.1.max_ticket_quantity')))));
172
+ t('event.tickets.stepper.1.max_ticket_quantity')),
173
+ isMobile && React.createElement(FeeBox.default, { event: event$1, align: "right" }))));
173
174
  };
174
175
 
175
176
  exports.default = TicketSelection;