@eventlook/sdk 1.4.48 → 1.4.49-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +1 -0
- package/dist/cjs/_virtual/_commonjsHelpers.js +8 -0
- package/dist/cjs/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/cjs/_virtual/index.js +6 -0
- package/dist/cjs/_virtual/index.js.map +1 -0
- package/dist/cjs/_virtual/index2.js +6 -0
- package/dist/cjs/_virtual/index2.js.map +1 -0
- package/dist/cjs/_virtual/index3.js +6 -0
- package/dist/cjs/_virtual/index3.js.map +1 -0
- package/dist/cjs/_virtual/react-is.development.js +6 -0
- package/dist/cjs/_virtual/react-is.development.js.map +1 -0
- package/dist/cjs/_virtual/react-is.development2.js +6 -0
- package/dist/cjs/_virtual/react-is.development2.js.map +1 -0
- package/dist/cjs/_virtual/react-is.production.js +6 -0
- package/dist/cjs/_virtual/react-is.production.js.map +1 -0
- package/dist/cjs/_virtual/react-is.production.min.js +6 -0
- package/dist/cjs/_virtual/react-is.production.min.js.map +1 -0
- package/dist/cjs/components/hook-form/FormProvider.js +2 -2
- package/dist/cjs/components/hook-form/FormProvider.js.map +1 -1
- package/dist/cjs/form/ChildEventDialog.js +3 -3
- package/dist/cjs/form/ChildEventDialog.js.map +1 -1
- package/dist/cjs/form/ContactPerson.js +1 -1
- package/dist/cjs/form/ContactPerson.js.map +1 -1
- package/dist/cjs/form/PaymentOverviewBox.js +47 -61
- package/dist/cjs/form/PaymentOverviewBox.js.map +1 -1
- package/dist/cjs/form/PaymentOverviewDrawer.js +157 -0
- package/dist/cjs/form/PaymentOverviewDrawer.js.map +1 -0
- package/dist/cjs/form/ReleaseWithMerchandise.js +57 -48
- package/dist/cjs/form/ReleaseWithMerchandise.js.map +1 -1
- package/dist/cjs/form/Shipping.js +21 -18
- package/dist/cjs/form/Shipping.js.map +1 -1
- package/dist/cjs/form/TicketForm.js +94 -33
- package/dist/cjs/form/TicketForm.js.map +1 -1
- package/dist/cjs/form/TicketQuantityControl.js +51 -0
- package/dist/cjs/form/TicketQuantityControl.js.map +1 -0
- package/dist/cjs/form/TicketSelection.js +5 -6
- package/dist/cjs/form/TicketSelection.js.map +1 -1
- package/dist/cjs/form/TicketSelectionMobile.js +98 -0
- package/dist/cjs/form/TicketSelectionMobile.js.map +1 -0
- package/dist/cjs/form/TicketWithMerchandiseSelection.js +3 -5
- package/dist/cjs/form/TicketWithMerchandiseSelection.js.map +1 -1
- package/dist/cjs/form/index.js +1 -1
- package/dist/cjs/form/index.js.map +1 -1
- package/dist/cjs/form/merchandise/MerchandiseSelection.js +14 -0
- package/dist/cjs/form/merchandise/MerchandiseSelection.js.map +1 -0
- package/dist/cjs/form/merchandise/MerchandiseSlider.js +40 -0
- package/dist/cjs/form/merchandise/MerchandiseSlider.js.map +1 -0
- package/dist/cjs/form/merchendise/MerchandiseSelection.js +19 -0
- package/dist/cjs/form/merchendise/MerchandiseSelection.js.map +1 -0
- package/dist/cjs/form/merchendise/MerchandiseSlider.js +75 -0
- package/dist/cjs/form/merchendise/MerchandiseSlider.js.map +1 -0
- package/dist/cjs/form/payment/FeeBox.js +4 -16
- package/dist/cjs/form/payment/FeeBox.js.map +1 -1
- package/dist/cjs/form/payment/PaymentOverviewCheckbox.js +33 -28
- package/dist/cjs/form/payment/PaymentOverviewCheckbox.js.map +1 -1
- package/dist/cjs/form/product/ProductCard.js +139 -36
- package/dist/cjs/form/product/ProductCard.js.map +1 -1
- package/dist/cjs/form/product/ProductVariantsDialog.js +157 -96
- package/dist/cjs/form/product/ProductVariantsDialog.js.map +1 -1
- package/dist/cjs/form/services/index.js +133 -0
- package/dist/cjs/form/services/index.js.map +1 -0
- package/dist/cjs/form/style.js +7 -3
- package/dist/cjs/form/style.js.map +1 -1
- package/dist/cjs/form/tickets/ReleaseDescription.js +23 -0
- package/dist/cjs/form/tickets/ReleaseDescription.js.map +1 -0
- package/dist/cjs/form/tickets/ReleaseWithMerchandise.js +141 -0
- package/dist/cjs/form/tickets/ReleaseWithMerchandise.js.map +1 -0
- package/dist/cjs/form/tickets/TicketQuantityControl.js +52 -0
- package/dist/cjs/form/tickets/TicketQuantityControl.js.map +1 -0
- package/dist/cjs/form/tickets/TicketSelection.js +139 -0
- package/dist/cjs/form/tickets/TicketSelection.js.map +1 -0
- package/dist/cjs/form/tickets/TicketSelectionMap.js +73 -0
- package/dist/cjs/form/tickets/TicketSelectionMap.js.map +1 -0
- package/dist/cjs/form/tickets/TicketSelectionMobile.js +90 -0
- package/dist/cjs/form/tickets/TicketSelectionMobile.js.map +1 -0
- package/dist/cjs/form/tickets/TicketWithMerchandiseSelection.js +117 -0
- package/dist/cjs/form/tickets/TicketWithMerchandiseSelection.js.map +1 -0
- package/dist/cjs/hooks/useConsentScrollOnDrawerOpen.js +59 -0
- package/dist/cjs/hooks/useConsentScrollOnDrawerOpen.js.map +1 -0
- package/dist/cjs/hooks/useScrollToFirstError.js +64 -0
- package/dist/cjs/hooks/useScrollToFirstError.js.map +1 -0
- package/dist/cjs/locales/cs.js +18 -3
- package/dist/cjs/locales/cs.js.map +1 -1
- package/dist/cjs/locales/en.js +17 -2
- package/dist/cjs/locales/en.js.map +1 -1
- package/dist/cjs/locales/es.js +16 -1
- package/dist/cjs/locales/es.js.map +1 -1
- package/dist/cjs/locales/pl.js +16 -1
- package/dist/cjs/locales/pl.js.map +1 -1
- package/dist/cjs/locales/sk.js +17 -2
- package/dist/cjs/locales/sk.js.map +1 -1
- package/dist/cjs/locales/uk.js +16 -1
- package/dist/cjs/locales/uk.js.map +1 -1
- package/dist/cjs/utils/data/global.js +2 -0
- package/dist/cjs/utils/data/global.js.map +1 -1
- package/dist/esm/_virtual/_commonjsHelpers.js +6 -0
- package/dist/esm/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/esm/_virtual/index.js +4 -0
- package/dist/esm/_virtual/index.js.map +1 -0
- package/dist/esm/_virtual/index2.js +4 -0
- package/dist/esm/_virtual/index2.js.map +1 -0
- package/dist/esm/_virtual/index3.js +4 -0
- package/dist/esm/_virtual/index3.js.map +1 -0
- package/dist/esm/_virtual/react-is.development.js +4 -0
- package/dist/esm/_virtual/react-is.development.js.map +1 -0
- package/dist/esm/_virtual/react-is.development2.js +4 -0
- package/dist/esm/_virtual/react-is.development2.js.map +1 -0
- package/dist/esm/_virtual/react-is.production.js +4 -0
- package/dist/esm/_virtual/react-is.production.js.map +1 -0
- package/dist/esm/_virtual/react-is.production.min.js +4 -0
- package/dist/esm/_virtual/react-is.production.min.js.map +1 -0
- package/dist/esm/components/hook-form/FormProvider.js +2 -2
- package/dist/esm/components/hook-form/FormProvider.js.map +1 -1
- package/dist/esm/form/ChildEventDialog.js +3 -3
- package/dist/esm/form/ChildEventDialog.js.map +1 -1
- package/dist/esm/form/ContactPerson.js +1 -1
- package/dist/esm/form/ContactPerson.js.map +1 -1
- package/dist/esm/form/PaymentOverviewBox.js +48 -62
- package/dist/esm/form/PaymentOverviewBox.js.map +1 -1
- package/dist/esm/form/PaymentOverviewDrawer.js +153 -0
- package/dist/esm/form/PaymentOverviewDrawer.js.map +1 -0
- package/dist/esm/form/ReleaseWithMerchandise.js +58 -49
- package/dist/esm/form/ReleaseWithMerchandise.js.map +1 -1
- package/dist/esm/form/Shipping.js +21 -18
- package/dist/esm/form/Shipping.js.map +1 -1
- package/dist/esm/form/TicketForm.js +96 -35
- package/dist/esm/form/TicketForm.js.map +1 -1
- package/dist/esm/form/TicketQuantityControl.js +47 -0
- package/dist/esm/form/TicketQuantityControl.js.map +1 -0
- package/dist/esm/form/TicketSelection.js +5 -6
- package/dist/esm/form/TicketSelection.js.map +1 -1
- package/dist/esm/form/TicketSelectionMobile.js +94 -0
- package/dist/esm/form/TicketSelectionMobile.js.map +1 -0
- package/dist/esm/form/TicketWithMerchandiseSelection.js +4 -6
- package/dist/esm/form/TicketWithMerchandiseSelection.js.map +1 -1
- package/dist/esm/form/index.js +1 -1
- package/dist/esm/form/index.js.map +1 -1
- package/dist/esm/form/merchandise/MerchandiseSelection.js +10 -0
- package/dist/esm/form/merchandise/MerchandiseSelection.js.map +1 -0
- package/dist/esm/form/merchandise/MerchandiseSlider.js +36 -0
- package/dist/esm/form/merchandise/MerchandiseSlider.js.map +1 -0
- package/dist/esm/form/merchendise/MerchandiseSelection.js +15 -0
- package/dist/esm/form/merchendise/MerchandiseSelection.js.map +1 -0
- package/dist/esm/form/merchendise/MerchandiseSlider.js +71 -0
- package/dist/esm/form/merchendise/MerchandiseSlider.js.map +1 -0
- package/dist/esm/form/payment/FeeBox.js +5 -17
- package/dist/esm/form/payment/FeeBox.js.map +1 -1
- package/dist/esm/form/payment/PaymentOverviewCheckbox.js +35 -30
- package/dist/esm/form/payment/PaymentOverviewCheckbox.js.map +1 -1
- package/dist/esm/form/product/ProductCard.js +140 -37
- package/dist/esm/form/product/ProductCard.js.map +1 -1
- package/dist/esm/form/product/ProductVariantsDialog.js +159 -98
- package/dist/esm/form/product/ProductVariantsDialog.js.map +1 -1
- package/dist/esm/form/services/index.js +129 -0
- package/dist/esm/form/services/index.js.map +1 -0
- package/dist/esm/form/style.js +7 -3
- package/dist/esm/form/style.js.map +1 -1
- package/dist/esm/form/tickets/ReleaseDescription.js +19 -0
- package/dist/esm/form/tickets/ReleaseDescription.js.map +1 -0
- package/dist/esm/form/tickets/ReleaseWithMerchandise.js +137 -0
- package/dist/esm/form/tickets/ReleaseWithMerchandise.js.map +1 -0
- package/dist/esm/form/tickets/TicketQuantityControl.js +48 -0
- package/dist/esm/form/tickets/TicketQuantityControl.js.map +1 -0
- package/dist/esm/form/tickets/TicketSelection.js +135 -0
- package/dist/esm/form/tickets/TicketSelection.js.map +1 -0
- package/dist/esm/form/tickets/TicketSelectionMap.js +69 -0
- package/dist/esm/form/tickets/TicketSelectionMap.js.map +1 -0
- package/dist/esm/form/tickets/TicketSelectionMobile.js +86 -0
- package/dist/esm/form/tickets/TicketSelectionMobile.js.map +1 -0
- package/dist/esm/form/tickets/TicketWithMerchandiseSelection.js +113 -0
- package/dist/esm/form/tickets/TicketWithMerchandiseSelection.js.map +1 -0
- package/dist/esm/hooks/useConsentScrollOnDrawerOpen.js +55 -0
- package/dist/esm/hooks/useConsentScrollOnDrawerOpen.js.map +1 -0
- package/dist/esm/hooks/useScrollToFirstError.js +60 -0
- package/dist/esm/hooks/useScrollToFirstError.js.map +1 -0
- package/dist/esm/locales/cs.js +18 -3
- package/dist/esm/locales/cs.js.map +1 -1
- package/dist/esm/locales/en.js +17 -2
- package/dist/esm/locales/en.js.map +1 -1
- package/dist/esm/locales/es.js +16 -1
- package/dist/esm/locales/es.js.map +1 -1
- package/dist/esm/locales/pl.js +16 -1
- package/dist/esm/locales/pl.js.map +1 -1
- package/dist/esm/locales/sk.js +17 -2
- package/dist/esm/locales/sk.js.map +1 -1
- package/dist/esm/locales/uk.js +16 -1
- package/dist/esm/locales/uk.js.map +1 -1
- package/dist/esm/utils/data/global.js +2 -1
- package/dist/esm/utils/data/global.js.map +1 -1
- package/dist/types/components/Image.d.ts +4 -4
- package/dist/types/form/PaymentOverviewDrawer.d.ts +8 -0
- package/dist/types/form/merchendise/MerchandiseSelection.d.ts +9 -0
- package/dist/types/form/merchendise/MerchandiseSlider.d.ts +10 -0
- package/dist/types/form/merchendise/MerchendiseSlider.d.ts +0 -0
- package/dist/types/form/style.d.ts +1 -1
- package/package.json +5 -1
- package/rollup.config.mjs +2 -0
- package/src/components/hook-form/FormProvider.tsx +5 -2
- package/src/form/ChildEventDialog.tsx +3 -3
- package/src/form/ContactPerson.tsx +1 -1
- package/src/form/PaymentOverviewBox.tsx +89 -122
- package/src/form/PaymentOverviewDrawer.tsx +238 -0
- package/src/form/Shipping.tsx +29 -17
- package/src/form/TicketForm.tsx +140 -39
- package/src/form/index.tsx +3 -1
- package/src/form/merchandise/MerchandiseSelection.tsx +24 -0
- package/src/form/merchandise/MerchandiseSlider.tsx +62 -0
- package/src/form/payment/FeeBox.tsx +4 -31
- package/src/form/payment/PaymentOverviewCheckbox.tsx +57 -56
- package/src/form/product/ProductCard.tsx +250 -59
- package/src/form/product/ProductVariantsDialog.tsx +253 -140
- package/src/form/services/index.tsx +263 -0
- package/src/form/style.ts +9 -3
- package/src/form/tickets/ReleaseDescription.tsx +46 -0
- package/src/form/tickets/ReleaseWithMerchandise.tsx +239 -0
- package/src/form/tickets/TicketQuantityControl.tsx +94 -0
- package/src/form/{TicketSelection.tsx → tickets/TicketSelection.tsx} +24 -128
- package/src/form/{TicketSelectionMap.tsx → tickets/TicketSelectionMap.tsx} +9 -1
- package/src/form/tickets/TicketSelectionMobile.tsx +177 -0
- package/src/form/{TicketWithMerchandiseSelection.tsx → tickets/TicketWithMerchandiseSelection.tsx} +3 -7
- package/src/hooks/useConsentScrollOnDrawerOpen.ts +73 -0
- package/src/hooks/useScrollToFirstError.ts +94 -0
- package/src/locales/cs.tsx +18 -3
- package/src/locales/en.tsx +17 -2
- package/src/locales/es.tsx +16 -1
- package/src/locales/pl.tsx +16 -1
- package/src/locales/sk.tsx +17 -2
- package/src/locales/uk.tsx +16 -1
- package/src/utils/data/global.ts +1 -0
- package/tsconfig.json +2 -1
- package/.claude/settings.local.json +0 -9
- package/src/form/MerchandiseSelection.tsx +0 -29
- package/src/form/ReleaseWithMerchandise.tsx +0 -230
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
2
2
|
import { Iconify, Image, TextIconLabel } from '@components';
|
|
3
|
-
import { Box, Divider, Grid,
|
|
3
|
+
import { Box, Divider, Grid, Stack, Typography } from '@mui/material';
|
|
4
4
|
import PaymentOverviewCheckbox from '@form/payment/PaymentOverviewCheckbox.tsx';
|
|
5
5
|
import locationIcon from '@iconify/icons-carbon/location';
|
|
6
6
|
import { getPlaceAsString } from '@utils/place';
|
|
@@ -26,6 +26,7 @@ import { ICalculateShoppingCartDto, IShoppingCartDto } from '@utils/types/shoppi
|
|
|
26
26
|
import { PromoCodeTypes } from '@utils/data/promo-code.ts';
|
|
27
27
|
import useActiveEventProducts from '@hooks/data/useActiveEventProducts';
|
|
28
28
|
import useDebounce from '@hooks/useDebounce';
|
|
29
|
+
import { EVENTLOOK_ORDER_FORM_ID } from '@utils/data/global.ts';
|
|
29
30
|
|
|
30
31
|
interface Props {
|
|
31
32
|
event: IEvent;
|
|
@@ -54,9 +55,9 @@ const PaymentOverviewBox: React.FC<Props> = ({ event }) => {
|
|
|
54
55
|
totalFee,
|
|
55
56
|
isPaymentVerify,
|
|
56
57
|
ticketInsurance,
|
|
57
|
-
ticketInsurancePricePerUnit,
|
|
58
58
|
smsNotification,
|
|
59
59
|
smsNotificationPrice,
|
|
60
|
+
ticketInsurancePricePerUnit,
|
|
60
61
|
} = values;
|
|
61
62
|
const tickets: Record<string, ITicketFormTicket[]> = useWatch({
|
|
62
63
|
name: 'tickets',
|
|
@@ -385,29 +386,29 @@ const PaymentOverviewBox: React.FC<Props> = ({ event }) => {
|
|
|
385
386
|
}
|
|
386
387
|
}, []);
|
|
387
388
|
|
|
388
|
-
const removeProduct = (variant: ISelectedProductVariant) => {
|
|
389
|
-
|
|
390
|
-
|
|
389
|
+
// const removeProduct = (variant: ISelectedProductVariant) => {
|
|
390
|
+
// const { eventId, variantId } = variant;
|
|
391
|
+
// const list = Array.isArray(products[eventId]) ? [...products[eventId]] : [];
|
|
391
392
|
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
393
|
+
// const idx = list.findIndex((p) => Number(p.eventProductVariantId) === Number(variantId));
|
|
394
|
+
// if (idx === -1) return;
|
|
395
|
+
// const item = list[idx];
|
|
395
396
|
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
397
|
+
// if ((item.quantity ?? 0) <= 1) {
|
|
398
|
+
// list.splice(idx, 1);
|
|
399
|
+
// } else {
|
|
400
|
+
// list[idx] = { ...item, quantity: (item.quantity ?? 1) - 1 };
|
|
401
|
+
// }
|
|
401
402
|
|
|
402
|
-
|
|
403
|
+
// const next = { ...products, [eventId]: list };
|
|
403
404
|
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
};
|
|
405
|
+
// if (list.length === 0) {
|
|
406
|
+
// const { [eventId]: _removed, ...rest } = next;
|
|
407
|
+
// setValue('products', rest);
|
|
408
|
+
// } else {
|
|
409
|
+
// setValue('products', next);
|
|
410
|
+
// }
|
|
411
|
+
// };
|
|
411
412
|
|
|
412
413
|
return (
|
|
413
414
|
<OverviewCard id="overview-card" stickyHeaderTop={options?.stickyHeaderTop || 0}>
|
|
@@ -446,7 +447,8 @@ const PaymentOverviewBox: React.FC<Props> = ({ event }) => {
|
|
|
446
447
|
/>
|
|
447
448
|
}
|
|
448
449
|
sx={{
|
|
449
|
-
backgroundColor: (theme) =>
|
|
450
|
+
backgroundColor: (theme) =>
|
|
451
|
+
theme.palette.mode === 'light' ? theme.palette.grey[100] : theme.palette.grey[900],
|
|
450
452
|
borderRadius: 1,
|
|
451
453
|
}}
|
|
452
454
|
>
|
|
@@ -473,15 +475,49 @@ const PaymentOverviewBox: React.FC<Props> = ({ event }) => {
|
|
|
473
475
|
</Stack>
|
|
474
476
|
</Stack>
|
|
475
477
|
)}
|
|
476
|
-
<Stack
|
|
478
|
+
<Stack
|
|
479
|
+
className="overview-card__order-info"
|
|
480
|
+
p={2}
|
|
481
|
+
pt={{ xs: 0, sm: 2 }}
|
|
482
|
+
spacing={0.75}
|
|
483
|
+
useFlexGap
|
|
484
|
+
>
|
|
477
485
|
{!!selectedTickets.length && !isMobile && <Divider sx={{ borderStyle: 'dashed' }} />}
|
|
486
|
+
|
|
487
|
+
{!!selectedTickets.length && (
|
|
488
|
+
<Stack spacing={0.5}>
|
|
489
|
+
{/* TODO: Uncomment this when Colonnade response - must update terms and conditions and email info */}
|
|
490
|
+
<PaymentOverviewCheckbox
|
|
491
|
+
checkboxName="ticketInsurance"
|
|
492
|
+
label={t('event.tickets.insurance.label')}
|
|
493
|
+
value={
|
|
494
|
+
<>
|
|
495
|
+
{ticketInsurance && totalItemCount.totalTickets > 0 ? '' : '+ '}
|
|
496
|
+
{fCurrency(ticketInsurancePricePerUnit, lang, event.currency)} /{' '}
|
|
497
|
+
{t('event.tickets.insurance.per_ticket')}
|
|
498
|
+
</>
|
|
499
|
+
}
|
|
500
|
+
/>
|
|
501
|
+
<PaymentOverviewCheckbox
|
|
502
|
+
checkboxName="smsNotification"
|
|
503
|
+
label={t('event.tickets.sms_notification.label')}
|
|
504
|
+
value={
|
|
505
|
+
<>
|
|
506
|
+
{smsNotification && totalItemCount.totalTickets > 0 ? '' : '+ '}
|
|
507
|
+
{fCurrency(smsNotificationPrice, lang, event.currency)}
|
|
508
|
+
</>
|
|
509
|
+
}
|
|
510
|
+
/>
|
|
511
|
+
<Divider sx={{ borderStyle: 'dashed' }} />
|
|
512
|
+
</Stack>
|
|
513
|
+
)}
|
|
478
514
|
{selectedTickets.map((ticket, index) => (
|
|
479
515
|
<Box key={index}>
|
|
480
516
|
<Stack direction="row" justifyContent="space-between" alignItems="center" spacing={2}>
|
|
481
|
-
<Typography variant="
|
|
517
|
+
<Typography variant="body2">
|
|
482
518
|
{ticket.quantity}x {ticket.itemName}
|
|
483
519
|
</Typography>
|
|
484
|
-
<Typography variant="
|
|
520
|
+
<Typography variant="body2">
|
|
485
521
|
{fCurrency(
|
|
486
522
|
calculatePriceWithDiscount(
|
|
487
523
|
ticket.price,
|
|
@@ -501,10 +537,10 @@ const PaymentOverviewBox: React.FC<Props> = ({ event }) => {
|
|
|
501
537
|
alignItems="center"
|
|
502
538
|
spacing={2}
|
|
503
539
|
>
|
|
504
|
-
<Typography variant="
|
|
540
|
+
<Typography variant="body2">
|
|
505
541
|
- {product.quantity}x {product.name}
|
|
506
542
|
</Typography>
|
|
507
|
-
<Typography variant="
|
|
543
|
+
<Typography variant="body2">
|
|
508
544
|
{product.price > 0
|
|
509
545
|
? fCurrency(
|
|
510
546
|
calculatePriceWithDiscount(
|
|
@@ -526,118 +562,49 @@ const PaymentOverviewBox: React.FC<Props> = ({ event }) => {
|
|
|
526
562
|
{selectedVariants.map((variant, index) => (
|
|
527
563
|
<Box key={index}>
|
|
528
564
|
<Stack direction="row" justifyContent="space-between" alignItems="center" spacing={2}>
|
|
529
|
-
<Typography variant="
|
|
565
|
+
<Typography variant="body2">
|
|
530
566
|
{variant.quantity}x {variant.name}
|
|
531
567
|
</Typography>
|
|
532
|
-
<
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
promoCodesValues.fixedDevidedProducts
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
</Typography>
|
|
546
|
-
<IconButton onClick={() => removeProduct(variant)} color="primary" size="small">
|
|
547
|
-
<Iconify icon="carbon:trash-can" />
|
|
548
|
-
</IconButton>
|
|
549
|
-
</Stack>
|
|
568
|
+
<Typography variant="body2">
|
|
569
|
+
{fCurrency(
|
|
570
|
+
calculatePriceWithDiscount(
|
|
571
|
+
variant.price,
|
|
572
|
+
promoCodesValues.productDiscountPercent,
|
|
573
|
+
promoCodesValues.fixedDevidedProducts
|
|
574
|
+
? promoCodesValues.fixedDevidedProducts * variant.quantity
|
|
575
|
+
: 0
|
|
576
|
+
),
|
|
577
|
+
lang,
|
|
578
|
+
event.currency
|
|
579
|
+
)}
|
|
580
|
+
</Typography>
|
|
550
581
|
</Stack>
|
|
551
582
|
</Box>
|
|
552
583
|
))}
|
|
553
584
|
{!!shippingFee && (
|
|
554
585
|
<Stack direction="row" justifyContent="space-between" alignItems="center" spacing={2}>
|
|
555
|
-
<Typography variant="
|
|
556
|
-
<Typography variant="
|
|
557
|
-
{fCurrency(shippingFee, lang, event.currency)}
|
|
558
|
-
</Typography>
|
|
559
|
-
</Stack>
|
|
560
|
-
)}
|
|
561
|
-
{ticketInsurance && totalItemCount.totalTickets > 0 && (
|
|
562
|
-
<Stack direction="row" justifyContent="space-between" alignItems="center" spacing={2}>
|
|
563
|
-
<Typography variant="caption">{t('form.labels.ticket_insurance')}</Typography>
|
|
564
|
-
<Typography variant="caption">
|
|
565
|
-
{fCurrency(values.ticketInsurancePrice, lang, event.currency)}
|
|
566
|
-
</Typography>
|
|
567
|
-
</Stack>
|
|
568
|
-
)}
|
|
569
|
-
{smsNotification && totalItemCount.totalTickets > 0 && (
|
|
570
|
-
<Stack direction="row" justifyContent="space-between" alignItems="center" spacing={2}>
|
|
571
|
-
<Typography variant="caption">{t('form.labels.sms_notification')}</Typography>
|
|
572
|
-
<Typography variant="caption">
|
|
573
|
-
{fCurrency(values.smsNotificationPrice, lang, event.currency)}
|
|
574
|
-
</Typography>
|
|
586
|
+
<Typography variant="body2">{t('form.labels.shipping_fee')}</Typography>
|
|
587
|
+
<Typography variant="body2">{fCurrency(shippingFee, lang, event.currency)}</Typography>
|
|
575
588
|
</Stack>
|
|
576
589
|
)}
|
|
577
590
|
{!!total && !!totalFee && (
|
|
578
591
|
<Stack direction="row" justifyContent="space-between" alignItems="center" spacing={2}>
|
|
579
|
-
<Typography variant="
|
|
580
|
-
<Typography variant="
|
|
592
|
+
<Typography variant="body2">{t('form.labels.service_fee')}</Typography>
|
|
593
|
+
<Typography variant="body2">{getFee}</Typography>
|
|
581
594
|
</Stack>
|
|
582
595
|
)}
|
|
583
596
|
{((!!selectedTickets.length && isMobile) || !isMobile) && (
|
|
584
597
|
<Divider sx={{ borderStyle: 'dashed' }} />
|
|
585
598
|
)}
|
|
586
|
-
{!!selectedTickets.length && (
|
|
587
|
-
<>
|
|
588
|
-
{/* TODO: Uncomment this when Colonnade response - must update terms and conditions and email info */}
|
|
589
|
-
{/*<PaymentOverviewCheckbox*/}
|
|
590
|
-
{/* checkboxName="ticketInsurance"*/}
|
|
591
|
-
{/* label={t('event.tickets.insurance.label')}*/}
|
|
592
|
-
{/* value={*/}
|
|
593
|
-
{/* <>*/}
|
|
594
|
-
{/* + {fCurrency(ticketInsurancePricePerUnit, lang, event.currency)} /{' '}*/}
|
|
595
|
-
{/* {t('event.tickets.insurance.per_ticket')}*/}
|
|
596
|
-
{/* </>*/}
|
|
597
|
-
{/* }*/}
|
|
598
|
-
{/* modal={{*/}
|
|
599
|
-
{/* title: t('event.tickets.insurance.label'),*/}
|
|
600
|
-
{/* description: (*/}
|
|
601
|
-
{/* <>*/}
|
|
602
|
-
{/* <Typography variant="body2" paragraph>*/}
|
|
603
|
-
{/* {t('event.tickets.insurance.modal.description')}*/}
|
|
604
|
-
{/* </Typography>*/}
|
|
605
|
-
{/* <Typography variant="body2" paragraph>*/}
|
|
606
|
-
{/* {t('event.tickets.insurance.modal.coverage')}*/}
|
|
607
|
-
{/* </Typography>*/}
|
|
608
|
-
{/* <Typography variant="body2" sx={{ fontWeight: 600 }}>*/}
|
|
609
|
-
{/* {t('event.tickets.insurance.modal.price')}:{' '}*/}
|
|
610
|
-
{/* {fCurrency(ticketInsurancePricePerUnit, lang, event.currency)} /{' '}*/}
|
|
611
|
-
{/* {t('event.tickets.insurance.per_ticket')}*/}
|
|
612
|
-
{/* </Typography>*/}
|
|
613
|
-
{/* </>*/}
|
|
614
|
-
{/* ),*/}
|
|
615
|
-
{/* }}*/}
|
|
616
|
-
{/*/>*/}
|
|
617
|
-
<PaymentOverviewCheckbox
|
|
618
|
-
checkboxName="smsNotification"
|
|
619
|
-
label={t('event.tickets.sms_notification.label')}
|
|
620
|
-
value={<>+ {fCurrency(smsNotificationPrice, lang, event.currency)}</>}
|
|
621
|
-
modal={{
|
|
622
|
-
title: t('event.tickets.sms_notification.label'),
|
|
623
|
-
description: (
|
|
624
|
-
<>
|
|
625
|
-
<Typography variant="body2" paragraph>
|
|
626
|
-
{t('event.tickets.sms_notification.modal.description')}
|
|
627
|
-
</Typography>
|
|
628
|
-
<Typography variant="body2" sx={{ fontWeight: 600 }}>
|
|
629
|
-
{t('event.tickets.sms_notification.modal.price')}:{' '}
|
|
630
|
-
{fCurrency(smsNotificationPrice, lang, event.currency)}
|
|
631
|
-
</Typography>
|
|
632
|
-
</>
|
|
633
|
-
),
|
|
634
|
-
}}
|
|
635
|
-
/>
|
|
636
|
-
<Divider sx={{ borderStyle: 'dashed' }} />
|
|
637
|
-
</>
|
|
638
|
-
)}
|
|
639
599
|
<FeeBox event={event} />
|
|
640
|
-
<LoadingButton
|
|
600
|
+
<LoadingButton
|
|
601
|
+
type="submit"
|
|
602
|
+
form={EVENTLOOK_ORDER_FORM_ID}
|
|
603
|
+
variant="contained"
|
|
604
|
+
size="large"
|
|
605
|
+
fullWidth
|
|
606
|
+
sx={{ height: { xs: 36, md: 40 } }}
|
|
607
|
+
>
|
|
641
608
|
{t(isPaymentVerify ? 'verify' : 'buy')}
|
|
642
609
|
</LoadingButton>
|
|
643
610
|
</Stack>
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import { Box, Button, SwipeableDrawer, Typography } from '@mui/material';
|
|
2
|
+
import React, { useEffect } from 'react';
|
|
3
|
+
import { useRef, useState } from 'react';
|
|
4
|
+
import PaymentOverviewBox from './PaymentOverviewBox';
|
|
5
|
+
import { IEvent } from '@utils/types/event.type';
|
|
6
|
+
import useGlobal from '@hooks/useGlobal';
|
|
7
|
+
import { fCurrency } from '@utils/formatNumber';
|
|
8
|
+
import { EVENTLOOK_ORDER_FORM_ID } from '@utils/data/global.ts';
|
|
9
|
+
|
|
10
|
+
interface Props {
|
|
11
|
+
event: IEvent;
|
|
12
|
+
totalPrice: number;
|
|
13
|
+
onOpenChange?: (open: boolean) => void;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const swipeAreaWidth = 56;
|
|
17
|
+
|
|
18
|
+
const PaymentOverviewDrawer: React.FC<Props> = ({ event, totalPrice, onOpenChange }) => {
|
|
19
|
+
const { t, lang } = useGlobal();
|
|
20
|
+
const [openDrawer, setOpenDrawer] = useState(false);
|
|
21
|
+
const touchStartYRef = useRef<number | null>(null);
|
|
22
|
+
|
|
23
|
+
const sentinelRef = useRef<HTMLDivElement>(null);
|
|
24
|
+
const prevYRef = useRef<number>(Number.POSITIVE_INFINITY);
|
|
25
|
+
|
|
26
|
+
// Opens drawer when scrolling down
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
const sentinel = sentinelRef.current;
|
|
29
|
+
if (!sentinel) return;
|
|
30
|
+
|
|
31
|
+
const observer = new IntersectionObserver(
|
|
32
|
+
(entries) => {
|
|
33
|
+
entries.forEach((entry) => {
|
|
34
|
+
if (totalPrice <= 0) return;
|
|
35
|
+
const currentY = entry.boundingClientRect.y;
|
|
36
|
+
const isScrollingDown = currentY < prevYRef.current;
|
|
37
|
+
|
|
38
|
+
if (entry.isIntersecting && isScrollingDown) {
|
|
39
|
+
openDrawerHandler();
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
prevYRef.current = currentY;
|
|
43
|
+
});
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
threshold: 0,
|
|
47
|
+
rootMargin: '0px 0px 0px 0px',
|
|
48
|
+
}
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
observer.observe(sentinel);
|
|
52
|
+
|
|
53
|
+
return () => {
|
|
54
|
+
observer.unobserve(sentinel);
|
|
55
|
+
};
|
|
56
|
+
}, [totalPrice]);
|
|
57
|
+
|
|
58
|
+
const toggleDrawer = () => {
|
|
59
|
+
setOpenDrawer((prev) => {
|
|
60
|
+
const next = !prev;
|
|
61
|
+
onOpenChange?.(next);
|
|
62
|
+
return next;
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
const openDrawerHandler = () => {
|
|
67
|
+
setOpenDrawer(true);
|
|
68
|
+
onOpenChange?.(true);
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
const closeDrawerHandler = () => {
|
|
72
|
+
setOpenDrawer(false);
|
|
73
|
+
onOpenChange?.(false);
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
const handleClosedTabTouchStart = (event: React.TouchEvent<HTMLDivElement>) => {
|
|
77
|
+
touchStartYRef.current = event.touches[0]?.clientY ?? null;
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
const handleClosedTabTouchEnd = (event: React.TouchEvent<HTMLDivElement>) => {
|
|
81
|
+
const startY = touchStartYRef.current;
|
|
82
|
+
const endY = event.changedTouches[0]?.clientY;
|
|
83
|
+
|
|
84
|
+
if (startY === null || typeof endY !== 'number') {
|
|
85
|
+
touchStartYRef.current = null;
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const swipeDistance = startY - endY;
|
|
90
|
+
if (swipeDistance > 24) {
|
|
91
|
+
openDrawerHandler();
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
touchStartYRef.current = null;
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
return (
|
|
98
|
+
<Box sx={{ display: { md: 'none' } }}>
|
|
99
|
+
{/* Sentinel element for intersection observer */}
|
|
100
|
+
<Box ref={sentinelRef} sx={{ height: 1, visibility: 'hidden' }} />
|
|
101
|
+
|
|
102
|
+
{/* Drawer Tab */}
|
|
103
|
+
{!openDrawer && (
|
|
104
|
+
<Box
|
|
105
|
+
onTouchStart={handleClosedTabTouchStart}
|
|
106
|
+
onTouchEnd={handleClosedTabTouchEnd}
|
|
107
|
+
sx={{
|
|
108
|
+
position: 'fixed',
|
|
109
|
+
bottom: 0,
|
|
110
|
+
left: 0,
|
|
111
|
+
right: 0,
|
|
112
|
+
backgroundColor: (theme) => theme.palette.background.paper,
|
|
113
|
+
borderTopLeftRadius: 16,
|
|
114
|
+
borderTopRightRadius: 16,
|
|
115
|
+
boxShadow: '0 -8px 10px 2px rgba(0,0,0,0.2)',
|
|
116
|
+
zIndex: 1300,
|
|
117
|
+
}}
|
|
118
|
+
>
|
|
119
|
+
<Box
|
|
120
|
+
role="button"
|
|
121
|
+
aria-label={t('form.labels.payment_overview_open')}
|
|
122
|
+
onClick={toggleDrawer}
|
|
123
|
+
sx={{
|
|
124
|
+
display: 'flex',
|
|
125
|
+
justifyContent: 'center',
|
|
126
|
+
alignItems: 'center',
|
|
127
|
+
cursor: 'pointer',
|
|
128
|
+
width: '100%',
|
|
129
|
+
py: 1,
|
|
130
|
+
}}
|
|
131
|
+
>
|
|
132
|
+
<Box
|
|
133
|
+
sx={{
|
|
134
|
+
width: 30,
|
|
135
|
+
height: 6,
|
|
136
|
+
backgroundColor: (theme) => theme.palette.grey[300],
|
|
137
|
+
borderRadius: 3,
|
|
138
|
+
}}
|
|
139
|
+
/>
|
|
140
|
+
</Box>
|
|
141
|
+
<Box
|
|
142
|
+
sx={{
|
|
143
|
+
width: '100%',
|
|
144
|
+
px: 2,
|
|
145
|
+
pb: 2,
|
|
146
|
+
}}
|
|
147
|
+
>
|
|
148
|
+
<Typography
|
|
149
|
+
sx={{
|
|
150
|
+
fontWeight: 'bold',
|
|
151
|
+
display: 'flex',
|
|
152
|
+
justifyContent: 'space-between',
|
|
153
|
+
alignItems: 'center',
|
|
154
|
+
}}
|
|
155
|
+
>
|
|
156
|
+
<span>{t('form.labels.total')}:</span>
|
|
157
|
+
<span>{fCurrency(totalPrice, lang, event.currency)}</span>
|
|
158
|
+
</Typography>
|
|
159
|
+
|
|
160
|
+
<Button
|
|
161
|
+
type="submit"
|
|
162
|
+
form={EVENTLOOK_ORDER_FORM_ID}
|
|
163
|
+
variant="contained"
|
|
164
|
+
size="large"
|
|
165
|
+
fullWidth
|
|
166
|
+
sx={{ mt: 1, height: { xs: 36, md: 40 } }}
|
|
167
|
+
>
|
|
168
|
+
{t('buy')}
|
|
169
|
+
</Button>
|
|
170
|
+
</Box>
|
|
171
|
+
</Box>
|
|
172
|
+
)}
|
|
173
|
+
|
|
174
|
+
{/* Drawer Content */}
|
|
175
|
+
<SwipeableDrawer
|
|
176
|
+
anchor="bottom"
|
|
177
|
+
open={openDrawer}
|
|
178
|
+
onClose={closeDrawerHandler}
|
|
179
|
+
onOpen={openDrawerHandler}
|
|
180
|
+
swipeAreaWidth={swipeAreaWidth}
|
|
181
|
+
disableSwipeToOpen={false}
|
|
182
|
+
keepMounted
|
|
183
|
+
sx={{ display: { md: 'none' } }}
|
|
184
|
+
ModalProps={{
|
|
185
|
+
disableScrollLock: true,
|
|
186
|
+
keepMounted: false,
|
|
187
|
+
BackdropProps: {
|
|
188
|
+
sx: { background: 'rgba(0,0,0,0)' },
|
|
189
|
+
onClick: (event: React.MouseEvent<HTMLDivElement>) => {
|
|
190
|
+
event.stopPropagation();
|
|
191
|
+
},
|
|
192
|
+
},
|
|
193
|
+
}}
|
|
194
|
+
PaperProps={{
|
|
195
|
+
sx: {
|
|
196
|
+
borderTopLeftRadius: 16,
|
|
197
|
+
borderTopRightRadius: 16,
|
|
198
|
+
boxShadow: '0 -8px 10px 2px rgba(0,0,0,0.2)',
|
|
199
|
+
overflow: 'hidden',
|
|
200
|
+
},
|
|
201
|
+
}}
|
|
202
|
+
>
|
|
203
|
+
<Box
|
|
204
|
+
role="button"
|
|
205
|
+
aria-label={t('form.labels.payment_overview_close')}
|
|
206
|
+
onClick={toggleDrawer}
|
|
207
|
+
sx={{
|
|
208
|
+
display: 'flex',
|
|
209
|
+
justifyContent: 'center',
|
|
210
|
+
alignItems: 'center',
|
|
211
|
+
backgroundColor: (theme) => theme.palette.background.paper,
|
|
212
|
+
cursor: 'pointer',
|
|
213
|
+
py: 1,
|
|
214
|
+
}}
|
|
215
|
+
>
|
|
216
|
+
<Box
|
|
217
|
+
sx={{
|
|
218
|
+
width: 30,
|
|
219
|
+
height: 6,
|
|
220
|
+
backgroundColor: (theme) => theme.palette.grey[300],
|
|
221
|
+
borderRadius: 3,
|
|
222
|
+
}}
|
|
223
|
+
/>
|
|
224
|
+
</Box>
|
|
225
|
+
<Box
|
|
226
|
+
sx={{
|
|
227
|
+
height: '100%',
|
|
228
|
+
overflow: 'auto',
|
|
229
|
+
}}
|
|
230
|
+
>
|
|
231
|
+
<PaymentOverviewBox event={event} />
|
|
232
|
+
</Box>
|
|
233
|
+
</SwipeableDrawer>
|
|
234
|
+
</Box>
|
|
235
|
+
);
|
|
236
|
+
};
|
|
237
|
+
|
|
238
|
+
export default PaymentOverviewDrawer;
|
package/src/form/Shipping.tsx
CHANGED
|
@@ -46,7 +46,6 @@ const Shipping: React.FC<Props> = ({ event }) => {
|
|
|
46
46
|
[products]
|
|
47
47
|
);
|
|
48
48
|
const shippingMethodId = watch('shipping.shippingMethodId');
|
|
49
|
-
const branchId = watch('shipping.branchId');
|
|
50
49
|
const [displayBranchName, setDisplayBranchName] = useState<string | null>(null);
|
|
51
50
|
const [firstRender, setFirstRender] = useState<boolean>(true);
|
|
52
51
|
const filteredShippingMethods = useMemo(
|
|
@@ -83,9 +82,21 @@ const Shipping: React.FC<Props> = ({ event }) => {
|
|
|
83
82
|
}
|
|
84
83
|
};
|
|
85
84
|
|
|
85
|
+
const openPacketaWidget = () => {
|
|
86
|
+
const interval = setInterval(() => {
|
|
87
|
+
if (window.Packeta && window.Packeta.Widget) {
|
|
88
|
+
clearInterval(interval);
|
|
89
|
+
window.Packeta.Widget.pick(options?.packetaApiKey, onSelectBranch, {
|
|
90
|
+
language: lang,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}, 100);
|
|
94
|
+
};
|
|
95
|
+
|
|
86
96
|
const handleChangeBranch = () => {
|
|
87
97
|
setValue('shipping.branchId', null);
|
|
88
98
|
setDisplayBranchName(null);
|
|
99
|
+
openPacketaWidget();
|
|
89
100
|
};
|
|
90
101
|
|
|
91
102
|
useEffect(() => {
|
|
@@ -103,25 +114,14 @@ const Shipping: React.FC<Props> = ({ event }) => {
|
|
|
103
114
|
if (selectedShippingMethod) {
|
|
104
115
|
setValue('shipping.price', selectedShippingMethod.price);
|
|
105
116
|
|
|
106
|
-
if (selectedShippingMethod.type
|
|
107
|
-
if (!branchId) {
|
|
108
|
-
const interval = setInterval(() => {
|
|
109
|
-
if (window.Packeta && window.Packeta.Widget) {
|
|
110
|
-
clearInterval(interval);
|
|
111
|
-
window.Packeta.Widget.pick(options?.packetaApiKey, onSelectBranch, {
|
|
112
|
-
language: lang,
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
}, 100);
|
|
116
|
-
}
|
|
117
|
-
} else {
|
|
117
|
+
if (selectedShippingMethod.type !== ShippingTypes.PACKETA) {
|
|
118
118
|
setValue('shipping.branchId', null);
|
|
119
119
|
setDisplayBranchName(null);
|
|
120
120
|
}
|
|
121
121
|
} else {
|
|
122
122
|
setValue('shipping.price', 0);
|
|
123
123
|
}
|
|
124
|
-
}, [shippingMethodId, shippingMethods
|
|
124
|
+
}, [shippingMethodId, shippingMethods]);
|
|
125
125
|
|
|
126
126
|
return (
|
|
127
127
|
<>
|
|
@@ -142,11 +142,24 @@ const Shipping: React.FC<Props> = ({ event }) => {
|
|
|
142
142
|
control={control}
|
|
143
143
|
render={({ field, fieldState: { error } }) => (
|
|
144
144
|
<FormControl component="fieldset" sx={{ width: '100%' }}>
|
|
145
|
-
<RadioGroup
|
|
145
|
+
<RadioGroup
|
|
146
|
+
{...field}
|
|
147
|
+
onChange={(event, value) => {
|
|
148
|
+
field.onChange(event);
|
|
149
|
+
const selectedShippingMethod = filteredShippingMethods.find(
|
|
150
|
+
(method) => method.id === Number(value)
|
|
151
|
+
);
|
|
152
|
+
|
|
153
|
+
if (selectedShippingMethod?.type === ShippingTypes.PACKETA) {
|
|
154
|
+
openPacketaWidget();
|
|
155
|
+
}
|
|
156
|
+
}}
|
|
157
|
+
>
|
|
146
158
|
{filteredShippingMethods.map((shippingMethod) => (
|
|
147
159
|
<ShippingMethodItem
|
|
148
160
|
key={shippingMethod.id}
|
|
149
161
|
active={Number(shippingMethodId) === shippingMethod.id}
|
|
162
|
+
hasError={!!error}
|
|
150
163
|
>
|
|
151
164
|
<FormControlLabel
|
|
152
165
|
value={shippingMethod.id}
|
|
@@ -178,8 +191,7 @@ const Shipping: React.FC<Props> = ({ event }) => {
|
|
|
178
191
|
{paymentImages[shippingMethod.type]}
|
|
179
192
|
</Stack>
|
|
180
193
|
{shippingMethod.type === ShippingTypes.PACKETA &&
|
|
181
|
-
shippingMethod.id === Number(shippingMethodId) &&
|
|
182
|
-
branchId && (
|
|
194
|
+
shippingMethod.id === Number(shippingMethodId) && (
|
|
183
195
|
<Box>
|
|
184
196
|
<Button
|
|
185
197
|
onClick={handleChangeBranch}
|