ordering-ui-external 14.1.80 → 14.1.82
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/_bundles/{0.ordering-ui.d155a03b9a727f188284.js → 0.ordering-ui.946f2a2986a6d1d2dcdf.js} +1 -1
- package/_bundles/{1.ordering-ui.d155a03b9a727f188284.js → 1.ordering-ui.946f2a2986a6d1d2dcdf.js} +1 -1
- package/_bundles/{2.ordering-ui.d155a03b9a727f188284.js → 2.ordering-ui.946f2a2986a6d1d2dcdf.js} +1 -1
- package/_bundles/{4.ordering-ui.d155a03b9a727f188284.js → 4.ordering-ui.946f2a2986a6d1d2dcdf.js} +1 -1
- package/_bundles/{5.ordering-ui.d155a03b9a727f188284.js → 5.ordering-ui.946f2a2986a6d1d2dcdf.js} +1 -1
- package/_bundles/{6.ordering-ui.d155a03b9a727f188284.js → 6.ordering-ui.946f2a2986a6d1d2dcdf.js} +1 -1
- package/_bundles/{7.ordering-ui.d155a03b9a727f188284.js → 7.ordering-ui.946f2a2986a6d1d2dcdf.js} +2 -2
- package/_bundles/{8.ordering-ui.d155a03b9a727f188284.js → 8.ordering-ui.946f2a2986a6d1d2dcdf.js} +1 -1
- package/_bundles/{9.ordering-ui.d155a03b9a727f188284.js → 9.ordering-ui.946f2a2986a6d1d2dcdf.js} +1 -1
- package/_bundles/ordering-ui.946f2a2986a6d1d2dcdf.js +2 -0
- package/_modules/styles/Toast/index.js +1 -1
- package/_modules/themes/five/index.js +7 -0
- package/_modules/themes/five/src/components/Checkout/index.js +34 -4
- package/_modules/themes/five/src/components/InputPhoneNumber/index.js +3 -1
- package/_modules/themes/five/src/components/Modal/index.js +2 -1
- package/_modules/themes/five/src/components/PaymentOptionStripeLink/index.js +293 -0
- package/_modules/themes/five/src/components/PaymentOptionStripeLink/styles.js +28 -0
- package/_modules/themes/five/src/components/PaymentOptions/index.js +1 -1
- package/_modules/utils/index.js +2 -1
- package/package.json +2 -2
- package/src/styles/Toast/index.js +1 -1
- package/src/themes/five/index.js +2 -0
- package/src/themes/five/src/components/Checkout/index.js +30 -2
- package/src/themes/five/src/components/InputPhoneNumber/index.js +1 -1
- package/src/themes/five/src/components/Modal/index.js +1 -1
- package/src/themes/five/src/components/PaymentOptionStripeLink/index.js +298 -0
- package/src/themes/five/src/components/PaymentOptionStripeLink/styles.js +139 -0
- package/src/themes/five/src/components/PaymentOptions/index.js +1 -1
- package/src/utils/index.js +2 -1
- package/_bundles/ordering-ui.d155a03b9a727f188284.js +0 -2
- /package/_bundles/{7.ordering-ui.d155a03b9a727f188284.js.LICENSE.txt → 7.ordering-ui.946f2a2986a6d1d2dcdf.js.LICENSE.txt} +0 -0
- /package/_bundles/{ordering-ui.d155a03b9a727f188284.js.LICENSE.txt → ordering-ui.946f2a2986a6d1d2dcdf.js.LICENSE.txt} +0 -0
|
@@ -40,7 +40,7 @@ var Toast = exports.Toast = function Toast() {
|
|
|
40
40
|
toast.style.animation = 'fadein 0.5s, fadeout 0.5s 2.5s';
|
|
41
41
|
setTimeout(function () {
|
|
42
42
|
toast.style.visibility = 'hidden';
|
|
43
|
-
hideToast();
|
|
43
|
+
hideToast && hideToast();
|
|
44
44
|
}, duration);
|
|
45
45
|
}, [toastConfig]);
|
|
46
46
|
if (!toastConfig) {
|
|
@@ -465,6 +465,12 @@ Object.defineProperty(exports, "PaymentOptionStripe", {
|
|
|
465
465
|
return _PaymentOptionStripe.PaymentOptionStripe;
|
|
466
466
|
}
|
|
467
467
|
});
|
|
468
|
+
Object.defineProperty(exports, "PaymentOptionStripeLink", {
|
|
469
|
+
enumerable: true,
|
|
470
|
+
get: function get() {
|
|
471
|
+
return _PaymentOptionStripeLink.PaymentOptionStripeLink;
|
|
472
|
+
}
|
|
473
|
+
});
|
|
468
474
|
Object.defineProperty(exports, "PaymentOptionWallet", {
|
|
469
475
|
enumerable: true,
|
|
470
476
|
get: function get() {
|
|
@@ -849,6 +855,7 @@ var _PageBanner = require("./src/components/PageBanner");
|
|
|
849
855
|
var _PaymentOptionCash = require("./src/components/PaymentOptionCash");
|
|
850
856
|
var _PaymentOptions = require("./src/components/PaymentOptions");
|
|
851
857
|
var _PaymentOptionStripe = require("./src/components/PaymentOptionStripe");
|
|
858
|
+
var _PaymentOptionStripeLink = require("./src/components/PaymentOptionStripeLink");
|
|
852
859
|
var _PaymentOptionWallet = require("./src/components/PaymentOptionWallet");
|
|
853
860
|
var _PlaceSpot = require("./src/components/PlaceSpot");
|
|
854
861
|
var _ProductForm = require("./src/components/ProductForm");
|
|
@@ -13,6 +13,7 @@ var _Modal = require("../Modal");
|
|
|
13
13
|
var _orderingComponentsExternal = require("ordering-components-external");
|
|
14
14
|
var _useWindowSize = require("../../../../../hooks/useWindowSize");
|
|
15
15
|
var _UpsellingPage = require("../UpsellingPage");
|
|
16
|
+
var _PaymentOptionStripeLink = require("../PaymentOptionStripeLink");
|
|
16
17
|
var _libphonenumberJs = _interopRequireDefault(require("libphonenumber-js"));
|
|
17
18
|
var _reactRouterDom = require("react-router-dom");
|
|
18
19
|
var _reactBootstrapIcons = require("react-bootstrap-icons");
|
|
@@ -66,7 +67,7 @@ var mapConfigs = {
|
|
|
66
67
|
};
|
|
67
68
|
var driverTipsTypes = [1, 2];
|
|
68
69
|
var CheckoutUI = function CheckoutUI(props) {
|
|
69
|
-
var
|
|
70
|
+
var _businessDetails$busi, _businessDetails$busi2, _configs$table_numer_, _businessConfigs$find, _businessConfigs$find2, _configs$cash_wallet, _configs$wallet_enabl, _theme$header, _theme$colors, _theme$colors$split, _configs$driver_tip_a, _cart$comment, _cart$offers, _paymethodSelected$da, _paymethodSelected$da2, _cardList$cards, _cartState$cart, _configs$driver_tip_o, _configs$driver_tip_o2, _configs$driver_tip_o3, _instructionsOptions$, _theme$checkout, _theme$checkout2, _theme$checkout3, _theme$checkout4, _loyaltyPlansState$re, _creditPointPlan$busi, _cart$business2, _businessDetails$busi3, _theme$images, _configs$google_maps_, _customerState$user, _customerState$user2, _Object$values2, _businessDetails$busi4, _businessDetails$busi5, _businessDetails$busi6, _businessDetails$busi7, _businessDetails$busi8, _businessDetails$busi9, _businessDetails$erro, _businessDetails$erro2, _businessDetails$busi10, _businessDetails$busi11, _businessDetails$busi12, _configs$driver_tip_t, _configs$driver_tip_u, _configs$driver_tip_t2, _cartState$cart$spot_, _cartState$cart2, _cart$business3, _cart$products2, _ref2, _creditPointPlanOnBus, _configs$driver_tip_t3, _configs$driver_tip_u2, _configs$driver_tip_t4, _customerState$user3, _theme$colors2, _options$address, _businessDetails$busi13, _businessDetails$busi14, _cart$paymethod_data;
|
|
70
71
|
var cart = props.cart,
|
|
71
72
|
errors = props.errors,
|
|
72
73
|
placing = props.placing,
|
|
@@ -161,7 +162,8 @@ var CheckoutUI = function CheckoutUI(props) {
|
|
|
161
162
|
var _useState17 = (0, _react.useState)({
|
|
162
163
|
login: false,
|
|
163
164
|
signup: false,
|
|
164
|
-
isGuest: false
|
|
165
|
+
isGuest: false,
|
|
166
|
+
stripeLink: false
|
|
165
167
|
}),
|
|
166
168
|
_useState18 = _slicedToArray(_useState17, 2),
|
|
167
169
|
openModal = _useState18[0],
|
|
@@ -182,7 +184,7 @@ var CheckoutUI = function CheckoutUI(props) {
|
|
|
182
184
|
_useState26 = _slicedToArray(_useState25, 2),
|
|
183
185
|
productLoading = _useState26[0],
|
|
184
186
|
setProductLoading = _useState26[1];
|
|
185
|
-
var shouldActivateOrderDetailModal =
|
|
187
|
+
var shouldActivateOrderDetailModal = isCustomerMode && (paymethodSelected === null || paymethodSelected === void 0 ? void 0 : paymethodSelected.gateway) !== 'stripe_link';
|
|
186
188
|
var orderTypeList = [t('DELIVERY', 'Delivery'), t('PICKUP', 'Pickup'), t('EAT_IN', 'Eat in'), t('CURBSIDE', 'Curbside'), t('DRIVE_THRU', 'Drive thru')];
|
|
187
189
|
var cardsMethods = ['stripe', 'credomatic'];
|
|
188
190
|
var stripePaymethods = ['stripe', 'stripe_connect', 'stripe_redirect'];
|
|
@@ -279,6 +281,11 @@ var CheckoutUI = function CheckoutUI(props) {
|
|
|
279
281
|
if (behalfName) {
|
|
280
282
|
body.on_behalf_of = behalfName;
|
|
281
283
|
}
|
|
284
|
+
if ((paymethodSelected === null || paymethodSelected === void 0 ? void 0 : paymethodSelected.gateway) === 'stripe_link') {
|
|
285
|
+
setOpenModal(_objectSpread(_objectSpread({}, openModal), {}, {
|
|
286
|
+
stripeLink: true
|
|
287
|
+
}));
|
|
288
|
+
}
|
|
282
289
|
handlerClickPlaceOrder && handlerClickPlaceOrder(null, body);
|
|
283
290
|
return;
|
|
284
291
|
}
|
|
@@ -686,7 +693,14 @@ var CheckoutUI = function CheckoutUI(props) {
|
|
|
686
693
|
orderDetail: true
|
|
687
694
|
})) : handlePlaceOrder();
|
|
688
695
|
}
|
|
689
|
-
}, !(cart !== null && cart !== void 0 && cart.valid_maximum) ? "".concat(t('MAXIMUM_SUBTOTAL_ORDER', 'Maximum subtotal order'), ": ").concat(parsePrice(cart === null || cart === void 0 ? void 0 : cart.maximum)) : !(cart !== null && cart !== void 0 && cart.valid_minimum) && !((cart === null || cart === void 0 ? void 0 : cart.discount_type) === 1 && (cart === null || cart === void 0 ? void 0 : cart.discount_rate) === 100) ? "".concat(t('MINIMUN_SUBTOTAL_ORDER', 'Minimum subtotal order:'), " ").concat(parsePrice(cart === null || cart === void 0 ? void 0 : cart.minimum)) : placing ? t('PLACING_ORDER', 'Placing order') : t('PLACE_ORDER', 'Place Order'))),
|
|
696
|
+
}, !(cart !== null && cart !== void 0 && cart.valid_maximum) ? "".concat(t('MAXIMUM_SUBTOTAL_ORDER', 'Maximum subtotal order'), ": ").concat(parsePrice(cart === null || cart === void 0 ? void 0 : cart.maximum)) : !(cart !== null && cart !== void 0 && cart.valid_minimum) && !((cart === null || cart === void 0 ? void 0 : cart.discount_type) === 1 && (cart === null || cart === void 0 ? void 0 : cart.discount_rate) === 100) ? "".concat(t('MINIMUN_SUBTOTAL_ORDER', 'Minimum subtotal order:'), " ").concat(parsePrice(cart === null || cart === void 0 ? void 0 : cart.minimum)) : placing ? t('PLACING_ORDER', 'Placing order') : t('PLACE_ORDER', 'Place Order'))), isCustomerMode && (paymethodSelected === null || paymethodSelected === void 0 ? void 0 : paymethodSelected.gateway) === 'stripe_link' && (cart === null || cart === void 0 ? void 0 : cart.status) === 2 && /*#__PURE__*/_react.default.createElement(_styles.WrapperPlaceOrderButton, null, /*#__PURE__*/_react.default.createElement(_Buttons.Button, {
|
|
697
|
+
color: "secundary",
|
|
698
|
+
onClick: function onClick() {
|
|
699
|
+
return setOpenModal(_objectSpread(_objectSpread({}, openModal), {}, {
|
|
700
|
+
stripeLink: true
|
|
701
|
+
}));
|
|
702
|
+
}
|
|
703
|
+
}, t('RESEND_STRIPE_LIKE', 'Resend stripe link'))), !(cart !== null && cart !== void 0 && cart.valid_address) && (cart === null || cart === void 0 ? void 0 : cart.status) !== 2 && /*#__PURE__*/_react.default.createElement(_styles.WarningText, null, t('INVALID_CART_ADDRESS', 'Selected address is invalid, please select a closer address.')), !paymethodSelected && (cart === null || cart === void 0 ? void 0 : cart.balance) > 0 && (cart === null || cart === void 0 ? void 0 : cart.status) !== 2 && /*#__PURE__*/_react.default.createElement(_styles.WarningText, null, t('WARNING_NOT_PAYMENT_SELECTED', 'Please, select a payment method to place order.')), !(cart !== null && cart !== void 0 && cart.valid_products) && (cart === null || cart === void 0 ? void 0 : cart.status) !== 2 && /*#__PURE__*/_react.default.createElement(_styles.WarningText, null, t('WARNING_INVALID_PRODUCTS', 'Some products are invalid, please check them.')), isTableNumberEnabled === '1' && (options === null || options === void 0 ? void 0 : options.type) === 3 && !(cart !== null && cart !== void 0 && cart.spot_number || placeSpotNumber) && /*#__PURE__*/_react.default.createElement(_styles.WarningText, null, t('WARNING_PLACE_SPOT', 'Please, select your spot to place order.')), validateDriverTipField && !isGiftCardCart && /*#__PURE__*/_react.default.createElement(_styles.WarningText, null, t('WARNING_INVALID_DRIVER_TIP', 'Driver Tip is required.')), validateCouponField && /*#__PURE__*/_react.default.createElement(_styles.WarningText, null, t('WARNING_INVALID_COUPON_FIELD', 'Coupon is required.')), validateCommentsCartField && /*#__PURE__*/_react.default.createElement(_styles.WarningText, null, t('WARNING_INVALID_CART_COMMENTS', 'Cart comments is required.')), validateZipcodeCard && /*#__PURE__*/_react.default.createElement(_styles.WarningText, null, t('WARNING_CARD_ZIPCODE_REQUIRED', 'Your card selected has not zipcode')), !!alseaCheckPriceError && /*#__PURE__*/_react.default.createElement(_styles.WarningText, null, alseaCheckPriceError), isLoadingCheckprice && /*#__PURE__*/_react.default.createElement(_styles.WarningText, null, t('RECALCULATING_TOTAL_PRICE', 'Recalculating total price')), (cart === null || cart === void 0 ? void 0 : cart.valid_preorder) !== undefined && !(cart !== null && cart !== void 0 && cart.valid_preorder) && /*#__PURE__*/_react.default.createElement(_styles.WarningText, null, t('INVALID_CART_MOMENT', 'Selected schedule time is invalid, please select a schedule into the business schedule interval.'))), windowSize.width < 576 && !cartState.loading && cart && (cart === null || cart === void 0 ? void 0 : cart.status) !== 2 && /*#__PURE__*/_react.default.createElement(_styles.MobileWrapperPlaceOrderButton, null, /*#__PURE__*/_react.default.createElement("span", null, parsePrice(cart === null || cart === void 0 ? void 0 : cart.total)), /*#__PURE__*/_react.default.createElement(_Buttons.Button, {
|
|
690
704
|
color: !(cart !== null && cart !== void 0 && cart.valid_maximum) || !(cart !== null && cart !== void 0 && cart.valid_minimum) && !((cart === null || cart === void 0 ? void 0 : cart.discount_type) === 1 && (cart === null || cart === void 0 ? void 0 : cart.discount_rate) === 100) ? 'secundary' : 'primary',
|
|
691
705
|
disabled: isDisablePlaceOrderButton,
|
|
692
706
|
onClick: function onClick() {
|
|
@@ -791,6 +805,22 @@ var CheckoutUI = function CheckoutUI(props) {
|
|
|
791
805
|
orderType: options === null || options === void 0 ? void 0 : options.type,
|
|
792
806
|
customerAddress: options === null || options === void 0 || (_options$address = options.address) === null || _options$address === void 0 ? void 0 : _options$address.address,
|
|
793
807
|
onClick: handlePlaceOrder
|
|
808
|
+
})), /*#__PURE__*/_react.default.createElement(_Modal.Modal, {
|
|
809
|
+
open: openModal.stripeLink,
|
|
810
|
+
width: "650px",
|
|
811
|
+
padding: "30px 10px",
|
|
812
|
+
onClose: function onClose() {
|
|
813
|
+
return setOpenModal(_objectSpread(_objectSpread({}, openModal), {}, {
|
|
814
|
+
stripeLink: false
|
|
815
|
+
}));
|
|
816
|
+
},
|
|
817
|
+
title: t('SEND_SMS_WHATSAPP', 'Send SMS/WhatsApp'),
|
|
818
|
+
modalIconStyle: {
|
|
819
|
+
top: 20
|
|
820
|
+
}
|
|
821
|
+
}, /*#__PURE__*/_react.default.createElement(_PaymentOptionStripeLink.PaymentOptionStripeLink, {
|
|
822
|
+
businessConfigs: (_businessDetails$busi13 = businessDetails === null || businessDetails === void 0 || (_businessDetails$busi14 = businessDetails.business) === null || _businessDetails$busi14 === void 0 ? void 0 : _businessDetails$busi14.configs) !== null && _businessDetails$busi13 !== void 0 ? _businessDetails$busi13 : [],
|
|
823
|
+
paymentURL: cart === null || cart === void 0 || (_cart$paymethod_data = cart.paymethod_data) === null || _cart$paymethod_data === void 0 || (_cart$paymethod_data = _cart$paymethod_data.result) === null || _cart$paymethod_data === void 0 ? void 0 : _cart$paymethod_data.payment_url
|
|
794
824
|
})));
|
|
795
825
|
};
|
|
796
826
|
var Checkout = exports.Checkout = function Checkout(props) {
|
|
@@ -102,7 +102,9 @@ var InputPhoneNumber = exports.InputPhoneNumber = function InputPhoneNumber(prop
|
|
|
102
102
|
disabled: disabled,
|
|
103
103
|
isValid: value ? isValidPhoneNumber(value) : true,
|
|
104
104
|
isError: isError
|
|
105
|
-
}, !useProfileFormStyle && /*#__PURE__*/_react.default.createElement(_styles.InputBeforeIconWrapper,
|
|
105
|
+
}, !useProfileFormStyle && /*#__PURE__*/_react.default.createElement(_styles.InputBeforeIconWrapper, {
|
|
106
|
+
className: "input-icon"
|
|
107
|
+
}, /*#__PURE__*/_react.default.createElement(_BsPhone.default, null)), /*#__PURE__*/_react.default.createElement(_reactPhoneNumberInput.default, {
|
|
106
108
|
ref: phoneRef,
|
|
107
109
|
disabled: disabled,
|
|
108
110
|
placeholder: t('PHONE_NUMBER', 'Phone number'),
|
|
@@ -75,7 +75,8 @@ var ModalUI = function ModalUI(props) {
|
|
|
75
75
|
disableOverflowX: disableOverflowX,
|
|
76
76
|
style: props.customStyle
|
|
77
77
|
}, isProductForm && /*#__PURE__*/_react.default.createElement(_styles.ModalBackHeader, null), !hideCloseDefault && /*#__PURE__*/_react.default.createElement(_styles.ModalIconWrapper, null, /*#__PURE__*/_react.default.createElement(_styles.ModalIcon, {
|
|
78
|
-
isProductForm: isProductForm
|
|
78
|
+
isProductForm: isProductForm,
|
|
79
|
+
style: props.modalIconStyle
|
|
79
80
|
}, authModal && onRemove ? /*#__PURE__*/_react.default.createElement(_MdClose.default, {
|
|
80
81
|
onClick: function onClick() {
|
|
81
82
|
return onRemove();
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.PaymentOptionStripeLinkUI = exports.PaymentOptionStripeLink = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _libphonenumberJs = _interopRequireDefault(require("libphonenumber-js"));
|
|
10
|
+
var _reactPhoneNumberInput = require("react-phone-number-input");
|
|
11
|
+
var _reactBootstrapIcons = require("react-bootstrap-icons");
|
|
12
|
+
var _orderingComponentsExternal = require("ordering-components-external");
|
|
13
|
+
var _Confirm = require("../Confirm");
|
|
14
|
+
var _InputPhoneNumber = require("../InputPhoneNumber");
|
|
15
|
+
var _Inputs = require("../../styles/Inputs");
|
|
16
|
+
var _Buttons = require("../../styles/Buttons");
|
|
17
|
+
var _styles = require("./styles");
|
|
18
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
20
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
21
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
22
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
23
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
24
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
25
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
26
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
27
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
28
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
29
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
30
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
31
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
32
|
+
var PaymentOptionStripeLinkUI = exports.PaymentOptionStripeLinkUI = function PaymentOptionStripeLinkUI(props) {
|
|
33
|
+
var _businessConfigs$find, _businessConfigs$find2, _ref, _userInfo$name, _ref2, _userInfo$lastname, _stripeLinkState$paym, _stripeLinkState$paym2;
|
|
34
|
+
var userInfo = props.userInfo,
|
|
35
|
+
businessConfigs = props.businessConfigs,
|
|
36
|
+
stripeLinkState = props.stripeLinkState,
|
|
37
|
+
setStripeLinkState = props.setStripeLinkState,
|
|
38
|
+
handleSendStripeLink = props.handleSendStripeLink,
|
|
39
|
+
handleChangeUserInfo = props.handleChangeUserInfo;
|
|
40
|
+
var _useLanguage = (0, _orderingComponentsExternal.useLanguage)(),
|
|
41
|
+
_useLanguage2 = _slicedToArray(_useLanguage, 2),
|
|
42
|
+
t = _useLanguage2[1];
|
|
43
|
+
var _useCustomer = (0, _orderingComponentsExternal.useCustomer)(),
|
|
44
|
+
_useCustomer2 = _slicedToArray(_useCustomer, 1),
|
|
45
|
+
user = _useCustomer2[0].user;
|
|
46
|
+
var _useConfig = (0, _orderingComponentsExternal.useConfig)(),
|
|
47
|
+
_useConfig2 = _slicedToArray(_useConfig, 1),
|
|
48
|
+
configs = _useConfig2[0].configs;
|
|
49
|
+
var _useState = (0, _react.useState)({
|
|
50
|
+
open: false,
|
|
51
|
+
content: []
|
|
52
|
+
}),
|
|
53
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
54
|
+
alertState = _useState2[0],
|
|
55
|
+
setAlertState = _useState2[1];
|
|
56
|
+
var _useState3 = (0, _react.useState)(null),
|
|
57
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
58
|
+
isValidPhoneNumber = _useState4[0],
|
|
59
|
+
setIsValidPhoneNumber = _useState4[1];
|
|
60
|
+
var _useState5 = (0, _react.useState)(null),
|
|
61
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
62
|
+
userPhoneNumber = _useState6[0],
|
|
63
|
+
setUserPhoneNumber = _useState6[1];
|
|
64
|
+
var _useState7 = (0, _react.useState)(false),
|
|
65
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
66
|
+
showCountdown = _useState8[0],
|
|
67
|
+
setShowCountdown = _useState8[1];
|
|
68
|
+
var _useState9 = (0, _react.useState)(59),
|
|
69
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
70
|
+
countdown = _useState10[0],
|
|
71
|
+
setCountdown = _useState10[1];
|
|
72
|
+
var isWhatappEnabled = (businessConfigs === null || businessConfigs === void 0 || (_businessConfigs$find = businessConfigs.find(function (config) {
|
|
73
|
+
return (config === null || config === void 0 ? void 0 : config.key) === 'allow_text_messages_whatsapp';
|
|
74
|
+
})) === null || _businessConfigs$find === void 0 ? void 0 : _businessConfigs$find.value) === '1';
|
|
75
|
+
var isSmsEnabled = (businessConfigs === null || businessConfigs === void 0 || (_businessConfigs$find2 = businessConfigs.find(function (config) {
|
|
76
|
+
return (config === null || config === void 0 ? void 0 : config.key) === 'allow_text_messages_sms';
|
|
77
|
+
})) === null || _businessConfigs$find2 === void 0 ? void 0 : _businessConfigs$find2.value) === '1';
|
|
78
|
+
var setUserCellPhone = function setUserCellPhone(_user) {
|
|
79
|
+
if (userPhoneNumber && !userPhoneNumber.includes('null')) {
|
|
80
|
+
setUserPhoneNumber(userPhoneNumber);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
var cellphone = _user !== null && _user !== void 0 && _user.guest_id ? _user === null || _user === void 0 ? void 0 : _user.guest_cellphone : _user === null || _user === void 0 ? void 0 : _user.cellphone;
|
|
84
|
+
if (cellphone) {
|
|
85
|
+
var phone = null;
|
|
86
|
+
if (_user !== null && _user !== void 0 && _user.country_phone_code) {
|
|
87
|
+
phone = "+".concat(_user === null || _user === void 0 ? void 0 : _user.country_phone_code, " ").concat(cellphone);
|
|
88
|
+
} else {
|
|
89
|
+
phone = cellphone;
|
|
90
|
+
}
|
|
91
|
+
setUserPhoneNumber(phone);
|
|
92
|
+
handleChangeUserInfo({
|
|
93
|
+
name: user === null || user === void 0 ? void 0 : user.name,
|
|
94
|
+
lastname: user === null || user === void 0 ? void 0 : user.lastname,
|
|
95
|
+
country_phone_code: _user === null || _user === void 0 ? void 0 : _user.country_phone_code,
|
|
96
|
+
cellphone: cellphone
|
|
97
|
+
});
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
setUserPhoneNumber(cellphone || '');
|
|
101
|
+
};
|
|
102
|
+
var handleChangePhoneNumber = function handleChangePhoneNumber(number, isValid, rawNumber) {
|
|
103
|
+
setUserPhoneNumber(number);
|
|
104
|
+
var phoneNumberParser = null;
|
|
105
|
+
var phoneNumber = {
|
|
106
|
+
country_phone_code: '',
|
|
107
|
+
cellphone: ''
|
|
108
|
+
};
|
|
109
|
+
if (isValid) {
|
|
110
|
+
var _configs$validation_p, _configs$validation_p2;
|
|
111
|
+
phoneNumberParser = (0, _libphonenumberJs.default)(number);
|
|
112
|
+
if (!parseInt((_configs$validation_p = configs === null || configs === void 0 || (_configs$validation_p2 = configs.validation_phone_number_lib) === null || _configs$validation_p2 === void 0 ? void 0 : _configs$validation_p2.value) !== null && _configs$validation_p !== void 0 ? _configs$validation_p : 1, 10)) {
|
|
113
|
+
var _phoneNumberParser, _formatPhoneNumber, _formatPhoneNumber$re;
|
|
114
|
+
if ((_phoneNumberParser = phoneNumberParser) !== null && _phoneNumberParser !== void 0 && _phoneNumberParser.nationalNumber) phoneNumberParser.nationalNumber = (_formatPhoneNumber = (0, _reactPhoneNumberInput.formatPhoneNumber)(number)) === null || _formatPhoneNumber === void 0 || (_formatPhoneNumber$re = _formatPhoneNumber.replace) === null || _formatPhoneNumber$re === void 0 ? void 0 : _formatPhoneNumber$re.call(_formatPhoneNumber, /\s/g, '');
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (phoneNumberParser) {
|
|
118
|
+
var _phoneNumberParser2, _phoneNumberParser3;
|
|
119
|
+
phoneNumber = {
|
|
120
|
+
country_phone_code: (_phoneNumberParser2 = phoneNumberParser) === null || _phoneNumberParser2 === void 0 ? void 0 : _phoneNumberParser2.countryCallingCode,
|
|
121
|
+
cellphone: (_phoneNumberParser3 = phoneNumberParser) === null || _phoneNumberParser3 === void 0 ? void 0 : _phoneNumberParser3.nationalNumber
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
handleChangeUserInfo(_objectSpread({}, phoneNumber));
|
|
125
|
+
};
|
|
126
|
+
var closeAlert = function closeAlert() {
|
|
127
|
+
setAlertState({
|
|
128
|
+
open: false,
|
|
129
|
+
content: []
|
|
130
|
+
});
|
|
131
|
+
setStripeLinkState(_objectSpread(_objectSpread({}, stripeLinkState), {}, {
|
|
132
|
+
error: null
|
|
133
|
+
}));
|
|
134
|
+
};
|
|
135
|
+
var onSubmit = function onSubmit(type) {
|
|
136
|
+
var isPhoneNumberValid = userPhoneNumber ? isValidPhoneNumber : true;
|
|
137
|
+
var content = [];
|
|
138
|
+
if (!userPhoneNumber) {
|
|
139
|
+
content.push(t('VALIDATION_ERROR_MOBILE_PHONE_REQUIRED', 'The field Phone Number is required.'));
|
|
140
|
+
setAlertState({
|
|
141
|
+
open: true,
|
|
142
|
+
content: content
|
|
143
|
+
});
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
if (!isPhoneNumberValid && userPhoneNumber) {
|
|
147
|
+
if (user !== null && user !== void 0 && user.country_phone_code) {
|
|
148
|
+
content.push(t('INVALID_ERROR_PHONE_NUMBER', 'The Phone Number field is invalid'));
|
|
149
|
+
setAlertState({
|
|
150
|
+
open: true,
|
|
151
|
+
content: content
|
|
152
|
+
});
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
content.push(t('INVALID_ERROR_COUNTRY_CODE_PHONE_NUMBER', 'The country code of the phone number is invalid'));
|
|
156
|
+
setAlertState({
|
|
157
|
+
open: true,
|
|
158
|
+
content: content
|
|
159
|
+
});
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
if (Object.keys(userInfo).length > 0 && isPhoneNumberValid) {
|
|
163
|
+
if ((content === null || content === void 0 ? void 0 : content.length) > 0) {
|
|
164
|
+
setAlertState({
|
|
165
|
+
open: true,
|
|
166
|
+
content: content
|
|
167
|
+
});
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
if (!(stripeLinkState !== null && stripeLinkState !== void 0 && stripeLinkState.paymentURL)) {
|
|
171
|
+
setAlertState({
|
|
172
|
+
open: true,
|
|
173
|
+
content: [t('ERROR_LINK_NOT_AVAILABLE', 'The link is not available please reload the page')]
|
|
174
|
+
});
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
handleSendStripeLink(type, function () {
|
|
178
|
+
setShowCountdown(true);
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
(0, _react.useEffect)(function () {
|
|
183
|
+
var timer;
|
|
184
|
+
if (showCountdown && countdown > 0) {
|
|
185
|
+
timer = setTimeout(function () {
|
|
186
|
+
return setCountdown(countdown - 1);
|
|
187
|
+
}, 1000);
|
|
188
|
+
} else if (countdown === 0) {
|
|
189
|
+
setShowCountdown(false);
|
|
190
|
+
setCountdown(59);
|
|
191
|
+
}
|
|
192
|
+
return function () {
|
|
193
|
+
return clearTimeout(timer);
|
|
194
|
+
};
|
|
195
|
+
}, [showCountdown, countdown]);
|
|
196
|
+
(0, _react.useEffect)(function () {
|
|
197
|
+
if (user) {
|
|
198
|
+
setUserCellPhone(user);
|
|
199
|
+
}
|
|
200
|
+
}, [user]);
|
|
201
|
+
(0, _react.useEffect)(function () {
|
|
202
|
+
if (!(stripeLinkState !== null && stripeLinkState !== void 0 && stripeLinkState.loading) && stripeLinkState !== null && stripeLinkState !== void 0 && stripeLinkState.error) {
|
|
203
|
+
setAlertState({
|
|
204
|
+
open: true,
|
|
205
|
+
content: (stripeLinkState === null || stripeLinkState === void 0 ? void 0 : stripeLinkState.error) || [t('ERROR', 'Error')]
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
}, [stripeLinkState === null || stripeLinkState === void 0 ? void 0 : stripeLinkState.loading]);
|
|
209
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, showCountdown ? /*#__PURE__*/_react.default.createElement(_styles.CodeSentContainer, null, /*#__PURE__*/_react.default.createElement("h3", null, t('CODE_HAS_BEEN_SENT_TO', 'Link has been sent to _phone_').replace('_phone_', userPhoneNumber)), /*#__PURE__*/_react.default.createElement("div", {
|
|
210
|
+
className: "countdown"
|
|
211
|
+
}, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("p", null, countdown))), /*#__PURE__*/_react.default.createElement(_Buttons.Button, {
|
|
212
|
+
color: "primary",
|
|
213
|
+
disabled: true
|
|
214
|
+
}, t('RESEND_LINK', 'Resend link'))) : /*#__PURE__*/_react.default.createElement(_styles.StripeLinkContainer, null, /*#__PURE__*/_react.default.createElement("p", {
|
|
215
|
+
className: "message"
|
|
216
|
+
}, t('SEND_SMS_WHATSAPP_MESSAGE', 'The link will be send to the following number')), /*#__PURE__*/_react.default.createElement("div", {
|
|
217
|
+
className: "user-info"
|
|
218
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
219
|
+
className: "inputs-wrapper"
|
|
220
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
221
|
+
className: "first-input"
|
|
222
|
+
}, /*#__PURE__*/_react.default.createElement(_styles.InputBeforeIconWrapper, null, /*#__PURE__*/_react.default.createElement(_reactBootstrapIcons.Person, null)), /*#__PURE__*/_react.default.createElement(_Inputs.Input, {
|
|
223
|
+
type: "text",
|
|
224
|
+
name: "name",
|
|
225
|
+
className: "form",
|
|
226
|
+
placeholder: t('NAME', 'Name'),
|
|
227
|
+
defaultValue: (_ref = (_userInfo$name = userInfo === null || userInfo === void 0 ? void 0 : userInfo.name) !== null && _userInfo$name !== void 0 ? _userInfo$name : user === null || user === void 0 ? void 0 : user.name) !== null && _ref !== void 0 ? _ref : '',
|
|
228
|
+
onChange: function onChange(e) {
|
|
229
|
+
return handleChangeUserInfo({
|
|
230
|
+
name: e.target.value
|
|
231
|
+
});
|
|
232
|
+
},
|
|
233
|
+
autoComplete: "off"
|
|
234
|
+
})), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_styles.InputBeforeIconWrapper, null, /*#__PURE__*/_react.default.createElement(_reactBootstrapIcons.Person, null)), /*#__PURE__*/_react.default.createElement(_Inputs.Input, {
|
|
235
|
+
type: "text",
|
|
236
|
+
name: "lastname",
|
|
237
|
+
className: "form",
|
|
238
|
+
placeholder: t('LAST_NAME', 'Last name'),
|
|
239
|
+
defaultValue: (_ref2 = (_userInfo$lastname = userInfo === null || userInfo === void 0 ? void 0 : userInfo.lastname) !== null && _userInfo$lastname !== void 0 ? _userInfo$lastname : user === null || user === void 0 ? void 0 : user.lastname) !== null && _ref2 !== void 0 ? _ref2 : '',
|
|
240
|
+
onChange: function onChange(e) {
|
|
241
|
+
return handleChangeUserInfo({
|
|
242
|
+
lastname: e.target.value
|
|
243
|
+
});
|
|
244
|
+
},
|
|
245
|
+
autoComplete: "off"
|
|
246
|
+
}))), /*#__PURE__*/_react.default.createElement(_styles.InputPhoneNumberWrapper, null, /*#__PURE__*/_react.default.createElement(_InputPhoneNumber.InputPhoneNumber, {
|
|
247
|
+
user: user,
|
|
248
|
+
value: userPhoneNumber,
|
|
249
|
+
setValue: handleChangePhoneNumber,
|
|
250
|
+
handleIsValid: setIsValidPhoneNumber
|
|
251
|
+
}))), /*#__PURE__*/_react.default.createElement("div", {
|
|
252
|
+
className: "buttons-wrapper"
|
|
253
|
+
}, isSmsEnabled && /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_Buttons.Button, {
|
|
254
|
+
color: "primary",
|
|
255
|
+
onClick: function onClick() {
|
|
256
|
+
return onSubmit('sms');
|
|
257
|
+
},
|
|
258
|
+
disabled: stripeLinkState.loading
|
|
259
|
+
}, t('SEND_SMS', 'Send SMS'))), isWhatappEnabled && /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_Buttons.Button, {
|
|
260
|
+
color: "primary",
|
|
261
|
+
outline: true,
|
|
262
|
+
onClick: function onClick() {
|
|
263
|
+
return onSubmit('whatsapp');
|
|
264
|
+
},
|
|
265
|
+
disabled: stripeLinkState.loading
|
|
266
|
+
}, t('SEND_WHATSAPP', 'Send WhatsApp'))), !isSmsEnabled && !isWhatappEnabled && /*#__PURE__*/_react.default.createElement("div", {
|
|
267
|
+
className: "url-link"
|
|
268
|
+
}, stripeLinkState !== null && stripeLinkState !== void 0 && stripeLinkState.loading ? /*#__PURE__*/_react.default.createElement("div", {
|
|
269
|
+
className: "loading"
|
|
270
|
+
}, /*#__PURE__*/_react.default.createElement("p", null, t('LOADING', 'Loading...'))) : /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("a", {
|
|
271
|
+
href: (_stripeLinkState$paym = stripeLinkState === null || stripeLinkState === void 0 ? void 0 : stripeLinkState.paymentURL) !== null && _stripeLinkState$paym !== void 0 ? _stripeLinkState$paym : '',
|
|
272
|
+
rel: "noopener noreferrer",
|
|
273
|
+
target: "_blank"
|
|
274
|
+
}, (_stripeLinkState$paym2 = stripeLinkState === null || stripeLinkState === void 0 ? void 0 : stripeLinkState.paymentURL) !== null && _stripeLinkState$paym2 !== void 0 ? _stripeLinkState$paym2 : ''))))), /*#__PURE__*/_react.default.createElement(_Confirm.Alert, {
|
|
275
|
+
title: t('ERROR', 'Error'),
|
|
276
|
+
content: alertState.content,
|
|
277
|
+
acceptText: t('ACCEPT', 'Accept'),
|
|
278
|
+
open: alertState.open,
|
|
279
|
+
onClose: function onClose() {
|
|
280
|
+
return closeAlert();
|
|
281
|
+
},
|
|
282
|
+
onAccept: function onAccept() {
|
|
283
|
+
return closeAlert();
|
|
284
|
+
},
|
|
285
|
+
closeOnBackdrop: false
|
|
286
|
+
}));
|
|
287
|
+
};
|
|
288
|
+
var PaymentOptionStripeLink = exports.PaymentOptionStripeLink = function PaymentOptionStripeLink(props) {
|
|
289
|
+
var paymentOptionStripeProps = _objectSpread(_objectSpread({}, props), {}, {
|
|
290
|
+
UIComponent: PaymentOptionStripeLinkUI
|
|
291
|
+
});
|
|
292
|
+
return /*#__PURE__*/_react.default.createElement(_orderingComponentsExternal.PaymentOptionStripeLink, paymentOptionStripeProps);
|
|
293
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.WarningMessage = exports.StripeLinkContainer = exports.InputPhoneNumberWrapper = exports.InputBeforeIconWrapper = exports.CodeSentContainer = void 0;
|
|
8
|
+
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
9
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
10
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
11
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
12
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
13
|
+
var StripeLinkContainer = exports.StripeLinkContainer = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n padding: 20px;\n\n .message {\n font-size: 14px;\n }\n\n .user-info {\n display: flex;\n flex-direction: column;\n\n .inputs-wrapper {\n display: flex;\n > div {\n width: 50%\n }\n input {\n width: 100%;\n padding: 7px 15px 7px 34px;\n }\n .first-input {\n margin-right: 25px;\n }\n }\n }\n .buttons-wrapper {\n display: flex;\n padding-top: 20px;\n gap: 10px;\n\n div {\n flex: 1;\n\n p {\n text-align: center;\n }\n }\n\n button {\n width: 100%;\n min-height: 45px;\n }\n }\n\n .loading {\n text-align: center;\n\n p {\n margin: 0;\n }\n }\n\n .url-link {\n text-align: center;\n }\n"])));
|
|
14
|
+
var WarningMessage = exports.WarningMessage = _styledComponents.default.p(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n color: #D81212;\n font-size: 24px;\n padding-left: 10px;\n font-weight: bold;\n opacity: 0.8;\n ", "\n"])), function (props) {
|
|
15
|
+
var _props$theme;
|
|
16
|
+
return ((_props$theme = props.theme) === null || _props$theme === void 0 ? void 0 : _props$theme.rtl) && (0, _styledComponents.css)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n padding-right: 10px;\n padding-left: 0;\n "])));
|
|
17
|
+
});
|
|
18
|
+
var InputPhoneNumberWrapper = exports.InputPhoneNumberWrapper = _styledComponents.default.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n width: 100%;\n padding-top: 10px;\n p {\n font-weight: 500;\n font-size: 20px;\n color: ", ";\n width: 100%;\n text-align: left;\n margin: 0 0 7px 0;\n }\n\n .input-icon {\n top: 8px;\n }\n"])), function (props) {
|
|
19
|
+
return props.theme.colors.darkTextColor;
|
|
20
|
+
});
|
|
21
|
+
var InputBeforeIconWrapper = exports.InputBeforeIconWrapper = _styledComponents.default.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n position: absolute;\n padding: 6px 6px 6px 10px;\n\n ", "\n\n svg {\n color: #B1BCCC;\n font-size: 16px;\n }\n"])), function (props) {
|
|
22
|
+
return props.theme.rtl && (0, _styledComponents.css)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n right: 100px;\n left: initial;\n "])));
|
|
23
|
+
});
|
|
24
|
+
var CodeSentContainer = exports.CodeSentContainer = _styledComponents.default.div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 20px;\n\n h3 {\n font-size: 20px;\n }\n\n .countdown {\n display: flex;\n justify-content: center;\n width: 100%;\n padding: 20px 0;\n\n div {\n width: 30%;\n background-color: ", ";\n padding: 10px 10px;\n p {\n text-align: center;\n font-size: 32px;\n color: ", ";\n margin: 0;\n }\n }\n }\n\n button {\n width: 100%;\n min-height: 45px;\n }\n"])), function (props) {
|
|
25
|
+
return props.theme.colors.grayDividerColor;
|
|
26
|
+
}, function (props) {
|
|
27
|
+
return props.theme.colors.success500;
|
|
28
|
+
});
|
|
@@ -252,7 +252,7 @@ var PaymentOptionsUI = function PaymentOptionsUI(props) {
|
|
|
252
252
|
var _isOpenMethod$paymeth;
|
|
253
253
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
|
|
254
254
|
key: paymethod.id
|
|
255
|
-
}, ((!isCustomerMode || isAlsea && isCustomerMode) && paymethod.gateway || isCustomerMode && (paymethod
|
|
255
|
+
}, ((!isCustomerMode || isAlsea && isCustomerMode) && paymethod.gateway || isCustomerMode && ['cash', 'card_delivery', 'stripe_link'].includes(paymethod === null || paymethod === void 0 ? void 0 : paymethod.gateway)) && /*#__PURE__*/_react.default.createElement(_styles.PayCard, {
|
|
256
256
|
isDisabled: isDisabled,
|
|
257
257
|
className: "".concat(((paymethodSelected === null || paymethodSelected === void 0 ? void 0 : paymethodSelected.id) || (isOpenMethod === null || isOpenMethod === void 0 || (_isOpenMethod$paymeth = isOpenMethod.paymethod) === null || _isOpenMethod$paymeth === void 0 ? void 0 : _isOpenMethod$paymeth.id)) === paymethod.id ? 'active' : ''),
|
|
258
258
|
onClick: function onClick() {
|
package/_modules/utils/index.js
CHANGED
|
@@ -147,7 +147,8 @@ var getTraduction = exports.getTraduction = function getTraduction(key) {
|
|
|
147
147
|
ERROR_PLACE_PAY_WITH_PAYPAL_CAPTURE: 'An error occurred while trying to pay by PayPal',
|
|
148
148
|
ERROR_ADD_PRODUCT_VERY_FAR_FOR_DELIVERY: 'Error adding product, very far for delivery',
|
|
149
149
|
ERROR_INVALID_OFFER: 'The offer doesn\'t exist',
|
|
150
|
-
ERROR_CASH_WALLET_FEATURE_DISABLED: 'Cash wallet feature is disabled'
|
|
150
|
+
ERROR_CASH_WALLET_FEATURE_DISABLED: 'Cash wallet feature is disabled',
|
|
151
|
+
ERROR_TWILIO_SERVICE_BAD_SETTINGS: 'Twilio service bad settings'
|
|
151
152
|
};
|
|
152
153
|
return keyList[key] ? t(key, keyList[key]) : t(key);
|
|
153
154
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ordering-ui-external",
|
|
3
|
-
"version": "14.1.
|
|
3
|
+
"version": "14.1.82",
|
|
4
4
|
"description": "Ordering UI Components",
|
|
5
5
|
"main": "./_modules/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"lodash": "^4.17.19",
|
|
89
89
|
"moment": "^2.29.4",
|
|
90
90
|
"nanoid": "^4.0.0",
|
|
91
|
-
"ordering-components-external": "13.2.
|
|
91
|
+
"ordering-components-external": "13.2.16",
|
|
92
92
|
"payment": "^2.4.6",
|
|
93
93
|
"polished": "^3.6.6",
|
|
94
94
|
"react-bootstrap-icons": "^1.7.2",
|
package/src/themes/five/index.js
CHANGED
|
@@ -64,6 +64,7 @@ import { PageBanner } from './src/components/PageBanner'
|
|
|
64
64
|
import { PaymentOptionCash } from './src/components/PaymentOptionCash'
|
|
65
65
|
import { PaymentOptions } from './src/components/PaymentOptions'
|
|
66
66
|
import { PaymentOptionStripe } from './src/components/PaymentOptionStripe'
|
|
67
|
+
import { PaymentOptionStripeLink } from './src/components/PaymentOptionStripeLink'
|
|
67
68
|
import { PaymentOptionWallet } from './src/components/PaymentOptionWallet'
|
|
68
69
|
import { PlaceSpot } from './src/components/PlaceSpot'
|
|
69
70
|
import { ProductForm } from './src/components/ProductForm'
|
|
@@ -196,6 +197,7 @@ export {
|
|
|
196
197
|
PageBanner,
|
|
197
198
|
PaymentOptionCash,
|
|
198
199
|
PaymentOptionStripe,
|
|
200
|
+
PaymentOptionStripeLink,
|
|
199
201
|
PaymentOptionWallet,
|
|
200
202
|
PaymentOptions,
|
|
201
203
|
PlaceSpot,
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
} from 'ordering-components-external'
|
|
17
17
|
import { useWindowSize } from '../../../../../hooks/useWindowSize'
|
|
18
18
|
import { UpsellingPage } from '../UpsellingPage'
|
|
19
|
+
import { PaymentOptionStripeLink } from '../PaymentOptionStripeLink'
|
|
19
20
|
import parsePhoneNumber from 'libphonenumber-js'
|
|
20
21
|
import { useHistory } from 'react-router-dom'
|
|
21
22
|
import { ArrowLeft } from 'react-bootstrap-icons'
|
|
@@ -131,13 +132,13 @@ const CheckoutUI = (props) => {
|
|
|
131
132
|
const [isOpen, setIsOpen] = useState(false)
|
|
132
133
|
const [requiredFields, setRequiredFields] = useState([])
|
|
133
134
|
const [isSuccess, setIsSuccess] = useState(false)
|
|
134
|
-
const [openModal, setOpenModal] = useState({ login: false, signup: false, isGuest: false })
|
|
135
|
+
const [openModal, setOpenModal] = useState({ login: false, signup: false, isGuest: false, stripeLink: false })
|
|
135
136
|
const [allowedGuest, setAllowedGuest] = useState(false)
|
|
136
137
|
const [cardList, setCardList] = useState([])
|
|
137
138
|
const [paymethodClicked, setPaymethodClicked] = useState(null)
|
|
138
139
|
const [productLoading, setProductLoading] = useState(false)
|
|
139
140
|
|
|
140
|
-
const shouldActivateOrderDetailModal =
|
|
141
|
+
const shouldActivateOrderDetailModal = isCustomerMode && paymethodSelected?.gateway !== 'stripe_link'
|
|
141
142
|
const orderTypeList = [t('DELIVERY', 'Delivery'), t('PICKUP', 'Pickup'), t('EAT_IN', 'Eat in'), t('CURBSIDE', 'Curbside'), t('DRIVE_THRU', 'Drive thru')]
|
|
142
143
|
const cardsMethods = ['stripe', 'credomatic']
|
|
143
144
|
const stripePaymethods = ['stripe', 'stripe_connect', 'stripe_redirect']
|
|
@@ -214,6 +215,9 @@ const CheckoutUI = (props) => {
|
|
|
214
215
|
if (behalfName) {
|
|
215
216
|
body.on_behalf_of = behalfName
|
|
216
217
|
}
|
|
218
|
+
if (paymethodSelected?.gateway === 'stripe_link') {
|
|
219
|
+
setOpenModal({ ...openModal, stripeLink: true })
|
|
220
|
+
}
|
|
217
221
|
handlerClickPlaceOrder && handlerClickPlaceOrder(null, body)
|
|
218
222
|
return
|
|
219
223
|
}
|
|
@@ -716,6 +720,17 @@ const CheckoutUI = (props) => {
|
|
|
716
720
|
</WrapperPlaceOrderButton>
|
|
717
721
|
)}
|
|
718
722
|
|
|
723
|
+
{isCustomerMode && paymethodSelected?.gateway === 'stripe_link' && cart?.status === 2 && (
|
|
724
|
+
<WrapperPlaceOrderButton>
|
|
725
|
+
<Button
|
|
726
|
+
color='secundary'
|
|
727
|
+
onClick={() => setOpenModal({ ...openModal, stripeLink: true })}
|
|
728
|
+
>
|
|
729
|
+
{t('RESEND_STRIPE_LIKE', 'Resend stripe link')}
|
|
730
|
+
</Button>
|
|
731
|
+
</WrapperPlaceOrderButton>
|
|
732
|
+
)}
|
|
733
|
+
|
|
719
734
|
{!cart?.valid_address && cart?.status !== 2 && (
|
|
720
735
|
<WarningText>
|
|
721
736
|
{t('INVALID_CART_ADDRESS', 'Selected address is invalid, please select a closer address.')}
|
|
@@ -893,6 +908,19 @@ const CheckoutUI = (props) => {
|
|
|
893
908
|
onClick={handlePlaceOrder}
|
|
894
909
|
/>
|
|
895
910
|
</Modal>
|
|
911
|
+
<Modal
|
|
912
|
+
open={openModal.stripeLink}
|
|
913
|
+
width='650px'
|
|
914
|
+
padding='30px 10px'
|
|
915
|
+
onClose={() => setOpenModal({ ...openModal, stripeLink: false })}
|
|
916
|
+
title={t('SEND_SMS_WHATSAPP', 'Send SMS/WhatsApp')}
|
|
917
|
+
modalIconStyle={{ top: 20 }}
|
|
918
|
+
>
|
|
919
|
+
<PaymentOptionStripeLink
|
|
920
|
+
businessConfigs={businessDetails?.business?.configs ?? []}
|
|
921
|
+
paymentURL={cart?.paymethod_data?.result?.payment_url}
|
|
922
|
+
/>
|
|
923
|
+
</Modal>
|
|
896
924
|
</Container>
|
|
897
925
|
)
|
|
898
926
|
}
|