@licklist/design 0.44.528 → 0.44.529
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/order-process/components/CalendarStepsForm/CalendarStepsForm.d.ts.map +1 -1
- package/dist/iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.js +1 -1
- package/dist/iframe/order-process/components/utils/useCategoryVerification.d.ts +1 -1
- package/dist/iframe/order-process/components/utils/useCategoryVerification.d.ts.map +1 -1
- package/dist/iframe/order-process/components/utils/useCategoryVerification.js +1 -1
- package/dist/iframe/order-process/constants.d.ts +1 -0
- package/dist/iframe/order-process/constants.d.ts.map +1 -1
- package/dist/iframe/order-process/constants.js +1 -1
- package/package.json +1 -1
- package/src/iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.tsx +13 -6
- package/src/iframe/order-process/components/utils/useCategoryVerification.ts +3 -2
- package/src/iframe/order-process/constants.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarStepsForm.d.ts","sourceRoot":"","sources":["../../../../../src/iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAUf,OAAO,EAAE,IAAI,EAAE,MAAM,uDAAuD,CAAC;AAG7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,qDAAqD,CAAC;AAc/E,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,QAAQ,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAChD,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IACrD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IACtD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sBAAsB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB,EAAE,IAAI,CAAC;IAC3B,eAAe,CAAC,EAAE,wBAAwB,EAAE,CAAC;CAC9C;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,aAAa,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC1C,CAAC;AAEF,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"CalendarStepsForm.d.ts","sourceRoot":"","sources":["../../../../../src/iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAUf,OAAO,EAAE,IAAI,EAAE,MAAM,uDAAuD,CAAC;AAG7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,qDAAqD,CAAC;AAc/E,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,QAAQ,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAChD,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IACrD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IACtD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sBAAsB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB,EAAE,IAAI,CAAC;IAC3B,eAAe,CAAC,EAAE,wBAAwB,EAAE,CAAC;CAC9C;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,aAAa,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC1C,CAAC;AAEF,eAAO,MAAM,iBAAiB,6FA4T7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("tslib"),r=require("react"),n=(e=r)&&"object"==typeof e&&"default"in e?e.default:e,o=require("react-i18next"),u=require("react-bootstrap"),i=require("react-hook-form"),a=require("lodash"),s=require("@licklist/plugins/dist/hooks/Value/usePreviousValue"),l=require("@licklist/plugins/dist/utils/ScrollUtils"),c=require("@licklist/plugins/dist/utils/FormValues"),d=require("../../../event/event-venue-map/IframeEventVenueMap.js"),f=require("../../constants.js"),m=require("./components/Category.js"),p=require("../ErrorModal/ErrorModal.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("tslib"),r=require("react"),n=(e=r)&&"object"==typeof e&&"default"in e?e.default:e,o=require("react-i18next"),u=require("react-bootstrap"),i=require("react-hook-form"),a=require("lodash"),s=require("@licklist/plugins/dist/hooks/Value/usePreviousValue"),l=require("@licklist/plugins/dist/utils/ScrollUtils"),c=require("@licklist/plugins/dist/utils/FormValues"),d=require("../../../event/event-venue-map/IframeEventVenueMap.js"),f=require("../../constants.js"),m=require("./components/Category.js"),p=require("../ErrorModal/ErrorModal.js"),v=require("../../../page/components/PageBody/PageBody.js"),g=require("../../../../calendar/components/CalendarSelect/CalendarSelect.js"),E=require("../utils/useCategoryVerification.js"),_=r.forwardRef((function(e,_){var S=e.step,C=e.isLastMenuStep,y=e.setFormValues,P=e.defaultValues,h=e.onSubmit,M=e.setFormErrors,q=e.id,V=void 0===q?f.STEP_FORM_ID:q,F=e.activeVenueMapId,b=e.title,k=e.menuStepWithVenueMap,j=e.onActiveVenueMapChange,I=e.soldOutProducts,O=i.useForm({defaultValues:P}),A=r.useRef(null),B=E.useCategoryVerification(),N=O.control,R=O.formState.errors,T=O.formState,x=O.getValues,D=O.reset,K=O.setError,L=O.clearErrors,U=i.useWatch({control:N}),W=s.usePreviousValue(R),w=o.useTranslation("Design").t,H=t.__read(r.useState(""),2),z=H[0],G=H[1],J=t.__read(r.useState(F),2),Q=J[0],X=J[1],Y=t.__read(r.useState(void 0),2),Z=Y[0],$=Y[1],ee=t.__read(r.useState([]),2),te=ee[0],re=ee[1];r.useImperativeHandle(_,(function(){return{getFormValues:function(){return x()}}}));var ne=function(){var e;null===(e=A.current)||void 0===e||e.setActiveElementKey(void 0)},oe=r.useMemo((function(){var e;return null===(e=null==k?void 0:k.venueMapSet)||void 0===e?void 0:e.venueMaps}),[k]),ue=r.useMemo((function(){return oe&&k?oe.find((function(e){return String(e.id)===String(Q)})):null}),[oe,Q,k]),ie=r.useMemo((function(){if(!oe||!oe.length||!k)return[];var e=k.pointProducts.map((function(e){return e.pointId}));return oe.filter((function(t){var r=t.points;return r.length&&r.some((function(t){var r=t.id;return e.includes(r)}))})).map((function(e){return{label:e.name,value:e.id}}))}),[oe,k]),ae=r.useMemo((function(){return ue?ue.points.filter((function(e){return Boolean(k.pointProducts.find((function(t){return t.pointId===e.id})))})):[]}),[k,ue]),se=r.useCallback((function(e){var r;return S&&(null===(r=null==S?void 0:S.productCategories)||void 0===r?void 0:r.length)?null==S?void 0:S.productCategories.reduce((function(r,n){var o=n.products.filter((function(t){return e.includes(String(t.id))}));return o.length?t.__spreadArray(t.__spreadArray([],t.__read(r),!1),t.__read(o.map((function(e){return e.uuid}))),!1):r}),[]):[]}),[S]),le=r.useCallback((function(e){X(e),j&&j(e)}),[j]),ce=r.useMemo((function(){return se(Object.keys(U).filter((function(e){var t,r;return Boolean(null===(t=U[e])||void 0===t?void 0:t.id)&&(null===(r=U[e])||void 0===r?void 0:r.quantity)>=1})).map((function(e){return String(e)})))}),[U,se,R]),de=r.useMemo((function(){return Object.keys(R).length?se(Object.keys(R).map((function(e){return String(e)}))):[]}),[R,se,T]);return r.useEffect((function(){re(S.productCategories&&S.productCategories.length?S.productCategories.reduce((function(e,r){return t.__spreadArray(t.__spreadArray([],t.__read(e),!1),t.__read(r.products||[]),!1)}),[]):[])}),[S]),r.useEffect((function(){oe.length&&!Q&&X(String(oe[0].id))}),[oe,Q]),r.useEffect((function(){y(U),R&&setTimeout(L,0)}),[U]),r.useEffect((function(){c.isFormValuesEmpty(U)||G("")}),[U]),r.useEffect((function(){D(P)}),[P]),r.useEffect((function(){!a.isEqual(R,W)&&M&&M(R)}),[R,W,M]),r.useEffect((function(){Q!==F&&X(F)}),[F,Q]),r.useEffect((function(){$(void 0),ne()}),[Q,$]),n.createElement(n.Fragment,null,n.createElement(v.PageBody.LeftBlock,{title:b,component:ie.length>1&&n.createElement(g.CalendarSelect,{value:F,onChange:le,options:ie}),childrenClassName:"bordered"},n.createElement(p.ErrorModal,{isOpen:Boolean(z),messageKey:z,onClose:function(){return G("")}}),n.createElement(u.Form,{onSubmit:O.handleSubmit((function(e){if(C&&c.isFormValuesEmpty(e))G(w("pleaseSelectAtLeastFrom",{min:1,type:"item",from:"those categories"}));else{var t=B(e,S.productCategories,C);if(t){var r=t.id?"category_".concat(t.id):f.MIN_SPEND_ERROR;return G(t.message),void K(r,{message:t.message})}h(e)}}),(function(e){l.scrollToError(c.getFirstErrorKey(e)),G(w("pleaseCheckSelectedProducts"))})),id:V,className:"category-steps-form"},n.createElement(i.FormProvider,t.__assign({},O),n.createElement("div",{className:"position-relative"},ue&&n.createElement(n.Fragment,null,n.createElement(d.IframeEventVenueMap,{url:ue.image.url,usedInIframe:!0,onPointClick:$,products:te,points:ae,pointProducts:k.pointProducts,ref:A,choosedProductUuids:ce,errorOnChoosedProductUuids:de,soldOutProducts:I}),n.createElement(m.Category,{productCategories:null==S?void 0:S.productCategories,activePointId:Z,pointProducts:k.pointProducts,onCloseModal:ne,soldOutProducts:I})))))))}));_.displayName="CalendarStepsForm",exports.CalendarStepsForm=_;
|
|
@@ -4,6 +4,6 @@ interface CategoryError {
|
|
|
4
4
|
message: string;
|
|
5
5
|
id?: number;
|
|
6
6
|
}
|
|
7
|
-
export declare const useCategoryVerification: () => (values: Record<Order["id"], Order>, productCategories?: ProductCategory[]) => CategoryError | void;
|
|
7
|
+
export declare const useCategoryVerification: () => (values: Record<Order["id"], Order>, productCategories?: ProductCategory[], isLastPage?: boolean) => CategoryError | void;
|
|
8
8
|
export {};
|
|
9
9
|
//# sourceMappingURL=useCategoryVerification.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCategoryVerification.d.ts","sourceRoot":"","sources":["../../../../../src/iframe/order-process/components/utils/useCategoryVerification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kEAAkE,CAAC;AAInG,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAElC,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAGD,eAAO,MAAM,uBAAuB,iBAIxB,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,sBACd,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"useCategoryVerification.d.ts","sourceRoot":"","sources":["../../../../../src/iframe/order-process/components/utils/useCategoryVerification.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kEAAkE,CAAC;AAInG,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAElC,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAGD,eAAO,MAAM,uBAAuB,iBAIxB,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,sBACd,eAAe,EAAE,eACxB,OAAO,KACnB,aAAa,GAAG,IA+DpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@licklist/core/dist/Config"),r=require("react-i18next"),n=require("react-intl");exports.useCategoryVerification=function(){var t=r.useTranslation("Validation").t,i=n.useIntl().formatNumber;return function(r,n){var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@licklist/core/dist/Config"),r=require("react-i18next"),n=require("react-intl");exports.useCategoryVerification=function(){var t=r.useTranslation("Validation").t,i=n.useIntl().formatNumber;return function(r,n,u){var a,o=Object.values(r).filter((function(e){return(null==e?void 0:e.quantity)>0})),c=n.reduce((function(e,r){var n=r.products.filter((function(e){return o.map((function(e){return e.id})).includes(null==e?void 0:e.id)}));return e+((null==n?void 0:n.reduce((function(e,r){return e+((null==r?void 0:r.minSpend)||0)}),0))||0)}),0),d=o.reduce((function(e,r){return e+r.price*r.quantity}),0);if(n.forEach((function(e){var r=e.minSubItems,n=e.maxSubItems,i=e.id,u=e.name;if(r||n){var c=o.filter((function(e){return(null==e?void 0:e.productsCategoryId)===i})).length;if(r&&c<r){var d=t("Validation:fieldMinNumber",{min:r,attribute:"number of products in the ".concat(u," category")});a={id:i,message:d}}else if(n&&c>n){d=t("Validation:fieldMaxNumber",{max:n,attribute:"number of products in the ".concat(u," category")});a={id:i,message:d}}}})),d<c&&!a&&u){var l=t("Design:minimumSpendSumValidation",{minSpend:i(c,{style:"currency",currency:e.Currency.GBP})});a={message:l}}return a}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/iframe/order-process/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/iframe/order-process/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,cAAc,CAAC;AACxC,eAAO,MAAM,eAAe,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.STEP_FORM_ID="STEP_FORM";
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.MIN_SPEND_ERROR="MIN_SPEND_ERROR",exports.STEP_FORM_ID="STEP_FORM";
|
package/package.json
CHANGED
|
@@ -22,7 +22,7 @@ import { Product } from "@licklist/core/dist/DataMapper/Product/ProductDataMappe
|
|
|
22
22
|
import { QuantityCheckProductInfo } from "@licklist/plugins/dist/types/Api/verifyStock";
|
|
23
23
|
import { MenuStep } from "@licklist/plugins/dist/types/context/sale/menuSteps";
|
|
24
24
|
import { Category } from "./components/Category";
|
|
25
|
-
import { STEP_FORM_ID } from "../../constants";
|
|
25
|
+
import { MIN_SPEND_ERROR, STEP_FORM_ID } from "../../constants";
|
|
26
26
|
import { ErrorModal } from "../ErrorModal/ErrorModal";
|
|
27
27
|
import { PageBody } from "../../../page/components/PageBody";
|
|
28
28
|
import {
|
|
@@ -117,12 +117,19 @@ export const CalendarStepsForm = forwardRef<
|
|
|
117
117
|
);
|
|
118
118
|
return;
|
|
119
119
|
}
|
|
120
|
-
const
|
|
120
|
+
const orderError = verifyCategoryItems(
|
|
121
|
+
values,
|
|
122
|
+
step.productCategories,
|
|
123
|
+
isLastMenuStep
|
|
124
|
+
);
|
|
121
125
|
|
|
122
|
-
if (
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
+
if (orderError) {
|
|
127
|
+
const categoryId = orderError.id
|
|
128
|
+
? `category_${orderError.id}`
|
|
129
|
+
: MIN_SPEND_ERROR;
|
|
130
|
+
setStepFormError(orderError.message);
|
|
131
|
+
setError(categoryId as never, {
|
|
132
|
+
message: orderError.message,
|
|
126
133
|
});
|
|
127
134
|
return;
|
|
128
135
|
}
|
|
@@ -15,7 +15,8 @@ export const useCategoryVerification = () => {
|
|
|
15
15
|
const { formatNumber } = useIntl();
|
|
16
16
|
return (
|
|
17
17
|
values: Record<Order["id"], Order>,
|
|
18
|
-
productCategories?: ProductCategory[]
|
|
18
|
+
productCategories?: ProductCategory[],
|
|
19
|
+
isLastPage?: boolean
|
|
19
20
|
): CategoryError | void => {
|
|
20
21
|
let errorMessage: { id?: number; message: string } | void;
|
|
21
22
|
const productArray = Object.values(values).filter(
|
|
@@ -67,7 +68,7 @@ export const useCategoryVerification = () => {
|
|
|
67
68
|
}
|
|
68
69
|
});
|
|
69
70
|
|
|
70
|
-
if (totalPrice < sumOfMinSpends && !errorMessage) {
|
|
71
|
+
if (totalPrice < sumOfMinSpends && !errorMessage && isLastPage) {
|
|
71
72
|
const message = t("Design:minimumSpendSumValidation", {
|
|
72
73
|
minSpend: formatNumber(sumOfMinSpends, {
|
|
73
74
|
style: "currency",
|