@pinerohit11/testwidget 0.1.64 → 0.1.65
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/index.js +246 -246
- package/dist/index.mjs +246 -246
- package/package.json +1 -1
package/dist/index.js
CHANGED
@@ -61,7 +61,7 @@ module.exports = __toCommonJS(index_exports);
|
|
61
61
|
|
62
62
|
// src/app/components/RequestPayment/RequestPayment.tsx
|
63
63
|
var import_bootstrap_bundle_min = require("bootstrap/dist/js/bootstrap.bundle.min.js");
|
64
|
-
var
|
64
|
+
var import_react6 = __toESM(require("react"));
|
65
65
|
|
66
66
|
// src/app/components/Loader/Loader.tsx
|
67
67
|
var import_react2 = __toESM(require("react"));
|
@@ -478,254 +478,11 @@ var CustomModal2_default = CustomModal2;
|
|
478
478
|
var import_axios = __toESM(require("axios"));
|
479
479
|
var import_react_number_format = require("react-number-format");
|
480
480
|
var import_styled_components = __toESM(require("styled-components"));
|
481
|
-
var Label = import_styled_components.default.label`
|
482
|
-
color: #727272;
|
483
|
-
font-family: Inter;
|
484
|
-
font-size: 12px;
|
485
|
-
font-style: normal;
|
486
|
-
font-weight: 500;
|
487
|
-
margin-bottom: 6px !important;
|
488
|
-
text-align: start !important;
|
489
|
-
width: 100% !important;
|
490
|
-
margin-bottom: 6px !important;
|
491
|
-
text-transform: uppercase;
|
492
|
-
`;
|
493
|
-
function RequestPayment(props) {
|
494
|
-
const fractalpayClientKey = props.fractalpayClientKey;
|
495
|
-
const [show, setShow] = (0, import_react5.useState)(false);
|
496
|
-
const [loading, setLoading] = (0, import_react5.useState)(false);
|
497
|
-
const [errors, setErrors] = (0, import_react5.useState)({});
|
498
|
-
const [phone, setPhone] = (0, import_react5.useState)(null);
|
499
|
-
const [requestDetails, setRequestDetails] = (0, import_react5.useState)({
|
500
|
-
email: "",
|
501
|
-
phone_number: "",
|
502
|
-
order_id: "",
|
503
|
-
name: "",
|
504
|
-
fractalpayPublicKey: fractalpayClientKey
|
505
|
-
});
|
506
|
-
const [amount, setAmount] = (0, import_react5.useState)("");
|
507
|
-
const [showConfirmationModal, setShowConfirmationModal] = (0, import_react5.useState)(false);
|
508
|
-
const [apiResponse, setApiResponse] = (0, import_react5.useState)(null);
|
509
|
-
const phoneNumberRegex = (value) => /^\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}$/.test(value);
|
510
|
-
const amoutRegex = /[+-]?([0-9]*[.])?[0-9]+/;
|
511
|
-
const isValidEmail = (value) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value);
|
512
|
-
const isAlpha = (value) => /^[A-Za-z\s]*$/.test(value);
|
513
|
-
const handleClose = () => {
|
514
|
-
setShow(false);
|
515
|
-
setErrors({});
|
516
|
-
};
|
517
|
-
const handleShow = () => setShow(true);
|
518
|
-
const handleCloseConfirmationModal = () => {
|
519
|
-
console.log(apiResponse, "apiresponse");
|
520
|
-
handleSubmit(apiResponse);
|
521
|
-
setShowConfirmationModal(false);
|
522
|
-
};
|
523
|
-
function emptyFields() {
|
524
|
-
setRequestDetails({
|
525
|
-
email: "",
|
526
|
-
phone_number: "",
|
527
|
-
order_id: "",
|
528
|
-
name: "",
|
529
|
-
fractalpayPublicKey: fractalpayClientKey
|
530
|
-
});
|
531
|
-
setAmount("");
|
532
|
-
}
|
533
|
-
function handleSubmit(event) {
|
534
|
-
let message = {
|
535
|
-
type: "preview.compiledcheck",
|
536
|
-
other: __spreadProps(__spreadValues({}, event), { status: true })
|
537
|
-
};
|
538
|
-
window.parent.postMessage(message, "*");
|
539
|
-
}
|
540
|
-
const sendRequestPayment = async () => {
|
541
|
-
if (Object.keys(errors).length > 0) {
|
542
|
-
return;
|
543
|
-
}
|
544
|
-
setErrors({});
|
545
|
-
if (!(requestDetails == null ? void 0 : requestDetails.email) && phone && !phoneNumberRegex(phone)) {
|
546
|
-
setErrors((prevErrors) => __spreadProps(__spreadValues({}, prevErrors), {
|
547
|
-
phone: ErrorText.phonenumbervalid
|
548
|
-
}));
|
549
|
-
return;
|
550
|
-
}
|
551
|
-
if (!validateForm()) {
|
552
|
-
return;
|
553
|
-
}
|
554
|
-
try {
|
555
|
-
setLoading(true);
|
556
|
-
const formData = {
|
557
|
-
fractalpayPublicKey: fractalpayClientKey,
|
558
|
-
amount,
|
559
|
-
phone_number: phone,
|
560
|
-
order_id: requestDetails.order_id,
|
561
|
-
action: "request",
|
562
|
-
name: requestDetails.name,
|
563
|
-
email: requestDetails.email,
|
564
|
-
customer_id: (props == null ? void 0 : props.customerId) ? props == null ? void 0 : props.customerId : ""
|
565
|
-
};
|
566
|
-
let response = await import_axios.default.post(`${baseUrl}create-widget-order`, formData);
|
567
|
-
if ((response == null ? void 0 : response.status) === 200) {
|
568
|
-
setShowConfirmationModal(true);
|
569
|
-
setShow(false);
|
570
|
-
emptyFields();
|
571
|
-
setApiResponse(response == null ? void 0 : response.data);
|
572
|
-
}
|
573
|
-
setLoading(false);
|
574
|
-
} catch (error) {
|
575
|
-
console.log(error);
|
576
|
-
setLoading(false);
|
577
|
-
}
|
578
|
-
};
|
579
|
-
let favicon_logo = baseUrl + "images/logo-img.png";
|
580
|
-
const handleChange = (e) => {
|
581
|
-
const { value } = e.target;
|
582
|
-
const token = e.target.dataset.token;
|
583
|
-
setRequestDetails(__spreadProps(__spreadValues({}, requestDetails), { [token]: value }));
|
584
|
-
if (token === "name" && !isAlpha(value)) {
|
585
|
-
setErrors((prevErrors) => __spreadProps(__spreadValues({}, prevErrors), {
|
586
|
-
[token]: ErrorText.onlylettersallowed
|
587
|
-
}));
|
588
|
-
return;
|
589
|
-
}
|
590
|
-
let errorobj = errors;
|
591
|
-
if (token === "email" && !phone) {
|
592
|
-
delete errorobj.phone;
|
593
|
-
setErrors(errorobj);
|
594
|
-
}
|
595
|
-
if (value) {
|
596
|
-
delete errorobj[token];
|
597
|
-
setErrors(errorobj);
|
598
|
-
}
|
599
|
-
if (token === "email" && !value) {
|
600
|
-
delete errorobj[token];
|
601
|
-
setErrors(errorobj);
|
602
|
-
}
|
603
|
-
};
|
604
|
-
const handleAmountChange = (data) => {
|
605
|
-
const { value } = data;
|
606
|
-
if (Number(value) > 0) {
|
607
|
-
let errorobj = errors;
|
608
|
-
delete errorobj.amount;
|
609
|
-
setErrors(errorobj);
|
610
|
-
}
|
611
|
-
setAmount(value);
|
612
|
-
};
|
613
|
-
const validateForm = () => {
|
614
|
-
let newErrors = {};
|
615
|
-
if (!amount) newErrors.amount = ErrorText.amountrequired;
|
616
|
-
if (requestDetails.email && !isValidEmail(requestDetails == null ? void 0 : requestDetails.email)) newErrors.email = ErrorText.invalidemail;
|
617
|
-
if (!phone && !(requestDetails == null ? void 0 : requestDetails.email)) newErrors.phone = ErrorText.phoneoremailrequired;
|
618
|
-
if (!phone && !(requestDetails == null ? void 0 : requestDetails.email)) newErrors.email = ErrorText.phoneoremailrequired;
|
619
|
-
if (!phone && requestDetails.email && !isValidEmail(requestDetails == null ? void 0 : requestDetails.email)) newErrors.email = ErrorText.invalidemail;
|
620
|
-
if (props.from === "merchant" && !requestDetails.order_id) newErrors.order_id = ErrorText.orderidrequired;
|
621
|
-
setErrors(newErrors);
|
622
|
-
return Object.keys(newErrors).length === 0;
|
623
|
-
};
|
624
|
-
(0, import_react5.useEffect)(() => {
|
625
|
-
if (props) {
|
626
|
-
setRequestDetails((prev) => __spreadProps(__spreadValues({}, prev), {
|
627
|
-
order_id: props.orderID ? props.orderID : "",
|
628
|
-
name: (props == null ? void 0 : props.name) ? props == null ? void 0 : props.name : "",
|
629
|
-
email: (props == null ? void 0 : props.email) ? props == null ? void 0 : props.email : ""
|
630
|
-
}));
|
631
|
-
setAmount(props.amount ? props.amount : "");
|
632
|
-
setPhone(props.phone ? `${props.phone}` : null);
|
633
|
-
}
|
634
|
-
}, [props]);
|
635
|
-
const handlePhoneChange = (e) => {
|
636
|
-
let value = e == null ? void 0 : e.value;
|
637
|
-
if (value && (value == null ? void 0 : value.length) > 0 && (value == null ? void 0 : value.length) !== 10) {
|
638
|
-
setErrors((prevErrors) => __spreadProps(__spreadValues({}, prevErrors), {
|
639
|
-
phone: ErrorText.phonenumberlength
|
640
|
-
}));
|
641
|
-
setPhone(value);
|
642
|
-
return;
|
643
|
-
} else {
|
644
|
-
setPhone(value);
|
645
|
-
}
|
646
|
-
let errorobj = errors;
|
647
|
-
delete errorobj.phone;
|
648
|
-
if (value && !(requestDetails == null ? void 0 : requestDetails.email)) {
|
649
|
-
delete errorobj.email;
|
650
|
-
}
|
651
|
-
setErrors(errorobj);
|
652
|
-
};
|
653
|
-
function formatAmount(amount2) {
|
654
|
-
return new Intl.NumberFormat("en-US", {
|
655
|
-
style: "currency",
|
656
|
-
currency: "USD",
|
657
|
-
minimumFractionDigits: 2,
|
658
|
-
maximumFractionDigits: 2
|
659
|
-
}).format(Number(amount2));
|
660
|
-
}
|
661
|
-
return /* @__PURE__ */ import_react5.default.createElement(import_react5.default.Fragment, null, /* @__PURE__ */ import_react5.default.createElement(Loader_default, { loading }), /* @__PURE__ */ import_react5.default.createElement(import_react5.default.Fragment, null, /* @__PURE__ */ import_react5.default.createElement("button", { className: "paymentBtn", onClick: handleShow }, "Request Payment"), /* @__PURE__ */ import_react5.default.createElement(
|
662
|
-
CustomModal2_default,
|
663
|
-
{
|
664
|
-
open: show,
|
665
|
-
onClose: () => setShow(false)
|
666
|
-
},
|
667
|
-
/* @__PURE__ */ import_react5.default.createElement("div", { className: "request-payment-amount-detail" }, /* @__PURE__ */ import_react5.default.createElement("p", { className: "request-payment-merchantname" }, "Pay ", props == null ? void 0 : props.webname), /* @__PURE__ */ import_react5.default.createElement("p", { className: "request-payment-amount" }, formatAmount(props == null ? void 0 : props.amount)), (props == null ? void 0 : props.from) === "merchant" && /* @__PURE__ */ import_react5.default.createElement("p", { className: "request-payment-orderid" }, requestDetails == null ? void 0 : requestDetails.order_id), /* @__PURE__ */ import_react5.default.createElement("span", { className: "request-payment-close-popup", onClick: handleClose }, /* @__PURE__ */ import_react5.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 16 16", fill: "none" }, /* @__PURE__ */ import_react5.default.createElement("g", { "clip-path": "url(#clip0_12425_52336)" }, /* @__PURE__ */ import_react5.default.createElement("path", { d: "M9.46585 8.01168L15.6959 1.7814C16.1014 1.37615 16.1014 0.720912 15.6959 0.315659C15.2907 -0.0895946 14.6354 -0.0895946 14.2302 0.315659L7.99991 6.54593L1.76983 0.315659C1.36438 -0.0895946 0.709336 -0.0895946 0.304082 0.315659C-0.101361 0.720912 -0.101361 1.37615 0.304082 1.7814L6.53416 8.01168L0.304082 14.2419C-0.101361 14.6472 -0.101361 15.3024 0.304082 15.7077C0.506045 15.9098 0.771595 16.0114 1.03695 16.0114C1.30232 16.0114 1.56768 15.9098 1.76983 15.7077L7.99991 9.47742L14.2302 15.7077C14.4323 15.9098 14.6977 16.0114 14.9631 16.0114C15.2284 16.0114 15.4938 15.9098 15.6959 15.7077C16.1014 15.3024 16.1014 14.6472 15.6959 14.2419L9.46585 8.01168Z", fill: "#727272" })), /* @__PURE__ */ import_react5.default.createElement("defs", null, /* @__PURE__ */ import_react5.default.createElement("clipPath", { id: "clip0_12425_52336" }, /* @__PURE__ */ import_react5.default.createElement("rect", { width: "16", height: "16", fill: "white" })))))),
|
668
|
-
/* @__PURE__ */ import_react5.default.createElement("form", { className: "request-payment-input-form" }, /* @__PURE__ */ import_react5.default.createElement("div", { className: "request-payment-list-div" }, /* @__PURE__ */ import_react5.default.createElement(Label, { htmlFor: "exampleFormControlInput2", className: "request-payment-input-label" }, "FULL NAME"), /* @__PURE__ */ import_react5.default.createElement(
|
669
|
-
"input",
|
670
|
-
{
|
671
|
-
className: "request-payment-input-box",
|
672
|
-
type: "text",
|
673
|
-
placeholder: "Full Name",
|
674
|
-
"data-token": "name",
|
675
|
-
onChange: handleChange,
|
676
|
-
value: requestDetails == null ? void 0 : requestDetails.name
|
677
|
-
}
|
678
|
-
), errors.name && /* @__PURE__ */ import_react5.default.createElement("small", { className: "request-payment-error-msg" }, errors.name)), /* @__PURE__ */ import_react5.default.createElement("div", { className: "request-payment-list-div" }, /* @__PURE__ */ import_react5.default.createElement(Label, { htmlFor: "requestPhoneNumber", className: "request-payment-input-label" }, "Phone Number"), /* @__PURE__ */ import_react5.default.createElement(
|
679
|
-
import_react_number_format.PatternFormat,
|
680
|
-
{
|
681
|
-
className: "request-payment-input-box",
|
682
|
-
placeholder: "Mobile number",
|
683
|
-
format: "+1 (###) ###-####",
|
684
|
-
value: phone,
|
685
|
-
onValueChange: (e) => {
|
686
|
-
handlePhoneChange(e);
|
687
|
-
}
|
688
|
-
}
|
689
|
-
), errors.phone && /* @__PURE__ */ import_react5.default.createElement("small", { className: "request-payment-error-msg" }, errors.phone)), /* @__PURE__ */ import_react5.default.createElement("div", { className: "request-payment-list-div" }, /* @__PURE__ */ import_react5.default.createElement(Label, { htmlFor: "exampleFormControlInput2", className: "request-payment-input-label" }, "EMAIL"), /* @__PURE__ */ import_react5.default.createElement(
|
690
|
-
"input",
|
691
|
-
{
|
692
|
-
className: "request-payment-input-box",
|
693
|
-
type: "text",
|
694
|
-
placeholder: "Email",
|
695
|
-
onChange: handleChange,
|
696
|
-
"data-token": "email",
|
697
|
-
value: requestDetails == null ? void 0 : requestDetails.email
|
698
|
-
}
|
699
|
-
), errors.email && /* @__PURE__ */ import_react5.default.createElement("small", { className: "request-payment-error-msg" }, errors.email)), /* @__PURE__ */ import_react5.default.createElement(
|
700
|
-
"button",
|
701
|
-
{
|
702
|
-
type: "button",
|
703
|
-
className: "request-payment-submit-button",
|
704
|
-
onClick: sendRequestPayment,
|
705
|
-
disabled: loading
|
706
|
-
},
|
707
|
-
loading ? "Loading..." : "Send Request"
|
708
|
-
), /* @__PURE__ */ import_react5.default.createElement("div", { className: "request-payment-fractal-powerd-by" }, /* @__PURE__ */ import_react5.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "17", height: "16", viewBox: "0 0 17 16", fill: "none" }, /* @__PURE__ */ import_react5.default.createElement("path", { d: "M15.2165 4.11839C15.1973 3.69746 15.1973 3.29567 15.1973 2.89387C15.1973 2.56861 14.9486 2.31988 14.6234 2.31988C12.2317 2.31988 10.4141 1.63109 8.90257 0.157848C8.67298 -0.0526158 8.32858 -0.0526158 8.09898 0.157848C6.58748 1.63109 4.76984 2.31988 2.37821 2.31988C2.05295 2.31988 1.80422 2.56861 1.80422 2.89387C1.80422 3.29567 1.80422 3.69746 1.78508 4.11839C1.70855 8.13632 1.59375 13.6466 8.30945 15.9617L8.50078 16L8.69211 15.9617C15.3887 13.6466 15.293 8.15546 15.2165 4.11839ZM8.04159 9.6861C7.92679 9.78176 7.79286 9.83916 7.63979 9.83916H7.62066C7.46759 9.83916 7.31453 9.76263 7.21887 9.64783L5.43949 7.67713L6.30048 6.91181L7.69719 8.46158L10.7967 5.5151L11.5812 6.35695L8.04159 9.6861Z", fill: "#727272" })), "Secure payments powered by ", /* @__PURE__ */ import_react5.default.createElement("span", null, "Fractal"), /* @__PURE__ */ import_react5.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 18 18", fill: "none" }, /* @__PURE__ */ import_react5.default.createElement("path", { d: "M17.4999 5.49758V7.01156C17.4999 7.05924 17.4595 7.09898 17.411 7.09898H12.3516C12.9169 6.54266 13.4781 5.99032 14.0434 5.434C14.0596 5.4181 14.0838 5.41016 14.104 5.41016H17.411C17.4595 5.41016 17.4999 5.44989 17.4999 5.49758Z", fill: "#61C699" }), /* @__PURE__ */ import_react5.default.createElement("path", { d: "M12.3462 10.9037V9.29836C12.3462 9.25067 12.3866 9.21094 12.435 9.21094H13.8523C13.929 9.21094 13.9694 9.30631 13.9129 9.35796C13.392 9.87455 12.8711 10.3911 12.3462 10.9037Z", fill: "#61C699" }), /* @__PURE__ */ import_react5.default.createElement("path", { d: "M12.4404 9.00523H15.6949C15.7434 9.00523 15.7838 8.96549 15.7838 8.91781V7.40383C15.7838 7.35614 15.7434 7.31641 15.6949 7.31641H12.4404C12.3919 7.31641 12.3516 7.35614 12.3516 7.40383V8.91781C12.3516 8.96549 12.3919 9.00523 12.4404 9.00523Z", fill: "#61C699" }), /* @__PURE__ */ import_react5.default.createElement("path", { d: "M10.1581 0.0120725L11.4906 0.77105C11.531 0.794892 11.5471 0.84655 11.5229 0.890261L8.99114 5.20173C8.78521 4.44275 8.57927 3.68775 8.37334 2.92877C8.36527 2.90493 8.3693 2.88109 8.38142 2.86122L10.0329 0.0438621C10.0612 0.000151419 10.1177 -0.0117697 10.1581 0.0120725Z", fill: "#61C699" }), /* @__PURE__ */ import_react5.default.createElement("path", { d: "M12.3382 7.10006L10.9289 6.29737C10.8886 6.27353 10.8724 6.22187 10.8966 6.17816L11.6033 4.97015C11.6436 4.9026 11.7446 4.91452 11.7648 4.99002C11.9546 5.69734 12.1484 6.40068 12.3382 7.10006Z", fill: "#61C699" }), /* @__PURE__ */ import_react5.default.createElement("path", { d: "M10.7107 6.0771L12.338 3.30345C12.3622 3.26372 12.346 3.20808 12.3057 3.18424L10.9732 2.42526C10.9328 2.40142 10.8763 2.41732 10.852 2.45705L9.22476 5.2307C9.20053 5.27044 9.21669 5.32607 9.25706 5.34991L10.5896 6.10889C10.634 6.13273 10.6865 6.11683 10.7107 6.0771Z", fill: "#61C699" }), /* @__PURE__ */ import_react5.default.createElement("path", { d: "M1.66713 3.51237L2.99963 2.75339C3.04001 2.72955 3.09654 2.74544 3.12077 2.78518L5.65251 7.09665C4.88128 6.89399 4.11408 6.69133 3.34285 6.48867C3.31862 6.4847 3.30247 6.4688 3.29036 6.44893L1.63483 3.63158C1.6106 3.58787 1.62271 3.53621 1.66713 3.51237Z", fill: "#61C699" }), /* @__PURE__ */ import_react5.default.createElement("path", { d: "M8.99793 5.20018L7.58871 5.99889C7.54833 6.02274 7.4918 6.00684 7.46757 5.9671L6.76095 4.76307C6.72057 4.69552 6.78517 4.61605 6.86189 4.63591C7.57256 4.82268 8.28726 5.00944 8.99793 5.20018Z", fill: "#61C699" }), /* @__PURE__ */ import_react5.default.createElement("path", { d: "M7.27986 6.07054L5.6526 3.2969C5.62837 3.25716 5.57588 3.24127 5.53146 3.26511L4.19896 4.02409C4.15858 4.04793 4.14243 4.09959 4.16666 4.1433L5.79392 6.91694C5.81815 6.95668 5.87064 6.97257 5.91506 6.94873L7.24756 6.18975C7.28794 6.16591 7.30409 6.11425 7.27986 6.07054Z", fill: "#61C699" }), /* @__PURE__ */ import_react5.default.createElement("path", { d: "M0.5 12.4998V10.9859C0.5 10.9382 0.540379 10.8984 0.588833 10.8984H5.64829C5.08299 11.4548 4.52172 12.0071 3.95642 12.5634C3.94027 12.5793 3.91604 12.5873 3.89585 12.5873H0.588833C0.540379 12.5873 0.5 12.5475 0.5 12.4998Z", fill: "#61C699" }), /* @__PURE__ */ import_react5.default.createElement("path", { d: "M5.65129 7.09766V8.70303C5.65129 8.75072 5.61091 8.79045 5.56246 8.79045H4.14516C4.06844 8.79045 4.02806 8.69508 4.08459 8.64343C4.60548 8.12685 5.12637 7.61424 5.65129 7.09766Z", fill: "#61C699" }), /* @__PURE__ */ import_react5.default.createElement("path", { d: "M5.55967 8.99609H2.30514C2.25669 8.99609 2.21631 9.03583 2.21631 9.08352V10.5975C2.21631 10.6452 2.25669 10.6849 2.30514 10.6849H5.55967C5.60813 10.6849 5.6485 10.6452 5.6485 10.5975V9.08352C5.6485 9.03583 5.60813 8.99609 5.55967 8.99609Z", fill: "#61C699" }), /* @__PURE__ */ import_react5.default.createElement("path", { d: "M7.82638 17.9865L6.49388 17.2276C6.4535 17.2037 6.43735 17.1521 6.46158 17.1083L8.99333 12.7969C9.19926 13.5559 9.40519 14.3109 9.61112 15.0698C9.6192 15.0937 9.61516 15.1175 9.60305 15.1374L7.95155 17.9547C7.91925 17.9985 7.86676 18.0104 7.82638 17.9865Z", fill: "#61C699" }), /* @__PURE__ */ import_react5.default.createElement("path", { d: "M5.64795 10.8984L7.05717 11.7011C7.09755 11.725 7.1137 11.7766 7.08947 11.8203L6.38284 13.0283C6.34246 13.0959 6.24152 13.084 6.22133 13.0085C6.02751 12.3012 5.83773 11.5978 5.64795 10.8984Z", fill: "#61C699" }), /* @__PURE__ */ import_react5.default.createElement("path", { d: "M7.2739 11.9258L5.64664 14.6994C5.62241 14.7392 5.63856 14.7948 5.67894 14.8187L7.01144 15.5776C7.05182 15.6015 7.10835 15.5856 7.13258 15.5458L8.75984 12.7722C8.78407 12.7325 8.76792 12.6768 8.72754 12.653L7.39504 11.894C7.35062 11.8702 7.29813 11.8861 7.2739 11.9258Z", fill: "#61C699" }), /* @__PURE__ */ import_react5.default.createElement("path", { d: "M16.3199 14.4866L14.9874 15.2456C14.947 15.2694 14.8904 15.2535 14.8662 15.2138L12.3345 10.9023C13.1057 11.105 13.8729 11.3077 14.6441 11.5103C14.6684 11.5143 14.6845 11.5302 14.6966 11.5501L16.3481 14.3674C16.3764 14.4111 16.3643 14.4628 16.3199 14.4866Z", fill: "#61C699" }), /* @__PURE__ */ import_react5.default.createElement("path", { d: "M8.99121 12.7983L10.4004 11.9956C10.4408 11.9717 10.4973 11.9876 10.5216 12.0274L11.2282 13.2354C11.2686 13.3029 11.204 13.3824 11.1272 13.3625C10.4166 13.1758 9.70188 12.989 8.99121 12.7983Z", fill: "#61C699" }), /* @__PURE__ */ import_react5.default.createElement("path", { d: "M10.7077 11.9285L12.3349 14.7021C12.3592 14.7418 12.4117 14.7577 12.4561 14.7339L13.7886 13.9749C13.829 13.9511 13.8451 13.8994 13.8209 13.8557L12.1936 11.0821C12.1694 11.0423 12.1169 11.0264 12.0725 11.0503L10.74 11.8092C10.6996 11.8331 10.6834 11.8847 10.7077 11.9285Z", fill: "#61C699" }))))
|
709
|
-
), /* @__PURE__ */ import_react5.default.createElement(
|
710
|
-
CustomModal2_default,
|
711
|
-
{
|
712
|
-
open: showConfirmationModal,
|
713
|
-
onClose: handleCloseConfirmationModal
|
714
|
-
},
|
715
|
-
/* @__PURE__ */ import_react5.default.createElement("div", { className: "fractal-popup-content", style: { padding: "0px" } }, /* @__PURE__ */ import_react5.default.createElement("div", { className: "request-payment-success-container" }, /* @__PURE__ */ import_react5.default.createElement("span", { className: "request-payment-close-popup", onClick: handleCloseConfirmationModal }, /* @__PURE__ */ import_react5.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 16 16", fill: "none" }, /* @__PURE__ */ import_react5.default.createElement("g", { "clip-path": "url(#clip0_12425_52336)" }, /* @__PURE__ */ import_react5.default.createElement("path", { d: "M9.46585 8.01168L15.6959 1.7814C16.1014 1.37615 16.1014 0.720912 15.6959 0.315659C15.2907 -0.0895946 14.6354 -0.0895946 14.2302 0.315659L7.99991 6.54593L1.76983 0.315659C1.36438 -0.0895946 0.709336 -0.0895946 0.304082 0.315659C-0.101361 0.720912 -0.101361 1.37615 0.304082 1.7814L6.53416 8.01168L0.304082 14.2419C-0.101361 14.6472 -0.101361 15.3024 0.304082 15.7077C0.506045 15.9098 0.771595 16.0114 1.03695 16.0114C1.30232 16.0114 1.56768 15.9098 1.76983 15.7077L7.99991 9.47742L14.2302 15.7077C14.4323 15.9098 14.6977 16.0114 14.9631 16.0114C15.2284 16.0114 15.4938 15.9098 15.6959 15.7077C16.1014 15.3024 16.1014 14.6472 15.6959 14.2419L9.46585 8.01168Z", fill: "#727272" })), /* @__PURE__ */ import_react5.default.createElement("defs", null, /* @__PURE__ */ import_react5.default.createElement("clipPath", { id: "clip0_12425_52336" }, /* @__PURE__ */ import_react5.default.createElement("rect", { width: "16", height: "16", fill: "white" }))))), /* @__PURE__ */ import_react5.default.createElement("div", { className: "request-payment-success-tick-div" }, /* @__PURE__ */ import_react5.default.createElement("div", { className: "request-payment-success-tick" }, /* @__PURE__ */ import_react5.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 16 16", fill: "none" }, /* @__PURE__ */ import_react5.default.createElement("path", { d: "M6.12669 13.9774C5.97396 14.131 5.76558 14.2167 5.54913 14.2167C5.33267 14.2167 5.1243 14.131 4.97157 13.9774L0.359012 9.36408C-0.119671 8.8854 -0.119671 8.10919 0.359012 7.6314L0.936573 7.05369C1.4154 6.57501 2.19072 6.57501 2.6694 7.05369L5.54913 9.93357L13.3306 2.15198C13.8094 1.6733 14.5855 1.6733 15.0634 2.15198L15.641 2.72969C16.1196 3.20837 16.1196 3.98444 15.641 4.46237L6.12669 13.9774Z", fill: "#61C699" })))), /* @__PURE__ */ import_react5.default.createElement("h6", { className: "request-payment-success-text" }, "The request ", /* @__PURE__ */ import_react5.default.createElement("br", null), "was sent"), /* @__PURE__ */ import_react5.default.createElement("h6", { className: "request-payment-success-subtext" }, "Please wait for the customer to pay"), /* @__PURE__ */ import_react5.default.createElement("div", { className: "request-payment-success-btn-div" }, /* @__PURE__ */ import_react5.default.createElement("button", { onClick: handleCloseConfirmationModal, className: "request-payment-success-btn2" }, "Close"))))
|
716
|
-
)));
|
717
|
-
}
|
718
|
-
|
719
|
-
// src/app/components/RequestPayment/RequestPaymentAllInput.tsx
|
720
|
-
var import_react7 = __toESM(require("react"));
|
721
|
-
var import_react_bootstrap = require("react-bootstrap");
|
722
|
-
var import_react_toastify = require("react-toastify");
|
723
|
-
var import_ReactToastify = require("react-toastify/dist/ReactToastify.css");
|
724
481
|
|
725
482
|
// src/app/components/RequestPayment/RequestPaymentstyles.tsx
|
726
|
-
var
|
483
|
+
var import_react5 = __toESM(require("react"));
|
727
484
|
var RequestPaymentstyles = (props) => {
|
728
|
-
return /* @__PURE__ */
|
485
|
+
return /* @__PURE__ */ import_react5.default.createElement("style", null, `
|
729
486
|
body {
|
730
487
|
font-family: 'Inter', sans-serif;
|
731
488
|
}
|
@@ -976,7 +733,250 @@ var RequestPaymentstyles = (props) => {
|
|
976
733
|
};
|
977
734
|
var RequestPaymentstyles_default = RequestPaymentstyles;
|
978
735
|
|
736
|
+
// src/app/components/RequestPayment/RequestPayment.tsx
|
737
|
+
var Label = import_styled_components.default.label`
|
738
|
+
color: #727272;
|
739
|
+
font-family: Inter;
|
740
|
+
font-size: 12px;
|
741
|
+
font-style: normal;
|
742
|
+
font-weight: 500;
|
743
|
+
margin-bottom: 6px !important;
|
744
|
+
text-align: start !important;
|
745
|
+
width: 100% !important;
|
746
|
+
margin-bottom: 6px !important;
|
747
|
+
text-transform: uppercase;
|
748
|
+
`;
|
749
|
+
function RequestPayment(props) {
|
750
|
+
const fractalpayClientKey = props.fractalpayClientKey;
|
751
|
+
const [show, setShow] = (0, import_react6.useState)(false);
|
752
|
+
const [loading, setLoading] = (0, import_react6.useState)(false);
|
753
|
+
const [errors, setErrors] = (0, import_react6.useState)({});
|
754
|
+
const [phone, setPhone] = (0, import_react6.useState)(null);
|
755
|
+
const [requestDetails, setRequestDetails] = (0, import_react6.useState)({
|
756
|
+
email: "",
|
757
|
+
phone_number: "",
|
758
|
+
order_id: "",
|
759
|
+
name: "",
|
760
|
+
fractalpayPublicKey: fractalpayClientKey
|
761
|
+
});
|
762
|
+
const [amount, setAmount] = (0, import_react6.useState)("");
|
763
|
+
const [showConfirmationModal, setShowConfirmationModal] = (0, import_react6.useState)(false);
|
764
|
+
const [apiResponse, setApiResponse] = (0, import_react6.useState)(null);
|
765
|
+
const phoneNumberRegex = (value) => /^\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}$/.test(value);
|
766
|
+
const amoutRegex = /[+-]?([0-9]*[.])?[0-9]+/;
|
767
|
+
const isValidEmail = (value) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value);
|
768
|
+
const isAlpha = (value) => /^[A-Za-z\s]*$/.test(value);
|
769
|
+
const handleClose = () => {
|
770
|
+
setShow(false);
|
771
|
+
setErrors({});
|
772
|
+
};
|
773
|
+
const handleShow = () => setShow(true);
|
774
|
+
const handleCloseConfirmationModal = () => {
|
775
|
+
console.log(apiResponse, "apiresponse");
|
776
|
+
handleSubmit(apiResponse);
|
777
|
+
setShowConfirmationModal(false);
|
778
|
+
};
|
779
|
+
function emptyFields() {
|
780
|
+
setRequestDetails({
|
781
|
+
email: "",
|
782
|
+
phone_number: "",
|
783
|
+
order_id: "",
|
784
|
+
name: "",
|
785
|
+
fractalpayPublicKey: fractalpayClientKey
|
786
|
+
});
|
787
|
+
setAmount("");
|
788
|
+
}
|
789
|
+
function handleSubmit(event) {
|
790
|
+
let message = {
|
791
|
+
type: "preview.compiledcheck",
|
792
|
+
other: __spreadProps(__spreadValues({}, event), { status: true })
|
793
|
+
};
|
794
|
+
window.parent.postMessage(message, "*");
|
795
|
+
}
|
796
|
+
const sendRequestPayment = async () => {
|
797
|
+
if (Object.keys(errors).length > 0) {
|
798
|
+
return;
|
799
|
+
}
|
800
|
+
setErrors({});
|
801
|
+
if (!(requestDetails == null ? void 0 : requestDetails.email) && phone && !phoneNumberRegex(phone)) {
|
802
|
+
setErrors((prevErrors) => __spreadProps(__spreadValues({}, prevErrors), {
|
803
|
+
phone: ErrorText.phonenumbervalid
|
804
|
+
}));
|
805
|
+
return;
|
806
|
+
}
|
807
|
+
if (!validateForm()) {
|
808
|
+
return;
|
809
|
+
}
|
810
|
+
try {
|
811
|
+
setLoading(true);
|
812
|
+
const formData = {
|
813
|
+
fractalpayPublicKey: fractalpayClientKey,
|
814
|
+
amount,
|
815
|
+
phone_number: phone,
|
816
|
+
order_id: requestDetails.order_id,
|
817
|
+
action: "request",
|
818
|
+
name: requestDetails.name,
|
819
|
+
email: requestDetails.email,
|
820
|
+
customer_id: (props == null ? void 0 : props.customerId) ? props == null ? void 0 : props.customerId : ""
|
821
|
+
};
|
822
|
+
let response = await import_axios.default.post(`${baseUrl}create-widget-order`, formData);
|
823
|
+
if ((response == null ? void 0 : response.status) === 200) {
|
824
|
+
setShowConfirmationModal(true);
|
825
|
+
setShow(false);
|
826
|
+
emptyFields();
|
827
|
+
setApiResponse(response == null ? void 0 : response.data);
|
828
|
+
}
|
829
|
+
setLoading(false);
|
830
|
+
} catch (error) {
|
831
|
+
console.log(error);
|
832
|
+
setLoading(false);
|
833
|
+
}
|
834
|
+
};
|
835
|
+
let favicon_logo = baseUrl + "images/logo-img.png";
|
836
|
+
const handleChange = (e) => {
|
837
|
+
const { value } = e.target;
|
838
|
+
const token = e.target.dataset.token;
|
839
|
+
setRequestDetails(__spreadProps(__spreadValues({}, requestDetails), { [token]: value }));
|
840
|
+
if (token === "name" && !isAlpha(value)) {
|
841
|
+
setErrors((prevErrors) => __spreadProps(__spreadValues({}, prevErrors), {
|
842
|
+
[token]: ErrorText.onlylettersallowed
|
843
|
+
}));
|
844
|
+
return;
|
845
|
+
}
|
846
|
+
let errorobj = errors;
|
847
|
+
if (token === "email" && !phone) {
|
848
|
+
delete errorobj.phone;
|
849
|
+
setErrors(errorobj);
|
850
|
+
}
|
851
|
+
if (value) {
|
852
|
+
delete errorobj[token];
|
853
|
+
setErrors(errorobj);
|
854
|
+
}
|
855
|
+
if (token === "email" && !value) {
|
856
|
+
delete errorobj[token];
|
857
|
+
setErrors(errorobj);
|
858
|
+
}
|
859
|
+
};
|
860
|
+
const handleAmountChange = (data) => {
|
861
|
+
const { value } = data;
|
862
|
+
if (Number(value) > 0) {
|
863
|
+
let errorobj = errors;
|
864
|
+
delete errorobj.amount;
|
865
|
+
setErrors(errorobj);
|
866
|
+
}
|
867
|
+
setAmount(value);
|
868
|
+
};
|
869
|
+
const validateForm = () => {
|
870
|
+
let newErrors = {};
|
871
|
+
if (!amount) newErrors.amount = ErrorText.amountrequired;
|
872
|
+
if (requestDetails.email && !isValidEmail(requestDetails == null ? void 0 : requestDetails.email)) newErrors.email = ErrorText.invalidemail;
|
873
|
+
if (!phone && !(requestDetails == null ? void 0 : requestDetails.email)) newErrors.phone = ErrorText.phoneoremailrequired;
|
874
|
+
if (!phone && !(requestDetails == null ? void 0 : requestDetails.email)) newErrors.email = ErrorText.phoneoremailrequired;
|
875
|
+
if (!phone && requestDetails.email && !isValidEmail(requestDetails == null ? void 0 : requestDetails.email)) newErrors.email = ErrorText.invalidemail;
|
876
|
+
if (props.from === "merchant" && !requestDetails.order_id) newErrors.order_id = ErrorText.orderidrequired;
|
877
|
+
setErrors(newErrors);
|
878
|
+
return Object.keys(newErrors).length === 0;
|
879
|
+
};
|
880
|
+
(0, import_react6.useEffect)(() => {
|
881
|
+
if (props) {
|
882
|
+
setRequestDetails((prev) => __spreadProps(__spreadValues({}, prev), {
|
883
|
+
order_id: props.orderID ? props.orderID : "",
|
884
|
+
name: (props == null ? void 0 : props.name) ? props == null ? void 0 : props.name : "",
|
885
|
+
email: (props == null ? void 0 : props.email) ? props == null ? void 0 : props.email : ""
|
886
|
+
}));
|
887
|
+
setAmount(props.amount ? props.amount : "");
|
888
|
+
setPhone(props.phone ? `${props.phone}` : null);
|
889
|
+
}
|
890
|
+
}, [props]);
|
891
|
+
const handlePhoneChange = (e) => {
|
892
|
+
let value = e == null ? void 0 : e.value;
|
893
|
+
if (value && (value == null ? void 0 : value.length) > 0 && (value == null ? void 0 : value.length) !== 10) {
|
894
|
+
setErrors((prevErrors) => __spreadProps(__spreadValues({}, prevErrors), {
|
895
|
+
phone: ErrorText.phonenumberlength
|
896
|
+
}));
|
897
|
+
setPhone(value);
|
898
|
+
return;
|
899
|
+
} else {
|
900
|
+
setPhone(value);
|
901
|
+
}
|
902
|
+
let errorobj = errors;
|
903
|
+
delete errorobj.phone;
|
904
|
+
if (value && !(requestDetails == null ? void 0 : requestDetails.email)) {
|
905
|
+
delete errorobj.email;
|
906
|
+
}
|
907
|
+
setErrors(errorobj);
|
908
|
+
};
|
909
|
+
function formatAmount(amount2) {
|
910
|
+
return new Intl.NumberFormat("en-US", {
|
911
|
+
style: "currency",
|
912
|
+
currency: "USD",
|
913
|
+
minimumFractionDigits: 2,
|
914
|
+
maximumFractionDigits: 2
|
915
|
+
}).format(Number(amount2));
|
916
|
+
}
|
917
|
+
return /* @__PURE__ */ import_react6.default.createElement(import_react6.default.Fragment, null, /* @__PURE__ */ import_react6.default.createElement(RequestPaymentstyles_default, null), /* @__PURE__ */ import_react6.default.createElement(Loader_default, { loading }), /* @__PURE__ */ import_react6.default.createElement(import_react6.default.Fragment, null, /* @__PURE__ */ import_react6.default.createElement("button", { className: "paymentBtn", onClick: handleShow }, "Request Payment"), /* @__PURE__ */ import_react6.default.createElement(
|
918
|
+
CustomModal2_default,
|
919
|
+
{
|
920
|
+
open: show,
|
921
|
+
onClose: () => setShow(false)
|
922
|
+
},
|
923
|
+
/* @__PURE__ */ import_react6.default.createElement("div", { className: "request-payment-amount-detail" }, /* @__PURE__ */ import_react6.default.createElement("p", { className: "request-payment-merchantname" }, "Pay ", props == null ? void 0 : props.webname), /* @__PURE__ */ import_react6.default.createElement("p", { className: "request-payment-amount" }, formatAmount(props == null ? void 0 : props.amount)), (props == null ? void 0 : props.from) === "merchant" && /* @__PURE__ */ import_react6.default.createElement("p", { className: "request-payment-orderid" }, requestDetails == null ? void 0 : requestDetails.order_id), /* @__PURE__ */ import_react6.default.createElement("span", { className: "request-payment-close-popup", onClick: handleClose }, /* @__PURE__ */ import_react6.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 16 16", fill: "none" }, /* @__PURE__ */ import_react6.default.createElement("g", { "clip-path": "url(#clip0_12425_52336)" }, /* @__PURE__ */ import_react6.default.createElement("path", { d: "M9.46585 8.01168L15.6959 1.7814C16.1014 1.37615 16.1014 0.720912 15.6959 0.315659C15.2907 -0.0895946 14.6354 -0.0895946 14.2302 0.315659L7.99991 6.54593L1.76983 0.315659C1.36438 -0.0895946 0.709336 -0.0895946 0.304082 0.315659C-0.101361 0.720912 -0.101361 1.37615 0.304082 1.7814L6.53416 8.01168L0.304082 14.2419C-0.101361 14.6472 -0.101361 15.3024 0.304082 15.7077C0.506045 15.9098 0.771595 16.0114 1.03695 16.0114C1.30232 16.0114 1.56768 15.9098 1.76983 15.7077L7.99991 9.47742L14.2302 15.7077C14.4323 15.9098 14.6977 16.0114 14.9631 16.0114C15.2284 16.0114 15.4938 15.9098 15.6959 15.7077C16.1014 15.3024 16.1014 14.6472 15.6959 14.2419L9.46585 8.01168Z", fill: "#727272" })), /* @__PURE__ */ import_react6.default.createElement("defs", null, /* @__PURE__ */ import_react6.default.createElement("clipPath", { id: "clip0_12425_52336" }, /* @__PURE__ */ import_react6.default.createElement("rect", { width: "16", height: "16", fill: "white" })))))),
|
924
|
+
/* @__PURE__ */ import_react6.default.createElement("form", { className: "request-payment-input-form" }, /* @__PURE__ */ import_react6.default.createElement("div", { className: "request-payment-list-div" }, /* @__PURE__ */ import_react6.default.createElement(Label, { htmlFor: "exampleFormControlInput2", className: "request-payment-input-label" }, "FULL NAME"), /* @__PURE__ */ import_react6.default.createElement(
|
925
|
+
"input",
|
926
|
+
{
|
927
|
+
className: "request-payment-input-box",
|
928
|
+
type: "text",
|
929
|
+
placeholder: "Full Name",
|
930
|
+
"data-token": "name",
|
931
|
+
onChange: handleChange,
|
932
|
+
value: requestDetails == null ? void 0 : requestDetails.name
|
933
|
+
}
|
934
|
+
), errors.name && /* @__PURE__ */ import_react6.default.createElement("small", { className: "request-payment-error-msg" }, errors.name)), /* @__PURE__ */ import_react6.default.createElement("div", { className: "request-payment-list-div" }, /* @__PURE__ */ import_react6.default.createElement(Label, { htmlFor: "requestPhoneNumber", className: "request-payment-input-label" }, "Phone Number"), /* @__PURE__ */ import_react6.default.createElement(
|
935
|
+
import_react_number_format.PatternFormat,
|
936
|
+
{
|
937
|
+
className: "request-payment-input-box",
|
938
|
+
placeholder: "Mobile number",
|
939
|
+
format: "+1 (###) ###-####",
|
940
|
+
value: phone,
|
941
|
+
onValueChange: (e) => {
|
942
|
+
handlePhoneChange(e);
|
943
|
+
}
|
944
|
+
}
|
945
|
+
), errors.phone && /* @__PURE__ */ import_react6.default.createElement("small", { className: "request-payment-error-msg" }, errors.phone)), /* @__PURE__ */ import_react6.default.createElement("div", { className: "request-payment-list-div" }, /* @__PURE__ */ import_react6.default.createElement(Label, { htmlFor: "exampleFormControlInput2", className: "request-payment-input-label" }, "EMAIL"), /* @__PURE__ */ import_react6.default.createElement(
|
946
|
+
"input",
|
947
|
+
{
|
948
|
+
className: "request-payment-input-box",
|
949
|
+
type: "text",
|
950
|
+
placeholder: "Email",
|
951
|
+
onChange: handleChange,
|
952
|
+
"data-token": "email",
|
953
|
+
value: requestDetails == null ? void 0 : requestDetails.email
|
954
|
+
}
|
955
|
+
), errors.email && /* @__PURE__ */ import_react6.default.createElement("small", { className: "request-payment-error-msg" }, errors.email)), /* @__PURE__ */ import_react6.default.createElement(
|
956
|
+
"button",
|
957
|
+
{
|
958
|
+
type: "button",
|
959
|
+
className: "request-payment-submit-button",
|
960
|
+
onClick: sendRequestPayment,
|
961
|
+
disabled: loading
|
962
|
+
},
|
963
|
+
loading ? "Loading..." : "Send Request"
|
964
|
+
), /* @__PURE__ */ import_react6.default.createElement("div", { className: "request-payment-fractal-powerd-by" }, /* @__PURE__ */ import_react6.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "17", height: "16", viewBox: "0 0 17 16", fill: "none" }, /* @__PURE__ */ import_react6.default.createElement("path", { d: "M15.2165 4.11839C15.1973 3.69746 15.1973 3.29567 15.1973 2.89387C15.1973 2.56861 14.9486 2.31988 14.6234 2.31988C12.2317 2.31988 10.4141 1.63109 8.90257 0.157848C8.67298 -0.0526158 8.32858 -0.0526158 8.09898 0.157848C6.58748 1.63109 4.76984 2.31988 2.37821 2.31988C2.05295 2.31988 1.80422 2.56861 1.80422 2.89387C1.80422 3.29567 1.80422 3.69746 1.78508 4.11839C1.70855 8.13632 1.59375 13.6466 8.30945 15.9617L8.50078 16L8.69211 15.9617C15.3887 13.6466 15.293 8.15546 15.2165 4.11839ZM8.04159 9.6861C7.92679 9.78176 7.79286 9.83916 7.63979 9.83916H7.62066C7.46759 9.83916 7.31453 9.76263 7.21887 9.64783L5.43949 7.67713L6.30048 6.91181L7.69719 8.46158L10.7967 5.5151L11.5812 6.35695L8.04159 9.6861Z", fill: "#727272" })), "Secure payments powered by ", /* @__PURE__ */ import_react6.default.createElement("span", null, "Fractal"), /* @__PURE__ */ import_react6.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 18 18", fill: "none" }, /* @__PURE__ */ import_react6.default.createElement("path", { d: "M17.4999 5.49758V7.01156C17.4999 7.05924 17.4595 7.09898 17.411 7.09898H12.3516C12.9169 6.54266 13.4781 5.99032 14.0434 5.434C14.0596 5.4181 14.0838 5.41016 14.104 5.41016H17.411C17.4595 5.41016 17.4999 5.44989 17.4999 5.49758Z", fill: "#61C699" }), /* @__PURE__ */ import_react6.default.createElement("path", { d: "M12.3462 10.9037V9.29836C12.3462 9.25067 12.3866 9.21094 12.435 9.21094H13.8523C13.929 9.21094 13.9694 9.30631 13.9129 9.35796C13.392 9.87455 12.8711 10.3911 12.3462 10.9037Z", fill: "#61C699" }), /* @__PURE__ */ import_react6.default.createElement("path", { d: "M12.4404 9.00523H15.6949C15.7434 9.00523 15.7838 8.96549 15.7838 8.91781V7.40383C15.7838 7.35614 15.7434 7.31641 15.6949 7.31641H12.4404C12.3919 7.31641 12.3516 7.35614 12.3516 7.40383V8.91781C12.3516 8.96549 12.3919 9.00523 12.4404 9.00523Z", fill: "#61C699" }), /* @__PURE__ */ import_react6.default.createElement("path", { d: "M10.1581 0.0120725L11.4906 0.77105C11.531 0.794892 11.5471 0.84655 11.5229 0.890261L8.99114 5.20173C8.78521 4.44275 8.57927 3.68775 8.37334 2.92877C8.36527 2.90493 8.3693 2.88109 8.38142 2.86122L10.0329 0.0438621C10.0612 0.000151419 10.1177 -0.0117697 10.1581 0.0120725Z", fill: "#61C699" }), /* @__PURE__ */ import_react6.default.createElement("path", { d: "M12.3382 7.10006L10.9289 6.29737C10.8886 6.27353 10.8724 6.22187 10.8966 6.17816L11.6033 4.97015C11.6436 4.9026 11.7446 4.91452 11.7648 4.99002C11.9546 5.69734 12.1484 6.40068 12.3382 7.10006Z", fill: "#61C699" }), /* @__PURE__ */ import_react6.default.createElement("path", { d: "M10.7107 6.0771L12.338 3.30345C12.3622 3.26372 12.346 3.20808 12.3057 3.18424L10.9732 2.42526C10.9328 2.40142 10.8763 2.41732 10.852 2.45705L9.22476 5.2307C9.20053 5.27044 9.21669 5.32607 9.25706 5.34991L10.5896 6.10889C10.634 6.13273 10.6865 6.11683 10.7107 6.0771Z", fill: "#61C699" }), /* @__PURE__ */ import_react6.default.createElement("path", { d: "M1.66713 3.51237L2.99963 2.75339C3.04001 2.72955 3.09654 2.74544 3.12077 2.78518L5.65251 7.09665C4.88128 6.89399 4.11408 6.69133 3.34285 6.48867C3.31862 6.4847 3.30247 6.4688 3.29036 6.44893L1.63483 3.63158C1.6106 3.58787 1.62271 3.53621 1.66713 3.51237Z", fill: "#61C699" }), /* @__PURE__ */ import_react6.default.createElement("path", { d: "M8.99793 5.20018L7.58871 5.99889C7.54833 6.02274 7.4918 6.00684 7.46757 5.9671L6.76095 4.76307C6.72057 4.69552 6.78517 4.61605 6.86189 4.63591C7.57256 4.82268 8.28726 5.00944 8.99793 5.20018Z", fill: "#61C699" }), /* @__PURE__ */ import_react6.default.createElement("path", { d: "M7.27986 6.07054L5.6526 3.2969C5.62837 3.25716 5.57588 3.24127 5.53146 3.26511L4.19896 4.02409C4.15858 4.04793 4.14243 4.09959 4.16666 4.1433L5.79392 6.91694C5.81815 6.95668 5.87064 6.97257 5.91506 6.94873L7.24756 6.18975C7.28794 6.16591 7.30409 6.11425 7.27986 6.07054Z", fill: "#61C699" }), /* @__PURE__ */ import_react6.default.createElement("path", { d: "M0.5 12.4998V10.9859C0.5 10.9382 0.540379 10.8984 0.588833 10.8984H5.64829C5.08299 11.4548 4.52172 12.0071 3.95642 12.5634C3.94027 12.5793 3.91604 12.5873 3.89585 12.5873H0.588833C0.540379 12.5873 0.5 12.5475 0.5 12.4998Z", fill: "#61C699" }), /* @__PURE__ */ import_react6.default.createElement("path", { d: "M5.65129 7.09766V8.70303C5.65129 8.75072 5.61091 8.79045 5.56246 8.79045H4.14516C4.06844 8.79045 4.02806 8.69508 4.08459 8.64343C4.60548 8.12685 5.12637 7.61424 5.65129 7.09766Z", fill: "#61C699" }), /* @__PURE__ */ import_react6.default.createElement("path", { d: "M5.55967 8.99609H2.30514C2.25669 8.99609 2.21631 9.03583 2.21631 9.08352V10.5975C2.21631 10.6452 2.25669 10.6849 2.30514 10.6849H5.55967C5.60813 10.6849 5.6485 10.6452 5.6485 10.5975V9.08352C5.6485 9.03583 5.60813 8.99609 5.55967 8.99609Z", fill: "#61C699" }), /* @__PURE__ */ import_react6.default.createElement("path", { d: "M7.82638 17.9865L6.49388 17.2276C6.4535 17.2037 6.43735 17.1521 6.46158 17.1083L8.99333 12.7969C9.19926 13.5559 9.40519 14.3109 9.61112 15.0698C9.6192 15.0937 9.61516 15.1175 9.60305 15.1374L7.95155 17.9547C7.91925 17.9985 7.86676 18.0104 7.82638 17.9865Z", fill: "#61C699" }), /* @__PURE__ */ import_react6.default.createElement("path", { d: "M5.64795 10.8984L7.05717 11.7011C7.09755 11.725 7.1137 11.7766 7.08947 11.8203L6.38284 13.0283C6.34246 13.0959 6.24152 13.084 6.22133 13.0085C6.02751 12.3012 5.83773 11.5978 5.64795 10.8984Z", fill: "#61C699" }), /* @__PURE__ */ import_react6.default.createElement("path", { d: "M7.2739 11.9258L5.64664 14.6994C5.62241 14.7392 5.63856 14.7948 5.67894 14.8187L7.01144 15.5776C7.05182 15.6015 7.10835 15.5856 7.13258 15.5458L8.75984 12.7722C8.78407 12.7325 8.76792 12.6768 8.72754 12.653L7.39504 11.894C7.35062 11.8702 7.29813 11.8861 7.2739 11.9258Z", fill: "#61C699" }), /* @__PURE__ */ import_react6.default.createElement("path", { d: "M16.3199 14.4866L14.9874 15.2456C14.947 15.2694 14.8904 15.2535 14.8662 15.2138L12.3345 10.9023C13.1057 11.105 13.8729 11.3077 14.6441 11.5103C14.6684 11.5143 14.6845 11.5302 14.6966 11.5501L16.3481 14.3674C16.3764 14.4111 16.3643 14.4628 16.3199 14.4866Z", fill: "#61C699" }), /* @__PURE__ */ import_react6.default.createElement("path", { d: "M8.99121 12.7983L10.4004 11.9956C10.4408 11.9717 10.4973 11.9876 10.5216 12.0274L11.2282 13.2354C11.2686 13.3029 11.204 13.3824 11.1272 13.3625C10.4166 13.1758 9.70188 12.989 8.99121 12.7983Z", fill: "#61C699" }), /* @__PURE__ */ import_react6.default.createElement("path", { d: "M10.7077 11.9285L12.3349 14.7021C12.3592 14.7418 12.4117 14.7577 12.4561 14.7339L13.7886 13.9749C13.829 13.9511 13.8451 13.8994 13.8209 13.8557L12.1936 11.0821C12.1694 11.0423 12.1169 11.0264 12.0725 11.0503L10.74 11.8092C10.6996 11.8331 10.6834 11.8847 10.7077 11.9285Z", fill: "#61C699" }))))
|
965
|
+
), /* @__PURE__ */ import_react6.default.createElement(
|
966
|
+
CustomModal2_default,
|
967
|
+
{
|
968
|
+
open: showConfirmationModal,
|
969
|
+
onClose: handleCloseConfirmationModal
|
970
|
+
},
|
971
|
+
/* @__PURE__ */ import_react6.default.createElement("div", { className: "fractal-popup-content", style: { padding: "0px" } }, /* @__PURE__ */ import_react6.default.createElement("div", { className: "request-payment-success-container" }, /* @__PURE__ */ import_react6.default.createElement("span", { className: "request-payment-close-popup", onClick: handleCloseConfirmationModal }, /* @__PURE__ */ import_react6.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 16 16", fill: "none" }, /* @__PURE__ */ import_react6.default.createElement("g", { "clip-path": "url(#clip0_12425_52336)" }, /* @__PURE__ */ import_react6.default.createElement("path", { d: "M9.46585 8.01168L15.6959 1.7814C16.1014 1.37615 16.1014 0.720912 15.6959 0.315659C15.2907 -0.0895946 14.6354 -0.0895946 14.2302 0.315659L7.99991 6.54593L1.76983 0.315659C1.36438 -0.0895946 0.709336 -0.0895946 0.304082 0.315659C-0.101361 0.720912 -0.101361 1.37615 0.304082 1.7814L6.53416 8.01168L0.304082 14.2419C-0.101361 14.6472 -0.101361 15.3024 0.304082 15.7077C0.506045 15.9098 0.771595 16.0114 1.03695 16.0114C1.30232 16.0114 1.56768 15.9098 1.76983 15.7077L7.99991 9.47742L14.2302 15.7077C14.4323 15.9098 14.6977 16.0114 14.9631 16.0114C15.2284 16.0114 15.4938 15.9098 15.6959 15.7077C16.1014 15.3024 16.1014 14.6472 15.6959 14.2419L9.46585 8.01168Z", fill: "#727272" })), /* @__PURE__ */ import_react6.default.createElement("defs", null, /* @__PURE__ */ import_react6.default.createElement("clipPath", { id: "clip0_12425_52336" }, /* @__PURE__ */ import_react6.default.createElement("rect", { width: "16", height: "16", fill: "white" }))))), /* @__PURE__ */ import_react6.default.createElement("div", { className: "request-payment-success-tick-div" }, /* @__PURE__ */ import_react6.default.createElement("div", { className: "request-payment-success-tick" }, /* @__PURE__ */ import_react6.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 16 16", fill: "none" }, /* @__PURE__ */ import_react6.default.createElement("path", { d: "M6.12669 13.9774C5.97396 14.131 5.76558 14.2167 5.54913 14.2167C5.33267 14.2167 5.1243 14.131 4.97157 13.9774L0.359012 9.36408C-0.119671 8.8854 -0.119671 8.10919 0.359012 7.6314L0.936573 7.05369C1.4154 6.57501 2.19072 6.57501 2.6694 7.05369L5.54913 9.93357L13.3306 2.15198C13.8094 1.6733 14.5855 1.6733 15.0634 2.15198L15.641 2.72969C16.1196 3.20837 16.1196 3.98444 15.641 4.46237L6.12669 13.9774Z", fill: "#61C699" })))), /* @__PURE__ */ import_react6.default.createElement("h6", { className: "request-payment-success-text" }, "The request ", /* @__PURE__ */ import_react6.default.createElement("br", null), "was sent"), /* @__PURE__ */ import_react6.default.createElement("h6", { className: "request-payment-success-subtext" }, "Please wait for the customer to pay"), /* @__PURE__ */ import_react6.default.createElement("div", { className: "request-payment-success-btn-div" }, /* @__PURE__ */ import_react6.default.createElement("button", { onClick: handleCloseConfirmationModal, className: "request-payment-success-btn2" }, "Close"))))
|
972
|
+
)));
|
973
|
+
}
|
974
|
+
|
979
975
|
// src/app/components/RequestPayment/RequestPaymentAllInput.tsx
|
976
|
+
var import_react7 = __toESM(require("react"));
|
977
|
+
var import_react_bootstrap = require("react-bootstrap");
|
978
|
+
var import_react_toastify = require("react-toastify");
|
979
|
+
var import_ReactToastify = require("react-toastify/dist/ReactToastify.css");
|
980
980
|
function RequestPaymentAllInput({ fractalpayClientKey }) {
|
981
981
|
const [isLoading, setIsLoading] = (0, import_react7.useState)(false);
|
982
982
|
const [show, setShow] = (0, import_react7.useState)(false);
|
package/dist/index.mjs
CHANGED
@@ -20,7 +20,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
20
|
|
21
21
|
// src/app/components/RequestPayment/RequestPayment.tsx
|
22
22
|
import "bootstrap/dist/js/bootstrap.bundle.min.js";
|
23
|
-
import
|
23
|
+
import React6, { useState, useEffect } from "react";
|
24
24
|
|
25
25
|
// src/app/components/Loader/Loader.tsx
|
26
26
|
import React2 from "react";
|
@@ -437,254 +437,11 @@ var CustomModal2_default = CustomModal2;
|
|
437
437
|
import axios from "axios";
|
438
438
|
import { PatternFormat } from "react-number-format";
|
439
439
|
import styled from "styled-components";
|
440
|
-
var Label = styled.label`
|
441
|
-
color: #727272;
|
442
|
-
font-family: Inter;
|
443
|
-
font-size: 12px;
|
444
|
-
font-style: normal;
|
445
|
-
font-weight: 500;
|
446
|
-
margin-bottom: 6px !important;
|
447
|
-
text-align: start !important;
|
448
|
-
width: 100% !important;
|
449
|
-
margin-bottom: 6px !important;
|
450
|
-
text-transform: uppercase;
|
451
|
-
`;
|
452
|
-
function RequestPayment(props) {
|
453
|
-
const fractalpayClientKey = props.fractalpayClientKey;
|
454
|
-
const [show, setShow] = useState(false);
|
455
|
-
const [loading, setLoading] = useState(false);
|
456
|
-
const [errors, setErrors] = useState({});
|
457
|
-
const [phone, setPhone] = useState(null);
|
458
|
-
const [requestDetails, setRequestDetails] = useState({
|
459
|
-
email: "",
|
460
|
-
phone_number: "",
|
461
|
-
order_id: "",
|
462
|
-
name: "",
|
463
|
-
fractalpayPublicKey: fractalpayClientKey
|
464
|
-
});
|
465
|
-
const [amount, setAmount] = useState("");
|
466
|
-
const [showConfirmationModal, setShowConfirmationModal] = useState(false);
|
467
|
-
const [apiResponse, setApiResponse] = useState(null);
|
468
|
-
const phoneNumberRegex = (value) => /^\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}$/.test(value);
|
469
|
-
const amoutRegex = /[+-]?([0-9]*[.])?[0-9]+/;
|
470
|
-
const isValidEmail = (value) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value);
|
471
|
-
const isAlpha = (value) => /^[A-Za-z\s]*$/.test(value);
|
472
|
-
const handleClose = () => {
|
473
|
-
setShow(false);
|
474
|
-
setErrors({});
|
475
|
-
};
|
476
|
-
const handleShow = () => setShow(true);
|
477
|
-
const handleCloseConfirmationModal = () => {
|
478
|
-
console.log(apiResponse, "apiresponse");
|
479
|
-
handleSubmit(apiResponse);
|
480
|
-
setShowConfirmationModal(false);
|
481
|
-
};
|
482
|
-
function emptyFields() {
|
483
|
-
setRequestDetails({
|
484
|
-
email: "",
|
485
|
-
phone_number: "",
|
486
|
-
order_id: "",
|
487
|
-
name: "",
|
488
|
-
fractalpayPublicKey: fractalpayClientKey
|
489
|
-
});
|
490
|
-
setAmount("");
|
491
|
-
}
|
492
|
-
function handleSubmit(event) {
|
493
|
-
let message = {
|
494
|
-
type: "preview.compiledcheck",
|
495
|
-
other: __spreadProps(__spreadValues({}, event), { status: true })
|
496
|
-
};
|
497
|
-
window.parent.postMessage(message, "*");
|
498
|
-
}
|
499
|
-
const sendRequestPayment = async () => {
|
500
|
-
if (Object.keys(errors).length > 0) {
|
501
|
-
return;
|
502
|
-
}
|
503
|
-
setErrors({});
|
504
|
-
if (!(requestDetails == null ? void 0 : requestDetails.email) && phone && !phoneNumberRegex(phone)) {
|
505
|
-
setErrors((prevErrors) => __spreadProps(__spreadValues({}, prevErrors), {
|
506
|
-
phone: ErrorText.phonenumbervalid
|
507
|
-
}));
|
508
|
-
return;
|
509
|
-
}
|
510
|
-
if (!validateForm()) {
|
511
|
-
return;
|
512
|
-
}
|
513
|
-
try {
|
514
|
-
setLoading(true);
|
515
|
-
const formData = {
|
516
|
-
fractalpayPublicKey: fractalpayClientKey,
|
517
|
-
amount,
|
518
|
-
phone_number: phone,
|
519
|
-
order_id: requestDetails.order_id,
|
520
|
-
action: "request",
|
521
|
-
name: requestDetails.name,
|
522
|
-
email: requestDetails.email,
|
523
|
-
customer_id: (props == null ? void 0 : props.customerId) ? props == null ? void 0 : props.customerId : ""
|
524
|
-
};
|
525
|
-
let response = await axios.post(`${baseUrl}create-widget-order`, formData);
|
526
|
-
if ((response == null ? void 0 : response.status) === 200) {
|
527
|
-
setShowConfirmationModal(true);
|
528
|
-
setShow(false);
|
529
|
-
emptyFields();
|
530
|
-
setApiResponse(response == null ? void 0 : response.data);
|
531
|
-
}
|
532
|
-
setLoading(false);
|
533
|
-
} catch (error) {
|
534
|
-
console.log(error);
|
535
|
-
setLoading(false);
|
536
|
-
}
|
537
|
-
};
|
538
|
-
let favicon_logo = baseUrl + "images/logo-img.png";
|
539
|
-
const handleChange = (e) => {
|
540
|
-
const { value } = e.target;
|
541
|
-
const token = e.target.dataset.token;
|
542
|
-
setRequestDetails(__spreadProps(__spreadValues({}, requestDetails), { [token]: value }));
|
543
|
-
if (token === "name" && !isAlpha(value)) {
|
544
|
-
setErrors((prevErrors) => __spreadProps(__spreadValues({}, prevErrors), {
|
545
|
-
[token]: ErrorText.onlylettersallowed
|
546
|
-
}));
|
547
|
-
return;
|
548
|
-
}
|
549
|
-
let errorobj = errors;
|
550
|
-
if (token === "email" && !phone) {
|
551
|
-
delete errorobj.phone;
|
552
|
-
setErrors(errorobj);
|
553
|
-
}
|
554
|
-
if (value) {
|
555
|
-
delete errorobj[token];
|
556
|
-
setErrors(errorobj);
|
557
|
-
}
|
558
|
-
if (token === "email" && !value) {
|
559
|
-
delete errorobj[token];
|
560
|
-
setErrors(errorobj);
|
561
|
-
}
|
562
|
-
};
|
563
|
-
const handleAmountChange = (data) => {
|
564
|
-
const { value } = data;
|
565
|
-
if (Number(value) > 0) {
|
566
|
-
let errorobj = errors;
|
567
|
-
delete errorobj.amount;
|
568
|
-
setErrors(errorobj);
|
569
|
-
}
|
570
|
-
setAmount(value);
|
571
|
-
};
|
572
|
-
const validateForm = () => {
|
573
|
-
let newErrors = {};
|
574
|
-
if (!amount) newErrors.amount = ErrorText.amountrequired;
|
575
|
-
if (requestDetails.email && !isValidEmail(requestDetails == null ? void 0 : requestDetails.email)) newErrors.email = ErrorText.invalidemail;
|
576
|
-
if (!phone && !(requestDetails == null ? void 0 : requestDetails.email)) newErrors.phone = ErrorText.phoneoremailrequired;
|
577
|
-
if (!phone && !(requestDetails == null ? void 0 : requestDetails.email)) newErrors.email = ErrorText.phoneoremailrequired;
|
578
|
-
if (!phone && requestDetails.email && !isValidEmail(requestDetails == null ? void 0 : requestDetails.email)) newErrors.email = ErrorText.invalidemail;
|
579
|
-
if (props.from === "merchant" && !requestDetails.order_id) newErrors.order_id = ErrorText.orderidrequired;
|
580
|
-
setErrors(newErrors);
|
581
|
-
return Object.keys(newErrors).length === 0;
|
582
|
-
};
|
583
|
-
useEffect(() => {
|
584
|
-
if (props) {
|
585
|
-
setRequestDetails((prev) => __spreadProps(__spreadValues({}, prev), {
|
586
|
-
order_id: props.orderID ? props.orderID : "",
|
587
|
-
name: (props == null ? void 0 : props.name) ? props == null ? void 0 : props.name : "",
|
588
|
-
email: (props == null ? void 0 : props.email) ? props == null ? void 0 : props.email : ""
|
589
|
-
}));
|
590
|
-
setAmount(props.amount ? props.amount : "");
|
591
|
-
setPhone(props.phone ? `${props.phone}` : null);
|
592
|
-
}
|
593
|
-
}, [props]);
|
594
|
-
const handlePhoneChange = (e) => {
|
595
|
-
let value = e == null ? void 0 : e.value;
|
596
|
-
if (value && (value == null ? void 0 : value.length) > 0 && (value == null ? void 0 : value.length) !== 10) {
|
597
|
-
setErrors((prevErrors) => __spreadProps(__spreadValues({}, prevErrors), {
|
598
|
-
phone: ErrorText.phonenumberlength
|
599
|
-
}));
|
600
|
-
setPhone(value);
|
601
|
-
return;
|
602
|
-
} else {
|
603
|
-
setPhone(value);
|
604
|
-
}
|
605
|
-
let errorobj = errors;
|
606
|
-
delete errorobj.phone;
|
607
|
-
if (value && !(requestDetails == null ? void 0 : requestDetails.email)) {
|
608
|
-
delete errorobj.email;
|
609
|
-
}
|
610
|
-
setErrors(errorobj);
|
611
|
-
};
|
612
|
-
function formatAmount(amount2) {
|
613
|
-
return new Intl.NumberFormat("en-US", {
|
614
|
-
style: "currency",
|
615
|
-
currency: "USD",
|
616
|
-
minimumFractionDigits: 2,
|
617
|
-
maximumFractionDigits: 2
|
618
|
-
}).format(Number(amount2));
|
619
|
-
}
|
620
|
-
return /* @__PURE__ */ React5.createElement(React5.Fragment, null, /* @__PURE__ */ React5.createElement(Loader_default, { loading }), /* @__PURE__ */ React5.createElement(React5.Fragment, null, /* @__PURE__ */ React5.createElement("button", { className: "paymentBtn", onClick: handleShow }, "Request Payment"), /* @__PURE__ */ React5.createElement(
|
621
|
-
CustomModal2_default,
|
622
|
-
{
|
623
|
-
open: show,
|
624
|
-
onClose: () => setShow(false)
|
625
|
-
},
|
626
|
-
/* @__PURE__ */ React5.createElement("div", { className: "request-payment-amount-detail" }, /* @__PURE__ */ React5.createElement("p", { className: "request-payment-merchantname" }, "Pay ", props == null ? void 0 : props.webname), /* @__PURE__ */ React5.createElement("p", { className: "request-payment-amount" }, formatAmount(props == null ? void 0 : props.amount)), (props == null ? void 0 : props.from) === "merchant" && /* @__PURE__ */ React5.createElement("p", { className: "request-payment-orderid" }, requestDetails == null ? void 0 : requestDetails.order_id), /* @__PURE__ */ React5.createElement("span", { className: "request-payment-close-popup", onClick: handleClose }, /* @__PURE__ */ React5.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 16 16", fill: "none" }, /* @__PURE__ */ React5.createElement("g", { "clip-path": "url(#clip0_12425_52336)" }, /* @__PURE__ */ React5.createElement("path", { d: "M9.46585 8.01168L15.6959 1.7814C16.1014 1.37615 16.1014 0.720912 15.6959 0.315659C15.2907 -0.0895946 14.6354 -0.0895946 14.2302 0.315659L7.99991 6.54593L1.76983 0.315659C1.36438 -0.0895946 0.709336 -0.0895946 0.304082 0.315659C-0.101361 0.720912 -0.101361 1.37615 0.304082 1.7814L6.53416 8.01168L0.304082 14.2419C-0.101361 14.6472 -0.101361 15.3024 0.304082 15.7077C0.506045 15.9098 0.771595 16.0114 1.03695 16.0114C1.30232 16.0114 1.56768 15.9098 1.76983 15.7077L7.99991 9.47742L14.2302 15.7077C14.4323 15.9098 14.6977 16.0114 14.9631 16.0114C15.2284 16.0114 15.4938 15.9098 15.6959 15.7077C16.1014 15.3024 16.1014 14.6472 15.6959 14.2419L9.46585 8.01168Z", fill: "#727272" })), /* @__PURE__ */ React5.createElement("defs", null, /* @__PURE__ */ React5.createElement("clipPath", { id: "clip0_12425_52336" }, /* @__PURE__ */ React5.createElement("rect", { width: "16", height: "16", fill: "white" })))))),
|
627
|
-
/* @__PURE__ */ React5.createElement("form", { className: "request-payment-input-form" }, /* @__PURE__ */ React5.createElement("div", { className: "request-payment-list-div" }, /* @__PURE__ */ React5.createElement(Label, { htmlFor: "exampleFormControlInput2", className: "request-payment-input-label" }, "FULL NAME"), /* @__PURE__ */ React5.createElement(
|
628
|
-
"input",
|
629
|
-
{
|
630
|
-
className: "request-payment-input-box",
|
631
|
-
type: "text",
|
632
|
-
placeholder: "Full Name",
|
633
|
-
"data-token": "name",
|
634
|
-
onChange: handleChange,
|
635
|
-
value: requestDetails == null ? void 0 : requestDetails.name
|
636
|
-
}
|
637
|
-
), errors.name && /* @__PURE__ */ React5.createElement("small", { className: "request-payment-error-msg" }, errors.name)), /* @__PURE__ */ React5.createElement("div", { className: "request-payment-list-div" }, /* @__PURE__ */ React5.createElement(Label, { htmlFor: "requestPhoneNumber", className: "request-payment-input-label" }, "Phone Number"), /* @__PURE__ */ React5.createElement(
|
638
|
-
PatternFormat,
|
639
|
-
{
|
640
|
-
className: "request-payment-input-box",
|
641
|
-
placeholder: "Mobile number",
|
642
|
-
format: "+1 (###) ###-####",
|
643
|
-
value: phone,
|
644
|
-
onValueChange: (e) => {
|
645
|
-
handlePhoneChange(e);
|
646
|
-
}
|
647
|
-
}
|
648
|
-
), errors.phone && /* @__PURE__ */ React5.createElement("small", { className: "request-payment-error-msg" }, errors.phone)), /* @__PURE__ */ React5.createElement("div", { className: "request-payment-list-div" }, /* @__PURE__ */ React5.createElement(Label, { htmlFor: "exampleFormControlInput2", className: "request-payment-input-label" }, "EMAIL"), /* @__PURE__ */ React5.createElement(
|
649
|
-
"input",
|
650
|
-
{
|
651
|
-
className: "request-payment-input-box",
|
652
|
-
type: "text",
|
653
|
-
placeholder: "Email",
|
654
|
-
onChange: handleChange,
|
655
|
-
"data-token": "email",
|
656
|
-
value: requestDetails == null ? void 0 : requestDetails.email
|
657
|
-
}
|
658
|
-
), errors.email && /* @__PURE__ */ React5.createElement("small", { className: "request-payment-error-msg" }, errors.email)), /* @__PURE__ */ React5.createElement(
|
659
|
-
"button",
|
660
|
-
{
|
661
|
-
type: "button",
|
662
|
-
className: "request-payment-submit-button",
|
663
|
-
onClick: sendRequestPayment,
|
664
|
-
disabled: loading
|
665
|
-
},
|
666
|
-
loading ? "Loading..." : "Send Request"
|
667
|
-
), /* @__PURE__ */ React5.createElement("div", { className: "request-payment-fractal-powerd-by" }, /* @__PURE__ */ React5.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "17", height: "16", viewBox: "0 0 17 16", fill: "none" }, /* @__PURE__ */ React5.createElement("path", { d: "M15.2165 4.11839C15.1973 3.69746 15.1973 3.29567 15.1973 2.89387C15.1973 2.56861 14.9486 2.31988 14.6234 2.31988C12.2317 2.31988 10.4141 1.63109 8.90257 0.157848C8.67298 -0.0526158 8.32858 -0.0526158 8.09898 0.157848C6.58748 1.63109 4.76984 2.31988 2.37821 2.31988C2.05295 2.31988 1.80422 2.56861 1.80422 2.89387C1.80422 3.29567 1.80422 3.69746 1.78508 4.11839C1.70855 8.13632 1.59375 13.6466 8.30945 15.9617L8.50078 16L8.69211 15.9617C15.3887 13.6466 15.293 8.15546 15.2165 4.11839ZM8.04159 9.6861C7.92679 9.78176 7.79286 9.83916 7.63979 9.83916H7.62066C7.46759 9.83916 7.31453 9.76263 7.21887 9.64783L5.43949 7.67713L6.30048 6.91181L7.69719 8.46158L10.7967 5.5151L11.5812 6.35695L8.04159 9.6861Z", fill: "#727272" })), "Secure payments powered by ", /* @__PURE__ */ React5.createElement("span", null, "Fractal"), /* @__PURE__ */ React5.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 18 18", fill: "none" }, /* @__PURE__ */ React5.createElement("path", { d: "M17.4999 5.49758V7.01156C17.4999 7.05924 17.4595 7.09898 17.411 7.09898H12.3516C12.9169 6.54266 13.4781 5.99032 14.0434 5.434C14.0596 5.4181 14.0838 5.41016 14.104 5.41016H17.411C17.4595 5.41016 17.4999 5.44989 17.4999 5.49758Z", fill: "#61C699" }), /* @__PURE__ */ React5.createElement("path", { d: "M12.3462 10.9037V9.29836C12.3462 9.25067 12.3866 9.21094 12.435 9.21094H13.8523C13.929 9.21094 13.9694 9.30631 13.9129 9.35796C13.392 9.87455 12.8711 10.3911 12.3462 10.9037Z", fill: "#61C699" }), /* @__PURE__ */ React5.createElement("path", { d: "M12.4404 9.00523H15.6949C15.7434 9.00523 15.7838 8.96549 15.7838 8.91781V7.40383C15.7838 7.35614 15.7434 7.31641 15.6949 7.31641H12.4404C12.3919 7.31641 12.3516 7.35614 12.3516 7.40383V8.91781C12.3516 8.96549 12.3919 9.00523 12.4404 9.00523Z", fill: "#61C699" }), /* @__PURE__ */ React5.createElement("path", { d: "M10.1581 0.0120725L11.4906 0.77105C11.531 0.794892 11.5471 0.84655 11.5229 0.890261L8.99114 5.20173C8.78521 4.44275 8.57927 3.68775 8.37334 2.92877C8.36527 2.90493 8.3693 2.88109 8.38142 2.86122L10.0329 0.0438621C10.0612 0.000151419 10.1177 -0.0117697 10.1581 0.0120725Z", fill: "#61C699" }), /* @__PURE__ */ React5.createElement("path", { d: "M12.3382 7.10006L10.9289 6.29737C10.8886 6.27353 10.8724 6.22187 10.8966 6.17816L11.6033 4.97015C11.6436 4.9026 11.7446 4.91452 11.7648 4.99002C11.9546 5.69734 12.1484 6.40068 12.3382 7.10006Z", fill: "#61C699" }), /* @__PURE__ */ React5.createElement("path", { d: "M10.7107 6.0771L12.338 3.30345C12.3622 3.26372 12.346 3.20808 12.3057 3.18424L10.9732 2.42526C10.9328 2.40142 10.8763 2.41732 10.852 2.45705L9.22476 5.2307C9.20053 5.27044 9.21669 5.32607 9.25706 5.34991L10.5896 6.10889C10.634 6.13273 10.6865 6.11683 10.7107 6.0771Z", fill: "#61C699" }), /* @__PURE__ */ React5.createElement("path", { d: "M1.66713 3.51237L2.99963 2.75339C3.04001 2.72955 3.09654 2.74544 3.12077 2.78518L5.65251 7.09665C4.88128 6.89399 4.11408 6.69133 3.34285 6.48867C3.31862 6.4847 3.30247 6.4688 3.29036 6.44893L1.63483 3.63158C1.6106 3.58787 1.62271 3.53621 1.66713 3.51237Z", fill: "#61C699" }), /* @__PURE__ */ React5.createElement("path", { d: "M8.99793 5.20018L7.58871 5.99889C7.54833 6.02274 7.4918 6.00684 7.46757 5.9671L6.76095 4.76307C6.72057 4.69552 6.78517 4.61605 6.86189 4.63591C7.57256 4.82268 8.28726 5.00944 8.99793 5.20018Z", fill: "#61C699" }), /* @__PURE__ */ React5.createElement("path", { d: "M7.27986 6.07054L5.6526 3.2969C5.62837 3.25716 5.57588 3.24127 5.53146 3.26511L4.19896 4.02409C4.15858 4.04793 4.14243 4.09959 4.16666 4.1433L5.79392 6.91694C5.81815 6.95668 5.87064 6.97257 5.91506 6.94873L7.24756 6.18975C7.28794 6.16591 7.30409 6.11425 7.27986 6.07054Z", fill: "#61C699" }), /* @__PURE__ */ React5.createElement("path", { d: "M0.5 12.4998V10.9859C0.5 10.9382 0.540379 10.8984 0.588833 10.8984H5.64829C5.08299 11.4548 4.52172 12.0071 3.95642 12.5634C3.94027 12.5793 3.91604 12.5873 3.89585 12.5873H0.588833C0.540379 12.5873 0.5 12.5475 0.5 12.4998Z", fill: "#61C699" }), /* @__PURE__ */ React5.createElement("path", { d: "M5.65129 7.09766V8.70303C5.65129 8.75072 5.61091 8.79045 5.56246 8.79045H4.14516C4.06844 8.79045 4.02806 8.69508 4.08459 8.64343C4.60548 8.12685 5.12637 7.61424 5.65129 7.09766Z", fill: "#61C699" }), /* @__PURE__ */ React5.createElement("path", { d: "M5.55967 8.99609H2.30514C2.25669 8.99609 2.21631 9.03583 2.21631 9.08352V10.5975C2.21631 10.6452 2.25669 10.6849 2.30514 10.6849H5.55967C5.60813 10.6849 5.6485 10.6452 5.6485 10.5975V9.08352C5.6485 9.03583 5.60813 8.99609 5.55967 8.99609Z", fill: "#61C699" }), /* @__PURE__ */ React5.createElement("path", { d: "M7.82638 17.9865L6.49388 17.2276C6.4535 17.2037 6.43735 17.1521 6.46158 17.1083L8.99333 12.7969C9.19926 13.5559 9.40519 14.3109 9.61112 15.0698C9.6192 15.0937 9.61516 15.1175 9.60305 15.1374L7.95155 17.9547C7.91925 17.9985 7.86676 18.0104 7.82638 17.9865Z", fill: "#61C699" }), /* @__PURE__ */ React5.createElement("path", { d: "M5.64795 10.8984L7.05717 11.7011C7.09755 11.725 7.1137 11.7766 7.08947 11.8203L6.38284 13.0283C6.34246 13.0959 6.24152 13.084 6.22133 13.0085C6.02751 12.3012 5.83773 11.5978 5.64795 10.8984Z", fill: "#61C699" }), /* @__PURE__ */ React5.createElement("path", { d: "M7.2739 11.9258L5.64664 14.6994C5.62241 14.7392 5.63856 14.7948 5.67894 14.8187L7.01144 15.5776C7.05182 15.6015 7.10835 15.5856 7.13258 15.5458L8.75984 12.7722C8.78407 12.7325 8.76792 12.6768 8.72754 12.653L7.39504 11.894C7.35062 11.8702 7.29813 11.8861 7.2739 11.9258Z", fill: "#61C699" }), /* @__PURE__ */ React5.createElement("path", { d: "M16.3199 14.4866L14.9874 15.2456C14.947 15.2694 14.8904 15.2535 14.8662 15.2138L12.3345 10.9023C13.1057 11.105 13.8729 11.3077 14.6441 11.5103C14.6684 11.5143 14.6845 11.5302 14.6966 11.5501L16.3481 14.3674C16.3764 14.4111 16.3643 14.4628 16.3199 14.4866Z", fill: "#61C699" }), /* @__PURE__ */ React5.createElement("path", { d: "M8.99121 12.7983L10.4004 11.9956C10.4408 11.9717 10.4973 11.9876 10.5216 12.0274L11.2282 13.2354C11.2686 13.3029 11.204 13.3824 11.1272 13.3625C10.4166 13.1758 9.70188 12.989 8.99121 12.7983Z", fill: "#61C699" }), /* @__PURE__ */ React5.createElement("path", { d: "M10.7077 11.9285L12.3349 14.7021C12.3592 14.7418 12.4117 14.7577 12.4561 14.7339L13.7886 13.9749C13.829 13.9511 13.8451 13.8994 13.8209 13.8557L12.1936 11.0821C12.1694 11.0423 12.1169 11.0264 12.0725 11.0503L10.74 11.8092C10.6996 11.8331 10.6834 11.8847 10.7077 11.9285Z", fill: "#61C699" }))))
|
668
|
-
), /* @__PURE__ */ React5.createElement(
|
669
|
-
CustomModal2_default,
|
670
|
-
{
|
671
|
-
open: showConfirmationModal,
|
672
|
-
onClose: handleCloseConfirmationModal
|
673
|
-
},
|
674
|
-
/* @__PURE__ */ React5.createElement("div", { className: "fractal-popup-content", style: { padding: "0px" } }, /* @__PURE__ */ React5.createElement("div", { className: "request-payment-success-container" }, /* @__PURE__ */ React5.createElement("span", { className: "request-payment-close-popup", onClick: handleCloseConfirmationModal }, /* @__PURE__ */ React5.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 16 16", fill: "none" }, /* @__PURE__ */ React5.createElement("g", { "clip-path": "url(#clip0_12425_52336)" }, /* @__PURE__ */ React5.createElement("path", { d: "M9.46585 8.01168L15.6959 1.7814C16.1014 1.37615 16.1014 0.720912 15.6959 0.315659C15.2907 -0.0895946 14.6354 -0.0895946 14.2302 0.315659L7.99991 6.54593L1.76983 0.315659C1.36438 -0.0895946 0.709336 -0.0895946 0.304082 0.315659C-0.101361 0.720912 -0.101361 1.37615 0.304082 1.7814L6.53416 8.01168L0.304082 14.2419C-0.101361 14.6472 -0.101361 15.3024 0.304082 15.7077C0.506045 15.9098 0.771595 16.0114 1.03695 16.0114C1.30232 16.0114 1.56768 15.9098 1.76983 15.7077L7.99991 9.47742L14.2302 15.7077C14.4323 15.9098 14.6977 16.0114 14.9631 16.0114C15.2284 16.0114 15.4938 15.9098 15.6959 15.7077C16.1014 15.3024 16.1014 14.6472 15.6959 14.2419L9.46585 8.01168Z", fill: "#727272" })), /* @__PURE__ */ React5.createElement("defs", null, /* @__PURE__ */ React5.createElement("clipPath", { id: "clip0_12425_52336" }, /* @__PURE__ */ React5.createElement("rect", { width: "16", height: "16", fill: "white" }))))), /* @__PURE__ */ React5.createElement("div", { className: "request-payment-success-tick-div" }, /* @__PURE__ */ React5.createElement("div", { className: "request-payment-success-tick" }, /* @__PURE__ */ React5.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 16 16", fill: "none" }, /* @__PURE__ */ React5.createElement("path", { d: "M6.12669 13.9774C5.97396 14.131 5.76558 14.2167 5.54913 14.2167C5.33267 14.2167 5.1243 14.131 4.97157 13.9774L0.359012 9.36408C-0.119671 8.8854 -0.119671 8.10919 0.359012 7.6314L0.936573 7.05369C1.4154 6.57501 2.19072 6.57501 2.6694 7.05369L5.54913 9.93357L13.3306 2.15198C13.8094 1.6733 14.5855 1.6733 15.0634 2.15198L15.641 2.72969C16.1196 3.20837 16.1196 3.98444 15.641 4.46237L6.12669 13.9774Z", fill: "#61C699" })))), /* @__PURE__ */ React5.createElement("h6", { className: "request-payment-success-text" }, "The request ", /* @__PURE__ */ React5.createElement("br", null), "was sent"), /* @__PURE__ */ React5.createElement("h6", { className: "request-payment-success-subtext" }, "Please wait for the customer to pay"), /* @__PURE__ */ React5.createElement("div", { className: "request-payment-success-btn-div" }, /* @__PURE__ */ React5.createElement("button", { onClick: handleCloseConfirmationModal, className: "request-payment-success-btn2" }, "Close"))))
|
675
|
-
)));
|
676
|
-
}
|
677
|
-
|
678
|
-
// src/app/components/RequestPayment/RequestPaymentAllInput.tsx
|
679
|
-
import React7, { useState as useState2 } from "react";
|
680
|
-
import { Modal } from "react-bootstrap";
|
681
|
-
import { toast, ToastContainer } from "react-toastify";
|
682
|
-
import "react-toastify/dist/ReactToastify.css";
|
683
440
|
|
684
441
|
// src/app/components/RequestPayment/RequestPaymentstyles.tsx
|
685
|
-
import
|
442
|
+
import React5 from "react";
|
686
443
|
var RequestPaymentstyles = (props) => {
|
687
|
-
return /* @__PURE__ */
|
444
|
+
return /* @__PURE__ */ React5.createElement("style", null, `
|
688
445
|
body {
|
689
446
|
font-family: 'Inter', sans-serif;
|
690
447
|
}
|
@@ -935,7 +692,250 @@ var RequestPaymentstyles = (props) => {
|
|
935
692
|
};
|
936
693
|
var RequestPaymentstyles_default = RequestPaymentstyles;
|
937
694
|
|
695
|
+
// src/app/components/RequestPayment/RequestPayment.tsx
|
696
|
+
var Label = styled.label`
|
697
|
+
color: #727272;
|
698
|
+
font-family: Inter;
|
699
|
+
font-size: 12px;
|
700
|
+
font-style: normal;
|
701
|
+
font-weight: 500;
|
702
|
+
margin-bottom: 6px !important;
|
703
|
+
text-align: start !important;
|
704
|
+
width: 100% !important;
|
705
|
+
margin-bottom: 6px !important;
|
706
|
+
text-transform: uppercase;
|
707
|
+
`;
|
708
|
+
function RequestPayment(props) {
|
709
|
+
const fractalpayClientKey = props.fractalpayClientKey;
|
710
|
+
const [show, setShow] = useState(false);
|
711
|
+
const [loading, setLoading] = useState(false);
|
712
|
+
const [errors, setErrors] = useState({});
|
713
|
+
const [phone, setPhone] = useState(null);
|
714
|
+
const [requestDetails, setRequestDetails] = useState({
|
715
|
+
email: "",
|
716
|
+
phone_number: "",
|
717
|
+
order_id: "",
|
718
|
+
name: "",
|
719
|
+
fractalpayPublicKey: fractalpayClientKey
|
720
|
+
});
|
721
|
+
const [amount, setAmount] = useState("");
|
722
|
+
const [showConfirmationModal, setShowConfirmationModal] = useState(false);
|
723
|
+
const [apiResponse, setApiResponse] = useState(null);
|
724
|
+
const phoneNumberRegex = (value) => /^\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}$/.test(value);
|
725
|
+
const amoutRegex = /[+-]?([0-9]*[.])?[0-9]+/;
|
726
|
+
const isValidEmail = (value) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value);
|
727
|
+
const isAlpha = (value) => /^[A-Za-z\s]*$/.test(value);
|
728
|
+
const handleClose = () => {
|
729
|
+
setShow(false);
|
730
|
+
setErrors({});
|
731
|
+
};
|
732
|
+
const handleShow = () => setShow(true);
|
733
|
+
const handleCloseConfirmationModal = () => {
|
734
|
+
console.log(apiResponse, "apiresponse");
|
735
|
+
handleSubmit(apiResponse);
|
736
|
+
setShowConfirmationModal(false);
|
737
|
+
};
|
738
|
+
function emptyFields() {
|
739
|
+
setRequestDetails({
|
740
|
+
email: "",
|
741
|
+
phone_number: "",
|
742
|
+
order_id: "",
|
743
|
+
name: "",
|
744
|
+
fractalpayPublicKey: fractalpayClientKey
|
745
|
+
});
|
746
|
+
setAmount("");
|
747
|
+
}
|
748
|
+
function handleSubmit(event) {
|
749
|
+
let message = {
|
750
|
+
type: "preview.compiledcheck",
|
751
|
+
other: __spreadProps(__spreadValues({}, event), { status: true })
|
752
|
+
};
|
753
|
+
window.parent.postMessage(message, "*");
|
754
|
+
}
|
755
|
+
const sendRequestPayment = async () => {
|
756
|
+
if (Object.keys(errors).length > 0) {
|
757
|
+
return;
|
758
|
+
}
|
759
|
+
setErrors({});
|
760
|
+
if (!(requestDetails == null ? void 0 : requestDetails.email) && phone && !phoneNumberRegex(phone)) {
|
761
|
+
setErrors((prevErrors) => __spreadProps(__spreadValues({}, prevErrors), {
|
762
|
+
phone: ErrorText.phonenumbervalid
|
763
|
+
}));
|
764
|
+
return;
|
765
|
+
}
|
766
|
+
if (!validateForm()) {
|
767
|
+
return;
|
768
|
+
}
|
769
|
+
try {
|
770
|
+
setLoading(true);
|
771
|
+
const formData = {
|
772
|
+
fractalpayPublicKey: fractalpayClientKey,
|
773
|
+
amount,
|
774
|
+
phone_number: phone,
|
775
|
+
order_id: requestDetails.order_id,
|
776
|
+
action: "request",
|
777
|
+
name: requestDetails.name,
|
778
|
+
email: requestDetails.email,
|
779
|
+
customer_id: (props == null ? void 0 : props.customerId) ? props == null ? void 0 : props.customerId : ""
|
780
|
+
};
|
781
|
+
let response = await axios.post(`${baseUrl}create-widget-order`, formData);
|
782
|
+
if ((response == null ? void 0 : response.status) === 200) {
|
783
|
+
setShowConfirmationModal(true);
|
784
|
+
setShow(false);
|
785
|
+
emptyFields();
|
786
|
+
setApiResponse(response == null ? void 0 : response.data);
|
787
|
+
}
|
788
|
+
setLoading(false);
|
789
|
+
} catch (error) {
|
790
|
+
console.log(error);
|
791
|
+
setLoading(false);
|
792
|
+
}
|
793
|
+
};
|
794
|
+
let favicon_logo = baseUrl + "images/logo-img.png";
|
795
|
+
const handleChange = (e) => {
|
796
|
+
const { value } = e.target;
|
797
|
+
const token = e.target.dataset.token;
|
798
|
+
setRequestDetails(__spreadProps(__spreadValues({}, requestDetails), { [token]: value }));
|
799
|
+
if (token === "name" && !isAlpha(value)) {
|
800
|
+
setErrors((prevErrors) => __spreadProps(__spreadValues({}, prevErrors), {
|
801
|
+
[token]: ErrorText.onlylettersallowed
|
802
|
+
}));
|
803
|
+
return;
|
804
|
+
}
|
805
|
+
let errorobj = errors;
|
806
|
+
if (token === "email" && !phone) {
|
807
|
+
delete errorobj.phone;
|
808
|
+
setErrors(errorobj);
|
809
|
+
}
|
810
|
+
if (value) {
|
811
|
+
delete errorobj[token];
|
812
|
+
setErrors(errorobj);
|
813
|
+
}
|
814
|
+
if (token === "email" && !value) {
|
815
|
+
delete errorobj[token];
|
816
|
+
setErrors(errorobj);
|
817
|
+
}
|
818
|
+
};
|
819
|
+
const handleAmountChange = (data) => {
|
820
|
+
const { value } = data;
|
821
|
+
if (Number(value) > 0) {
|
822
|
+
let errorobj = errors;
|
823
|
+
delete errorobj.amount;
|
824
|
+
setErrors(errorobj);
|
825
|
+
}
|
826
|
+
setAmount(value);
|
827
|
+
};
|
828
|
+
const validateForm = () => {
|
829
|
+
let newErrors = {};
|
830
|
+
if (!amount) newErrors.amount = ErrorText.amountrequired;
|
831
|
+
if (requestDetails.email && !isValidEmail(requestDetails == null ? void 0 : requestDetails.email)) newErrors.email = ErrorText.invalidemail;
|
832
|
+
if (!phone && !(requestDetails == null ? void 0 : requestDetails.email)) newErrors.phone = ErrorText.phoneoremailrequired;
|
833
|
+
if (!phone && !(requestDetails == null ? void 0 : requestDetails.email)) newErrors.email = ErrorText.phoneoremailrequired;
|
834
|
+
if (!phone && requestDetails.email && !isValidEmail(requestDetails == null ? void 0 : requestDetails.email)) newErrors.email = ErrorText.invalidemail;
|
835
|
+
if (props.from === "merchant" && !requestDetails.order_id) newErrors.order_id = ErrorText.orderidrequired;
|
836
|
+
setErrors(newErrors);
|
837
|
+
return Object.keys(newErrors).length === 0;
|
838
|
+
};
|
839
|
+
useEffect(() => {
|
840
|
+
if (props) {
|
841
|
+
setRequestDetails((prev) => __spreadProps(__spreadValues({}, prev), {
|
842
|
+
order_id: props.orderID ? props.orderID : "",
|
843
|
+
name: (props == null ? void 0 : props.name) ? props == null ? void 0 : props.name : "",
|
844
|
+
email: (props == null ? void 0 : props.email) ? props == null ? void 0 : props.email : ""
|
845
|
+
}));
|
846
|
+
setAmount(props.amount ? props.amount : "");
|
847
|
+
setPhone(props.phone ? `${props.phone}` : null);
|
848
|
+
}
|
849
|
+
}, [props]);
|
850
|
+
const handlePhoneChange = (e) => {
|
851
|
+
let value = e == null ? void 0 : e.value;
|
852
|
+
if (value && (value == null ? void 0 : value.length) > 0 && (value == null ? void 0 : value.length) !== 10) {
|
853
|
+
setErrors((prevErrors) => __spreadProps(__spreadValues({}, prevErrors), {
|
854
|
+
phone: ErrorText.phonenumberlength
|
855
|
+
}));
|
856
|
+
setPhone(value);
|
857
|
+
return;
|
858
|
+
} else {
|
859
|
+
setPhone(value);
|
860
|
+
}
|
861
|
+
let errorobj = errors;
|
862
|
+
delete errorobj.phone;
|
863
|
+
if (value && !(requestDetails == null ? void 0 : requestDetails.email)) {
|
864
|
+
delete errorobj.email;
|
865
|
+
}
|
866
|
+
setErrors(errorobj);
|
867
|
+
};
|
868
|
+
function formatAmount(amount2) {
|
869
|
+
return new Intl.NumberFormat("en-US", {
|
870
|
+
style: "currency",
|
871
|
+
currency: "USD",
|
872
|
+
minimumFractionDigits: 2,
|
873
|
+
maximumFractionDigits: 2
|
874
|
+
}).format(Number(amount2));
|
875
|
+
}
|
876
|
+
return /* @__PURE__ */ React6.createElement(React6.Fragment, null, /* @__PURE__ */ React6.createElement(RequestPaymentstyles_default, null), /* @__PURE__ */ React6.createElement(Loader_default, { loading }), /* @__PURE__ */ React6.createElement(React6.Fragment, null, /* @__PURE__ */ React6.createElement("button", { className: "paymentBtn", onClick: handleShow }, "Request Payment"), /* @__PURE__ */ React6.createElement(
|
877
|
+
CustomModal2_default,
|
878
|
+
{
|
879
|
+
open: show,
|
880
|
+
onClose: () => setShow(false)
|
881
|
+
},
|
882
|
+
/* @__PURE__ */ React6.createElement("div", { className: "request-payment-amount-detail" }, /* @__PURE__ */ React6.createElement("p", { className: "request-payment-merchantname" }, "Pay ", props == null ? void 0 : props.webname), /* @__PURE__ */ React6.createElement("p", { className: "request-payment-amount" }, formatAmount(props == null ? void 0 : props.amount)), (props == null ? void 0 : props.from) === "merchant" && /* @__PURE__ */ React6.createElement("p", { className: "request-payment-orderid" }, requestDetails == null ? void 0 : requestDetails.order_id), /* @__PURE__ */ React6.createElement("span", { className: "request-payment-close-popup", onClick: handleClose }, /* @__PURE__ */ React6.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 16 16", fill: "none" }, /* @__PURE__ */ React6.createElement("g", { "clip-path": "url(#clip0_12425_52336)" }, /* @__PURE__ */ React6.createElement("path", { d: "M9.46585 8.01168L15.6959 1.7814C16.1014 1.37615 16.1014 0.720912 15.6959 0.315659C15.2907 -0.0895946 14.6354 -0.0895946 14.2302 0.315659L7.99991 6.54593L1.76983 0.315659C1.36438 -0.0895946 0.709336 -0.0895946 0.304082 0.315659C-0.101361 0.720912 -0.101361 1.37615 0.304082 1.7814L6.53416 8.01168L0.304082 14.2419C-0.101361 14.6472 -0.101361 15.3024 0.304082 15.7077C0.506045 15.9098 0.771595 16.0114 1.03695 16.0114C1.30232 16.0114 1.56768 15.9098 1.76983 15.7077L7.99991 9.47742L14.2302 15.7077C14.4323 15.9098 14.6977 16.0114 14.9631 16.0114C15.2284 16.0114 15.4938 15.9098 15.6959 15.7077C16.1014 15.3024 16.1014 14.6472 15.6959 14.2419L9.46585 8.01168Z", fill: "#727272" })), /* @__PURE__ */ React6.createElement("defs", null, /* @__PURE__ */ React6.createElement("clipPath", { id: "clip0_12425_52336" }, /* @__PURE__ */ React6.createElement("rect", { width: "16", height: "16", fill: "white" })))))),
|
883
|
+
/* @__PURE__ */ React6.createElement("form", { className: "request-payment-input-form" }, /* @__PURE__ */ React6.createElement("div", { className: "request-payment-list-div" }, /* @__PURE__ */ React6.createElement(Label, { htmlFor: "exampleFormControlInput2", className: "request-payment-input-label" }, "FULL NAME"), /* @__PURE__ */ React6.createElement(
|
884
|
+
"input",
|
885
|
+
{
|
886
|
+
className: "request-payment-input-box",
|
887
|
+
type: "text",
|
888
|
+
placeholder: "Full Name",
|
889
|
+
"data-token": "name",
|
890
|
+
onChange: handleChange,
|
891
|
+
value: requestDetails == null ? void 0 : requestDetails.name
|
892
|
+
}
|
893
|
+
), errors.name && /* @__PURE__ */ React6.createElement("small", { className: "request-payment-error-msg" }, errors.name)), /* @__PURE__ */ React6.createElement("div", { className: "request-payment-list-div" }, /* @__PURE__ */ React6.createElement(Label, { htmlFor: "requestPhoneNumber", className: "request-payment-input-label" }, "Phone Number"), /* @__PURE__ */ React6.createElement(
|
894
|
+
PatternFormat,
|
895
|
+
{
|
896
|
+
className: "request-payment-input-box",
|
897
|
+
placeholder: "Mobile number",
|
898
|
+
format: "+1 (###) ###-####",
|
899
|
+
value: phone,
|
900
|
+
onValueChange: (e) => {
|
901
|
+
handlePhoneChange(e);
|
902
|
+
}
|
903
|
+
}
|
904
|
+
), errors.phone && /* @__PURE__ */ React6.createElement("small", { className: "request-payment-error-msg" }, errors.phone)), /* @__PURE__ */ React6.createElement("div", { className: "request-payment-list-div" }, /* @__PURE__ */ React6.createElement(Label, { htmlFor: "exampleFormControlInput2", className: "request-payment-input-label" }, "EMAIL"), /* @__PURE__ */ React6.createElement(
|
905
|
+
"input",
|
906
|
+
{
|
907
|
+
className: "request-payment-input-box",
|
908
|
+
type: "text",
|
909
|
+
placeholder: "Email",
|
910
|
+
onChange: handleChange,
|
911
|
+
"data-token": "email",
|
912
|
+
value: requestDetails == null ? void 0 : requestDetails.email
|
913
|
+
}
|
914
|
+
), errors.email && /* @__PURE__ */ React6.createElement("small", { className: "request-payment-error-msg" }, errors.email)), /* @__PURE__ */ React6.createElement(
|
915
|
+
"button",
|
916
|
+
{
|
917
|
+
type: "button",
|
918
|
+
className: "request-payment-submit-button",
|
919
|
+
onClick: sendRequestPayment,
|
920
|
+
disabled: loading
|
921
|
+
},
|
922
|
+
loading ? "Loading..." : "Send Request"
|
923
|
+
), /* @__PURE__ */ React6.createElement("div", { className: "request-payment-fractal-powerd-by" }, /* @__PURE__ */ React6.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "17", height: "16", viewBox: "0 0 17 16", fill: "none" }, /* @__PURE__ */ React6.createElement("path", { d: "M15.2165 4.11839C15.1973 3.69746 15.1973 3.29567 15.1973 2.89387C15.1973 2.56861 14.9486 2.31988 14.6234 2.31988C12.2317 2.31988 10.4141 1.63109 8.90257 0.157848C8.67298 -0.0526158 8.32858 -0.0526158 8.09898 0.157848C6.58748 1.63109 4.76984 2.31988 2.37821 2.31988C2.05295 2.31988 1.80422 2.56861 1.80422 2.89387C1.80422 3.29567 1.80422 3.69746 1.78508 4.11839C1.70855 8.13632 1.59375 13.6466 8.30945 15.9617L8.50078 16L8.69211 15.9617C15.3887 13.6466 15.293 8.15546 15.2165 4.11839ZM8.04159 9.6861C7.92679 9.78176 7.79286 9.83916 7.63979 9.83916H7.62066C7.46759 9.83916 7.31453 9.76263 7.21887 9.64783L5.43949 7.67713L6.30048 6.91181L7.69719 8.46158L10.7967 5.5151L11.5812 6.35695L8.04159 9.6861Z", fill: "#727272" })), "Secure payments powered by ", /* @__PURE__ */ React6.createElement("span", null, "Fractal"), /* @__PURE__ */ React6.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 18 18", fill: "none" }, /* @__PURE__ */ React6.createElement("path", { d: "M17.4999 5.49758V7.01156C17.4999 7.05924 17.4595 7.09898 17.411 7.09898H12.3516C12.9169 6.54266 13.4781 5.99032 14.0434 5.434C14.0596 5.4181 14.0838 5.41016 14.104 5.41016H17.411C17.4595 5.41016 17.4999 5.44989 17.4999 5.49758Z", fill: "#61C699" }), /* @__PURE__ */ React6.createElement("path", { d: "M12.3462 10.9037V9.29836C12.3462 9.25067 12.3866 9.21094 12.435 9.21094H13.8523C13.929 9.21094 13.9694 9.30631 13.9129 9.35796C13.392 9.87455 12.8711 10.3911 12.3462 10.9037Z", fill: "#61C699" }), /* @__PURE__ */ React6.createElement("path", { d: "M12.4404 9.00523H15.6949C15.7434 9.00523 15.7838 8.96549 15.7838 8.91781V7.40383C15.7838 7.35614 15.7434 7.31641 15.6949 7.31641H12.4404C12.3919 7.31641 12.3516 7.35614 12.3516 7.40383V8.91781C12.3516 8.96549 12.3919 9.00523 12.4404 9.00523Z", fill: "#61C699" }), /* @__PURE__ */ React6.createElement("path", { d: "M10.1581 0.0120725L11.4906 0.77105C11.531 0.794892 11.5471 0.84655 11.5229 0.890261L8.99114 5.20173C8.78521 4.44275 8.57927 3.68775 8.37334 2.92877C8.36527 2.90493 8.3693 2.88109 8.38142 2.86122L10.0329 0.0438621C10.0612 0.000151419 10.1177 -0.0117697 10.1581 0.0120725Z", fill: "#61C699" }), /* @__PURE__ */ React6.createElement("path", { d: "M12.3382 7.10006L10.9289 6.29737C10.8886 6.27353 10.8724 6.22187 10.8966 6.17816L11.6033 4.97015C11.6436 4.9026 11.7446 4.91452 11.7648 4.99002C11.9546 5.69734 12.1484 6.40068 12.3382 7.10006Z", fill: "#61C699" }), /* @__PURE__ */ React6.createElement("path", { d: "M10.7107 6.0771L12.338 3.30345C12.3622 3.26372 12.346 3.20808 12.3057 3.18424L10.9732 2.42526C10.9328 2.40142 10.8763 2.41732 10.852 2.45705L9.22476 5.2307C9.20053 5.27044 9.21669 5.32607 9.25706 5.34991L10.5896 6.10889C10.634 6.13273 10.6865 6.11683 10.7107 6.0771Z", fill: "#61C699" }), /* @__PURE__ */ React6.createElement("path", { d: "M1.66713 3.51237L2.99963 2.75339C3.04001 2.72955 3.09654 2.74544 3.12077 2.78518L5.65251 7.09665C4.88128 6.89399 4.11408 6.69133 3.34285 6.48867C3.31862 6.4847 3.30247 6.4688 3.29036 6.44893L1.63483 3.63158C1.6106 3.58787 1.62271 3.53621 1.66713 3.51237Z", fill: "#61C699" }), /* @__PURE__ */ React6.createElement("path", { d: "M8.99793 5.20018L7.58871 5.99889C7.54833 6.02274 7.4918 6.00684 7.46757 5.9671L6.76095 4.76307C6.72057 4.69552 6.78517 4.61605 6.86189 4.63591C7.57256 4.82268 8.28726 5.00944 8.99793 5.20018Z", fill: "#61C699" }), /* @__PURE__ */ React6.createElement("path", { d: "M7.27986 6.07054L5.6526 3.2969C5.62837 3.25716 5.57588 3.24127 5.53146 3.26511L4.19896 4.02409C4.15858 4.04793 4.14243 4.09959 4.16666 4.1433L5.79392 6.91694C5.81815 6.95668 5.87064 6.97257 5.91506 6.94873L7.24756 6.18975C7.28794 6.16591 7.30409 6.11425 7.27986 6.07054Z", fill: "#61C699" }), /* @__PURE__ */ React6.createElement("path", { d: "M0.5 12.4998V10.9859C0.5 10.9382 0.540379 10.8984 0.588833 10.8984H5.64829C5.08299 11.4548 4.52172 12.0071 3.95642 12.5634C3.94027 12.5793 3.91604 12.5873 3.89585 12.5873H0.588833C0.540379 12.5873 0.5 12.5475 0.5 12.4998Z", fill: "#61C699" }), /* @__PURE__ */ React6.createElement("path", { d: "M5.65129 7.09766V8.70303C5.65129 8.75072 5.61091 8.79045 5.56246 8.79045H4.14516C4.06844 8.79045 4.02806 8.69508 4.08459 8.64343C4.60548 8.12685 5.12637 7.61424 5.65129 7.09766Z", fill: "#61C699" }), /* @__PURE__ */ React6.createElement("path", { d: "M5.55967 8.99609H2.30514C2.25669 8.99609 2.21631 9.03583 2.21631 9.08352V10.5975C2.21631 10.6452 2.25669 10.6849 2.30514 10.6849H5.55967C5.60813 10.6849 5.6485 10.6452 5.6485 10.5975V9.08352C5.6485 9.03583 5.60813 8.99609 5.55967 8.99609Z", fill: "#61C699" }), /* @__PURE__ */ React6.createElement("path", { d: "M7.82638 17.9865L6.49388 17.2276C6.4535 17.2037 6.43735 17.1521 6.46158 17.1083L8.99333 12.7969C9.19926 13.5559 9.40519 14.3109 9.61112 15.0698C9.6192 15.0937 9.61516 15.1175 9.60305 15.1374L7.95155 17.9547C7.91925 17.9985 7.86676 18.0104 7.82638 17.9865Z", fill: "#61C699" }), /* @__PURE__ */ React6.createElement("path", { d: "M5.64795 10.8984L7.05717 11.7011C7.09755 11.725 7.1137 11.7766 7.08947 11.8203L6.38284 13.0283C6.34246 13.0959 6.24152 13.084 6.22133 13.0085C6.02751 12.3012 5.83773 11.5978 5.64795 10.8984Z", fill: "#61C699" }), /* @__PURE__ */ React6.createElement("path", { d: "M7.2739 11.9258L5.64664 14.6994C5.62241 14.7392 5.63856 14.7948 5.67894 14.8187L7.01144 15.5776C7.05182 15.6015 7.10835 15.5856 7.13258 15.5458L8.75984 12.7722C8.78407 12.7325 8.76792 12.6768 8.72754 12.653L7.39504 11.894C7.35062 11.8702 7.29813 11.8861 7.2739 11.9258Z", fill: "#61C699" }), /* @__PURE__ */ React6.createElement("path", { d: "M16.3199 14.4866L14.9874 15.2456C14.947 15.2694 14.8904 15.2535 14.8662 15.2138L12.3345 10.9023C13.1057 11.105 13.8729 11.3077 14.6441 11.5103C14.6684 11.5143 14.6845 11.5302 14.6966 11.5501L16.3481 14.3674C16.3764 14.4111 16.3643 14.4628 16.3199 14.4866Z", fill: "#61C699" }), /* @__PURE__ */ React6.createElement("path", { d: "M8.99121 12.7983L10.4004 11.9956C10.4408 11.9717 10.4973 11.9876 10.5216 12.0274L11.2282 13.2354C11.2686 13.3029 11.204 13.3824 11.1272 13.3625C10.4166 13.1758 9.70188 12.989 8.99121 12.7983Z", fill: "#61C699" }), /* @__PURE__ */ React6.createElement("path", { d: "M10.7077 11.9285L12.3349 14.7021C12.3592 14.7418 12.4117 14.7577 12.4561 14.7339L13.7886 13.9749C13.829 13.9511 13.8451 13.8994 13.8209 13.8557L12.1936 11.0821C12.1694 11.0423 12.1169 11.0264 12.0725 11.0503L10.74 11.8092C10.6996 11.8331 10.6834 11.8847 10.7077 11.9285Z", fill: "#61C699" }))))
|
924
|
+
), /* @__PURE__ */ React6.createElement(
|
925
|
+
CustomModal2_default,
|
926
|
+
{
|
927
|
+
open: showConfirmationModal,
|
928
|
+
onClose: handleCloseConfirmationModal
|
929
|
+
},
|
930
|
+
/* @__PURE__ */ React6.createElement("div", { className: "fractal-popup-content", style: { padding: "0px" } }, /* @__PURE__ */ React6.createElement("div", { className: "request-payment-success-container" }, /* @__PURE__ */ React6.createElement("span", { className: "request-payment-close-popup", onClick: handleCloseConfirmationModal }, /* @__PURE__ */ React6.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 16 16", fill: "none" }, /* @__PURE__ */ React6.createElement("g", { "clip-path": "url(#clip0_12425_52336)" }, /* @__PURE__ */ React6.createElement("path", { d: "M9.46585 8.01168L15.6959 1.7814C16.1014 1.37615 16.1014 0.720912 15.6959 0.315659C15.2907 -0.0895946 14.6354 -0.0895946 14.2302 0.315659L7.99991 6.54593L1.76983 0.315659C1.36438 -0.0895946 0.709336 -0.0895946 0.304082 0.315659C-0.101361 0.720912 -0.101361 1.37615 0.304082 1.7814L6.53416 8.01168L0.304082 14.2419C-0.101361 14.6472 -0.101361 15.3024 0.304082 15.7077C0.506045 15.9098 0.771595 16.0114 1.03695 16.0114C1.30232 16.0114 1.56768 15.9098 1.76983 15.7077L7.99991 9.47742L14.2302 15.7077C14.4323 15.9098 14.6977 16.0114 14.9631 16.0114C15.2284 16.0114 15.4938 15.9098 15.6959 15.7077C16.1014 15.3024 16.1014 14.6472 15.6959 14.2419L9.46585 8.01168Z", fill: "#727272" })), /* @__PURE__ */ React6.createElement("defs", null, /* @__PURE__ */ React6.createElement("clipPath", { id: "clip0_12425_52336" }, /* @__PURE__ */ React6.createElement("rect", { width: "16", height: "16", fill: "white" }))))), /* @__PURE__ */ React6.createElement("div", { className: "request-payment-success-tick-div" }, /* @__PURE__ */ React6.createElement("div", { className: "request-payment-success-tick" }, /* @__PURE__ */ React6.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 16 16", fill: "none" }, /* @__PURE__ */ React6.createElement("path", { d: "M6.12669 13.9774C5.97396 14.131 5.76558 14.2167 5.54913 14.2167C5.33267 14.2167 5.1243 14.131 4.97157 13.9774L0.359012 9.36408C-0.119671 8.8854 -0.119671 8.10919 0.359012 7.6314L0.936573 7.05369C1.4154 6.57501 2.19072 6.57501 2.6694 7.05369L5.54913 9.93357L13.3306 2.15198C13.8094 1.6733 14.5855 1.6733 15.0634 2.15198L15.641 2.72969C16.1196 3.20837 16.1196 3.98444 15.641 4.46237L6.12669 13.9774Z", fill: "#61C699" })))), /* @__PURE__ */ React6.createElement("h6", { className: "request-payment-success-text" }, "The request ", /* @__PURE__ */ React6.createElement("br", null), "was sent"), /* @__PURE__ */ React6.createElement("h6", { className: "request-payment-success-subtext" }, "Please wait for the customer to pay"), /* @__PURE__ */ React6.createElement("div", { className: "request-payment-success-btn-div" }, /* @__PURE__ */ React6.createElement("button", { onClick: handleCloseConfirmationModal, className: "request-payment-success-btn2" }, "Close"))))
|
931
|
+
)));
|
932
|
+
}
|
933
|
+
|
938
934
|
// src/app/components/RequestPayment/RequestPaymentAllInput.tsx
|
935
|
+
import React7, { useState as useState2 } from "react";
|
936
|
+
import { Modal } from "react-bootstrap";
|
937
|
+
import { toast, ToastContainer } from "react-toastify";
|
938
|
+
import "react-toastify/dist/ReactToastify.css";
|
939
939
|
function RequestPaymentAllInput({ fractalpayClientKey }) {
|
940
940
|
const [isLoading, setIsLoading] = useState2(false);
|
941
941
|
const [show, setShow] = useState2(false);
|