@licklist/design 0.71.18-dev.5 → 0.71.18-dev.7
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/iframe/ProductWithModifierModal/ModifierSetModal/ProductWithModifierSetForm.d.ts.map +1 -1
- package/dist/iframe/ProductWithModifierModal/ModifierSetModal/ProductWithModifierSetForm.js +15 -7
- package/dist/iframe/ProductWithModifierModal/ModifierSetModal/ProductWithModifierSetModal.js +1 -1
- package/dist/iframe/ProductWithModifierModal/ModifierSetModal/controll/ModifierSetControll.d.ts.map +1 -1
- package/dist/iframe/ProductWithModifierModal/ModifierSetModal/controll/ModifierSetControll.js +18 -10
- package/dist/iframe/ProductWithModifierModal/ModifierSetModal/controll/ProductControll.js +1 -1
- package/dist/iframe/ProductWithModifierModal/utils.d.ts.map +1 -1
- package/dist/iframe/ProductWithModifierModal/utils.js +3 -1
- package/dist/iframe/order-process/components/BookingSummary/components/ProductSummary/ProductSummary.d.ts.map +1 -1
- package/dist/iframe/order-process/components/BookingSummary/components/ProductSummary/ProductSummary.js +9 -23
- package/dist/iframe/order-process/components/BookingSummary/utils/index.d.ts.map +1 -1
- package/dist/iframe/order-process/components/BookingSummary/utils/index.js +1 -1
- package/dist/iframe/order-process/components/CategoryProduct/components/ProductWithModifier/ProductWithModifier.d.ts +2 -1
- package/dist/iframe/order-process/components/CategoryProduct/components/ProductWithModifier/ProductWithModifier.d.ts.map +1 -1
- package/dist/iframe/order-process/components/CategoryProduct/components/ProductWithModifier/ProductWithModifier.js +3 -3
- package/dist/product-set/form/ProductsControl.d.ts.map +1 -1
- package/dist/product-set/form/ProductsControl.js +10 -3
- package/dist/styles/date-time-button/DateTimeButton.scss +7 -0
- package/dist/styles/events/EditEventModal.scss +2 -0
- package/dist/styles/product-set/EditProductSetElement.scss +1 -0
- package/dist/styles/product-set/ProductSetForm.scss +1 -0
- package/package.json +3 -3
- package/src/iframe/ProductWithModifierModal/ModifierSetModal/ProductWithModifierSetForm.tsx +13 -6
- package/src/iframe/ProductWithModifierModal/ModifierSetModal/ProductWithModifierSetModal.tsx +1 -1
- package/src/iframe/ProductWithModifierModal/ModifierSetModal/controll/ModifierSetControll.tsx +20 -9
- package/src/iframe/ProductWithModifierModal/ModifierSetModal/controll/ProductControll.tsx +1 -1
- package/src/iframe/ProductWithModifierModal/utils.ts +3 -2
- package/src/iframe/order-process/components/BookingSummary/components/ProductSummary/ProductSummary.tsx +10 -21
- package/src/iframe/order-process/components/BookingSummary/utils/index.ts +1 -2
- package/src/iframe/order-process/components/CategoryProduct/components/ProductQuantityInput/ProductQuantityInput.tsx +1 -1
- package/src/iframe/order-process/components/CategoryProduct/components/ProductWithModifier/ProductWithModifier.tsx +4 -2
- package/src/product-set/form/ProductsControl.tsx +13 -4
- package/src/styles/date-time-button/DateTimeButton.scss +7 -0
- package/src/styles/events/EditEventModal.scss +2 -0
- package/src/styles/product-set/EditProductSetElement.scss +1 -0
- package/src/styles/product-set/ProductSetForm.scss +1 -0
- package/yarn.lock +166 -138
package/src/iframe/ProductWithModifierModal/ModifierSetModal/controll/ModifierSetControll.tsx
CHANGED
|
@@ -36,6 +36,8 @@ export const ModifiersSetControl = ({
|
|
|
36
36
|
|
|
37
37
|
const orderModifiersSets = watch(`${productId}.orderProductModifiers`)
|
|
38
38
|
|
|
39
|
+
console.log(orderModifiersSets, 'orderModifiersSets')
|
|
40
|
+
|
|
39
41
|
const { formatNumber } = useIntl()
|
|
40
42
|
const formatToCurrency = (value: number) =>
|
|
41
43
|
formatNumber(value, { style: 'currency', currency: Currency.GBP })
|
|
@@ -62,7 +64,7 @@ export const ModifiersSetControl = ({
|
|
|
62
64
|
orderModifiersSets?.find(
|
|
63
65
|
(modifier) => modifier?.modifierId === selectedModifier?.id,
|
|
64
66
|
)?.quantity === 1
|
|
65
|
-
|
|
67
|
+
console.log(orderModifiersSets, 'orderModifiersSets -1')
|
|
66
68
|
if (selectedModifier && type === 'radio') {
|
|
67
69
|
modifiers.forEach((modifier) => {
|
|
68
70
|
const isSelected = modifier.id === selectedModifier.id
|
|
@@ -74,8 +76,11 @@ export const ModifiersSetControl = ({
|
|
|
74
76
|
quantity: isSelected ? 1 : 0,
|
|
75
77
|
modifierSetId: modifierSet.id,
|
|
76
78
|
}
|
|
79
|
+
|
|
80
|
+
console.log(orderModifiers, 'orderModifiers')
|
|
81
|
+
|
|
77
82
|
setValue(
|
|
78
|
-
`${productId}.orderProductModifiers.${modifierSet.id}`,
|
|
83
|
+
`${productId}.orderProductModifiers.${modifierSet.id}.${orderModifiers.modifierId}`,
|
|
79
84
|
orderModifiers,
|
|
80
85
|
)
|
|
81
86
|
})
|
|
@@ -124,14 +129,19 @@ export const ModifiersSetControl = ({
|
|
|
124
129
|
)
|
|
125
130
|
}, [isEditMode])
|
|
126
131
|
|
|
132
|
+
const radioButtonDefaultModifier = currentOrderModifiersSets.find((modifier) =>
|
|
133
|
+
modifierSet.modifiers.some((rl) => rl.id === modifier.modifierId)
|
|
134
|
+
)?.modifierId.toString();
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
127
138
|
return (
|
|
128
139
|
<>
|
|
129
140
|
{modifierSet?.maxItems === 1 &&
|
|
130
|
-
modifiers.every((modifier) => modifier.maxItems === 1)
|
|
131
|
-
!currentOrderModifiersSets?.find((modifier) => !!modifier?.quantity) ? (
|
|
141
|
+
modifiers.every((modifier) => modifier.maxItems === 1) ? (
|
|
132
142
|
<>
|
|
133
143
|
<Controller
|
|
134
|
-
name={`${productId}.
|
|
144
|
+
name={`${productId}.modifier`}
|
|
135
145
|
control={control}
|
|
136
146
|
rules={{
|
|
137
147
|
required: {
|
|
@@ -162,7 +172,7 @@ export const ModifiersSetControl = ({
|
|
|
162
172
|
inline
|
|
163
173
|
id={modifier.id.toString()}
|
|
164
174
|
defaultChecked={!!selectedOrderModifierId}
|
|
165
|
-
defaultValue={modifier.id.toString()}
|
|
175
|
+
defaultValue={selectedOrderModifierId || modifier.id.toString()}
|
|
166
176
|
checked={field.value === modifier.id.toString()}
|
|
167
177
|
onChange={onChange}
|
|
168
178
|
type='radio'
|
|
@@ -171,7 +181,7 @@ export const ModifiersSetControl = ({
|
|
|
171
181
|
/>
|
|
172
182
|
<div className='mt-3 w-100 pl-2'>
|
|
173
183
|
<p>{modifier.description}</p>
|
|
174
|
-
<div className='price'>
|
|
184
|
+
<div className='modifier-price'>
|
|
175
185
|
+ {formatToCurrency(modifier.price)}
|
|
176
186
|
</div>
|
|
177
187
|
</div>
|
|
@@ -187,6 +197,7 @@ export const ModifiersSetControl = ({
|
|
|
187
197
|
</>
|
|
188
198
|
)
|
|
189
199
|
}}
|
|
200
|
+
defaultValue={radioButtonDefaultModifier}
|
|
190
201
|
/>
|
|
191
202
|
</>
|
|
192
203
|
) : (
|
|
@@ -248,7 +259,7 @@ export const ModifiersSetControl = ({
|
|
|
248
259
|
</div>
|
|
249
260
|
<div className='mt-3 w-100 pl-2'>
|
|
250
261
|
<p>{modifier.description}</p>
|
|
251
|
-
<div className='price'>
|
|
262
|
+
<div className='modifier-price'>
|
|
252
263
|
+ {formatToCurrency(modifier.price)}
|
|
253
264
|
</div>
|
|
254
265
|
</div>
|
|
@@ -332,7 +343,7 @@ export const ModifiersSetControl = ({
|
|
|
332
343
|
</div>
|
|
333
344
|
<div className='p-2 mt-3 w-100 pl-4'>
|
|
334
345
|
<p className='pl-2'>{modifier.description}</p>
|
|
335
|
-
<div className='pl-2 price'>
|
|
346
|
+
<div className='pl-2 modifier-price'>
|
|
336
347
|
+ {formatToCurrency(modifier.price)}
|
|
337
348
|
</div>
|
|
338
349
|
{error?.message && (
|
|
@@ -25,7 +25,7 @@ export const ProductControl = ({
|
|
|
25
25
|
clearErrors,
|
|
26
26
|
} = useFormContext()
|
|
27
27
|
const modifiersSet = product?.modifiersSet || []
|
|
28
|
-
const orderModifiersSets = watch(`${product.id}.
|
|
28
|
+
const orderModifiersSets = watch(`${product.id}.orderProductModifier`)
|
|
29
29
|
|
|
30
30
|
useEffect(() => {
|
|
31
31
|
if (!isValid) return
|
|
@@ -8,8 +8,8 @@ export const filteredOrderModifierSets = (
|
|
|
8
8
|
): OrderModifier[] => {
|
|
9
9
|
if (!modifiersSet) return []
|
|
10
10
|
const orderModifier = modifiersSet
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
?.flat()
|
|
12
|
+
?.filter((modifier) => !!modifier?.quantity)
|
|
13
13
|
|
|
14
14
|
return uniqBy(
|
|
15
15
|
orderModifier,
|
|
@@ -21,6 +21,7 @@ export const filteredOrderModifierSets = (
|
|
|
21
21
|
orderModifiersSets: OrderModifier[],
|
|
22
22
|
modifierSet,
|
|
23
23
|
) => {
|
|
24
|
+
if (!orderModifiersSets?.length) return 0
|
|
24
25
|
const filteredOrderModifier = filteredOrderModifierSets(orderModifiersSets)
|
|
25
26
|
return filteredOrderModifier.filter(
|
|
26
27
|
(item) => item?.modifierSetId === modifierSet.id,
|
|
@@ -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 { calculateTotalModifiersPrice } from '../../utils'
|
|
6
|
+
import { ProductWithModifier } from '../../../CategoryProduct/components/ProductWithModifier/ProductWithModifier'
|
|
6
7
|
|
|
7
8
|
type ProductSummaryProps = {
|
|
8
9
|
name?: string
|
|
@@ -29,22 +30,6 @@ export const ProductSummary = ({
|
|
|
29
30
|
currency: Config.Currency.GBP,
|
|
30
31
|
})
|
|
31
32
|
|
|
32
|
-
const modifiersName = `${orderProduct.orderModifiersSets
|
|
33
|
-
?.map((modifierProduct) =>
|
|
34
|
-
modifierProduct?.modifiers
|
|
35
|
-
.map((item) =>
|
|
36
|
-
item?.quantity > 1
|
|
37
|
-
? `${item?.quantity}x - ${item?.name}`
|
|
38
|
-
: item?.name,
|
|
39
|
-
)
|
|
40
|
-
.join(', '),
|
|
41
|
-
)
|
|
42
|
-
.join(', ')}`
|
|
43
|
-
|
|
44
|
-
const fullModifiersPrice = formatNumber(modifierSetsPrice, {
|
|
45
|
-
style: 'currency',
|
|
46
|
-
currency: Config.Currency.GBP,
|
|
47
|
-
})
|
|
48
33
|
|
|
49
34
|
return (
|
|
50
35
|
<div className='product'>
|
|
@@ -57,12 +42,16 @@ export const ProductSummary = ({
|
|
|
57
42
|
{modifierSetsPrice && <p className='price'>{fullPrice}</p>}
|
|
58
43
|
</div>
|
|
59
44
|
|
|
60
|
-
{
|
|
45
|
+
{!!orderProduct?.orderModifiersSets?.length && (
|
|
61
46
|
<>
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
47
|
+
{orderProduct.orderModifiersSets.map((modifier, index) => (
|
|
48
|
+
<ProductWithModifier
|
|
49
|
+
key={modifier.productQuantity.toString()}
|
|
50
|
+
modifier={modifier}
|
|
51
|
+
modifierKey={index}
|
|
52
|
+
isSummary
|
|
53
|
+
/>
|
|
54
|
+
))}
|
|
66
55
|
</>
|
|
67
56
|
)}
|
|
68
57
|
|
|
@@ -17,7 +17,6 @@ export const cartSumByOrderProducts = ({
|
|
|
17
17
|
}
|
|
18
18
|
return orderProducts.reduce((prevSumValue: number, product) => {
|
|
19
19
|
if (!product) return 0
|
|
20
|
-
|
|
21
20
|
const modifiersPrice = calculateTotalModifiersPrice(
|
|
22
21
|
product?.orderModifiersSets,
|
|
23
22
|
)
|
|
@@ -37,7 +36,7 @@ export const getModifierName = (
|
|
|
37
36
|
isManualBooking: boolean,
|
|
38
37
|
) => {
|
|
39
38
|
const modifierName = (orderModifier: OrderModifier) =>
|
|
40
|
-
|
|
39
|
+
isManualBooking ? orderModifier.modifier.name : orderModifier?.name
|
|
41
40
|
return `${modifier.modifiers.map((item) => (
|
|
42
41
|
item?.quantity > 1 ? `${item?.quantity}x - ${modifierName(item)}` : modifierName(item))).join(', ')}`
|
|
43
42
|
}
|
|
@@ -25,6 +25,7 @@ interface ProductQuantityInputProps {
|
|
|
25
25
|
modifier: OrderModifierByProduct
|
|
26
26
|
modifierKey: number
|
|
27
27
|
isManualBooking?: boolean
|
|
28
|
+
isSummary? :boolean
|
|
28
29
|
deleteOrderModifier?: (order: number) => void
|
|
29
30
|
editOrderModifierSet?: (order: number) => void
|
|
30
31
|
}
|
|
@@ -33,6 +34,7 @@ export const ProductWithModifier = ({
|
|
|
33
34
|
modifier,
|
|
34
35
|
modifierKey,
|
|
35
36
|
isManualBooking = false,
|
|
37
|
+
isSummary = false,
|
|
36
38
|
deleteOrderModifier,
|
|
37
39
|
editOrderModifierSet,
|
|
38
40
|
}: ProductQuantityInputProps) => {
|
|
@@ -55,10 +57,10 @@ export const ProductWithModifier = ({
|
|
|
55
57
|
className='d-flex p-2 justify-content-between align-items-center'
|
|
56
58
|
>
|
|
57
59
|
<div className='d-flex'>
|
|
58
|
-
<p className='font-weight-bold pr-4'>{`${orderModifierDescription} x`}</p>
|
|
60
|
+
<p className='font-weight-bold w-25 pr-4'>{`${orderModifierDescription} x`}</p>
|
|
59
61
|
<p>{modifierName ? ` ${modifierName}` : t('withoutModifier')}</p>
|
|
60
62
|
</div>
|
|
61
|
-
{isManualBooking ? (
|
|
63
|
+
{isManualBooking || isSummary ? (
|
|
62
64
|
<p className='price'>{fullModifiersPrice}</p>
|
|
63
65
|
) : (
|
|
64
66
|
<div>
|
|
@@ -141,6 +141,16 @@ export function ProductsControl({
|
|
|
141
141
|
],
|
|
142
142
|
})
|
|
143
143
|
|
|
144
|
+
const modifierSets = useWatch({
|
|
145
|
+
control,
|
|
146
|
+
name: [
|
|
147
|
+
...fields.map(
|
|
148
|
+
(_, index) =>
|
|
149
|
+
`${productControlFieldName}.${index}.modifiersSet` as const,
|
|
150
|
+
),
|
|
151
|
+
],
|
|
152
|
+
})
|
|
153
|
+
|
|
144
154
|
const categoryProductErrors =
|
|
145
155
|
errors?.steps?.[stepIndex]?.productCategories?.[productCategoryIndex]
|
|
146
156
|
?.products
|
|
@@ -200,9 +210,8 @@ export function ProductsControl({
|
|
|
200
210
|
? !!product.id
|
|
201
211
|
: isOverrides && !!product.originalProductId
|
|
202
212
|
|
|
203
|
-
const modifierSets = product?.modifiersSet.length || 0
|
|
204
|
-
|
|
205
213
|
const isNewProductOverrides = isCreateNewOverrides && !!product.id
|
|
214
|
+
const modifiersSets = modifierSets[index]?.length || 0
|
|
206
215
|
|
|
207
216
|
return (
|
|
208
217
|
<Controller
|
|
@@ -247,8 +256,8 @@ export function ProductsControl({
|
|
|
247
256
|
} `}
|
|
248
257
|
</span>
|
|
249
258
|
</div>
|
|
250
|
-
{!!
|
|
251
|
-
<Badge className='modifier-badge'>{`${
|
|
259
|
+
{!!modifiersSets && (
|
|
260
|
+
<Badge className='modifier-badge'>{`${modifiersSets} ${t('modifiersSets')}`}</Badge>
|
|
252
261
|
)}
|
|
253
262
|
</div>
|
|
254
263
|
}
|