@licklist/design 0.72.73 → 0.74.0-dev.0
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/affiliate/form/AffiliateForm.d.ts.map +1 -1
- package/dist/auth/Authorizer.d.ts.map +1 -1
- package/dist/auth/Authorizer.js +2 -1
- package/dist/auth/Login/LoginComponent.js +2 -1
- package/dist/auth/Router.d.ts.map +1 -1
- package/dist/auth/Router.js +18 -14
- package/dist/events/edit-event-modal/component/SelectEventProductSet/component/EditEventProductSet.js +2 -1
- package/dist/events/edit-event-modal/utils/getDefaultProductSet.js +1 -1
- package/dist/events/event-statistic-modal/EventStatisticModal.d.ts +2 -1
- package/dist/events/event-statistic-modal/EventStatisticModal.d.ts.map +1 -1
- package/dist/events/event-statistic-modal/EventStatisticModal.js +2 -2
- package/dist/events/event-statistic-modal/hooks/useTableData.d.ts +1 -1
- package/dist/events/event-statistic-modal/hooks/useTableData.d.ts.map +1 -1
- package/dist/events/event-statistic-modal/hooks/useTableData.js +2 -1
- package/dist/events/event-statistic-modal/utils/index.js +3 -3
- package/dist/events/event-venue-map/EventVenueMap.d.ts.map +1 -1
- package/dist/events/event-venue-map/EventVenueMap.js +1 -0
- package/dist/events/event-venue-map/hooks/useCanvasSize.d.ts.map +1 -1
- package/dist/events/event-venue-map/hooks/useCanvasSize.js +11 -4
- package/dist/iframe/ProductWithModifierModal/ModifierSetModal/ProductWithModifierSetModal.js +2 -3
- package/dist/iframe/ProductWithModifierModal/ModifierSetModal/controll/ModifierSetControll.d.ts.map +1 -1
- package/dist/iframe/ProductWithModifierModal/ModifierSetModal/controll/ModifierSetControll.js +4 -11
- package/dist/iframe/order-process/components/BookingSummary/components/ProductSummary/ProductSummary.d.ts.map +1 -1
- package/dist/iframe/order-process/components/CategoryProduct/components/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/iframe/order-process/components/CategoryProduct/components/NumberInput/NumberInput.js +13 -0
- package/dist/iframe/payment/order-items-table/utils/paymentSummary.d.ts.map +1 -1
- package/dist/iframe/ryft/utils/ryft-form.d.ts.map +1 -1
- package/dist/iframe/ryft/utils/ryft-form.js +4 -5
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -6
- package/dist/layout/DropDown.d.ts +2 -1
- package/dist/layout/DropDown.d.ts.map +1 -1
- package/dist/notification/email-template/control/EmailTemplateControl.d.ts.map +1 -1
- package/dist/notification/email-template/control/EmailTemplateControl.js +3 -0
- package/dist/product-set/control/ProductSetControl.d.ts +2 -0
- package/dist/product-set/control/ProductSetControl.d.ts.map +1 -1
- package/dist/product-set/control/ProductSetControl.js +10 -0
- package/dist/product-set/form/ProductSetForm.d.ts +5 -3
- package/dist/product-set/form/ProductSetForm.d.ts.map +1 -1
- package/dist/product-set/form/ProductSetForm.js +1 -1
- package/dist/product-set/form/ProductZonesControl.d.ts.map +1 -1
- package/dist/product-set/form/ProductZonesControl.js +0 -2
- package/dist/product-set/form/ProductsControl.d.ts.map +1 -1
- package/dist/product-set/form/ProductsControl.js +3 -0
- package/dist/product-set/form/SubProductsControl.d.ts.map +1 -1
- package/dist/product-set/form/SubProductsControl.js +0 -3
- package/dist/product-set/form/VenueMapsControl.d.ts.map +1 -1
- package/dist/product-set/form/VenueMapsControl.js +0 -3
- package/dist/product-set/form/context.d.ts +1 -2
- package/dist/product-set/form/context.d.ts.map +1 -1
- package/dist/product-set/product/ProductControl.d.ts +2 -0
- package/dist/product-set/product/ProductControl.d.ts.map +1 -1
- package/dist/product-set/product/ProductControl.js +7 -0
- package/dist/product-set/product/booking-management/ProductBookingManagementControl.d.ts.map +1 -1
- package/dist/product-set/product/booking-management/ProductBookingManagementControl.js +6 -0
- package/dist/product-set/product/deposit/ProductDepositControl.d.ts.map +1 -1
- package/dist/product-set/product/deposit/ProductDepositControl.js +3 -0
- package/dist/product-set/product/duration/ProductDurationControl.d.ts.map +1 -1
- package/dist/product-set/product/duration/ProductDurationControl.js +6 -0
- package/dist/product-set/product/price/ProductPriceControl.d.ts.map +1 -1
- package/dist/product-set/product/price/ProductPriceControl.js +3 -0
- package/dist/product-set/product/quantity/ProductQuantityConstantControl.d.ts.map +1 -1
- package/dist/product-set/product/quantity/ProductQuantityConstantControl.js +6 -0
- package/dist/product-set/product/quantity/ProductQuantityControl.d.ts.map +1 -1
- package/dist/product-set/product/quantity/ProductQuantityControl.js +6 -0
- package/dist/product-set/product/quantity/ProductQuantityRechargingControl.d.ts.map +1 -1
- package/dist/product-set/product/quantity/ProductQuantityRechargingControl.js +4 -1
- package/dist/product-set/product/scanRange/ProductScanRangeControl.d.ts +12 -0
- package/dist/product-set/product/scanRange/ProductScanRangeControl.d.ts.map +1 -0
- package/dist/product-set/product/scanRange/ProductScanRangeControl.js +153 -0
- package/dist/product-set/product/scanRange/index.d.ts +2 -0
- package/dist/product-set/product/scanRange/index.d.ts.map +1 -0
- package/dist/product-set/product-category/ProductCategoryControl.d.ts.map +1 -1
- package/dist/product-set/product-category/ProductCategoryControl.js +12 -0
- package/dist/product-set/utils/index.d.ts +4 -1
- package/dist/product-set/utils/index.d.ts.map +1 -1
- package/dist/recurrence-input/RecurrenceEndInput.d.ts.map +1 -1
- package/dist/recurrence-input/RecurrenceEndInput.js +3 -0
- package/dist/recurring-date-picker-input/RecurrenceEndInput.d.ts.map +1 -1
- package/dist/resource/form/components/CapacityControl.d.ts.map +1 -1
- package/dist/resource/form/components/CapacityControl.js +3 -0
- package/dist/resource/form/components/SortControl.d.ts.map +1 -1
- package/dist/resource/form/components/SortControl.js +3 -0
- package/dist/sales/booking/results/components/ResultCard.d.ts.map +1 -1
- package/dist/sales/booking/results/components/ResultCard.js +0 -2
- package/dist/sales/coupon/control/CouponFormControl.d.ts.map +1 -1
- package/dist/sales/coupon/control/CouponFormControl.js +21 -0
- package/dist/sales/coupon/form/CouponFrom.d.ts +2 -1
- package/dist/sales/coupon/form/CouponFrom.d.ts.map +1 -1
- package/dist/sales/coupon/form/CouponFrom.js +19 -6
- package/dist/setting/dashboard/DashboardSettingForm.d.ts.map +1 -1
- package/dist/setting/dashboard/DashboardSettingForm.js +4 -1
- package/dist/setting/index.d.ts +0 -2
- package/dist/setting/index.d.ts.map +1 -1
- package/dist/sortable-tree/SortableTreeItem.d.ts.map +1 -1
- package/dist/static/CurrencyNumberInput.d.ts.map +1 -1
- package/dist/static/CurrencyNumberInput.js +3 -0
- package/dist/static/form-number-input/FormNumberInput.d.ts.map +1 -1
- package/dist/static/form-number-input/FormNumberInput.js +3 -0
- package/dist/static/number-input/NumberInput.d.ts.map +1 -1
- package/dist/static/number-input/NumberInput.js +3 -0
- package/dist/styles/form/CustomCheckbox.scss +31 -0
- package/dist/styles/iframe-events/Calendar.scss +1 -1
- package/dist/styles/iframe-external-modal/IframeExternalModal.scss +2 -2
- package/dist/styles/product-set/ProductSetForm.scss +2 -3
- package/dist/styles/ryft-payment-form/RyftPaymentForm.scss +1 -3
- package/dist/styles/sales/BookingResults.scss +1 -1
- package/dist/zone/form/components/GameDurationControl.d.ts.map +1 -1
- package/dist/zone/form/components/GameDurationControl.js +3 -0
- package/dist/zone/form/components/SortControl.d.ts.map +1 -1
- package/dist/zone/form/components/SortControl.js +3 -0
- package/package.json +13 -7
- package/src/affiliate/form/AffiliateForm.tsx +1 -0
- package/src/auth/Authorizer.tsx +1 -0
- package/src/auth/Login/LoginComponent.tsx +1 -1
- package/src/auth/Router.tsx +19 -19
- package/src/events/edit-event-modal/utils/getDefaultProductSet.ts +1 -1
- package/src/events/event-statistic-modal/EventStatisticModal.tsx +3 -1
- package/src/events/event-statistic-modal/hooks/useTableData.tsx +2 -1
- package/src/events/event-statistic-modal/utils/index.ts +4 -4
- package/src/events/event-venue-map/EventVenueMap.tsx +1 -0
- package/src/events/event-venue-map/hooks/useCanvasSize.ts +5 -1
- package/src/iframe/ProductWithModifierModal/ModifierSetModal/ProductWithModifierSetModal.tsx +2 -2
- package/src/iframe/ProductWithModifierModal/ModifierSetModal/controll/ModifierSetControll.tsx +5 -13
- package/src/iframe/order-process/components/BookingSummary/components/ProductSummary/ProductSummary.tsx +1 -0
- package/src/iframe/order-process/components/CategoryProduct/components/NumberInput/NumberInput.tsx +9 -0
- package/src/iframe/payment/order-items-table/utils/paymentSummary.tsx +1 -0
- package/src/iframe/ryft/utils/ryft-form.ts +6 -5
- package/src/index.ts +0 -1
- package/src/layout/DropDown.tsx +1 -1
- package/src/notification/email-template/control/EmailTemplateControl.tsx +1 -0
- package/src/product-set/control/ProductSetControl.tsx +11 -0
- package/src/product-set/form/ProductSetForm.tsx +7 -6
- package/src/product-set/form/ProductZonesControl.tsx +1 -4
- package/src/product-set/form/ProductsControl.tsx +2 -0
- package/src/product-set/form/SubProductsControl.tsx +0 -3
- package/src/product-set/form/VenueMapsControl.tsx +0 -3
- package/src/product-set/form/context.tsx +2 -5
- package/src/product-set/product/ProductControl.tsx +18 -13
- package/src/product-set/product/advanced-options/AdvancedOptions.tsx +1 -1
- package/src/product-set/product/booking-management/ProductBookingManagementControl.tsx +2 -0
- package/src/product-set/product/deposit/ProductDepositControl.tsx +1 -0
- package/src/product-set/product/duration/ProductDurationControl.tsx +2 -0
- package/src/product-set/product/price/ProductPriceControl.tsx +1 -0
- package/src/product-set/product/quantity/ProductQuantityConstantControl.tsx +2 -0
- package/src/product-set/product/quantity/ProductQuantityControl.tsx +2 -0
- package/src/product-set/product/quantity/ProductQuantityRechargingControl.tsx +1 -0
- package/src/product-set/product/scanRange/ProductScanRangeControl.stories.ts +45 -0
- package/src/product-set/product/scanRange/ProductScanRangeControl.tsx +163 -0
- package/src/product-set/product/scanRange/index.ts +1 -0
- package/src/product-set/product-category/ProductCategoryControl.tsx +4 -0
- package/src/product-set/product-zone/ProductZoneControl.tsx +1 -1
- package/src/recurrence-input/RecurrenceEndInput.tsx +1 -0
- package/src/recurring-date-picker-input/RecurrenceEndInput.tsx +1 -0
- package/src/resource/form/components/CapacityControl.tsx +1 -0
- package/src/resource/form/components/SortControl.tsx +1 -0
- package/src/sales/booking/results/components/ResultCard.tsx +0 -2
- package/src/sales/coupon/control/CouponFormControl.tsx +7 -0
- package/src/sales/coupon/form/CouponFrom.tsx +20 -8
- package/src/setting/dashboard/DashboardSettingForm.tsx +1 -0
- package/src/setting/index.ts +0 -2
- package/src/sortable-tree/SortableTreeItem.tsx +1 -6
- package/src/static/CurrencyNumberInput.tsx +1 -0
- package/src/static/form-number-input/FormNumberInput.tsx +1 -0
- package/src/static/number-input/NumberInput.tsx +1 -0
- package/src/styles/form/CustomCheckbox.scss +31 -0
- package/src/styles/iframe-events/Calendar.scss +1 -1
- package/src/styles/iframe-external-modal/IframeExternalModal.scss +2 -2
- package/src/styles/product-set/ProductSetForm.scss +2 -3
- package/src/styles/ryft-payment-form/RyftPaymentForm.scss +1 -3
- package/src/styles/sales/BookingResults.scss +1 -1
- package/src/zone/form/components/GameDurationControl.tsx +1 -0
- package/src/zone/form/components/SortControl.tsx +1 -0
- package/yarn.lock +191 -221
- package/dist/assets/logo/licklist.sm.svg.js +0 -33
- package/dist/assets/logo/licklist.svg.js +0 -16
- package/dist/header/BookeditHeader.d.ts +0 -15
- package/dist/header/BookeditHeader.d.ts.map +0 -1
- package/dist/header/BookeditHeader.js +0 -21
- package/dist/header/Header.d.ts +0 -16
- package/dist/header/Header.d.ts.map +0 -1
- package/dist/header/Header.js +0 -55
- package/dist/header/LicklistHeader.d.ts +0 -15
- package/dist/header/LicklistHeader.d.ts.map +0 -1
- package/dist/header/LicklistHeader.js +0 -23
- package/dist/header/elements/CompanySelector.d.ts +0 -11
- package/dist/header/elements/CompanySelector.d.ts.map +0 -1
- package/dist/header/elements/CompanySelector.js +0 -36
- package/dist/header/elements/index.d.ts +0 -3
- package/dist/header/elements/index.d.ts.map +0 -1
- package/dist/header/index.d.ts +0 -6
- package/dist/header/index.d.ts.map +0 -1
- package/dist/setting/admin/AdminSettingForm.d.ts +0 -25
- package/dist/setting/admin/AdminSettingForm.d.ts.map +0 -1
- package/dist/setting/admin/AdminSettingForm.js +0 -220
- package/dist/setting/admin/PaymentFeeForm.d.ts +0 -13
- package/dist/setting/admin/PaymentFeeForm.d.ts.map +0 -1
- package/dist/setting/admin/PaymentFeeForm.js +0 -424
- package/dist/setting/admin/index.d.ts +0 -2
- package/dist/setting/admin/index.d.ts.map +0 -1
- package/dist/setting/system/SystemSettingForm.d.ts +0 -10
- package/dist/setting/system/SystemSettingForm.d.ts.map +0 -1
- package/dist/setting/system/SystemSettingForm.js +0 -95
- package/dist/setting/system/index.d.ts +0 -2
- package/dist/setting/system/index.d.ts.map +0 -1
- package/dist/types/currency.d.ts +0 -5
- package/dist/types/currency.d.ts.map +0 -1
- package/src/header/BookeditHeader.tsx +0 -38
- package/src/header/Header.stories.tsx +0 -123
- package/src/header/Header.tsx +0 -69
- package/src/header/LicklistHeader.tsx +0 -46
- package/src/header/elements/CompanySelector.tsx +0 -47
- package/src/header/elements/Elements.stories.tsx +0 -33
- package/src/header/elements/index.ts +0 -3
- package/src/header/index.ts +0 -7
- package/src/setting/admin/AdminSetting.stories.tsx +0 -52
- package/src/setting/admin/AdminSettingForm.tsx +0 -196
- package/src/setting/admin/PaymentFeeForm.tsx +0 -304
- package/src/setting/admin/index.ts +0 -1
- package/src/setting/system/SystemSetting.stories.tsx +0 -26
- package/src/setting/system/SystemSettingForm.tsx +0 -62
- package/src/setting/system/index.ts +0 -1
- package/src/types/currency.ts +0 -4
|
@@ -33,15 +33,15 @@ export const convertEventStatisticToTableData = (
|
|
|
33
33
|
return []
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
const summaryFormattedDate = DateTime.fromISO(date)
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
const summaryFormattedDate = DateTime.fromISO(date).toFormat(
|
|
37
|
+
DATE_TIME_FULL_FORMAT,
|
|
38
|
+
)
|
|
39
39
|
|
|
40
40
|
const summaryDays =
|
|
41
41
|
Object.keys(eventStatistic?.productCategorySummary)?.filter(
|
|
42
42
|
(date) =>
|
|
43
43
|
DateTime.fromFormat(date, DATE_TIME_FULL_FORMAT).toFormat(
|
|
44
|
-
|
|
44
|
+
DATE_TIME_FULL_FORMAT,
|
|
45
45
|
) === summaryFormattedDate,
|
|
46
46
|
) ?? []
|
|
47
47
|
|
|
@@ -10,13 +10,17 @@ export const useCanvasSize = ({
|
|
|
10
10
|
width: componentWidth,
|
|
11
11
|
height: componentHeight,
|
|
12
12
|
}: CanvasSizeProps) => {
|
|
13
|
+
// TODO Fix often updating of width and height
|
|
13
14
|
const { width, height } = useWindowDimensions()
|
|
14
15
|
|
|
16
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
17
|
+
const memoizedDimensions = useMemo(() => ({ width, height }), [width])
|
|
18
|
+
|
|
15
19
|
const memoedComponentParameters = useMemo(() => {
|
|
16
20
|
if (!componentWidth && !componentHeight) return null
|
|
17
21
|
|
|
18
22
|
return { width: componentWidth, height: componentHeight }
|
|
19
23
|
}, [componentWidth, componentHeight])
|
|
20
24
|
|
|
21
|
-
return memoedComponentParameters ||
|
|
25
|
+
return memoedComponentParameters || memoizedDimensions
|
|
22
26
|
}
|
package/src/iframe/ProductWithModifierModal/ModifierSetModal/ProductWithModifierSetModal.tsx
CHANGED
|
@@ -48,12 +48,12 @@ export const ProductWithModifierSetModal = ({
|
|
|
48
48
|
</button>
|
|
49
49
|
</div>
|
|
50
50
|
<div className='right-block' id='select-event-container'>
|
|
51
|
-
<div className={clsx('manual-booking-container', !product
|
|
51
|
+
<div className={clsx('manual-booking-container', !product.images.length && 'tw-mt-8')}>
|
|
52
52
|
<div className='manual-booking-header'>
|
|
53
53
|
<TicketDescription
|
|
54
54
|
title={product.name}
|
|
55
55
|
description={product.description}
|
|
56
|
-
className={clsx('iframe-event__product-description', !product
|
|
56
|
+
className={clsx('iframe-event__product-description', !product.images.length && 'mt-6')}
|
|
57
57
|
classNameProductModal='d-block'
|
|
58
58
|
images={product.images}
|
|
59
59
|
isRequired={product.isRequired}
|
package/src/iframe/ProductWithModifierModal/ModifierSetModal/controll/ModifierSetControll.tsx
CHANGED
|
@@ -35,9 +35,6 @@ export const ModifiersSetControl = ({
|
|
|
35
35
|
const { t } = useTranslation('App')
|
|
36
36
|
|
|
37
37
|
const orderModifiersSets = watch(`${productId}.orderProductModifiers`)
|
|
38
|
-
const filteredOrderModifiersSets = orderModifiersSets
|
|
39
|
-
?.flat(Infinity)
|
|
40
|
-
?.filter((item) => item && typeof item === 'object')
|
|
41
38
|
|
|
42
39
|
const { formatNumber } = useIntl()
|
|
43
40
|
const formatToCurrency = (value: number) =>
|
|
@@ -61,9 +58,8 @@ export const ModifiersSetControl = ({
|
|
|
61
58
|
const selectedModifier = modifiers?.find(
|
|
62
59
|
(item) => item.id === Number(e.target.defaultValue || e.target.id),
|
|
63
60
|
)
|
|
64
|
-
|
|
65
61
|
const checkSelectedModifier =
|
|
66
|
-
|
|
62
|
+
orderModifiersSets?.find(
|
|
67
63
|
(modifier) => modifier?.modifierId === selectedModifier?.id,
|
|
68
64
|
)?.quantity === 1
|
|
69
65
|
|
|
@@ -129,11 +125,9 @@ export const ModifiersSetControl = ({
|
|
|
129
125
|
)
|
|
130
126
|
}, [isEditMode])
|
|
131
127
|
|
|
132
|
-
const radioButtonDefaultModifier = currentOrderModifiersSets
|
|
133
|
-
.
|
|
134
|
-
|
|
135
|
-
)
|
|
136
|
-
?.modifierId.toString()
|
|
128
|
+
const radioButtonDefaultModifier = currentOrderModifiersSets.find((modifier) =>
|
|
129
|
+
modifierSet.modifiers.some((rl) => rl.id === modifier.modifierId)
|
|
130
|
+
)?.modifierId.toString();
|
|
137
131
|
|
|
138
132
|
return (
|
|
139
133
|
<>
|
|
@@ -173,9 +167,7 @@ export const ModifiersSetControl = ({
|
|
|
173
167
|
inline
|
|
174
168
|
id={modifier.id.toString()}
|
|
175
169
|
defaultChecked={!!selectedOrderModifierId}
|
|
176
|
-
defaultValue={
|
|
177
|
-
selectedOrderModifierId || modifier.id.toString()
|
|
178
|
-
}
|
|
170
|
+
defaultValue={selectedOrderModifierId || modifier.id.toString()}
|
|
179
171
|
checked={field.value === modifier.id.toString()}
|
|
180
172
|
onChange={onChange}
|
|
181
173
|
type='radio'
|
|
@@ -3,6 +3,7 @@ import { useIntl } from 'react-intl'
|
|
|
3
3
|
import * as Config from '@licklist/core/dist/Config'
|
|
4
4
|
import { OrderItem } from '@licklist/plugins/dist/types/context/Iframe/orderItems'
|
|
5
5
|
import { OrderModifierByProduct } from '@licklist/core/dist/DataMapper/Order/OrderModifiierByProduct'
|
|
6
|
+
import { calculateTotalModifiersPrice } from '../../utils'
|
|
6
7
|
import { ProductWithModifier } from '../../../CategoryProduct/components/ProductWithModifier/ProductWithModifier'
|
|
7
8
|
|
|
8
9
|
|
package/src/iframe/order-process/components/CategoryProduct/components/NumberInput/NumberInput.tsx
CHANGED
|
@@ -89,6 +89,7 @@ export const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(
|
|
|
89
89
|
<FormControl
|
|
90
90
|
type='number'
|
|
91
91
|
onChange={(e) => handleChangeValue(Number(e.target.value))}
|
|
92
|
+
onWheel={(event) => event.currentTarget.blur()}
|
|
92
93
|
value={value}
|
|
93
94
|
min={0}
|
|
94
95
|
max={max}
|
|
@@ -101,6 +102,14 @@ export const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(
|
|
|
101
102
|
<button
|
|
102
103
|
type='button'
|
|
103
104
|
onClick={handleArrowUpClick}
|
|
105
|
+
onWheel={(event) => event.currentTarget.blur()}
|
|
106
|
+
onFocus={(event) =>
|
|
107
|
+
event.target.addEventListener(
|
|
108
|
+
'wheel',
|
|
109
|
+
(event) => event.preventDefault(),
|
|
110
|
+
{ passive: false },
|
|
111
|
+
)
|
|
112
|
+
}
|
|
104
113
|
className={`payment-number-input__btn-up ${
|
|
105
114
|
plusButtonGreyedOut && 'disabled-number-input-button'
|
|
106
115
|
}`}
|
|
@@ -61,6 +61,7 @@ const processedPaymentSummary = ({
|
|
|
61
61
|
const total = order.fullAmount || calculateTotalPrice(order, externalPaymentDetail)
|
|
62
62
|
|
|
63
63
|
const totalDiscount = calculateTotalDiscount(order.payments)
|
|
64
|
+
|
|
64
65
|
let summaryItems: SummaryItem[] = [
|
|
65
66
|
{
|
|
66
67
|
translateKey: AMOUNT_TOTAL,
|
|
@@ -61,20 +61,22 @@ export const injectComponentsInRyftForm = ({
|
|
|
61
61
|
divider.id = 'mobile-pay-divider'
|
|
62
62
|
container.id = 'mobile-pay-divider-container'
|
|
63
63
|
container.append(dividerText, divider)
|
|
64
|
-
const payIframe = document.getElementById(
|
|
64
|
+
const payIframe = document.getElementById('ryft-pay-iframe')
|
|
65
65
|
if (payIframe) {
|
|
66
66
|
const formBox = document.getElementById('form-disable-box')
|
|
67
67
|
if (formBox) {
|
|
68
|
-
formBox.style.display = isDisableButton ?
|
|
68
|
+
formBox.style.display = isDisableButton ? 'block' : 'none'
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
const googleButton = document.getElementById(
|
|
72
72
|
'gpay-button-online-api-id',
|
|
73
73
|
) as HTMLButtonElement
|
|
74
|
-
const appleButton =document.getElementById(
|
|
74
|
+
const appleButton = document.getElementById(
|
|
75
|
+
'ryft-pay-apple-pay-button',
|
|
76
|
+
) as HTMLButtonElement
|
|
75
77
|
if (googleButton) {
|
|
76
78
|
googleButton.disabled = isDisableButton
|
|
77
|
-
googleButton.style.opacity = isDisableButton ? '1' : '0.6'
|
|
79
|
+
googleButton.style.opacity = !isDisableButton ? '1' : '0.6'
|
|
78
80
|
}
|
|
79
81
|
if (appleButton) {
|
|
80
82
|
appleButton.disabled = isDisableButton
|
|
@@ -86,7 +88,6 @@ export const injectComponentsInRyftForm = ({
|
|
|
86
88
|
const applePayButton = document.createElement('button')
|
|
87
89
|
applePayButton.id = 'apple-pay'
|
|
88
90
|
applePayButton.type = 'button'
|
|
89
|
-
applePayButton.style.opacity = !isDisableButton ? '1' : '0.6'
|
|
90
91
|
applePayButton.className = 'bg-dark btn btn-primary apple-pay-button'
|
|
91
92
|
applePayButton.textContent = t('Events:payWithApple')
|
|
92
93
|
applePayButton.onclick = onApplePayButtonClick
|
package/src/index.ts
CHANGED
package/src/layout/DropDown.tsx
CHANGED
|
@@ -434,6 +434,7 @@ export const EmailTemplateControl = forwardRef(
|
|
|
434
434
|
`templateOptionValues.${option?.id}.value`,
|
|
435
435
|
)}
|
|
436
436
|
type='number'
|
|
437
|
+
onWheel={(event) => event.currentTarget.blur()}
|
|
437
438
|
placeholder={t(`Design:${option.name}`)}
|
|
438
439
|
id={option.name + option.id}
|
|
439
440
|
defaultValue={option.selectedValue || ''}
|
|
@@ -69,6 +69,7 @@ export interface ProductSetControlValues extends DateAndRecurrenceInputValues {
|
|
|
69
69
|
fieldSetId?: number
|
|
70
70
|
saleDeadline?: number
|
|
71
71
|
steps: Step[]
|
|
72
|
+
hasGeneralTicket?: boolean
|
|
72
73
|
emailTemplates?: TemplateItem[]
|
|
73
74
|
smsTemplates?: TemplateItem[]
|
|
74
75
|
localImageBlobURL?: string
|
|
@@ -96,6 +97,7 @@ export interface ProductSetControlProps {
|
|
|
96
97
|
providerHasBookingManagement?: boolean
|
|
97
98
|
isOverrides?: boolean
|
|
98
99
|
saleDeadline?: number
|
|
100
|
+
hasGeneralTicket?: boolean
|
|
99
101
|
isCreateNewOverrides?: boolean
|
|
100
102
|
timeZone: string
|
|
101
103
|
}
|
|
@@ -307,6 +309,15 @@ export function ProductSetControl({
|
|
|
307
309
|
</Form.Control.Feedback>
|
|
308
310
|
</Form.Group>
|
|
309
311
|
|
|
312
|
+
<Form.Group controlId='hasGeneralTicket' className='checkbox-second-column mt-4'>
|
|
313
|
+
<Form.Check
|
|
314
|
+
data-testid='save-as-template-checkbox'
|
|
315
|
+
label={t('Design:hasGeneralTicket')}
|
|
316
|
+
{...register('hasGeneralTicket')}
|
|
317
|
+
custom
|
|
318
|
+
/>
|
|
319
|
+
</Form.Group>
|
|
320
|
+
|
|
310
321
|
<Form.Group controlId={termsAndConditionsId}>
|
|
311
322
|
<Form.Label>{t('Design:termsAndConditions')}</Form.Label>
|
|
312
323
|
<Form.Control
|
|
@@ -7,13 +7,10 @@ import { VenueMapSet } from '@licklist/core/dist/DataMapper/Product/VenueMapSetD
|
|
|
7
7
|
import { ServerError } from '@licklist/plugins/dist/hooks/Api/useHttpQuery'
|
|
8
8
|
import FormErrorService from '@licklist/plugins/dist/services/Form/FormErrorService'
|
|
9
9
|
import { ModifierSet } from '@licklist/core/dist/DataMapper/Product/ModifierSetDataMapper'
|
|
10
|
-
|
|
11
10
|
import { isEqual } from 'lodash'
|
|
12
|
-
// eslint-disable-next-line max-len
|
|
13
|
-
import { ProviderBookingManagementSetting } from '@licklist/core/dist/DataMapper/Provider/ProviderBookingManagementSettingDataMapper'
|
|
14
11
|
import { Zone } from '@licklist/core/dist/DataMapper/Provider/ZoneDataMapper'
|
|
15
12
|
import { WorkHour } from '@licklist/core/dist/DataMapper/Provider/WorkHourDataMapper'
|
|
16
|
-
import { transformErrorToMessage } from '@licklist/plugins'
|
|
13
|
+
import { transformErrorToMessage } from '@licklist/plugins/dist/utils/error'
|
|
17
14
|
import { Dialog, useDialogContext } from '../../modals/dialog'
|
|
18
15
|
import {
|
|
19
16
|
ProductSetControl,
|
|
@@ -33,12 +30,16 @@ import { ErrorModal } from '../../iframe/order-process/components/ErrorModal'
|
|
|
33
30
|
export interface WithIsLoading {
|
|
34
31
|
isLoading: boolean
|
|
35
32
|
}
|
|
33
|
+
export interface WithIdOptional {
|
|
34
|
+
id?: number
|
|
35
|
+
}
|
|
36
|
+
|
|
36
37
|
export interface WithId {
|
|
37
38
|
id: number
|
|
38
39
|
}
|
|
39
40
|
export interface ProductSetFormValues
|
|
40
41
|
extends FormValues,
|
|
41
|
-
|
|
42
|
+
WithIdOptional,
|
|
42
43
|
ProductSetControlValues {
|
|
43
44
|
steps: Step[]
|
|
44
45
|
isOverrides?: boolean
|
|
@@ -55,7 +56,7 @@ export interface ProductSetFormProps
|
|
|
55
56
|
serverErrors?: ServerError
|
|
56
57
|
providerHasMap?: boolean
|
|
57
58
|
venueMapSets?: VenueMapSet[]
|
|
58
|
-
providerHasBookingManagement?:
|
|
59
|
+
providerHasBookingManagement?: boolean
|
|
59
60
|
zones?: Zone[] | null
|
|
60
61
|
isCreateAction?: boolean
|
|
61
62
|
isOverrides?: boolean
|
|
@@ -70,9 +70,6 @@ export function SubProductsControl({
|
|
|
70
70
|
images: subProducts[index]?.images as Image[],
|
|
71
71
|
}
|
|
72
72
|
// @ts-expect-error TS2345
|
|
73
|
-
// @TODO fix prod type error
|
|
74
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
75
|
-
// @ts-ignore
|
|
76
73
|
append(subProductCopy)
|
|
77
74
|
}}
|
|
78
75
|
/>
|
|
@@ -46,9 +46,6 @@ export const VenueMapsControl = ({
|
|
|
46
46
|
url={image.url}
|
|
47
47
|
name={name}
|
|
48
48
|
points={points}
|
|
49
|
-
// @TODO fix prod type error
|
|
50
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
51
|
-
// @ts-ignore
|
|
52
49
|
products={products}
|
|
53
50
|
pointProducts={pointProducts}
|
|
54
51
|
onPointProductsChange={onPointProductsChange}
|
|
@@ -8,12 +8,9 @@ import {
|
|
|
8
8
|
} from 'react'
|
|
9
9
|
import { VenueMapSet } from '@licklist/core/dist/DataMapper/Product/VenueMapSetDataMapper'
|
|
10
10
|
import { ModifierSet } from '@licklist/core/dist/DataMapper/Product/ModifierSetDataMapper'
|
|
11
|
-
// eslint-disable-next-line max-len
|
|
12
|
-
import { ProviderBookingManagementSetting } from '@licklist/core/dist/DataMapper/Provider/ProviderBookingManagementSettingDataMapper'
|
|
13
11
|
import { Zone } from '@licklist/core/dist/DataMapper/Provider/ZoneDataMapper'
|
|
14
12
|
import { SelectItem } from '../../types/generic/SelectItem'
|
|
15
13
|
|
|
16
|
-
|
|
17
14
|
interface LoadingContext {
|
|
18
15
|
isLoading: boolean
|
|
19
16
|
setLoading: (loading: boolean) => void
|
|
@@ -21,7 +18,7 @@ interface LoadingContext {
|
|
|
21
18
|
modifiersSetList?: ModifierSet[] | null
|
|
22
19
|
providerHasMap?: boolean | null
|
|
23
20
|
venueMapSets?: VenueMapSet[]
|
|
24
|
-
providerHasBookingManagement?:
|
|
21
|
+
providerHasBookingManagement?: boolean
|
|
25
22
|
zones?: Zone[] | null
|
|
26
23
|
expandedProductCategories: Record<string, boolean>
|
|
27
24
|
setExpandedProductCategories: Dispatch<
|
|
@@ -46,7 +43,7 @@ type ProductSetContextProviderProps = PropsWithChildren<
|
|
|
46
43
|
export function ProductSetContextProvider({
|
|
47
44
|
children,
|
|
48
45
|
productGroupList = [],
|
|
49
|
-
modifiersSetList =[],
|
|
46
|
+
modifiersSetList = [],
|
|
50
47
|
providerHasMap = false,
|
|
51
48
|
venueMapSets = [],
|
|
52
49
|
providerHasBookingManagement,
|
|
@@ -34,7 +34,6 @@ import {
|
|
|
34
34
|
} from 'react-hook-form'
|
|
35
35
|
import { useTranslation } from 'react-i18next'
|
|
36
36
|
import { useImages } from '@licklist/plugins/dist/hooks/Media/useImages'
|
|
37
|
-
|
|
38
37
|
import {
|
|
39
38
|
Image,
|
|
40
39
|
IMAGE_TYPE_IMAGE,
|
|
@@ -65,7 +64,7 @@ import { MAX_PRODUCT_DESCRIPTION_CHARACTERS_LENGTH } from './constants'
|
|
|
65
64
|
import { ProductZoneControlValues } from '../product-zone'
|
|
66
65
|
import { AdvancedOptions } from './advanced-options'
|
|
67
66
|
import { ProductZonesControl } from '../form/ProductZonesControl'
|
|
68
|
-
|
|
67
|
+
import { ProductScanRangeControl } from './scanRange'
|
|
69
68
|
|
|
70
69
|
export interface ModifiersSet {
|
|
71
70
|
id: number
|
|
@@ -87,6 +86,8 @@ export interface ProductControlValues
|
|
|
87
86
|
deposit: number
|
|
88
87
|
minQuantity: number
|
|
89
88
|
maxQuantity: number
|
|
89
|
+
scanRangeStart?: number
|
|
90
|
+
scanRangeEnd?: number
|
|
90
91
|
totalQuantity: number
|
|
91
92
|
isAvailable: boolean
|
|
92
93
|
isSoldOut: boolean
|
|
@@ -122,7 +123,6 @@ export interface ProductControlProps<T>
|
|
|
122
123
|
hasTicket?: boolean
|
|
123
124
|
categoryType?: CategoryType
|
|
124
125
|
isOverrides?: boolean
|
|
125
|
-
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
export function ProductControl<T extends FormValues>({
|
|
@@ -137,7 +137,6 @@ export function ProductControl<T extends FormValues>({
|
|
|
137
137
|
categoryType,
|
|
138
138
|
isOverrides = false,
|
|
139
139
|
}: ProductControlProps<T>) {
|
|
140
|
-
|
|
141
140
|
const {
|
|
142
141
|
register,
|
|
143
142
|
control,
|
|
@@ -203,7 +202,6 @@ export function ProductControl<T extends FormValues>({
|
|
|
203
202
|
setInitialImages(formImages as Image[])
|
|
204
203
|
}, [getValues, setInitialImages, fieldNamePrefix])
|
|
205
204
|
|
|
206
|
-
|
|
207
205
|
useEffect(() => {
|
|
208
206
|
if (Array.isArray(images)) {
|
|
209
207
|
setValue(
|
|
@@ -299,14 +297,21 @@ export function ProductControl<T extends FormValues>({
|
|
|
299
297
|
isOverrides={isOverrides}
|
|
300
298
|
onFocus={onFocus}
|
|
301
299
|
/>
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
300
|
+
|
|
301
|
+
<ProductQuantityRechargingControl<T>
|
|
302
|
+
isLoading={isLoading}
|
|
303
|
+
fieldNamePrefix={fieldNamePrefix}
|
|
304
|
+
onFocus={onFocus}
|
|
305
|
+
disabled={isUnlimited}
|
|
306
|
+
/>
|
|
307
|
+
|
|
308
|
+
<ProductScanRangeControl<T>
|
|
309
|
+
isLoading={isLoading}
|
|
310
|
+
fieldNamePrefix={fieldNamePrefix}
|
|
311
|
+
isOverrides={isOverrides}
|
|
312
|
+
onFocus={onFocus}
|
|
313
|
+
/>
|
|
314
|
+
|
|
310
315
|
<Form.Group
|
|
311
316
|
controlId={unlimitedQuantityId}
|
|
312
317
|
className='custom-checkbox'
|
|
@@ -86,6 +86,7 @@ export function ProductBookingManagementControl<T extends FormValues>(
|
|
|
86
86
|
<Form.Control
|
|
87
87
|
ref={ref}
|
|
88
88
|
type='number'
|
|
89
|
+
onWheel={(event) => event.currentTarget.blur()}
|
|
89
90
|
min={0}
|
|
90
91
|
step={1}
|
|
91
92
|
value={value as string}
|
|
@@ -129,6 +130,7 @@ export function ProductBookingManagementControl<T extends FormValues>(
|
|
|
129
130
|
<Form.Control
|
|
130
131
|
ref={ref}
|
|
131
132
|
type='number'
|
|
133
|
+
onWheel={(event) => event.currentTarget.blur()}
|
|
132
134
|
min='0'
|
|
133
135
|
step='1'
|
|
134
136
|
value={value as string}
|
|
@@ -91,6 +91,7 @@ export const ProductDurationControl = <T,>({
|
|
|
91
91
|
<Form.Control
|
|
92
92
|
type='number'
|
|
93
93
|
min={0}
|
|
94
|
+
onWheel={(event) => event.currentTarget.blur()}
|
|
94
95
|
step={1}
|
|
95
96
|
value={durationHours}
|
|
96
97
|
disabled={disabled}
|
|
@@ -127,6 +128,7 @@ export const ProductDurationControl = <T,>({
|
|
|
127
128
|
type='number'
|
|
128
129
|
min={0}
|
|
129
130
|
step={1}
|
|
131
|
+
onWheel={(event) => event.currentTarget.blur()}
|
|
130
132
|
disabled={disabled}
|
|
131
133
|
value={durationMinutes}
|
|
132
134
|
isInvalid={isInvalid}
|
|
@@ -111,6 +111,7 @@ export function ProductQuantityConstantControl<T extends FormValues>(
|
|
|
111
111
|
type='number'
|
|
112
112
|
min={0}
|
|
113
113
|
step={1}
|
|
114
|
+
onWheel={(event) => event.currentTarget.blur()}
|
|
114
115
|
value={value as string}
|
|
115
116
|
isInvalid={HookFormService.isInvalid<T>(
|
|
116
117
|
`${fieldNamePrefix}.totalQuantity` as Path<T>,
|
|
@@ -165,6 +166,7 @@ export function ProductQuantityConstantControl<T extends FormValues>(
|
|
|
165
166
|
type='number'
|
|
166
167
|
min={0}
|
|
167
168
|
step={1}
|
|
169
|
+
onWheel={(event) => event.currentTarget.blur()}
|
|
168
170
|
value={value as string}
|
|
169
171
|
onChange={onChange}
|
|
170
172
|
onFocus={onFocus}
|
|
@@ -85,6 +85,7 @@ export function ProductQuantityControl<T extends FormValues>(
|
|
|
85
85
|
type='number'
|
|
86
86
|
min={0}
|
|
87
87
|
step={1}
|
|
88
|
+
onWheel={(event) => event.currentTarget.blur()}
|
|
88
89
|
value={value as string}
|
|
89
90
|
onChange={onChange}
|
|
90
91
|
onFocus={onFocus}
|
|
@@ -143,6 +144,7 @@ export function ProductQuantityControl<T extends FormValues>(
|
|
|
143
144
|
type='number'
|
|
144
145
|
min={0}
|
|
145
146
|
step={1}
|
|
147
|
+
onWheel={(event) => event.currentTarget.blur()}
|
|
146
148
|
value={value && (value as string)}
|
|
147
149
|
onFocus={onFocus}
|
|
148
150
|
onChange={onChange}
|
|
@@ -69,6 +69,7 @@ export function ProductQuantityRechargingControl<T extends FormValues>(
|
|
|
69
69
|
type='number'
|
|
70
70
|
min={0}
|
|
71
71
|
step={1}
|
|
72
|
+
onWheel={(event) => event.currentTarget.blur()}
|
|
72
73
|
{...register(`${fieldNamePrefix}.totalQuantity` as Path<T>, {
|
|
73
74
|
validate: (value) => {
|
|
74
75
|
if (unlimited) return true
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// ProductScanRangeControl.stories.tsx
|
|
2
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
3
|
+
import { FormProvider, useForm } from 'react-hook-form';
|
|
4
|
+
import Form from 'react-bootstrap/Form';
|
|
5
|
+
|
|
6
|
+
import {
|
|
7
|
+
ProductScanRangeControl,
|
|
8
|
+
ProductScanRangeControlProps,
|
|
9
|
+
ProductScanRangeControlValues,
|
|
10
|
+
} from './ProductScanRangeControl';
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
const meta: Meta<typeof ProductScanRangeControl> = {
|
|
14
|
+
title: 'Product Set/Product/Scan Range',
|
|
15
|
+
component: ProductScanRangeControl,
|
|
16
|
+
};
|
|
17
|
+
export default meta;
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
type Story = StoryObj<typeof ProductScanRangeControl>;
|
|
21
|
+
|
|
22
|
+
export const Default: Story = {
|
|
23
|
+
args: {
|
|
24
|
+
isLoading: false,
|
|
25
|
+
},
|
|
26
|
+
|
|
27
|
+
render: (args: ProductScanRangeControlProps<{}>) => {
|
|
28
|
+
const methods = useForm<ProductScanRangeControlValues>({ mode: 'onChange' });
|
|
29
|
+
const onSubmit = (data: ProductScanRangeControlValues) =>
|
|
30
|
+
console.log('onSubmit', data);
|
|
31
|
+
|
|
32
|
+
return (
|
|
33
|
+
<FormProvider {...methods}>
|
|
34
|
+
<Form
|
|
35
|
+
className="d-flex flex-column"
|
|
36
|
+
noValidate
|
|
37
|
+
onSubmit={methods.handleSubmit(onSubmit)}
|
|
38
|
+
>
|
|
39
|
+
<ProductScanRangeControl {...args} />
|
|
40
|
+
</Form>
|
|
41
|
+
</FormProvider>
|
|
42
|
+
);
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
|