@licklist/design 0.44.533 → 0.44.535

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 (123) hide show
  1. package/dist/events/edit-event-modal/utils/getDefaultProductSet.d.ts.map +1 -1
  2. package/dist/events/edit-event-modal/utils/getDefaultProductSet.js +1 -1
  3. package/dist/events/event-card/EventCard.js +1 -1
  4. package/dist/events/event-card/utils.d.ts +2 -1
  5. package/dist/events/event-card/utils.d.ts.map +1 -1
  6. package/dist/events/event-card/utils.js +1 -1
  7. package/dist/iframe/event/index.d.ts +0 -1
  8. package/dist/iframe/event/index.d.ts.map +1 -1
  9. package/dist/iframe/index.d.ts +1 -1
  10. package/dist/iframe/index.d.ts.map +1 -1
  11. package/dist/iframe/order-process/components/BookingSummary/BookingSummary.d.ts +1 -1
  12. package/dist/iframe/order-process/components/BookingSummary/BookingSummary.js +1 -1
  13. package/dist/iframe/order-process/components/BookingSummary/types/index.d.ts +1 -1
  14. package/dist/iframe/order-process/components/CategoryProduct/components/ProductQuantityInput/ProductQuantityInput.d.ts +1 -0
  15. package/dist/iframe/order-process/components/CategoryProduct/components/ProductQuantityInput/ProductQuantityInput.d.ts.map +1 -1
  16. package/dist/iframe/order-process/components/CategoryProduct/components/ProductQuantityInput/ProductQuantityInput.js +1 -1
  17. package/dist/index.d.ts +1 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +1 -1
  20. package/dist/number-of-people-input/NumberOfPeopleInput.d.ts.map +1 -0
  21. package/dist/number-of-people-input/NumberOfPeopleInput.js +1 -0
  22. package/dist/{iframe/event/event-details/components/number-of-people-input/component → number-of-people-input/components}/RenderNumberOfPeopleInputComponent.d.ts +2 -3
  23. package/dist/number-of-people-input/components/RenderNumberOfPeopleInputComponent.d.ts.map +1 -0
  24. package/dist/number-of-people-input/components/RenderNumberOfPeopleInputComponent.js +1 -0
  25. package/dist/number-of-people-input/components/index.d.ts +2 -0
  26. package/dist/number-of-people-input/components/index.d.ts.map +1 -0
  27. package/dist/number-of-people-input/index.d.ts +3 -0
  28. package/dist/number-of-people-input/index.d.ts.map +1 -0
  29. package/dist/product-set/control/ProductSetControl.d.ts +2 -1
  30. package/dist/product-set/control/ProductSetControl.d.ts.map +1 -1
  31. package/dist/product-set/control/ProductSetControl.js +1 -1
  32. package/dist/product-set/form/ProductCategoriesControl.d.ts.map +1 -1
  33. package/dist/product-set/form/ProductCategoriesControl.js +1 -1
  34. package/dist/product-set/product-category/ProductCategoryControl.d.ts +0 -1
  35. package/dist/product-set/product-category/ProductCategoryControl.d.ts.map +1 -1
  36. package/dist/product-set/product-category/ProductCategoryControl.js +1 -1
  37. package/dist/sales/booking/results/components/ResultCard.d.ts.map +1 -1
  38. package/dist/sales/booking/results/components/ResultCard.js +1 -1
  39. package/dist/sales/manual-booking/summary/ManualBookingSummary.d.ts +3 -1
  40. package/dist/sales/manual-booking/summary/ManualBookingSummary.d.ts.map +1 -1
  41. package/dist/sales/manual-booking/summary/ManualBookingSummary.js +1 -1
  42. package/dist/snippet/snippet-template/preview/Preview.js +1 -1
  43. package/dist/styles/sales/BookingResults.scss +9 -1
  44. package/dist/types/iframe.d.ts +1 -0
  45. package/dist/types/iframe.d.ts.map +1 -1
  46. package/package.json +1 -1
  47. package/src/events/edit-event-modal/component/EditEventForm/EditEventForm.stories.tsx +0 -9
  48. package/src/events/edit-event-modal/utils/getDefaultProductSet.ts +2 -1
  49. package/src/events/event-card/EventCard.tsx +2 -2
  50. package/src/events/event-card/utils.ts +12 -1
  51. package/src/iframe/event/event-venue-map/IframeEventVenueMap.stories.tsx +0 -1
  52. package/src/iframe/event/index.ts +0 -1
  53. package/src/iframe/index.ts +0 -1
  54. package/src/iframe/order-process/components/BookingSummary/BookingSummary.tsx +2 -2
  55. package/src/iframe/order-process/components/BookingSummary/types/index.ts +1 -1
  56. package/src/iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.stories.tsx +0 -1
  57. package/src/iframe/order-process/components/CategoryProduct/components/ProductQuantityInput/ProductQuantityInput.tsx +5 -0
  58. package/src/iframe/payment/payment-page/PaymentPage.stories.tsx +1 -1
  59. package/src/index.ts +1 -0
  60. package/src/{iframe/event/event-details/components/number-of-people-input → number-of-people-input}/NumberOfPeopleInput.tsx +1 -1
  61. package/src/number-of-people-input/components/RenderNumberOfPeopleInputComponent.stories.tsx +92 -0
  62. package/src/{iframe/event/event-details/components/number-of-people-input/component → number-of-people-input/components}/RenderNumberOfPeopleInputComponent.tsx +3 -3
  63. package/src/number-of-people-input/components/index.ts +1 -0
  64. package/src/number-of-people-input/index.ts +2 -0
  65. package/src/product-set/control/ProductSetControl.tsx +36 -0
  66. package/src/product-set/form/ProductCategoriesControl.tsx +0 -1
  67. package/src/product-set/form/ProductSetForm.stories.tsx +2 -6
  68. package/src/product-set/product-category/ProductCategory.stories.tsx +0 -1
  69. package/src/product-set/product-category/ProductCategoryControl.tsx +0 -23
  70. package/src/sales/booking/results/BookingResults.stories.tsx +0 -7
  71. package/src/sales/booking/results/components/ResultCard.tsx +6 -1
  72. package/src/sales/guest-profile/previous-bookings/PreviousBookings.stories.tsx +0 -7
  73. package/src/sales/manual-booking/summary/ManualBookingSummary.tsx +20 -5
  74. package/src/styles/sales/BookingResults.scss +9 -1
  75. package/src/types/iframe.ts +1 -0
  76. package/dist/iframe/event/event-details/EventDetails.d.ts +0 -10
  77. package/dist/iframe/event/event-details/EventDetails.d.ts.map +0 -1
  78. package/dist/iframe/event/event-details/EventDetails.js +0 -1
  79. package/dist/iframe/event/event-details/components/category-product/CategoryProduct.d.ts +0 -9
  80. package/dist/iframe/event/event-details/components/category-product/CategoryProduct.d.ts.map +0 -1
  81. package/dist/iframe/event/event-details/components/category-product/CategoryProduct.js +0 -1
  82. package/dist/iframe/event/event-details/components/category-product/index.d.ts +0 -2
  83. package/dist/iframe/event/event-details/components/category-product/index.d.ts.map +0 -1
  84. package/dist/iframe/event/event-details/components/event-details-form/EventDetailsForm.d.ts +0 -26
  85. package/dist/iframe/event/event-details/components/event-details-form/EventDetailsForm.d.ts.map +0 -1
  86. package/dist/iframe/event/event-details/components/event-details-form/EventDetailsForm.js +0 -1
  87. package/dist/iframe/event/event-details/components/event-details-form/index.d.ts +0 -2
  88. package/dist/iframe/event/event-details/components/event-details-form/index.d.ts.map +0 -1
  89. package/dist/iframe/event/event-details/components/number-of-people-input/NumberOfPeopleInput.d.ts.map +0 -1
  90. package/dist/iframe/event/event-details/components/number-of-people-input/NumberOfPeopleInput.js +0 -1
  91. package/dist/iframe/event/event-details/components/number-of-people-input/component/RenderNumberOfPeopleInputComponent.d.ts.map +0 -1
  92. package/dist/iframe/event/event-details/components/number-of-people-input/component/RenderNumberOfPeopleInputComponent.js +0 -1
  93. package/dist/iframe/event/event-details/components/number-of-people-input/component/index.d.ts +0 -2
  94. package/dist/iframe/event/event-details/components/number-of-people-input/component/index.d.ts.map +0 -1
  95. package/dist/iframe/event/event-details/components/number-of-people-input/index.d.ts +0 -2
  96. package/dist/iframe/event/event-details/components/number-of-people-input/index.d.ts.map +0 -1
  97. package/dist/iframe/event/event-details/components/product-category-view/ProductCategoryView.d.ts +0 -8
  98. package/dist/iframe/event/event-details/components/product-category-view/ProductCategoryView.d.ts.map +0 -1
  99. package/dist/iframe/event/event-details/components/product-category-view/ProductCategoryView.js +0 -1
  100. package/dist/iframe/event/event-details/components/product-category-view/index.d.ts +0 -2
  101. package/dist/iframe/event/event-details/components/product-category-view/index.d.ts.map +0 -1
  102. package/dist/iframe/event/event-details/index.d.ts +0 -2
  103. package/dist/iframe/event/event-details/index.d.ts.map +0 -1
  104. package/dist/iframe/event/event-details/utils/index.d.ts +0 -2
  105. package/dist/iframe/event/event-details/utils/index.d.ts.map +0 -1
  106. package/dist/iframe/event/event-details/utils/routes.d.ts +0 -2
  107. package/dist/iframe/event/event-details/utils/routes.d.ts.map +0 -1
  108. package/dist/iframe/event/event-details/utils/routes.js +0 -1
  109. package/src/iframe/event/event-details/EventDetails.stories.tsx +0 -187
  110. package/src/iframe/event/event-details/EventDetails.tsx +0 -92
  111. package/src/iframe/event/event-details/EventDetailsOneStepForm.stories.tsx +0 -123
  112. package/src/iframe/event/event-details/components/category-product/CategoryProduct.tsx +0 -109
  113. package/src/iframe/event/event-details/components/category-product/index.ts +0 -1
  114. package/src/iframe/event/event-details/components/event-details-form/EventDetailsForm.tsx +0 -250
  115. package/src/iframe/event/event-details/components/event-details-form/index.ts +0 -5
  116. package/src/iframe/event/event-details/components/number-of-people-input/component/index.ts +0 -1
  117. package/src/iframe/event/event-details/components/number-of-people-input/index.ts +0 -1
  118. package/src/iframe/event/event-details/components/product-category-view/ProductCategoryView.tsx +0 -34
  119. package/src/iframe/event/event-details/components/product-category-view/index.ts +0 -1
  120. package/src/iframe/event/event-details/index.ts +0 -1
  121. package/src/iframe/event/event-details/utils/index.ts +0 -1
  122. package/src/iframe/event/event-details/utils/routes.ts +0 -6
  123. /package/dist/{iframe/event/event-details/components/number-of-people-input → number-of-people-input}/NumberOfPeopleInput.d.ts +0 -0
