@eventlook/sdk 1.4.1 → 1.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/form/Payment.js +62 -39
- package/dist/cjs/form/Payment.js.map +1 -1
- package/dist/cjs/form/PaymentOverviewBox.js +2 -2
- package/dist/cjs/form/PaymentOverviewBox.js.map +1 -1
- package/dist/cjs/form/PaymentStep.js +219 -0
- package/dist/cjs/form/PaymentStep.js.map +1 -0
- package/dist/cjs/form/TicketForm.js +2 -1
- package/dist/cjs/form/TicketForm.js.map +1 -1
- package/dist/cjs/form/TicketSelection.js.map +1 -1
- package/dist/cjs/locales/cs.js +2 -0
- package/dist/cjs/locales/cs.js.map +1 -1
- package/dist/cjs/locales/en.js +2 -0
- package/dist/cjs/locales/en.js.map +1 -1
- package/dist/cjs/locales/es.js +2 -0
- package/dist/cjs/locales/es.js.map +1 -1
- package/dist/cjs/locales/pl.js +2 -0
- package/dist/cjs/locales/pl.js.map +1 -1
- package/dist/cjs/locales/sk.js +2 -0
- package/dist/cjs/locales/sk.js.map +1 -1
- package/dist/cjs/locales/uk.js +2 -0
- package/dist/cjs/locales/uk.js.map +1 -1
- package/dist/esm/form/Payment.js +64 -41
- package/dist/esm/form/Payment.js.map +1 -1
- package/dist/esm/form/PaymentOverviewBox.js +2 -2
- package/dist/esm/form/PaymentOverviewBox.js.map +1 -1
- package/dist/esm/form/PaymentStep.js +215 -0
- package/dist/esm/form/PaymentStep.js.map +1 -0
- package/dist/esm/form/TicketForm.js +2 -1
- package/dist/esm/form/TicketForm.js.map +1 -1
- package/dist/esm/form/TicketSelection.js.map +1 -1
- package/dist/esm/locales/cs.js +2 -0
- package/dist/esm/locales/cs.js.map +1 -1
- package/dist/esm/locales/en.js +2 -0
- package/dist/esm/locales/en.js.map +1 -1
- package/dist/esm/locales/es.js +2 -0
- package/dist/esm/locales/es.js.map +1 -1
- package/dist/esm/locales/pl.js +2 -0
- package/dist/esm/locales/pl.js.map +1 -1
- package/dist/esm/locales/sk.js +2 -0
- package/dist/esm/locales/sk.js.map +1 -1
- package/dist/esm/locales/uk.js +2 -0
- package/dist/esm/locales/uk.js.map +1 -1
- package/dist/types/locales/cs.d.ts +2 -0
- package/dist/types/locales/en.d.ts +2 -0
- package/dist/types/locales/es.d.ts +2 -0
- package/dist/types/locales/pl.d.ts +2 -0
- package/dist/types/locales/sk.d.ts +2 -0
- package/dist/types/locales/uk.d.ts +2 -0
- package/dist/types/utils/types/ticket.type.d.ts +1 -0
- package/package.json +1 -1
- package/src/form/Payment.tsx +105 -78
- package/src/form/PaymentOverviewBox.tsx +2 -1
- package/src/form/TicketForm.tsx +7 -2
- package/src/form/TicketSelection.tsx +1 -1
- package/src/locales/cs.tsx +2 -0
- package/src/locales/en.tsx +2 -0
- package/src/locales/es.tsx +2 -0
- package/src/locales/pl.tsx +2 -0
- package/src/locales/sk.tsx +2 -0
- package/src/locales/uk.tsx +2 -0
- package/src/utils/types/ticket.type.ts +1 -0
- package/dist/cjs/_virtual/_commonjsHelpers.js +0 -6
- package/dist/cjs/_virtual/_commonjsHelpers.js.map +0 -1
- package/dist/cjs/_virtual/colorManipulator.js +0 -6
- package/dist/cjs/_virtual/colorManipulator.js.map +0 -1
- package/dist/cjs/_virtual/createStyled.js +0 -6
- package/dist/cjs/_virtual/createStyled.js.map +0 -1
- package/dist/cjs/_virtual/customParseFormat.js +0 -6
- package/dist/cjs/_virtual/customParseFormat.js.map +0 -1
- package/dist/cjs/_virtual/dayjs.min.js +0 -6
- package/dist/cjs/_virtual/dayjs.min.js.map +0 -1
- package/dist/cjs/_virtual/extends.js +0 -6
- package/dist/cjs/_virtual/extends.js.map +0 -1
- package/dist/cjs/_virtual/index.js +0 -6
- package/dist/cjs/_virtual/index.js.map +0 -1
- package/dist/cjs/_virtual/index.umd.js +0 -6
- package/dist/cjs/_virtual/index.umd.js.map +0 -1
- package/dist/cjs/_virtual/index10.js +0 -11
- package/dist/cjs/_virtual/index10.js.map +0 -1
- package/dist/cjs/_virtual/index11.js +0 -11
- package/dist/cjs/_virtual/index11.js.map +0 -1
- package/dist/cjs/_virtual/index12.js +0 -6
- package/dist/cjs/_virtual/index12.js.map +0 -1
- package/dist/cjs/_virtual/index13.js +0 -6
- package/dist/cjs/_virtual/index13.js.map +0 -1
- package/dist/cjs/_virtual/index14.js +0 -6
- package/dist/cjs/_virtual/index14.js.map +0 -1
- package/dist/cjs/_virtual/index15.js +0 -6
- package/dist/cjs/_virtual/index15.js.map +0 -1
- package/dist/cjs/_virtual/index2.js +0 -6
- package/dist/cjs/_virtual/index2.js.map +0 -1
- package/dist/cjs/_virtual/index3.js +0 -6
- package/dist/cjs/_virtual/index3.js.map +0 -1
- package/dist/cjs/_virtual/index4.js +0 -11
- package/dist/cjs/_virtual/index4.js.map +0 -1
- package/dist/cjs/_virtual/index5.js +0 -11
- package/dist/cjs/_virtual/index5.js.map +0 -1
- package/dist/cjs/_virtual/index6.js +0 -11
- package/dist/cjs/_virtual/index6.js.map +0 -1
- package/dist/cjs/_virtual/index7.js +0 -11
- package/dist/cjs/_virtual/index7.js.map +0 -1
- package/dist/cjs/_virtual/index8.js +0 -11
- package/dist/cjs/_virtual/index8.js.map +0 -1
- package/dist/cjs/_virtual/index9.js +0 -11
- package/dist/cjs/_virtual/index9.js.map +0 -1
- package/dist/cjs/_virtual/interopRequireDefault.js +0 -6
- package/dist/cjs/_virtual/interopRequireDefault.js.map +0 -1
- package/dist/cjs/_virtual/isBetween.js +0 -6
- package/dist/cjs/_virtual/isBetween.js.map +0 -1
- package/dist/cjs/_virtual/jsx-runtime.js +0 -6
- package/dist/cjs/_virtual/jsx-runtime.js.map +0 -1
- package/dist/cjs/_virtual/localizedFormat.js +0 -6
- package/dist/cjs/_virtual/localizedFormat.js.map +0 -1
- package/dist/cjs/_virtual/lodash.js +0 -6
- package/dist/cjs/_virtual/lodash.js.map +0 -1
- package/dist/cjs/_virtual/lottie.js +0 -6
- package/dist/cjs/_virtual/lottie.js.map +0 -1
- package/dist/cjs/_virtual/numeral.js +0 -6
- package/dist/cjs/_virtual/numeral.js.map +0 -1
- package/dist/cjs/_virtual/objectWithoutPropertiesLoose.js +0 -6
- package/dist/cjs/_virtual/objectWithoutPropertiesLoose.js.map +0 -1
- package/dist/cjs/_virtual/react-is.development.js +0 -6
- package/dist/cjs/_virtual/react-is.development.js.map +0 -1
- package/dist/cjs/_virtual/react-is.development2.js +0 -6
- package/dist/cjs/_virtual/react-is.development2.js.map +0 -1
- package/dist/cjs/_virtual/react-is.development3.js +0 -6
- package/dist/cjs/_virtual/react-is.development3.js.map +0 -1
- package/dist/cjs/_virtual/react-is.production.js +0 -6
- package/dist/cjs/_virtual/react-is.production.js.map +0 -1
- package/dist/cjs/_virtual/react-is.production.min.js +0 -6
- package/dist/cjs/_virtual/react-is.production.min.js.map +0 -1
- package/dist/cjs/_virtual/react-is.production.min2.js +0 -6
- package/dist/cjs/_virtual/react-is.production.min2.js.map +0 -1
- package/dist/cjs/_virtual/react-jsx-runtime.development.js +0 -6
- package/dist/cjs/_virtual/react-jsx-runtime.development.js.map +0 -1
- package/dist/cjs/_virtual/react-jsx-runtime.production.min.js +0 -6
- package/dist/cjs/_virtual/react-jsx-runtime.production.min.js.map +0 -1
- package/dist/cjs/_virtual/timezone.js +0 -6
- package/dist/cjs/_virtual/timezone.js.map +0 -1
- package/dist/cjs/_virtual/use-sync-external-store-shim.development.js +0 -6
- package/dist/cjs/_virtual/use-sync-external-store-shim.development.js.map +0 -1
- package/dist/cjs/_virtual/use-sync-external-store-shim.production.js +0 -6
- package/dist/cjs/_virtual/use-sync-external-store-shim.production.js.map +0 -1
- package/dist/cjs/_virtual/useThemeWithoutDefault.js +0 -6
- package/dist/cjs/_virtual/useThemeWithoutDefault.js.map +0 -1
- package/dist/cjs/_virtual/utc.js +0 -6
- package/dist/cjs/_virtual/utc.js.map +0 -1
- package/dist/cjs/_virtual/weekOfYear.js +0 -6
- package/dist/cjs/_virtual/weekOfYear.js.map +0 -1
- package/dist/cjs/utils/data/order.js +0 -8
- package/dist/cjs/utils/data/order.js.map +0 -1
- package/dist/esm/_virtual/_commonjsHelpers.js +0 -4
- package/dist/esm/_virtual/_commonjsHelpers.js.map +0 -1
- package/dist/esm/_virtual/colorManipulator.js +0 -4
- package/dist/esm/_virtual/colorManipulator.js.map +0 -1
- package/dist/esm/_virtual/createStyled.js +0 -4
- package/dist/esm/_virtual/createStyled.js.map +0 -1
- package/dist/esm/_virtual/customParseFormat.js +0 -4
- package/dist/esm/_virtual/customParseFormat.js.map +0 -1
- package/dist/esm/_virtual/dayjs.min.js +0 -4
- package/dist/esm/_virtual/dayjs.min.js.map +0 -1
- package/dist/esm/_virtual/extends.js +0 -4
- package/dist/esm/_virtual/extends.js.map +0 -1
- package/dist/esm/_virtual/index.js +0 -4
- package/dist/esm/_virtual/index.js.map +0 -1
- package/dist/esm/_virtual/index.umd.js +0 -4
- package/dist/esm/_virtual/index.umd.js.map +0 -1
- package/dist/esm/_virtual/index10.js +0 -7
- package/dist/esm/_virtual/index10.js.map +0 -1
- package/dist/esm/_virtual/index11.js +0 -7
- package/dist/esm/_virtual/index11.js.map +0 -1
- package/dist/esm/_virtual/index12.js +0 -4
- package/dist/esm/_virtual/index12.js.map +0 -1
- package/dist/esm/_virtual/index13.js +0 -4
- package/dist/esm/_virtual/index13.js.map +0 -1
- package/dist/esm/_virtual/index14.js +0 -4
- package/dist/esm/_virtual/index14.js.map +0 -1
- package/dist/esm/_virtual/index15.js +0 -4
- package/dist/esm/_virtual/index15.js.map +0 -1
- package/dist/esm/_virtual/index2.js +0 -4
- package/dist/esm/_virtual/index2.js.map +0 -1
- package/dist/esm/_virtual/index3.js +0 -4
- package/dist/esm/_virtual/index3.js.map +0 -1
- package/dist/esm/_virtual/index4.js +0 -7
- package/dist/esm/_virtual/index4.js.map +0 -1
- package/dist/esm/_virtual/index5.js +0 -7
- package/dist/esm/_virtual/index5.js.map +0 -1
- package/dist/esm/_virtual/index6.js +0 -7
- package/dist/esm/_virtual/index6.js.map +0 -1
- package/dist/esm/_virtual/index7.js +0 -7
- package/dist/esm/_virtual/index7.js.map +0 -1
- package/dist/esm/_virtual/index8.js +0 -7
- package/dist/esm/_virtual/index8.js.map +0 -1
- package/dist/esm/_virtual/index9.js +0 -7
- package/dist/esm/_virtual/index9.js.map +0 -1
- package/dist/esm/_virtual/interopRequireDefault.js +0 -4
- package/dist/esm/_virtual/interopRequireDefault.js.map +0 -1
- package/dist/esm/_virtual/isBetween.js +0 -4
- package/dist/esm/_virtual/isBetween.js.map +0 -1
- package/dist/esm/_virtual/jsx-runtime.js +0 -4
- package/dist/esm/_virtual/jsx-runtime.js.map +0 -1
- package/dist/esm/_virtual/localizedFormat.js +0 -4
- package/dist/esm/_virtual/localizedFormat.js.map +0 -1
- package/dist/esm/_virtual/lodash.js +0 -4
- package/dist/esm/_virtual/lodash.js.map +0 -1
- package/dist/esm/_virtual/lottie.js +0 -4
- package/dist/esm/_virtual/lottie.js.map +0 -1
- package/dist/esm/_virtual/numeral.js +0 -4
- package/dist/esm/_virtual/numeral.js.map +0 -1
- package/dist/esm/_virtual/objectWithoutPropertiesLoose.js +0 -4
- package/dist/esm/_virtual/objectWithoutPropertiesLoose.js.map +0 -1
- package/dist/esm/_virtual/react-is.development.js +0 -4
- package/dist/esm/_virtual/react-is.development.js.map +0 -1
- package/dist/esm/_virtual/react-is.development2.js +0 -4
- package/dist/esm/_virtual/react-is.development2.js.map +0 -1
- package/dist/esm/_virtual/react-is.development3.js +0 -4
- package/dist/esm/_virtual/react-is.development3.js.map +0 -1
- package/dist/esm/_virtual/react-is.production.js +0 -4
- package/dist/esm/_virtual/react-is.production.js.map +0 -1
- package/dist/esm/_virtual/react-is.production.min.js +0 -4
- package/dist/esm/_virtual/react-is.production.min.js.map +0 -1
- package/dist/esm/_virtual/react-is.production.min2.js +0 -4
- package/dist/esm/_virtual/react-is.production.min2.js.map +0 -1
- package/dist/esm/_virtual/react-jsx-runtime.development.js +0 -4
- package/dist/esm/_virtual/react-jsx-runtime.development.js.map +0 -1
- package/dist/esm/_virtual/react-jsx-runtime.production.min.js +0 -4
- package/dist/esm/_virtual/react-jsx-runtime.production.min.js.map +0 -1
- package/dist/esm/_virtual/timezone.js +0 -4
- package/dist/esm/_virtual/timezone.js.map +0 -1
- package/dist/esm/_virtual/use-sync-external-store-shim.development.js +0 -4
- package/dist/esm/_virtual/use-sync-external-store-shim.development.js.map +0 -1
- package/dist/esm/_virtual/use-sync-external-store-shim.production.js +0 -4
- package/dist/esm/_virtual/use-sync-external-store-shim.production.js.map +0 -1
- package/dist/esm/_virtual/useThemeWithoutDefault.js +0 -4
- package/dist/esm/_virtual/useThemeWithoutDefault.js.map +0 -1
- package/dist/esm/_virtual/utc.js +0 -4
- package/dist/esm/_virtual/utc.js.map +0 -1
- package/dist/esm/_virtual/weekOfYear.js +0 -4
- package/dist/esm/_virtual/weekOfYear.js.map +0 -1
- package/dist/esm/utils/data/order.js +0 -8
- package/dist/esm/utils/data/order.js.map +0 -1
- package/dist/index.cjs.js +0 -90295
- package/dist/index.cjs.js.map +0 -1
- package/dist/index.esm.js +0 -90275
- package/dist/index.esm.js.map +0 -1
- package/dist/types/hooks/data/useShoppingCart.d.ts +0 -8
|
@@ -39,7 +39,7 @@ const PaymentOverviewBox = ({ event }) => {
|
|
|
39
39
|
const [shippingFee, setShippingFee] = useState(0);
|
|
40
40
|
const { setValue, watch } = useFormContext();
|
|
41
41
|
const values = watch();
|
|
42
|
-
const { total, uuid, firstName, lastName, email, gender, birthdate, phone, promoCodes, shipping, totalFee, } = values;
|
|
42
|
+
const { total, uuid, firstName, lastName, email, gender, birthdate, phone, promoCodes, shipping, totalFee, isPaymentVerify, } = values;
|
|
43
43
|
const tickets = useWatch({
|
|
44
44
|
name: 'tickets',
|
|
45
45
|
defaultValue: {},
|
|
@@ -394,7 +394,7 @@ const PaymentOverviewBox = ({ event }) => {
|
|
|
394
394
|
React.createElement(Typography, { variant: "caption" }, getFee))),
|
|
395
395
|
((!!selectedTickets.length && isMobile) || !isMobile) && (React.createElement(Divider, { sx: { borderStyle: 'dashed' } })),
|
|
396
396
|
React.createElement(FeeBox, { event: event }),
|
|
397
|
-
React.createElement(LoadingButton, { type: "submit", variant: "contained", size: "large", fullWidth: true }, t('buy')))));
|
|
397
|
+
React.createElement(LoadingButton, { type: "submit", variant: "contained", size: "large", fullWidth: true }, t(isPaymentVerify ? 'verify' : 'buy')))));
|
|
398
398
|
};
|
|
399
399
|
|
|
400
400
|
export { PaymentOverviewBox as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaymentOverviewBox.js","sources":["../../../src/form/PaymentOverviewBox.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { Iconify, Image, TextIconLabel } from '@components';\nimport { Box, Divider, Grid, IconButton, Stack, Typography } from '@mui/material';\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 { isEqual } from 'lodash';\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 { getCreateShoppingCart, recalculateCart } from '@modules/shopping-cart.ts';\nimport { ICalculateShoppingCartDto, IShoppingCart } from '@utils/types/shopping-cart.type.ts';\nimport { PromoCodeTypes } from '@utils/data/promo-code.ts';\nimport { useFirstRender } from '@hooks/useFirstRender.ts';\nimport useActiveEventProducts from '@hooks/data/useActiveEventProducts';\nimport useDebounce from '@hooks/useDebounce';\n\ninterface Props {\n event: IEvent;\n}\n\nconst PaymentOverviewBox: React.FC<Props> = ({ event }) => {\n const { t, lang, options } = useGlobal();\n const firstRender = useFirstRender();\n const secondRender = useRef(false);\n const lastCartRef = useRef<IShoppingCart | null>(null);\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 } = 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: uuid,\n eventId: event.id,\n tickets: Object.entries(values.tickets).reduce(\n (acc, [eventId, items]) => {\n acc[Number(eventId)] = items\n .filter((item) => !!item.quantity && !!item.releaseId)\n .map((item) => ({\n releaseId: Number(item.releaseId),\n quantity: Number(item.quantity),\n price: Number(item.price),\n itemName: item.itemName,\n products: item.products,\n extraFields: item.extraFields,\n eventTimeslotId: Number(eventTimeslotId) || null,\n }));\n return acc;\n },\n {} as Record<number, ITicketFormTicket[]>\n ),\n products: Object.entries(values.products).reduce(\n (acc, [eventId, items]) => {\n acc[Number(eventId)] = items.map((item) => ({\n eventProductVariantId: item.eventProductVariantId,\n productVariantId: item.productVariantId,\n quantity: item.quantity,\n price: item.price,\n excludedShippingMethodIds: item.excludedShippingMethodIds,\n }));\n return acc;\n },\n {} as Record<number, IEventProductForm[]>\n ),\n shipping: {\n shippingMethodId: shipping?.shippingMethodId ? Number(shipping.shippingMethodId) : null,\n branchId: shipping?.branchId,\n price: shipping?.price ? Number(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 === null ? null : Number(paymentMethodId),\n paymentMethodOptionId: paymentMethodOptionId === null ? null : Number(paymentMethodOptionId),\n }),\n [\n uuid,\n event.id,\n tickets,\n products,\n shipping.shippingMethodId,\n shipping.branchId,\n shipping.price,\n promoCodes,\n lang,\n firstName,\n lastName,\n email,\n phone,\n birthdate,\n gender,\n paymentMethodId,\n paymentMethodOptionId,\n eventTimeslotId,\n ]\n );\n\n const debouncedShoppingCartBody = useDebounce(shoppingCartBody, 300);\n\n const setShoppingCartValues = (data: IShoppingCart, 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', { ...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', { ...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 };\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 useEffect(() => {\n if (!secondRender.current) {\n secondRender.current = true;\n } else {\n return;\n }\n\n (async () => {\n const existing = localStorage.getItem('cartToken');\n const res = await getCreateShoppingCart(existing, event.id);\n const data: IShoppingCart = res.data;\n\n localStorage.setItem('cartToken', data.uuid);\n setShoppingCartValues(data);\n })();\n }, []);\n\n useEffect(() => {\n if (firstRender) {\n return;\n }\n\n recalculateItems(debouncedShoppingCartBody);\n }, [debouncedShoppingCartBody]);\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 updateCartIfChanged = (newCart: IShoppingCart, recalculate = false) => {\n if (isEqual(lastCartRef.current, newCart)) {\n return;\n }\n\n lastCartRef.current = newCart;\n setShoppingCartValues(newCart, recalculate);\n };\n\n const recalculateItems = useCallback(async (body: ICalculateShoppingCartDto) => {\n const { uuid } = body;\n if (!uuid) return;\n try {\n const response = await recalculateCart(body);\n const cart = response?.data?.data;\n\n if (cart) {\n updateCartIfChanged(cart, true);\n }\n } catch (err) {\n console.error('Error recalculating 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) => theme.palette.grey.A100,\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 className=\"overview-card__order-info\" p={2} spacing={1}>\n {!!selectedTickets.length && !isMobile && <Divider sx={{ borderStyle: 'dashed' }} />}\n {selectedTickets.map((ticket, index) => (\n <Box key={index}>\n <Stack direction=\"row\" justifyContent=\"space-between\" alignItems=\"center\" spacing={2}>\n <Typography variant=\"caption\">\n {ticket.quantity}x {ticket.itemName}\n </Typography>\n <Typography variant=\"caption\">\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=\"caption\">\n - {product.quantity}x {product.name}\n </Typography>\n <Typography variant=\"caption\">\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=\"caption\">\n {variant.quantity}x {variant.name}\n </Typography>\n <Stack direction=\"row\" spacing={1} alignItems=\"center\">\n <Typography variant=\"caption\">\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 <IconButton onClick={() => removeProduct(variant)} color=\"primary\" size=\"small\">\n <Iconify icon=\"carbon:trash-can\" />\n </IconButton>\n </Stack>\n </Stack>\n </Box>\n ))}\n {!!shippingFee && (\n <Stack direction=\"row\" justifyContent=\"space-between\" alignItems=\"center\" spacing={2}>\n <Typography variant=\"caption\">{t('form.labels.shipping_fee')}</Typography>\n <Typography variant=\"caption\">\n {fCurrency(shippingFee, lang, event.currency)}\n </Typography>\n </Stack>\n )}\n {!!total && !!totalFee && (\n <Stack direction=\"row\" justifyContent=\"space-between\" alignItems=\"center\" spacing={2}>\n <Typography variant=\"caption\">{t('form.labels.service_fee')}</Typography>\n <Typography variant=\"caption\">{getFee}</Typography>\n </Stack>\n )}\n {((!!selectedTickets.length && isMobile) || !isMobile) && (\n <Divider sx={{ borderStyle: 'dashed' }} />\n )}\n <FeeBox event={event} />\n <LoadingButton type=\"submit\" variant=\"contained\" size=\"large\" fullWidth>\n {t('buy')}\n </LoadingButton>\n </Stack>\n </OverviewCard>\n );\n};\n\nexport default PaymentOverviewBox;\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PaymentOverviewBox.js","sources":["../../../src/form/PaymentOverviewBox.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { Iconify, Image, TextIconLabel } from '@components';\nimport { Box, Divider, Grid, IconButton, Stack, Typography } from '@mui/material';\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 { isEqual } from 'lodash';\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 { getCreateShoppingCart, recalculateCart } from '@modules/shopping-cart.ts';\nimport { ICalculateShoppingCartDto, IShoppingCart } from '@utils/types/shopping-cart.type.ts';\nimport { PromoCodeTypes } from '@utils/data/promo-code.ts';\nimport { useFirstRender } from '@hooks/useFirstRender.ts';\nimport useActiveEventProducts from '@hooks/data/useActiveEventProducts';\nimport useDebounce from '@hooks/useDebounce';\n\ninterface Props {\n event: IEvent;\n}\n\nconst PaymentOverviewBox: React.FC<Props> = ({ event }) => {\n const { t, lang, options } = useGlobal();\n const firstRender = useFirstRender();\n const secondRender = useRef(false);\n const lastCartRef = useRef<IShoppingCart | null>(null);\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 } = 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: uuid,\n eventId: event.id,\n tickets: Object.entries(values.tickets).reduce(\n (acc, [eventId, items]) => {\n acc[Number(eventId)] = items\n .filter((item) => !!item.quantity && !!item.releaseId)\n .map((item) => ({\n releaseId: Number(item.releaseId),\n quantity: Number(item.quantity),\n price: Number(item.price),\n itemName: item.itemName,\n products: item.products,\n extraFields: item.extraFields,\n eventTimeslotId: Number(eventTimeslotId) || null,\n }));\n return acc;\n },\n {} as Record<number, ITicketFormTicket[]>\n ),\n products: Object.entries(values.products).reduce(\n (acc, [eventId, items]) => {\n acc[Number(eventId)] = items.map((item) => ({\n eventProductVariantId: item.eventProductVariantId,\n productVariantId: item.productVariantId,\n quantity: item.quantity,\n price: item.price,\n excludedShippingMethodIds: item.excludedShippingMethodIds,\n }));\n return acc;\n },\n {} as Record<number, IEventProductForm[]>\n ),\n shipping: {\n shippingMethodId: shipping?.shippingMethodId ? Number(shipping.shippingMethodId) : null,\n branchId: shipping?.branchId,\n price: shipping?.price ? Number(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 === null ? null : Number(paymentMethodId),\n paymentMethodOptionId: paymentMethodOptionId === null ? null : Number(paymentMethodOptionId),\n }),\n [\n uuid,\n event.id,\n tickets,\n products,\n shipping.shippingMethodId,\n shipping.branchId,\n shipping.price,\n promoCodes,\n lang,\n firstName,\n lastName,\n email,\n phone,\n birthdate,\n gender,\n paymentMethodId,\n paymentMethodOptionId,\n eventTimeslotId,\n ]\n );\n\n const debouncedShoppingCartBody = useDebounce(shoppingCartBody, 300);\n\n const setShoppingCartValues = (data: IShoppingCart, 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', { ...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', { ...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 };\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 useEffect(() => {\n if (!secondRender.current) {\n secondRender.current = true;\n } else {\n return;\n }\n\n (async () => {\n const existing = localStorage.getItem('cartToken');\n const res = await getCreateShoppingCart(existing, event.id);\n const data: IShoppingCart = res.data;\n\n localStorage.setItem('cartToken', data.uuid);\n setShoppingCartValues(data);\n })();\n }, []);\n\n useEffect(() => {\n if (firstRender) {\n return;\n }\n\n recalculateItems(debouncedShoppingCartBody);\n }, [debouncedShoppingCartBody]);\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 updateCartIfChanged = (newCart: IShoppingCart, recalculate = false) => {\n if (isEqual(lastCartRef.current, newCart)) {\n return;\n }\n\n lastCartRef.current = newCart;\n setShoppingCartValues(newCart, recalculate);\n };\n\n const recalculateItems = useCallback(async (body: ICalculateShoppingCartDto) => {\n const { uuid } = body;\n if (!uuid) return;\n try {\n const response = await recalculateCart(body);\n const cart = response?.data?.data;\n\n if (cart) {\n updateCartIfChanged(cart, true);\n }\n } catch (err) {\n console.error('Error recalculating 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) => theme.palette.grey.A100,\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 className=\"overview-card__order-info\" p={2} spacing={1}>\n {!!selectedTickets.length && !isMobile && <Divider sx={{ borderStyle: 'dashed' }} />}\n {selectedTickets.map((ticket, index) => (\n <Box key={index}>\n <Stack direction=\"row\" justifyContent=\"space-between\" alignItems=\"center\" spacing={2}>\n <Typography variant=\"caption\">\n {ticket.quantity}x {ticket.itemName}\n </Typography>\n <Typography variant=\"caption\">\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=\"caption\">\n - {product.quantity}x {product.name}\n </Typography>\n <Typography variant=\"caption\">\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=\"caption\">\n {variant.quantity}x {variant.name}\n </Typography>\n <Stack direction=\"row\" spacing={1} alignItems=\"center\">\n <Typography variant=\"caption\">\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 <IconButton onClick={() => removeProduct(variant)} color=\"primary\" size=\"small\">\n <Iconify icon=\"carbon:trash-can\" />\n </IconButton>\n </Stack>\n </Stack>\n </Box>\n ))}\n {!!shippingFee && (\n <Stack direction=\"row\" justifyContent=\"space-between\" alignItems=\"center\" spacing={2}>\n <Typography variant=\"caption\">{t('form.labels.shipping_fee')}</Typography>\n <Typography variant=\"caption\">\n {fCurrency(shippingFee, lang, event.currency)}\n </Typography>\n </Stack>\n )}\n {!!total && !!totalFee && (\n <Stack direction=\"row\" justifyContent=\"space-between\" alignItems=\"center\" spacing={2}>\n <Typography variant=\"caption\">{t('form.labels.service_fee')}</Typography>\n <Typography variant=\"caption\">{getFee}</Typography>\n </Stack>\n )}\n {((!!selectedTickets.length && isMobile) || !isMobile) && (\n <Divider sx={{ borderStyle: 'dashed' }} />\n )}\n <FeeBox event={event} />\n <LoadingButton type=\"submit\" variant=\"contained\" size=\"large\" fullWidth>\n {t(isPaymentVerify ? 'verify' : 'buy')}\n </LoadingButton>\n </Stack>\n </OverviewCard>\n );\n};\n\nexport default PaymentOverviewBox;\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import React, { useState, useEffect, useMemo } from 'react';
|
|
2
|
+
import { Step, StepLabel, StepContent, Box, Stack, TextField, Button, Typography, IconButton, FormControl, RadioGroup, FormControlLabel, Radio, Divider, FormHelperText } from '@mui/material';
|
|
3
|
+
import useAllowedPaymentMethods from '../hooks/data/useAllowedPaymentMethods.js';
|
|
4
|
+
import { useFormContext, useWatch, Controller } from 'react-hook-form';
|
|
5
|
+
import { PaymentWrapper, PaymentItem, PaymentSwiftWrapper } from './style.js';
|
|
6
|
+
import Image from '../components/Image.js';
|
|
7
|
+
import Label from '../components/Label.js';
|
|
8
|
+
import PaymentSkeleton from './payment/PaymentSkeleton.js';
|
|
9
|
+
import RHFRadioGroup from '../components/hook-form/RHFRadioGroup.js';
|
|
10
|
+
import { postPromoCodeApply } from '../modules/promo-code.js';
|
|
11
|
+
import useGlobal from '../hooks/useGlobal.js';
|
|
12
|
+
import { PromoCodeTypes } from '../utils/data/promo-code.js';
|
|
13
|
+
import { throttle } from 'lodash';
|
|
14
|
+
import 'framer-motion';
|
|
15
|
+
import '../components/animate/IconButtonAnimate.js';
|
|
16
|
+
import '@mui/material/styles';
|
|
17
|
+
import '@mui/material/useMediaQuery';
|
|
18
|
+
import Iconify from '../components/iconify/Iconify.js';
|
|
19
|
+
|
|
20
|
+
const PaymentStep = ({ event }) => {
|
|
21
|
+
const { t, lang } = useGlobal();
|
|
22
|
+
const { showSnackbar } = useGlobal();
|
|
23
|
+
const { data, isLoading } = useAllowedPaymentMethods(event.currency);
|
|
24
|
+
const { control, watch, setValue } = useFormContext();
|
|
25
|
+
const paymentMethodId = watch('paymentMethodId');
|
|
26
|
+
const paymentMethodOptionId = watch('paymentMethodOptionId');
|
|
27
|
+
const [promoCode, setPromoCode] = useState('');
|
|
28
|
+
const [promoCodeError, setPromoCodeError] = useState(null);
|
|
29
|
+
const [combine, setCombine] = useState(true);
|
|
30
|
+
const promoCodes = watch('promoCodes');
|
|
31
|
+
const originalPrice = watch('originalPrice');
|
|
32
|
+
const handleSubmit = throttle(async () => {
|
|
33
|
+
if (!promoCode) {
|
|
34
|
+
setPromoCodeError(t('form.validation.required'));
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
if (promoCodes.find((i) => i.code === promoCode)) {
|
|
39
|
+
setPromoCodeError(t('form.validation.promo_code_applied'));
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (!combine) {
|
|
43
|
+
setPromoCodeError(t('form.validation.promo_code_cant_combine'));
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const res = await postPromoCodeApply(promoCode, event.id);
|
|
47
|
+
const promo = res.data.data;
|
|
48
|
+
if (promo && promo.minPurchaseAmount && promo.minPurchaseAmount > originalPrice) {
|
|
49
|
+
setPromoCodeError(t('form.validation.min_purchase_not_met') +
|
|
50
|
+
promo.minPurchaseAmount +
|
|
51
|
+
' ' +
|
|
52
|
+
event.currency);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (!promo.combine && promoCodes.length === 0) {
|
|
56
|
+
setCombine(false);
|
|
57
|
+
}
|
|
58
|
+
else if (!promo.combine) {
|
|
59
|
+
setPromoCodeError(t('form.validation.promo_code_cant_combine'));
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
setValue('promoCodes', [...promoCodes, promo]);
|
|
63
|
+
showSnackbar(res.message);
|
|
64
|
+
setPromoCodeError(null);
|
|
65
|
+
setValue('promoCode', promo);
|
|
66
|
+
setPromoCode('');
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
setPromoCodeError(t('form.validation.promo_code_invalid'));
|
|
70
|
+
console.error(err);
|
|
71
|
+
setValue('promoCode', null);
|
|
72
|
+
}
|
|
73
|
+
}, 1000, { leading: true, trailing: false } // Allow immediate execution but prevent spam
|
|
74
|
+
);
|
|
75
|
+
const removePromoCode = (promoCodeToRemove) => {
|
|
76
|
+
const newPromoCodes = promoCodes.filter((promoC) => promoC.code !== promoCodeToRemove);
|
|
77
|
+
if (!newPromoCodes.find((promoC) => promoC.combine))
|
|
78
|
+
setCombine(true);
|
|
79
|
+
setValue('promoCodes', newPromoCodes);
|
|
80
|
+
};
|
|
81
|
+
const handleKeyDown = async (e) => {
|
|
82
|
+
if (e.key === 'Enter') {
|
|
83
|
+
e.preventDefault();
|
|
84
|
+
if (promoCode)
|
|
85
|
+
await handleSubmit();
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
useEffect(() => {
|
|
89
|
+
if (promoCodes.length === 0)
|
|
90
|
+
return;
|
|
91
|
+
const highest = promoCodes.sort((a, b) => b.minPurchaseAmount - a.minPurchaseAmount)[0]
|
|
92
|
+
.minPurchaseAmount;
|
|
93
|
+
if (originalPrice < highest) {
|
|
94
|
+
const newPromoCodes = promoCodes.filter((promoCode) => promoCode.minPurchaseAmount <= originalPrice);
|
|
95
|
+
if (newPromoCodes.length === 0) {
|
|
96
|
+
setCombine(true);
|
|
97
|
+
}
|
|
98
|
+
setValue('promoCodes', newPromoCodes);
|
|
99
|
+
}
|
|
100
|
+
}, [originalPrice]);
|
|
101
|
+
useEffect(() => {
|
|
102
|
+
if (data) {
|
|
103
|
+
if (!paymentMethodId && !!data.length) {
|
|
104
|
+
setValue('paymentMethodId', data[0].id);
|
|
105
|
+
}
|
|
106
|
+
const selectedPayment = data && data?.length && data.find((payment) => payment.id === Number(paymentMethodId));
|
|
107
|
+
if (selectedPayment && !!selectedPayment.options.length && !paymentMethodOptionId) {
|
|
108
|
+
setValue('paymentMethodOptionId', selectedPayment.options[0].id);
|
|
109
|
+
}
|
|
110
|
+
else if (selectedPayment && !!selectedPayment.options.length && !!paymentMethodOptionId) {
|
|
111
|
+
const existingOption = selectedPayment.options.find((option) => option.id === Number(paymentMethodOptionId));
|
|
112
|
+
if (!existingOption) {
|
|
113
|
+
setValue('paymentMethodOptionId', selectedPayment.options[0].id);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
else if (selectedPayment && !selectedPayment?.options.length) {
|
|
117
|
+
setValue('paymentMethodOptionId', null);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}, [data, paymentMethodId, paymentMethodOptionId]);
|
|
121
|
+
const tickets = useWatch({
|
|
122
|
+
name: 'tickets',
|
|
123
|
+
defaultValue: {},
|
|
124
|
+
});
|
|
125
|
+
const hasTickets = useMemo(() => Object.values(tickets)
|
|
126
|
+
.flat()
|
|
127
|
+
.filter((t) => t.quantity).length > 0, [tickets]);
|
|
128
|
+
const products = useWatch({
|
|
129
|
+
name: 'products',
|
|
130
|
+
defaultValue: {},
|
|
131
|
+
});
|
|
132
|
+
const hasProducts = useMemo(() => Object.values(products).flat().length > 0, [products]);
|
|
133
|
+
const total = useWatch({ name: 'total' });
|
|
134
|
+
const isZero = useMemo(() => total === 0 && (hasTickets || hasProducts), [total]);
|
|
135
|
+
const paymentMethods = useMemo(() => {
|
|
136
|
+
if (!data)
|
|
137
|
+
return [];
|
|
138
|
+
if (isZero) {
|
|
139
|
+
return data.filter((payment) => ['PAYMENT_CARD', 'APPLE_PAY', 'GPAY', 'CLICK_TO_PAY'].includes(payment.type));
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
return data;
|
|
143
|
+
}
|
|
144
|
+
// hasTickets and hasProducts are intentionally not in the dependecies
|
|
145
|
+
}, [data, isZero]);
|
|
146
|
+
return (React.createElement(Step, { active: true },
|
|
147
|
+
React.createElement(StepLabel, null, isZero ? t('event.tickets.stepper.3.title') : t('event.tickets.stepper.3.title_verify')),
|
|
148
|
+
React.createElement(StepContent, null,
|
|
149
|
+
React.createElement(Box, null,
|
|
150
|
+
React.createElement(Box, { className: "payment__promo-code" },
|
|
151
|
+
React.createElement(Stack, { direction: "row", spacing: 2 },
|
|
152
|
+
React.createElement(TextField, { name: "promoCode", size: "small", label: t('form.labels.promo_code'), value: promoCode, onChange: (e) => setPromoCode(e.target.value), onBlur: (e) => {
|
|
153
|
+
if (!e.target.value.trim())
|
|
154
|
+
setPromoCodeError(null);
|
|
155
|
+
}, onKeyDown: handleKeyDown, error: !!promoCodeError, helperText: promoCodeError, fullWidth: true }),
|
|
156
|
+
React.createElement(Box, null,
|
|
157
|
+
React.createElement(Button, { size: "large", type: "button", variant: "contained", onClick: handleSubmit, disabled: !promoCode, sx: { height: 51 } }, t('apply')))),
|
|
158
|
+
React.createElement(Stack, { paddingTop: 3, direction: "column", spacing: 1 }, promoCodes.length > 0 &&
|
|
159
|
+
promoCodes.map((item) => (React.createElement(Stack, { marginTop: 3, direction: "row", alignItems: "center", justifyContent: "space-between", spacing: 2, key: item.code },
|
|
160
|
+
React.createElement(React.Fragment, null,
|
|
161
|
+
React.createElement(Stack, { direction: "row", alignItems: "center" },
|
|
162
|
+
React.createElement(Label, { variant: "filled", sx: { textTransform: 'none', cursor: 'pointer' } }, item.code),
|
|
163
|
+
React.createElement(Typography, { variant: "subtitle2", sx: { ml: 1 } },
|
|
164
|
+
"-",
|
|
165
|
+
' ',
|
|
166
|
+
item.value +
|
|
167
|
+
`${item.type === PromoCodeTypes.FIXED ? ' ' + event.currency : '%'}`)),
|
|
168
|
+
React.createElement(Box, null,
|
|
169
|
+
React.createElement(IconButton, { color: "primary", onClick: () => removePromoCode(item.code), "aria-label": "delete" },
|
|
170
|
+
React.createElement(Iconify, { icon: "carbon:trash-can" }))))))))),
|
|
171
|
+
React.createElement(Typography, { variant: "h4", mt: 2 }, t('event.tickets.stepper.3.subtitle')),
|
|
172
|
+
isLoading ? (React.createElement(PaymentSkeleton, { sx: { marginTop: 1 } })) : (React.createElement(PaymentWrapper, null,
|
|
173
|
+
React.createElement(Controller, { name: "paymentMethodId", control: control, render: ({ field, fieldState: { error } }) => (React.createElement(FormControl, { component: "fieldset" },
|
|
174
|
+
React.createElement(RadioGroup, { ...field }, paymentMethods.map((payment) => (React.createElement(PaymentItem, { key: payment.type, active: !!paymentMethodId && Number(paymentMethodId) === payment.id },
|
|
175
|
+
React.createElement(FormControlLabel, { value: payment.id, control: React.createElement(Radio, null), label: React.createElement(Stack, { direction: "row", alignItems: "center" },
|
|
176
|
+
React.createElement(Typography, { sx: {
|
|
177
|
+
marginRight: 2,
|
|
178
|
+
} }, payment.label[lang]),
|
|
179
|
+
React.createElement(Image, { src: payment.image.url, sx: {
|
|
180
|
+
height: '20px',
|
|
181
|
+
'& .wrapper img': {
|
|
182
|
+
objectFit: 'contain',
|
|
183
|
+
},
|
|
184
|
+
} })), sx: {
|
|
185
|
+
'&:not(:last-of-type)': {
|
|
186
|
+
mb: 0,
|
|
187
|
+
},
|
|
188
|
+
} }),
|
|
189
|
+
!!payment.options.length &&
|
|
190
|
+
!!paymentMethodId &&
|
|
191
|
+
Number(paymentMethodId) === payment.id && (React.createElement(PaymentSwiftWrapper, null,
|
|
192
|
+
React.createElement(Divider, { sx: { mb: 2 } }),
|
|
193
|
+
React.createElement(RHFRadioGroup, { name: "paymentMethodOptionId", row: true, options: payment.options
|
|
194
|
+
.filter((item) => !item.label.en.includes('eshop.api.swifts'))
|
|
195
|
+
.map((option) => ({
|
|
196
|
+
label: (React.createElement(Stack, { direction: "row", alignItems: "center" },
|
|
197
|
+
React.createElement(Image, { src: option.image.url, sx: {
|
|
198
|
+
width: 'auto',
|
|
199
|
+
height: '15px',
|
|
200
|
+
maxWidth: '70px',
|
|
201
|
+
display: 'inline-block',
|
|
202
|
+
marginRight: 1,
|
|
203
|
+
'& .wrapper img': {
|
|
204
|
+
objectFit: 'contain',
|
|
205
|
+
objectPosition: 'left',
|
|
206
|
+
},
|
|
207
|
+
} }),
|
|
208
|
+
React.createElement(Typography, { variant: "body2" }, option.label[lang]))),
|
|
209
|
+
value: option.id,
|
|
210
|
+
})) }))))))),
|
|
211
|
+
!!error && (React.createElement(FormHelperText, { error: !!error, sx: { mx: 0 } }, error?.message)))) })))))));
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
export { PaymentStep as default };
|
|
215
|
+
//# sourceMappingURL=PaymentStep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaymentStep.js","sources":["../../../src/form/PaymentStep.tsx"],"sourcesContent":["import React, { KeyboardEvent, useEffect, useMemo, useState } from 'react';\nimport {\n Box,\n Button,\n Divider,\n FormControl,\n FormControlLabel,\n FormHelperText,\n IconButton,\n Radio,\n RadioGroup,\n Stack,\n Step,\n StepContent,\n StepLabel,\n TextField,\n Typography,\n} from '@mui/material';\nimport useAllowedPaymentMethods from '@hooks/data/useAllowedPaymentMethods';\nimport { Controller, useFormContext, useWatch } from 'react-hook-form';\nimport { PaymentItem, PaymentWrapper, PaymentSwiftWrapper } from '@form/style';\nimport Image from '@components/Image';\nimport Label from '@components/Label';\nimport PaymentSkeleton from '@form/payment/PaymentSkeleton';\nimport { RHFRadioGroup } from '@components/hook-form';\nimport { postPromoCodeApply } from '@modules/promo-code';\nimport { IEvent } from '@utils/types/event.type';\nimport { ITicketForm, ITicketFormTicket } from '@utils/types/ticket.type';\nimport useGlobal from '@hooks/useGlobal.ts';\nimport { IPromoCode } from '@utils/types/promo-code.type';\nimport { PromoCodeTypes } from '@utils/data/promo-code';\nimport { throttle } from 'lodash';\nimport { Iconify } from '@components';\nimport { IEventProductForm } from '@utils/types/product.type';\n\ninterface Props {\n event: IEvent;\n}\n\nconst PaymentStep: React.FC<Props> = ({ event }) => {\n const { t, lang } = useGlobal();\n const { showSnackbar } = useGlobal();\n const { data, isLoading } = useAllowedPaymentMethods(event.currency);\n const { control, watch, setValue } = useFormContext<ITicketForm>();\n const paymentMethodId = watch('paymentMethodId');\n const paymentMethodOptionId = watch('paymentMethodOptionId');\n const [promoCode, setPromoCode] = useState<string>('');\n const [promoCodeError, setPromoCodeError] = useState<string | null>(null);\n const [combine, setCombine] = useState<boolean>(true);\n const promoCodes: IPromoCode[] = watch('promoCodes');\n const originalPrice: number = watch('originalPrice');\n\n const handleSubmit = throttle(\n async () => {\n if (!promoCode) {\n setPromoCodeError(t('form.validation.required'));\n return;\n }\n\n try {\n if (promoCodes.find((i) => i.code === promoCode)) {\n setPromoCodeError(t('form.validation.promo_code_applied'));\n return;\n }\n if (!combine) {\n setPromoCodeError(t('form.validation.promo_code_cant_combine'));\n return;\n }\n\n const res = await postPromoCodeApply(promoCode, event.id);\n const promo = res.data.data;\n\n if (promo && promo.minPurchaseAmount && promo.minPurchaseAmount > originalPrice) {\n setPromoCodeError(\n t('form.validation.min_purchase_not_met') +\n promo.minPurchaseAmount +\n ' ' +\n event.currency\n );\n return;\n }\n\n if (!promo.combine && promoCodes.length === 0) {\n setCombine(false);\n } else if (!promo.combine) {\n setPromoCodeError(t('form.validation.promo_code_cant_combine'));\n return;\n }\n\n setValue('promoCodes', [...promoCodes, promo]);\n showSnackbar(res.message);\n setPromoCodeError(null);\n setValue('promoCode', promo);\n setPromoCode('');\n } catch (err) {\n setPromoCodeError(t('form.validation.promo_code_invalid'));\n console.error(err);\n setValue('promoCode', null);\n }\n },\n 1000,\n { leading: true, trailing: false } // Allow immediate execution but prevent spam\n );\n\n const removePromoCode = (promoCodeToRemove: string) => {\n const newPromoCodes: IPromoCode[] = promoCodes.filter(\n (promoC) => promoC.code !== promoCodeToRemove\n );\n\n if (!newPromoCodes.find((promoC) => promoC.combine)) setCombine(true);\n\n setValue('promoCodes', newPromoCodes);\n };\n\n const handleKeyDown = async (e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n if (promoCode) await handleSubmit();\n }\n };\n\n useEffect(() => {\n if (promoCodes.length === 0) return;\n\n const highest = promoCodes.sort((a, b) => b.minPurchaseAmount - a.minPurchaseAmount)[0]\n .minPurchaseAmount;\n\n if (originalPrice < highest) {\n const newPromoCodes = promoCodes.filter(\n (promoCode) => promoCode.minPurchaseAmount <= originalPrice\n );\n if (newPromoCodes.length === 0) {\n setCombine(true);\n }\n setValue('promoCodes', newPromoCodes);\n }\n }, [originalPrice]);\n\n useEffect(() => {\n if (data) {\n if (!paymentMethodId && !!data.length) {\n setValue('paymentMethodId', data[0].id);\n }\n const selectedPayment =\n data && data?.length && data.find((payment) => payment.id === Number(paymentMethodId));\n if (selectedPayment && !!selectedPayment.options.length && !paymentMethodOptionId) {\n setValue('paymentMethodOptionId', selectedPayment.options[0].id);\n } else if (selectedPayment && !!selectedPayment.options.length && !!paymentMethodOptionId) {\n const existingOption = selectedPayment.options.find(\n (option) => option.id === Number(paymentMethodOptionId)\n );\n if (!existingOption) {\n setValue('paymentMethodOptionId', selectedPayment.options[0].id);\n }\n } else if (selectedPayment && !selectedPayment?.options.length) {\n setValue('paymentMethodOptionId', null);\n }\n }\n }, [data, paymentMethodId, paymentMethodOptionId]);\n\n const tickets: Record<string, ITicketFormTicket[]> = useWatch({\n name: 'tickets',\n defaultValue: {},\n });\n const hasTickets: boolean = useMemo(\n () =>\n Object.values(tickets)\n .flat()\n .filter((t) => t.quantity).length > 0,\n [tickets]\n );\n const products: Record<string, IEventProductForm[]> = useWatch({\n name: 'products',\n defaultValue: {},\n });\n const hasProducts: boolean = useMemo(() => Object.values(products).flat().length > 0, [products]);\n const total: number = useWatch({ name: 'total' });\n\n const isZero = useMemo(() => total === 0 && (hasTickets || hasProducts), [total]);\n\n const paymentMethods = useMemo(() => {\n if (!data) return [];\n if (isZero) {\n return data.filter((payment) =>\n ['PAYMENT_CARD', 'APPLE_PAY', 'GPAY', 'CLICK_TO_PAY'].includes(payment.type)\n );\n } else {\n return data;\n }\n // hasTickets and hasProducts are intentionally not in the dependecies\n }, [data, isZero]);\n\n return (\n <Step active>\n <StepLabel>\n {isZero ? t('event.tickets.stepper.3.title') : t('event.tickets.stepper.3.title_verify')}\n </StepLabel>\n <StepContent>\n <Box>\n <Box className=\"payment__promo-code\">\n <Stack direction=\"row\" spacing={2}>\n <TextField\n name=\"promoCode\"\n size=\"small\"\n label={t('form.labels.promo_code')}\n value={promoCode}\n onChange={(e) => setPromoCode(e.target.value)}\n onBlur={(e) => {\n if (!e.target.value.trim()) setPromoCodeError(null);\n }}\n onKeyDown={handleKeyDown}\n error={!!promoCodeError}\n helperText={promoCodeError}\n fullWidth\n />\n <Box>\n <Button\n size=\"large\"\n type=\"button\"\n variant=\"contained\"\n onClick={handleSubmit}\n disabled={!promoCode}\n sx={{ height: 51 }}\n >\n {t('apply')}\n </Button>\n </Box>\n </Stack>\n <Stack paddingTop={3} direction=\"column\" spacing={1}>\n {promoCodes.length > 0 &&\n promoCodes.map((item: IPromoCode) => (\n <Stack\n marginTop={3}\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n spacing={2}\n key={item.code}\n >\n <>\n <Stack direction=\"row\" alignItems=\"center\">\n <Label variant=\"filled\" sx={{ textTransform: 'none', cursor: 'pointer' }}>\n {item.code}\n </Label>\n <Typography variant=\"subtitle2\" sx={{ ml: 1 }}>\n -{' '}\n {item.value +\n `${item.type === PromoCodeTypes.FIXED ? ' ' + event.currency : '%'}`}\n </Typography>\n </Stack>\n <Box>\n <IconButton\n color=\"primary\"\n onClick={() => removePromoCode(item.code)}\n aria-label=\"delete\"\n >\n <Iconify icon=\"carbon:trash-can\" />\n </IconButton>\n </Box>\n </>\n </Stack>\n ))}\n </Stack>\n </Box>\n\n <Typography variant=\"h4\" mt={2}>\n {t('event.tickets.stepper.3.subtitle')}\n </Typography>\n\n {isLoading ? (\n <PaymentSkeleton sx={{ marginTop: 1 }} />\n ) : (\n <PaymentWrapper>\n <Controller\n name=\"paymentMethodId\"\n control={control}\n render={({ field, fieldState: { error } }) => (\n <FormControl component=\"fieldset\">\n <RadioGroup {...field}>\n {paymentMethods.map((payment) => (\n <PaymentItem\n key={payment.type}\n active={!!paymentMethodId && Number(paymentMethodId) === payment.id}\n >\n <FormControlLabel\n value={payment.id}\n control={<Radio />}\n label={\n <Stack direction=\"row\" alignItems=\"center\">\n <Typography\n sx={{\n marginRight: 2,\n }}\n >\n {payment.label[lang]}\n </Typography>\n <Image\n src={payment.image.url}\n sx={{\n height: '20px',\n '& .wrapper img': {\n objectFit: 'contain',\n },\n }}\n />\n </Stack>\n }\n sx={{\n '&:not(:last-of-type)': {\n mb: 0,\n },\n }}\n />\n {!!payment.options.length &&\n !!paymentMethodId &&\n Number(paymentMethodId) === payment.id && (\n <PaymentSwiftWrapper>\n <Divider sx={{ mb: 2 }} />\n <RHFRadioGroup\n name=\"paymentMethodOptionId\"\n row\n options={payment.options\n .filter((item) => !item.label.en.includes('eshop.api.swifts'))\n .map((option) => ({\n label: (\n <Stack direction=\"row\" alignItems=\"center\">\n <Image\n src={option.image.url}\n sx={{\n width: 'auto',\n height: '15px',\n maxWidth: '70px',\n display: 'inline-block',\n marginRight: 1,\n '& .wrapper img': {\n objectFit: 'contain',\n objectPosition: 'left',\n },\n }}\n />\n <Typography variant=\"body2\">\n {option.label[lang]}\n </Typography>\n </Stack>\n ),\n value: option.id,\n }))}\n />\n </PaymentSwiftWrapper>\n )}\n </PaymentItem>\n ))}\n </RadioGroup>\n\n {!!error && (\n <FormHelperText error={!!error} sx={{ mx: 0 }}>\n {error?.message}\n </FormHelperText>\n )}\n </FormControl>\n )}\n />\n </PaymentWrapper>\n )}\n </Box>\n </StepContent>\n </Step>\n );\n};\n\nexport default PaymentStep;\n"],"names":[],"mappings":"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"}
|
|
@@ -170,6 +170,7 @@ const TicketForm = ({ event, hasGopayIdSsr, selectedReleaseId, isIframe, isInlin
|
|
|
170
170
|
})) || [],
|
|
171
171
|
selectedDate: null,
|
|
172
172
|
eventTimeslotId: null,
|
|
173
|
+
isPaymentVerify: false,
|
|
173
174
|
};
|
|
174
175
|
}, [user]);
|
|
175
176
|
const ValidationSchema = Yup.object().shape({
|
|
@@ -411,7 +412,7 @@ const TicketForm = ({ event, hasGopayIdSsr, selectedReleaseId, isIframe, isInlin
|
|
|
411
412
|
React.createElement(StepContent, null,
|
|
412
413
|
React.createElement(Shipping, { event: event })))),
|
|
413
414
|
React.createElement(Step, { active: true },
|
|
414
|
-
React.createElement(StepLabel, null, t(
|
|
415
|
+
React.createElement(StepLabel, null, t(`event.tickets.stepper.3.${values.isPaymentVerify ? 'title_verify' : 'title'}`)),
|
|
415
416
|
React.createElement(StepContent, null,
|
|
416
417
|
React.createElement(Payment, { event: event })))),
|
|
417
418
|
React.createElement(Stack, { mt: 2, ml: 4 },
|