@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.
Files changed (37) hide show
  1. package/dist/iframe/ProductWithModifierModal/ModifierSetModal/ProductWithModifierSetForm.d.ts.map +1 -1
  2. package/dist/iframe/ProductWithModifierModal/ModifierSetModal/ProductWithModifierSetForm.js +15 -7
  3. package/dist/iframe/ProductWithModifierModal/ModifierSetModal/ProductWithModifierSetModal.js +1 -1
  4. package/dist/iframe/ProductWithModifierModal/ModifierSetModal/controll/ModifierSetControll.d.ts.map +1 -1
  5. package/dist/iframe/ProductWithModifierModal/ModifierSetModal/controll/ModifierSetControll.js +18 -10
  6. package/dist/iframe/ProductWithModifierModal/ModifierSetModal/controll/ProductControll.js +1 -1
  7. package/dist/iframe/ProductWithModifierModal/utils.d.ts.map +1 -1
  8. package/dist/iframe/ProductWithModifierModal/utils.js +3 -1
  9. package/dist/iframe/order-process/components/BookingSummary/components/ProductSummary/ProductSummary.d.ts.map +1 -1
  10. package/dist/iframe/order-process/components/BookingSummary/components/ProductSummary/ProductSummary.js +9 -23
  11. package/dist/iframe/order-process/components/BookingSummary/utils/index.d.ts.map +1 -1
  12. package/dist/iframe/order-process/components/BookingSummary/utils/index.js +1 -1
  13. package/dist/iframe/order-process/components/CategoryProduct/components/ProductWithModifier/ProductWithModifier.d.ts +2 -1
  14. package/dist/iframe/order-process/components/CategoryProduct/components/ProductWithModifier/ProductWithModifier.d.ts.map +1 -1
  15. package/dist/iframe/order-process/components/CategoryProduct/components/ProductWithModifier/ProductWithModifier.js +3 -3
  16. package/dist/product-set/form/ProductsControl.d.ts.map +1 -1
  17. package/dist/product-set/form/ProductsControl.js +10 -3
  18. package/dist/styles/date-time-button/DateTimeButton.scss +7 -0
  19. package/dist/styles/events/EditEventModal.scss +2 -0
  20. package/dist/styles/product-set/EditProductSetElement.scss +1 -0
  21. package/dist/styles/product-set/ProductSetForm.scss +1 -0
  22. package/package.json +3 -3
  23. package/src/iframe/ProductWithModifierModal/ModifierSetModal/ProductWithModifierSetForm.tsx +13 -6
  24. package/src/iframe/ProductWithModifierModal/ModifierSetModal/ProductWithModifierSetModal.tsx +1 -1
  25. package/src/iframe/ProductWithModifierModal/ModifierSetModal/controll/ModifierSetControll.tsx +20 -9
  26. package/src/iframe/ProductWithModifierModal/ModifierSetModal/controll/ProductControll.tsx +1 -1
  27. package/src/iframe/ProductWithModifierModal/utils.ts +3 -2
  28. package/src/iframe/order-process/components/BookingSummary/components/ProductSummary/ProductSummary.tsx +10 -21
  29. package/src/iframe/order-process/components/BookingSummary/utils/index.ts +1 -2
  30. package/src/iframe/order-process/components/CategoryProduct/components/ProductQuantityInput/ProductQuantityInput.tsx +1 -1
  31. package/src/iframe/order-process/components/CategoryProduct/components/ProductWithModifier/ProductWithModifier.tsx +4 -2
  32. package/src/product-set/form/ProductsControl.tsx +13 -4
  33. package/src/styles/date-time-button/DateTimeButton.scss +7 -0
  34. package/src/styles/events/EditEventModal.scss +2 -0
  35. package/src/styles/product-set/EditProductSetElement.scss +1 -0
  36. package/src/styles/product-set/ProductSetForm.scss +1 -0
  37. package/yarn.lock +166 -138
@@ -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}.orderProductModifiers.${modifierSet.id}`}
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}.orderProductModifiers`)
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
- .flat()
12
- .filter((modifier) => !!modifier?.quantity)
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
- {fullModifiersPrice && (
45
+ {!!orderProduct?.orderModifiersSets?.length && (
61
46
  <>
62
- <p className='mt-2'>{modifiersName}</p>
63
- <div className='d-flex justify-content-end'>
64
- <p className='price'>{fullModifiersPrice}</p>
65
- </div>
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
- !isManualBooking ? orderModifier?.name : orderModifier.modifier.name
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
  }
@@ -92,7 +92,7 @@ export const ProductQuantityInput = ({
92
92
  )
93
93
  }
94
94
 
95
- if (product.modifiersSet.length) {
95
+ if ((product as Product).modifiersSet.length) {
96
96
  return (
97
97
  <>
98
98
  <Button
@@ -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
- {!!modifierSets && (
251
- <Badge className='modifier-badge'>{`${modifierSets} ${t('modifiersSets')}`}</Badge>
259
+ {!!modifiersSets && (
260
+ <Badge className='modifier-badge'>{`${modifiersSets} ${t('modifiersSets')}`}</Badge>
252
261
  )}
253
262
  </div>
254
263
  }
@@ -105,3 +105,10 @@
105
105
  font-weight: 300;
106
106
  color: $snippet-calendar-button-font-color;
107
107
  }
108
+
109
+ .modifier-price {
110
+ font-size: 1rem;
111
+ line-height: 1.03rem;
112
+ font-weight: 500;
113
+ color: $snippet-calendar-button-font-color;
114
+ }
@@ -37,6 +37,8 @@
37
37
  .edit-step-dialog {
38
38
  .custom-checkbox {
39
39
  align-items: unset;
40
+ position: relative;
41
+ z-index: 0;
40
42
  .form-check-label {
41
43
  margin-top: 1rem;
42
44
  }
@@ -90,6 +90,7 @@
90
90
  }
91
91
  label.btn-link {
92
92
  width: 4.5rem;
93
+ z-index: 0;
93
94
  display: flex;
94
95
  justify-content: center;
95
96
  span {
@@ -90,6 +90,7 @@
90
90
  .modifier-badge {
91
91
  background-color: #e9f5ea;
92
92
  color: #269b36;
93
+ height: 1rem;
93
94
  }
94
95
  }
95
96