@eventlook/sdk 1.4.43 → 1.4.45
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/.claude/settings.local.json +9 -0
- package/dist/cjs/form/Payment.js +0 -2
- package/dist/cjs/form/Payment.js.map +1 -1
- package/dist/cjs/form/PaymentOverviewBox.js +55 -77
- package/dist/cjs/form/PaymentOverviewBox.js.map +1 -1
- package/dist/cjs/form/TicketForm.js +2 -1
- package/dist/cjs/form/TicketForm.js.map +1 -1
- package/dist/cjs/form/TicketSelection.js +24 -5
- package/dist/cjs/form/TicketSelection.js.map +1 -1
- package/dist/cjs/form/TicketWithMerchandiseSelection.js +43 -5
- package/dist/cjs/form/TicketWithMerchandiseSelection.js.map +1 -1
- package/dist/cjs/form/payment/FeeBox.js +1 -1
- package/dist/cjs/form/payment/FeeBox.js.map +1 -1
- package/dist/cjs/locales/cs.js +3 -0
- package/dist/cjs/locales/cs.js.map +1 -1
- package/dist/cjs/locales/en.js +3 -0
- package/dist/cjs/locales/en.js.map +1 -1
- package/dist/cjs/locales/es.js +3 -0
- package/dist/cjs/locales/es.js.map +1 -1
- package/dist/cjs/locales/pl.js +3 -0
- package/dist/cjs/locales/pl.js.map +1 -1
- package/dist/cjs/locales/sk.js +3 -0
- package/dist/cjs/locales/sk.js.map +1 -1
- package/dist/cjs/locales/uk.js +3 -0
- package/dist/cjs/locales/uk.js.map +1 -1
- package/dist/cjs/modules/shopping-cart.js +10 -9
- package/dist/cjs/modules/shopping-cart.js.map +1 -1
- package/dist/esm/form/Payment.js +0 -2
- package/dist/esm/form/Payment.js.map +1 -1
- package/dist/esm/form/PaymentOverviewBox.js +57 -79
- package/dist/esm/form/PaymentOverviewBox.js.map +1 -1
- package/dist/esm/form/TicketForm.js +2 -1
- package/dist/esm/form/TicketForm.js.map +1 -1
- package/dist/esm/form/TicketSelection.js +25 -6
- package/dist/esm/form/TicketSelection.js.map +1 -1
- package/dist/esm/form/TicketWithMerchandiseSelection.js +44 -6
- package/dist/esm/form/TicketWithMerchandiseSelection.js.map +1 -1
- package/dist/esm/form/payment/FeeBox.js +1 -1
- package/dist/esm/form/payment/FeeBox.js.map +1 -1
- package/dist/esm/locales/cs.js +3 -0
- package/dist/esm/locales/cs.js.map +1 -1
- package/dist/esm/locales/en.js +3 -0
- package/dist/esm/locales/en.js.map +1 -1
- package/dist/esm/locales/es.js +3 -0
- package/dist/esm/locales/es.js.map +1 -1
- package/dist/esm/locales/pl.js +3 -0
- package/dist/esm/locales/pl.js.map +1 -1
- package/dist/esm/locales/sk.js +3 -0
- package/dist/esm/locales/sk.js.map +1 -1
- package/dist/esm/locales/uk.js +3 -0
- package/dist/esm/locales/uk.js.map +1 -1
- package/dist/esm/modules/shopping-cart.js +9 -8
- package/dist/esm/modules/shopping-cart.js.map +1 -1
- package/dist/types/locales/cs.d.ts +3 -0
- package/dist/types/locales/en.d.ts +3 -0
- package/dist/types/locales/es.d.ts +3 -0
- package/dist/types/locales/pl.d.ts +3 -0
- package/dist/types/locales/sk.d.ts +3 -0
- package/dist/types/locales/uk.d.ts +3 -0
- package/dist/types/modules/shopping-cart.d.ts +3 -5
- package/dist/types/utils/data/shopping-cart.d.ts +5 -0
- package/dist/types/utils/types/shopping-cart.type.d.ts +42 -40
- package/dist/types/utils/types/ticket.type.d.ts +1 -2
- package/package.json +1 -1
- package/src/form/Payment.tsx +0 -2
- package/src/form/PaymentOverviewBox.tsx +71 -88
- package/src/form/TicketForm.tsx +2 -1
- package/src/form/TicketSelection.tsx +29 -7
- package/src/form/TicketWithMerchandiseSelection.tsx +54 -7
- package/src/form/payment/FeeBox.tsx +2 -3
- package/src/locales/cs.tsx +3 -0
- package/src/locales/en.tsx +3 -0
- package/src/locales/es.tsx +3 -0
- package/src/locales/pl.tsx +3 -0
- package/src/locales/sk.tsx +3 -0
- package/src/locales/uk.tsx +3 -0
- package/src/modules/shopping-cart.ts +14 -11
- package/src/utils/data/shopping-cart.ts +5 -0
- package/src/utils/types/shopping-cart.type.ts +40 -36
- package/src/utils/types/ticket.type.ts +1 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { useState, useMemo, useEffect, useCallback } from 'react';
|
|
2
2
|
import 'framer-motion';
|
|
3
3
|
import { Stack, Typography, Box, Grid, Divider, IconButton } from '@mui/material';
|
|
4
4
|
import '../components/animate/IconButtonAnimate.js';
|
|
@@ -16,23 +16,18 @@ import useEventActiveReleases from '../hooks/data/useEventActiveReleases.js';
|
|
|
16
16
|
import { calculatePriceWithDiscount } from '../utils/price.js';
|
|
17
17
|
import FeeBox from './payment/FeeBox.js';
|
|
18
18
|
import { fCurrency } from '../utils/formatNumber.js';
|
|
19
|
-
import { isEqual } from 'lodash';
|
|
20
19
|
import calendarIcon from '@iconify/icons-carbon/calendar';
|
|
21
20
|
import userIcon from '@iconify/icons-carbon/user';
|
|
22
21
|
import { EventType } from '../utils/data/event.js';
|
|
23
22
|
import dayjs from 'dayjs';
|
|
24
23
|
import useGlobal from '../hooks/useGlobal.js';
|
|
25
|
-
import {
|
|
24
|
+
import { getCart, calculateCart } from '../modules/shopping-cart.js';
|
|
26
25
|
import { PromoCodeTypes } from '../utils/data/promo-code.js';
|
|
27
|
-
import { useFirstRender } from '../hooks/useFirstRender.js';
|
|
28
26
|
import useActiveEventProducts from '../hooks/data/useActiveEventProducts.js';
|
|
29
27
|
import useDebounce from '../hooks/useDebounce.js';
|
|
30
28
|
|
|
31
29
|
const PaymentOverviewBox = ({ event }) => {
|
|
32
30
|
const { t, lang, options } = useGlobal();
|
|
33
|
-
const firstRender = useFirstRender();
|
|
34
|
-
const secondRender = useRef(false);
|
|
35
|
-
const lastCartRef = useRef(null);
|
|
36
31
|
const xs = useResponsive('only', 'xs');
|
|
37
32
|
const md = useResponsive('only', 'md');
|
|
38
33
|
const isMobile = useResponsive('down', 'md');
|
|
@@ -98,38 +93,33 @@ const PaymentOverviewBox = ({ event }) => {
|
|
|
98
93
|
}, [event, flatProducts]);
|
|
99
94
|
const getFee = useMemo(() => fCurrency(totalFee ?? 0, lang, event.currency), [totalFee]);
|
|
100
95
|
const shoppingCartBody = useMemo(() => ({
|
|
101
|
-
uuid
|
|
96
|
+
uuid,
|
|
102
97
|
eventId: event.id,
|
|
103
|
-
tickets: Object.entries(values.tickets).
|
|
104
|
-
|
|
105
|
-
|
|
98
|
+
tickets: Object.fromEntries(Object.entries(values.tickets).map(([id, items]) => [
|
|
99
|
+
id,
|
|
100
|
+
items
|
|
101
|
+
.filter((item) => item.quantity && item.releaseId)
|
|
106
102
|
.map((item) => ({
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
quantity: item.quantity,
|
|
122
|
-
price: item.price,
|
|
123
|
-
excludedShippingMethodIds: item.excludedShippingMethodIds,
|
|
124
|
-
}));
|
|
125
|
-
return acc;
|
|
126
|
-
}, {}),
|
|
103
|
+
...item,
|
|
104
|
+
eventTimeslotId: eventTimeslotId ?? null,
|
|
105
|
+
})),
|
|
106
|
+
])),
|
|
107
|
+
products: Object.fromEntries(Object.entries(values.products).map(([id, items]) => [
|
|
108
|
+
id,
|
|
109
|
+
items.map(({ eventProductVariantId, productVariantId, quantity, price, excludedShippingMethodIds, }) => ({
|
|
110
|
+
eventProductVariantId,
|
|
111
|
+
productVariantId,
|
|
112
|
+
quantity,
|
|
113
|
+
price,
|
|
114
|
+
excludedShippingMethodIds,
|
|
115
|
+
})),
|
|
116
|
+
])),
|
|
127
117
|
shipping: {
|
|
128
|
-
shippingMethodId: shipping?.shippingMethodId
|
|
129
|
-
branchId: shipping?.branchId,
|
|
130
|
-
price: shipping?.price
|
|
118
|
+
shippingMethodId: shipping?.shippingMethodId ?? null,
|
|
119
|
+
branchId: shipping?.branchId ?? null,
|
|
120
|
+
price: shipping?.price ?? 0,
|
|
131
121
|
},
|
|
132
|
-
promoCodeIds: promoCodes?.map((p) => p.id)
|
|
122
|
+
promoCodeIds: promoCodes?.map((p) => p.id) ?? null,
|
|
133
123
|
language: lang,
|
|
134
124
|
firstName,
|
|
135
125
|
lastName,
|
|
@@ -137,8 +127,8 @@ const PaymentOverviewBox = ({ event }) => {
|
|
|
137
127
|
phone,
|
|
138
128
|
birthdate,
|
|
139
129
|
gender,
|
|
140
|
-
paymentMethodId: paymentMethodId
|
|
141
|
-
paymentMethodOptionId: paymentMethodOptionId
|
|
130
|
+
paymentMethodId: paymentMethodId ? Number(paymentMethodId) : null,
|
|
131
|
+
paymentMethodOptionId: paymentMethodOptionId ? Number(paymentMethodOptionId) : null,
|
|
142
132
|
ticketInsurance,
|
|
143
133
|
smsNotification,
|
|
144
134
|
}), [
|
|
@@ -146,9 +136,7 @@ const PaymentOverviewBox = ({ event }) => {
|
|
|
146
136
|
event.id,
|
|
147
137
|
tickets,
|
|
148
138
|
products,
|
|
149
|
-
shipping
|
|
150
|
-
shipping.branchId,
|
|
151
|
-
shipping.price,
|
|
139
|
+
shipping,
|
|
152
140
|
promoCodes,
|
|
153
141
|
lang,
|
|
154
142
|
firstName,
|
|
@@ -168,13 +156,13 @@ const PaymentOverviewBox = ({ event }) => {
|
|
|
168
156
|
if (!recalculate) {
|
|
169
157
|
const hasTickets = !!data.tickets && typeof data.tickets === 'object' && Object.keys(data.tickets).length > 0;
|
|
170
158
|
if (hasTickets) {
|
|
171
|
-
setValue('tickets',
|
|
159
|
+
setValue('tickets', data.tickets);
|
|
172
160
|
}
|
|
173
161
|
const hasProducts = !!data.products &&
|
|
174
162
|
typeof data.products === 'object' &&
|
|
175
163
|
Object.keys(data.products).length > 0;
|
|
176
164
|
if (hasProducts) {
|
|
177
|
-
setValue('products',
|
|
165
|
+
setValue('products', data.products);
|
|
178
166
|
}
|
|
179
167
|
setValue('promoCodes', data.promoCodes || []);
|
|
180
168
|
setValue('uuid', data.uuid);
|
|
@@ -197,11 +185,11 @@ const PaymentOverviewBox = ({ event }) => {
|
|
|
197
185
|
const feeTotal = (data.serviceFee ?? 0) + (data.paymentMethodFee ?? 0);
|
|
198
186
|
setValue('totalFee', feeTotal);
|
|
199
187
|
setShippingFee(data.shippingFee);
|
|
200
|
-
setValue('ticketInsurance', data.ticketInsurance
|
|
201
|
-
setValue('ticketInsurancePrice', data.
|
|
202
|
-
setValue('ticketInsurancePricePerUnit', data.
|
|
203
|
-
setValue('smsNotification', data.smsNotification
|
|
204
|
-
setValue('smsNotificationPrice', data.
|
|
188
|
+
setValue('ticketInsurance', data.ticketInsurance.enabled);
|
|
189
|
+
setValue('ticketInsurancePrice', data.ticketInsurance.price);
|
|
190
|
+
setValue('ticketInsurancePricePerUnit', data.ticketInsurance.pricePerUnit);
|
|
191
|
+
setValue('smsNotification', data.smsNotification.enabled);
|
|
192
|
+
setValue('smsNotificationPrice', data.smsNotification.price);
|
|
205
193
|
};
|
|
206
194
|
const totalItemCount = useMemo(() => {
|
|
207
195
|
const count = {
|
|
@@ -263,27 +251,15 @@ const PaymentOverviewBox = ({ event }) => {
|
|
|
263
251
|
discount.fixedDevidedTickets += discount.fixedDevidedProducts;
|
|
264
252
|
return discount;
|
|
265
253
|
}, [promoCodes, flatTickets, flatProducts]);
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
}
|
|
270
|
-
else {
|
|
271
|
-
return;
|
|
272
|
-
}
|
|
273
|
-
(async () => {
|
|
274
|
-
const existing = localStorage.getItem('cartToken');
|
|
275
|
-
const res = await getCreateShoppingCart(existing, event.id);
|
|
276
|
-
const data = res.data;
|
|
277
|
-
localStorage.setItem('cartToken', data.uuid);
|
|
278
|
-
setShoppingCartValues(data);
|
|
279
|
-
})();
|
|
254
|
+
const hasOrderId = useMemo(() => {
|
|
255
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
256
|
+
return urlParams.has('id');
|
|
280
257
|
}, []);
|
|
281
258
|
useEffect(() => {
|
|
282
|
-
if (
|
|
283
|
-
|
|
259
|
+
if (!hasOrderId) {
|
|
260
|
+
recalculateItems(debouncedShoppingCartBody);
|
|
284
261
|
}
|
|
285
|
-
|
|
286
|
-
}, [debouncedShoppingCartBody]);
|
|
262
|
+
}, [debouncedShoppingCartBody, hasOrderId]);
|
|
287
263
|
/** Iframe code **/
|
|
288
264
|
useEffect(() => {
|
|
289
265
|
window.addEventListener('message', messageListener, false);
|
|
@@ -300,26 +276,28 @@ const PaymentOverviewBox = ({ event }) => {
|
|
|
300
276
|
}
|
|
301
277
|
};
|
|
302
278
|
/** End Iframe code **/
|
|
303
|
-
const updateCartIfChanged = (newCart, recalculate = false) => {
|
|
304
|
-
if (isEqual(lastCartRef.current, newCart)) {
|
|
305
|
-
return;
|
|
306
|
-
}
|
|
307
|
-
lastCartRef.current = newCart;
|
|
308
|
-
setShoppingCartValues(newCart, recalculate);
|
|
309
|
-
};
|
|
310
279
|
const recalculateItems = useCallback(async (body) => {
|
|
311
|
-
const { uuid } = body;
|
|
312
|
-
if (!uuid)
|
|
313
|
-
return;
|
|
314
280
|
try {
|
|
315
|
-
const
|
|
316
|
-
|
|
281
|
+
const isInitial = !body.uuid;
|
|
282
|
+
let response;
|
|
283
|
+
if (isInitial) {
|
|
284
|
+
const existing = localStorage.getItem('cartToken');
|
|
285
|
+
const storedUuid = existing && existing !== 'undefined' && existing !== 'null' ? existing : null;
|
|
286
|
+
response = await getCart(body.eventId, storedUuid);
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
response = await calculateCart(body);
|
|
290
|
+
}
|
|
291
|
+
const cart = response?.data;
|
|
317
292
|
if (cart) {
|
|
318
|
-
|
|
293
|
+
if (cart.uuid) {
|
|
294
|
+
localStorage.setItem('cartToken', cart.uuid);
|
|
295
|
+
}
|
|
296
|
+
setShoppingCartValues(cart, !isInitial);
|
|
319
297
|
}
|
|
320
298
|
}
|
|
321
299
|
catch (err) {
|
|
322
|
-
console.error('Error
|
|
300
|
+
console.error('Error calculating cart:', err);
|
|
323
301
|
}
|
|
324
302
|
}, []);
|
|
325
303
|
const removeProduct = (variant) => {
|
|
@@ -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 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 { 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 ticketInsurance,\n ticketInsurancePricePerUnit,\n smsNotification,\n smsNotificationPrice,\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 ticketInsurance,\n smsNotification,\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 ticketInsurance,\n smsNotification,\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 setValue('ticketInsurance', data.ticketInsurance || false);\n setValue('ticketInsurancePrice', data.ticketInsurancePrice || 0);\n setValue('ticketInsurancePricePerUnit', data.ticketInsurancePricePerUnit || 0);\n setValue('smsNotification', data.smsNotification || false);\n setValue('smsNotificationPrice', data.smsNotificationPrice || 0);\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 {ticketInsurance && totalItemCount.totalTickets > 0 && (\n <Stack direction=\"row\" justifyContent=\"space-between\" alignItems=\"center\" spacing={2}>\n <Typography variant=\"caption\">{t('form.labels.ticket_insurance')}</Typography>\n <Typography variant=\"caption\">\n {fCurrency(values.ticketInsurancePrice, lang, event.currency)}\n </Typography>\n </Stack>\n )}\n {smsNotification && totalItemCount.totalTickets > 0 && (\n <Stack direction=\"row\" justifyContent=\"space-between\" alignItems=\"center\" spacing={2}>\n <Typography variant=\"caption\">{t('form.labels.sms_notification')}</Typography>\n <Typography variant=\"caption\">\n {fCurrency(values.smsNotificationPrice, 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 {!!selectedTickets.length && (\n <>\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 {/* + {fCurrency(ticketInsurancePricePerUnit, lang, event.currency)} /{' '}*/}\n {/* {t('event.tickets.insurance.per_ticket')}*/}\n {/* </>*/}\n {/* }*/}\n {/* modal={{*/}\n {/* title: t('event.tickets.insurance.label'),*/}\n {/* description: (*/}\n {/* <>*/}\n {/* <Typography variant=\"body2\" paragraph>*/}\n {/* {t('event.tickets.insurance.modal.description')}*/}\n {/* </Typography>*/}\n {/* <Typography variant=\"body2\" paragraph>*/}\n {/* {t('event.tickets.insurance.modal.coverage')}*/}\n {/* </Typography>*/}\n {/* <Typography variant=\"body2\" sx={{ fontWeight: 600 }}>*/}\n {/* {t('event.tickets.insurance.modal.price')}:{' '}*/}\n {/* {fCurrency(ticketInsurancePricePerUnit, lang, event.currency)} /{' '}*/}\n {/* {t('event.tickets.insurance.per_ticket')}*/}\n {/* </Typography>*/}\n {/* </>*/}\n {/* ),*/}\n {/* }}*/}\n {/*/>*/}\n <PaymentOverviewCheckbox\n checkboxName=\"smsNotification\"\n label={t('event.tickets.sms_notification.label')}\n value={<>+ {fCurrency(smsNotificationPrice, lang, event.currency)}</>}\n modal={{\n title: t('event.tickets.sms_notification.label'),\n description: (\n <>\n <Typography variant=\"body2\" paragraph>\n {t('event.tickets.sms_notification.modal.description')}\n </Typography>\n <Typography variant=\"body2\" sx={{ fontWeight: 600 }}>\n {t('event.tickets.sms_notification.modal.price')}:{' '}\n {fCurrency(smsNotificationPrice, lang, event.currency)}\n </Typography>\n </>\n ),\n }}\n />\n <Divider sx={{ borderStyle: 'dashed' }} />\n </>\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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"}
|
|
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, IconButton, 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';\n\ninterface Props {\n event: IEvent;\n}\n\nconst PaymentOverviewBox: React.FC<Props> = ({ event }) => {\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 ticketInsurancePricePerUnit,\n smsNotification,\n smsNotificationPrice,\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) => 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 {ticketInsurance && totalItemCount.totalTickets > 0 && (\n <Stack direction=\"row\" justifyContent=\"space-between\" alignItems=\"center\" spacing={2}>\n <Typography variant=\"caption\">{t('form.labels.ticket_insurance')}</Typography>\n <Typography variant=\"caption\">\n {fCurrency(values.ticketInsurancePrice, lang, event.currency)}\n </Typography>\n </Stack>\n )}\n {smsNotification && totalItemCount.totalTickets > 0 && (\n <Stack direction=\"row\" justifyContent=\"space-between\" alignItems=\"center\" spacing={2}>\n <Typography variant=\"caption\">{t('form.labels.sms_notification')}</Typography>\n <Typography variant=\"caption\">\n {fCurrency(values.smsNotificationPrice, 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 {!!selectedTickets.length && (\n <>\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 {/* + {fCurrency(ticketInsurancePricePerUnit, lang, event.currency)} /{' '}*/}\n {/* {t('event.tickets.insurance.per_ticket')}*/}\n {/* </>*/}\n {/* }*/}\n {/* modal={{*/}\n {/* title: t('event.tickets.insurance.label'),*/}\n {/* description: (*/}\n {/* <>*/}\n {/* <Typography variant=\"body2\" paragraph>*/}\n {/* {t('event.tickets.insurance.modal.description')}*/}\n {/* </Typography>*/}\n {/* <Typography variant=\"body2\" paragraph>*/}\n {/* {t('event.tickets.insurance.modal.coverage')}*/}\n {/* </Typography>*/}\n {/* <Typography variant=\"body2\" sx={{ fontWeight: 600 }}>*/}\n {/* {t('event.tickets.insurance.modal.price')}:{' '}*/}\n {/* {fCurrency(ticketInsurancePricePerUnit, lang, event.currency)} /{' '}*/}\n {/* {t('event.tickets.insurance.per_ticket')}*/}\n {/* </Typography>*/}\n {/* </>*/}\n {/* ),*/}\n {/* }}*/}\n {/*/>*/}\n <PaymentOverviewCheckbox\n checkboxName=\"smsNotification\"\n label={t('event.tickets.sms_notification.label')}\n value={<>+ {fCurrency(smsNotificationPrice, lang, event.currency)}</>}\n modal={{\n title: t('event.tickets.sms_notification.label'),\n description: (\n <>\n <Typography variant=\"body2\" paragraph>\n {t('event.tickets.sms_notification.modal.description')}\n </Typography>\n <Typography variant=\"body2\" sx={{ fontWeight: 600 }}>\n {t('event.tickets.sms_notification.modal.price')}:{' '}\n {fCurrency(smsNotificationPrice, lang, event.currency)}\n </Typography>\n </>\n ),\n }}\n />\n <Divider sx={{ borderStyle: 'dashed' }} />\n </>\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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"}
|
|
@@ -162,7 +162,6 @@ const TicketForm = ({ event, hasGopayIdSsr, selectedReleaseId, isIframe, isInlin
|
|
|
162
162
|
smsNotification: false,
|
|
163
163
|
smsNotificationPrice: 0,
|
|
164
164
|
iframeCampaignId: undefined,
|
|
165
|
-
promoCode: null,
|
|
166
165
|
promoCodes: [],
|
|
167
166
|
products: {},
|
|
168
167
|
shipping: {
|
|
@@ -257,6 +256,7 @@ const TicketForm = ({ event, hasGopayIdSsr, selectedReleaseId, isIframe, isInlin
|
|
|
257
256
|
else {
|
|
258
257
|
try {
|
|
259
258
|
const data = cloneObject(values);
|
|
259
|
+
data.paymentMethodId = Number(values.paymentMethodId);
|
|
260
260
|
data.promoCodeIds = values.promoCodes?.map((item) => item.id);
|
|
261
261
|
const urlParams = new URLSearchParams(window.location.search);
|
|
262
262
|
const iframeCallback = urlParams.get('callback');
|
|
@@ -277,6 +277,7 @@ const TicketForm = ({ event, hasGopayIdSsr, selectedReleaseId, isIframe, isInlin
|
|
|
277
277
|
return acc;
|
|
278
278
|
}, {});
|
|
279
279
|
const { data: orderData } = await postOrder(data);
|
|
280
|
+
localStorage.removeItem('cartToken');
|
|
280
281
|
const items = [
|
|
281
282
|
...orderData.tickets.map((ticket) => ({
|
|
282
283
|
item_id: ticket.number,
|