@@ -1,250 +0,0 @@
1
- import React, {
2
- CSSProperties,
3
- useState,
4
- useRef,
5
- useEffect,
6
- useMemo,
7
- } from "react";
8
- import { useHistory, useLocation } from "react-router-dom";
9
- import { Badge, Image, Form } from "react-bootstrap";
10
- import { useTranslation, Trans } from "react-i18next";
11
- import { useIntl } from "react-intl";
12
- import { useForm, FormProvider, useWatch } from "react-hook-form";
13
- import clsx from "clsx";
14
- import {
15
- scrollToError,
16
- scrollToElement,
17
- } from "@licklist/plugins/dist/utils/ScrollUtils";
18
- import {
19
- getFirstErrorKey,
20
- isFormValuesEmpty,
21
- } from "@licklist/plugins/dist/utils/FormValues";
22
-
23
- import { TextExpand } from "../../../../../static";
24
- import { EventNavigationFooter } from "../../../event-navigation-footer";
25
- import { ProductCategoryView } from "../product-category-view";
26
- import { NumberOfPeopleInput } from "../number-of-people-input";
27
-
28
- import { Menu, WizardFormValues } from "../../../../../types";
29
- import { TipTapEditor } from "../../../../../tiptap-editor/TipTapEditor";
30
-
31
- const DESCRIPTION_MAX_LENGTH = 120;
32
- const NO_ORDER_ITEMS_ERROR = "NO_ORDER_ITEMS_ERROR";
33
-
34
- export interface WizardFormProps {
35
- onFormSubmit: (props: {
36
- values: WizardFormValues;
37
- pathname?: string;
38
- isBackAction?: boolean;
39
- }) => void;
40
- routes?: string[];
41
- menu: Menu;
42
- numberOfSteps: number;
43
- defaultValues: WizardFormValues;
44
- }
45
-
46
- export interface EventDetailsFormProps {
47
- title: string;
48
- date: string;
49
- cost?: number;
50
- description: string;
51
- imageSrc?: null | string;
52
- menus?: Menu[];
53
- isBuyNowDisabled?: boolean;
54
- relyOnPeopleCategoryIds?: number[];
55
- onPrevStep?: () => void;
56
- }
57
-
58
- export function EventDetailsForm({
59
- title,
60
- cost,
61
- description,
62
- imageSrc,
63
- date,
64
- menu,
65
- isBuyNowDisabled,
66
- onFormSubmit,
67
- routes = [],
68
- numberOfSteps,
69
- defaultValues,
70
- relyOnPeopleCategoryIds = [],
71
- onPrevStep,
72
- }: EventDetailsFormProps & WizardFormProps) {
73
- const history = useHistory();
74
- const { pathname } = useLocation();
75
-
76
- const { formatNumber } = useIntl();
77
- const { t } = useTranslation("Design");
78
- const form = useForm({ defaultValues });
79
- const headerRef = useRef(null);
80
-
81
- const {
82
- trigger,
83
- handleSubmit,
84
- getValues,
85
- control,
86
- setError,
87
- clearErrors,
88
- formState: { errors },
89
- } = form;
90
- const formValues = useWatch({ control });
91
-
92
- const [isDescriptionExpanded, setIsDescriptionExpanded] = useState(false);
93
-
94
- const pathNameIndex = routes.indexOf(pathname);
95
- const step = pathNameIndex > 0 ? pathNameIndex : 0;
96
- const nextStep = step + 1;
97
-
98
- const onNextClick = async () => {
99
- if (!(await trigger())) {
100
- scrollToError(getFirstErrorKey(errors));
101
- return;
102
- }
103
- submitCurrentForm(getValues());
104
-
105
- if (routes.length) {
106
- history.push(routes[pathNameIndex + 1]);
107
- }
108
- };
109
-
110
- const onPrevClick = () => {
111
- onFormSubmit({ values: getValues(), pathname, isBackAction: true });
112
-
113
- if (routes.length) {
114
- history.push(routes[pathNameIndex - 1]);
115
- }
116
- };
117
-
118
- const submitCurrentForm = (values: WizardFormValues) => {
119
- if (nextStep === numberOfSteps && isFormValuesEmpty(values)) {
120
- setError(NO_ORDER_ITEMS_ERROR, {});
121
- scrollToError(NO_ORDER_ITEMS_ERROR);
122
- return;
123
- }
124
-
125
- onFormSubmit({ values, pathname, isBackAction: false });
126
- };
127
-
128
- const onErrorSubmit = (submitErrors) => {
129
- scrollToError(getFirstErrorKey(submitErrors));
130
- };
131
-
132
- const shouldShowPeopleInput = useMemo(() => {
133
- const values = Object.values(formValues)
134
- .filter(Boolean)
135
- .filter(
136
- (product) =>
137
- relyOnPeopleCategoryIds.includes(product.productsCategoryId) &&
138
- product.quantity > 0
139
- );
140
-
141
- return Boolean(values.length);
142
- }, [formValues, relyOnPeopleCategoryIds]);
143
-
144
- useEffect(() => {
145
- scrollToElement(headerRef.current);
146
- }, []);
147
-
148
- useEffect(() => {
149
- if (!isFormValuesEmpty(formValues)) {
150
- clearErrors(NO_ORDER_ITEMS_ERROR);
151
- }
152
- }, [formValues, clearErrors]);
153
-
154
- const descriptionWrapperStyle = {
155
- "--description-wrapper-height": isDescriptionExpanded ? "inherit" : "8rem",
156
- } as CSSProperties;
157
-
158
- return (
159
- <Form onSubmit={handleSubmit(submitCurrentForm, onErrorSubmit)}>
160
- <FormProvider {...form}>
161
- <div className="iframe-event">
162
- <div className="iframe-event__header" ref={headerRef}>
163
- {imageSrc && (
164
- <Image src={imageSrc} width="300rem" height="250rem" />
165
- )}
166
- <div className={clsx(imageSrc && "ml-5")}>
167
- <Badge variant="dark" className="iframe-event__badge">
168
- {date}
169
- </Badge>
170
- <h5 className="mt-3 iframe-event__title">{title}</h5>
171
- <div className="d-flex flex-wrap justify-content-between">
172
- {cost !== undefined && (
173
- <div>
174
- <div className="iframe-event-card__label">{t("cost")}</div>
175
- <div className="iframe-event-card__bold">
176
- {t("from")}{" "}
177
- {formatNumber(cost, {
178
- style: "currency",
179
- currency: "GBP",
180
- })}
181
- </div>
182
- </div>
183
- )}
184
- </div>
185
- </div>
186
- </div>
187
- {!!description && (
188
- <div
189
- className="iframe-event__description-wrapper"
190
- style={descriptionWrapperStyle}
191
- >
192
- {description.length > DESCRIPTION_MAX_LENGTH ? (
193
- <TextExpand
194
- className="iframe-event__description my-6"
195
- isExpanded={isDescriptionExpanded}
196
- setIsExpanded={setIsDescriptionExpanded}
197
- >
198
- <TipTapEditor viewMode disabled content={description} />
199
- </TextExpand>
200
- ) : (
201
- <div className="my-6">
202
- <TipTapEditor viewMode disabled content={description} />
203
- </div>
204
- )}
205
- </div>
206
- )}
207
- {!!menu && (
208
- <>
209
- {menu.menuSteps[step].name && (
210
- <h3 className="iframe-event__name">
211
- {menu.menuSteps[step].name}
212
- </h3>
213
- )}
214
-
215
- <ProductCategoryView
216
- productCategories={menu.menuSteps[step]?.productCategories}
217
- />
218
-
219
- {shouldShowPeopleInput && nextStep === numberOfSteps && (
220
- <NumberOfPeopleInput />
221
- )}
222
- {errors[NO_ORDER_ITEMS_ERROR] && (
223
- <div
224
- className="d-flex m-5 justify-content-center form-error"
225
- id={NO_ORDER_ITEMS_ERROR}
226
- >
227
- <Trans
228
- t={t}
229
- i18nKey="pleaseSelectAtLeastFrom"
230
- values={{ min: 1, type: "item", from: "those categories" }}
231
- />
232
- </div>
233
- )}
234
- <div className="iframe-event__footer">
235
- <EventNavigationFooter
236
- isBuyNowDisabled={isBuyNowDisabled}
237
- amount={numberOfSteps}
238
- activeElement={nextStep}
239
- onPrevClick={onPrevClick}
240
- onNextClick={onNextClick}
241
- onPrevStep={onPrevStep}
242
- />
243
- </div>
244
- </>
245
- )}
246
- </div>
247
- </FormProvider>
248
- </Form>
249
- );
250
- }
@@ -1,5 +0,0 @@
1
- export {
2
- EventDetailsForm,
3
- EventDetailsFormProps,
4
- WizardFormProps,
5
- } from "./EventDetailsForm";
@@ -1 +0,0 @@
1
- export { RenderNumberOfPeopleInputComponent } from "./RenderNumberOfPeopleInputComponent";
@@ -1 +0,0 @@
1
- export { NumberOfPeopleInput } from "./NumberOfPeopleInput";
@@ -1,34 +0,0 @@
1
- import React from "react";
2
-
3
- import { ProductCategory } from "../../../../../types";
4
- import { CategoryProduct } from "../category-product";
5
-
6
- interface ProductCategoryViewProps {
7
- productCategories: ProductCategory[];
8
- }
9
-
10
- export function ProductCategoryView({
11
- productCategories,
12
- }: ProductCategoryViewProps) {
13
- return (
14
- <>
15
- {productCategories.length !== 0 &&
16
- productCategories.map((category) => {
17
- return (
18
- <div key={category.id} className="iframe-event__category">
19
- <h4 className="iframe-event__name">{category.name}</h4>
20
- {category.products.map((product) => {
21
- return (
22
- <CategoryProduct
23
- key={product.id}
24
- product={product}
25
- category={category}
26
- />
27
- );
28
- })}
29
- </div>
30
- );
31
- })}
32
- </>
33
- );
34
- }
@@ -1 +0,0 @@
1
- export { ProductCategoryView } from "./ProductCategoryView";
@@ -1 +0,0 @@
1
- export { EventDetails } from "./EventDetails";
@@ -1 +0,0 @@
1
- export * from "./routes";
@@ -1,6 +0,0 @@
1
- const STEP_PATH_PREFIX = "step_";
2
-
3
- export const routesByStepsCount = (count: number) =>
4
- Array.from({ length: count }, (_v, i) => i).map(
5
- (stepIndex: number) => `/${STEP_PATH_PREFIX}${stepIndex}`
6
- );