@licklist/design 0.44.485-dev.39 → 0.44.485-dev.40
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/Timer/utils/index.d.ts +1 -1
- package/dist/iframe/order-process/components/Timer/utils/index.d.ts.map +1 -1
- package/dist/iframe/order-process/components/Timer/utils/index.js +1 -1
- package/dist/iframe/payment/payment-page/PaymentTimer.d.ts +1 -0
- package/dist/iframe/payment/payment-page/PaymentTimer.d.ts.map +1 -1
- package/dist/iframe/payment/payment-page/PaymentTimer.js +1 -1
- package/dist/sales/manual-booking/create-user/CreateUser.js +1 -1
- package/package.json +1 -1
- package/src/iframe/order-process/OrderProcess.stories.tsx +2 -2
- package/src/iframe/order-process/components/Timer/Timer.stories.tsx +1 -1
- package/src/iframe/order-process/components/Timer/utils/index.ts +4 -4
- package/src/iframe/payment/payment-page/PaymentTimer.tsx +31 -6
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const fancyTimeFormat: (
|
|
1
|
+
export declare const fancyTimeFormat: (miliseconds: number) => string;
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/iframe/order-process/components/Timer/utils/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/iframe/order-process/components/Timer/utils/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,gBAAiB,MAAM,WASlD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.fancyTimeFormat=function(
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.fancyTimeFormat=function(e){var t=new Date(e),c=t.getMinutes(),n=t.getSeconds(),o="";return o+="".concat(c,":").concat(n<10?"0":""),o+="".concat(n)};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaymentTimer.d.ts","sourceRoot":"","sources":["../../../../src/iframe/payment/payment-page/PaymentTimer.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"PaymentTimer.d.ts","sourceRoot":"","sources":["../../../../src/iframe/payment/payment-page/PaymentTimer.tsx"],"names":[],"mappings":";AAMA,eAAO,MAAM,wBAAwB,SAAS,CAAC;AAE/C,eAAO,MAAM,YAAY,mBAkCxB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,r=require("react"),o=(e=r)&&"object"==typeof e&&"default"in e?e.default:e;require("../../order-process/components/NavigationFooter/NavigationFooter.js");var t=require("@licklist/plugins/dist/context/payment/PaymentSessionContext");require("../../order-process/components/BookingSummary/BookingSummary.js"),require("../../order-process/components/NavigationSteps/NavigationSteps.js"),require("../../order-process/components/StepsForm/StepsForm.js");var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,r=require("react"),o=(e=r)&&"object"==typeof e&&"default"in e?e.default:e;require("../../order-process/components/NavigationFooter/NavigationFooter.js");var t=require("@licklist/plugins/dist/context/payment/PaymentSessionContext"),s=require("@licklist/plugins/dist");require("../../order-process/components/BookingSummary/BookingSummary.js"),require("../../order-process/components/NavigationSteps/NavigationSteps.js"),require("../../order-process/components/StepsForm/StepsForm.js");var i=require("../../order-process/components/Timer/Timer.js");require("../../order-process/components/PaymentCard/PaymentCard.js"),require("../../order-process/components/BookingSummaryFooter/BookingSummaryFooter.js"),require("../../order-process/components/CalendarStepsForm/CalendarStepsForm.js");var n=6e5;exports.PAYMENT_TIMER_TOTAL_TIME=n,exports.PaymentTimer=function(){var e=s.useTimer({timerTime:n}),m=e.timer,a=e.startTimer,u=e.isTimerStarted,c=e.resetTimer,p=r.useContext(t.PaymentSessionContext),d=p.setIsPaymentSessionExpired,T=p.isResetTimer;return r.useEffect((function(){T&&c()}),[T]),r.useEffect((function(){m>1e3||(d(!0),c())}),[m]),r.useLayoutEffect((function(){u||a()}),[]),o.createElement(i.Timer,{timer:m})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("tslib"),a=require("react"),i=e(a),r=require("react-i18next"),l=e(require("@licklist/plugins/dist/context/app/hooks/useNotification")),n=require("react-bootstrap"),s=require("../../../static/Icon.js"),o=require("react-hook-form"),d=e(require("clsx")),u=require("../../../static/manual-date-picker/utils/index.js"),m=require("../../../static/manual-date-picker/ManualDatePicker.js");require("../../../static/index.js");var c=require("../../../static/manual-date-picker/hooks/useManualDatePicker.js"),
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("tslib"),a=require("react"),i=e(a),r=require("react-i18next"),l=e(require("@licklist/plugins/dist/context/app/hooks/useNotification")),n=require("react-bootstrap"),s=require("../../../static/Icon.js"),o=require("react-hook-form"),d=e(require("clsx")),u=require("../../../static/manual-date-picker/utils/index.js"),m=require("../../../static/manual-date-picker/ManualDatePicker.js");require("../../../static/index.js");var c=require("@licklist/plugins/dist"),v=require("../../../static/manual-date-picker/hooks/useManualDatePicker.js"),p=e(require("@licklist/plugins/dist/validation/Rules/lettersRule")),h=require("@licklist/core/dist/Config/DefaultUser");exports.CreateUser=function(e){var f,b=e.goToSearchUsers,N=e.providerId,g=r.useTranslation(["Sale","Design","App","Validation"]).t,E=l(),_=c.useDashboardUserApi(N).create,k=o.useFormContext(),y=k.formState,D=y.errors,F=y.isSubmitted,S=k.register,q=k.setValue,x=k.watch,C=k.getValues,I=x("birthdate"),V=x("firstName"),A=t.__read(v.useManualDatePicker({isRequired:!1,isSubmitted:F,fieldName:"birthdate",value:I,fieldErrors:c.HookFormService.getErrors("birthdate",D)}),2),L=A[0],R=A[1],j=R.isChoosedDateValid,U=R.fieldErrors,M=L.day,T=L.year,w=L.month;a.useEffect((function(){M&&w&&T&&j()&&q("birthdate",u.dateToSqlDate(M,w,T),{shouldValidate:!0})}),[M,w,T]);return i.createElement(i.Fragment,null,i.createElement(n.Button,{as:"button",type:"button",onClick:b,variant:"primary",className:"mb-4 mt-4 align-items-center d-flex"},g("Design:search"),i.createElement(s.default,{type:"search",height:"1.4rem",width:"1.4rem",className:"ml-3"})),i.createElement("div",{className:"input-label"},g("Design:firstName"),i.createElement("span",{className:"text-danger"},"*")),i.createElement(n.Form.Control,t.__assign({type:"text",isInvalid:!!(null==D?void 0:D.firstName)},S("firstName",{pattern:p,maxLength:255,required:!0}))),i.createElement(n.Form.Control.Feedback,{type:"invalid"},c.HookFormService.hasError(null==D?void 0:D.firstName,"required")&&g("Validation:fieldRequired",{attribute:g("Design:firstName")}),c.HookFormService.hasError(null==D?void 0:D.firstName,"pattern")&&g("Sale:fieldIsNotValid",{attribute:g("Design:firstName")})),i.createElement("div",{className:"input-label"},g("Design:lastName")),i.createElement(n.Form.Control,t.__assign({type:"text",isInvalid:!!(null==D?void 0:D.lastName)},S("lastName",{pattern:p,maxLength:255}))),i.createElement(n.Form.Control.Feedback,{type:"invalid"},(null==D?void 0:D.lastName)&&g("Sale:fieldIsNotValid",{attribute:g("Design:lastName")})),i.createElement("div",{className:"input-label"},g("Design:email")),i.createElement(n.Form.Control,t.__assign({type:"text",isInvalid:c.HookFormService.isInvalid("email",D)},S("email",{pattern:c.emailRule,maxLength:255}))),i.createElement(n.Form.Control.Feedback,{type:"invalid"},(null==D?void 0:D.email)&&g("Sale:fieldIsNotValid",{attribute:g("Design:email")})),i.createElement("div",{className:"input-label"},g("Design:phone")),i.createElement(n.Form.Control,t.__assign({type:"number"},S("phone",{pattern:c.phoneRule,maxLength:255}),{isInvalid:!!(null==D?void 0:D.phone)})),i.createElement(n.Form.Control.Feedback,{type:"invalid"},(null==D?void 0:D.phone)&&g("Sale:fieldIsNotValid",{attribute:"phone number"})),i.createElement("div",{className:"input-label"},g("Design:dayOfBirthShort")),i.createElement(n.Form.Control,t.__assign({type:"hidden"},S("birthdate",{validate:function(e){return!e||(!!c.checkIsValidBirthday(e)||"".concat(g("Sale:fieldIsNotValid",{attribute:g("App:birthday")})))}}),{isInvalid:!!D.birthdate,className:d("datetime-form-picker",I&&"date-input-with-value")})),i.createElement("div",{className:"d-flex"},i.createElement(m.ManualDatePicker,t.__assign({},L,{isRequred:!1}))),i.createElement(n.Form.Control.Feedback,{type:"invalid"},(null===(f=null==D?void 0:D.birthdate)||void 0===f?void 0:f.message)||U()),i.createElement(n.Button,{as:"button",type:"button",onClick:function(){return t.__awaiter(void 0,void 0,void 0,(function(){var e,a,i,r,l,n,s;return t.__generator(this,(function(o){switch(o.label){case 0:return e=C(),[4,_.execute({first_name:e.firstName,last_name:e.lastName,email:e.email,user_detail:{phone:e.phone,birthday:e.birthdate}})];case 1:return(a=o.sent())?(i={userId:String(a.id),firstName:a.firstName,lastName:a.lastName===h.DEFAULT_USER_LAST_NAME?null:a.lastName,email:a.email===h.DEFAULT_USER_EMAIL?null:a.email,phone:(null==a?void 0:a.userDetail)&&(null===(r=null==a?void 0:a.userDetail)||void 0===r?void 0:r.phone)?String(null===(l=null==a?void 0:a.userDetail)||void 0===l?void 0:l.phone):void 0,birthdate:(null==a?void 0:a.userDetail)&&(null===(n=a.userDetail)||void 0===n?void 0:n.birthday)?null===(s=a.userDetail)||void 0===s?void 0:s.birthday:void 0},Object.entries(i).forEach((function(e){var a=t.__read(e,2),i=a[0],r=a[1];q(i,r)})),E.success({title:g("App:success"),message:g("Notification:customerAddedSuccessfully")}),[2]):[2]}}))}))},variant:"primary",className:"mb-4",disabled:!V||(null==D?void 0:D.firstName)||(null==D?void 0:D.lastName)||(null==D?void 0:D.email)||(null==D?void 0:D.phone)||(null==D?void 0:D.birthday)||_.isLoading},g("Sale:addCustomer")))};
|
package/package.json
CHANGED
|
@@ -198,14 +198,14 @@ export default {
|
|
|
198
198
|
} as Meta;
|
|
199
199
|
|
|
200
200
|
const TimerWrapper = () => {
|
|
201
|
-
const [timer, setTimer] = useState(
|
|
201
|
+
const [timer, setTimer] = useState(120000);
|
|
202
202
|
const updateTimerState = () => {
|
|
203
203
|
setTimer((prevValue) => {
|
|
204
204
|
if (prevValue <= 0) {
|
|
205
205
|
return 0;
|
|
206
206
|
}
|
|
207
207
|
|
|
208
|
-
const nexValue = prevValue -
|
|
208
|
+
const nexValue = prevValue - 1000;
|
|
209
209
|
|
|
210
210
|
return nexValue;
|
|
211
211
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export const fancyTimeFormat = (
|
|
2
|
-
const
|
|
3
|
-
const
|
|
4
|
-
|
|
1
|
+
export const fancyTimeFormat = (miliseconds: number) => {
|
|
2
|
+
const date = new Date(miliseconds);
|
|
3
|
+
const mins = date.getMinutes();
|
|
4
|
+
const secs = date.getSeconds();
|
|
5
5
|
let timerString = "";
|
|
6
6
|
|
|
7
7
|
timerString += `${mins}:${secs < 10 ? "0" : ""}`;
|
|
@@ -1,16 +1,41 @@
|
|
|
1
|
-
import React, { useContext, useLayoutEffect } from "react";
|
|
1
|
+
import React, { useContext, useEffect, useLayoutEffect } from "react";
|
|
2
2
|
import { PaymentSessionContext } from "@licklist/plugins/dist/context/payment/PaymentSessionContext";
|
|
3
|
+
import { useTimer } from "@licklist/plugins/dist";
|
|
3
4
|
import { Timer } from "../../order-process";
|
|
4
5
|
|
|
6
|
+
// 10 minutes in ms
|
|
7
|
+
export const PAYMENT_TIMER_TOTAL_TIME = 600000;
|
|
8
|
+
|
|
5
9
|
export const PaymentTimer = () => {
|
|
6
|
-
const { timer,
|
|
7
|
-
|
|
10
|
+
const { timer, startTimer, isTimerStarted, resetTimer } = useTimer({
|
|
11
|
+
timerTime: PAYMENT_TIMER_TOTAL_TIME,
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
const { setIsPaymentSessionExpired, isResetTimer } = useContext(
|
|
15
|
+
PaymentSessionContext
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
if (!isResetTimer) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
resetTimer();
|
|
23
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
24
|
+
}, [isResetTimer]);
|
|
25
|
+
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
// Sometimes we can get not round time in ms
|
|
28
|
+
if (timer > 1000) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
setIsPaymentSessionExpired(true);
|
|
32
|
+
resetTimer();
|
|
33
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
34
|
+
}, [timer]);
|
|
8
35
|
|
|
9
36
|
useLayoutEffect(() => {
|
|
10
|
-
setTimer(600);
|
|
11
37
|
if (isTimerStarted) return;
|
|
12
|
-
|
|
13
|
-
startPaymentSessionTimer();
|
|
38
|
+
startTimer();
|
|
14
39
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
15
40
|
}, []);
|
|
16
41
|
|