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.
Files changed (32) hide show
  1. package/_bundles/{0.ordering-ui.d155a03b9a727f188284.js → 0.ordering-ui.946f2a2986a6d1d2dcdf.js} +1 -1
  2. package/_bundles/{1.ordering-ui.d155a03b9a727f188284.js → 1.ordering-ui.946f2a2986a6d1d2dcdf.js} +1 -1
  3. package/_bundles/{2.ordering-ui.d155a03b9a727f188284.js → 2.ordering-ui.946f2a2986a6d1d2dcdf.js} +1 -1
  4. package/_bundles/{4.ordering-ui.d155a03b9a727f188284.js → 4.ordering-ui.946f2a2986a6d1d2dcdf.js} +1 -1
  5. package/_bundles/{5.ordering-ui.d155a03b9a727f188284.js → 5.ordering-ui.946f2a2986a6d1d2dcdf.js} +1 -1
  6. package/_bundles/{6.ordering-ui.d155a03b9a727f188284.js → 6.ordering-ui.946f2a2986a6d1d2dcdf.js} +1 -1
  7. package/_bundles/{7.ordering-ui.d155a03b9a727f188284.js → 7.ordering-ui.946f2a2986a6d1d2dcdf.js} +2 -2
  8. package/_bundles/{8.ordering-ui.d155a03b9a727f188284.js → 8.ordering-ui.946f2a2986a6d1d2dcdf.js} +1 -1
  9. package/_bundles/{9.ordering-ui.d155a03b9a727f188284.js → 9.ordering-ui.946f2a2986a6d1d2dcdf.js} +1 -1
  10. package/_bundles/ordering-ui.946f2a2986a6d1d2dcdf.js +2 -0
  11. package/_modules/styles/Toast/index.js +1 -1
  12. package/_modules/themes/five/index.js +7 -0
  13. package/_modules/themes/five/src/components/Checkout/index.js +34 -4
  14. package/_modules/themes/five/src/components/InputPhoneNumber/index.js +3 -1
  15. package/_modules/themes/five/src/components/Modal/index.js +2 -1
  16. package/_modules/themes/five/src/components/PaymentOptionStripeLink/index.js +293 -0
  17. package/_modules/themes/five/src/components/PaymentOptionStripeLink/styles.js +28 -0
  18. package/_modules/themes/five/src/components/PaymentOptions/index.js +1 -1
  19. package/_modules/utils/index.js +2 -1
  20. package/package.json +2 -2
  21. package/src/styles/Toast/index.js +1 -1
  22. package/src/themes/five/index.js +2 -0
  23. package/src/themes/five/src/components/Checkout/index.js +30 -2
  24. package/src/themes/five/src/components/InputPhoneNumber/index.js +1 -1
  25. package/src/themes/five/src/components/Modal/index.js +1 -1
  26. package/src/themes/five/src/components/PaymentOptionStripeLink/index.js +298 -0
  27. package/src/themes/five/src/components/PaymentOptionStripeLink/styles.js +139 -0
  28. package/src/themes/five/src/components/PaymentOptions/index.js +1 -1
  29. package/src/utils/index.js +2 -1
  30. package/_bundles/ordering-ui.d155a03b9a727f188284.js +0 -2
  31. /package/_bundles/{7.ordering-ui.d155a03b9a727f188284.js.LICENSE.txt → 7.ordering-ui.946f2a2986a6d1d2dcdf.js.LICENSE.txt} +0 -0
  32. /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 _ordering$project, _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;
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 = ordering === null || ordering === void 0 || (_ordering$project = ordering.project) === null || _ordering$project === void 0 ? void 0 : _ordering$project.includes('alsea');
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'))), !(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, {
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, null, /*#__PURE__*/_react.default.createElement(_BsPhone.default, null)), /*#__PURE__*/_react.default.createElement(_reactPhoneNumberInput.default, {
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.gateway === 'card_delivery' || paymethod.gateway === 'cash')) && /*#__PURE__*/_react.default.createElement(_styles.PayCard, {
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() {
@@ -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.80",
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.11",
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",
@@ -70,7 +70,7 @@ export const Toast = () => {
70
70
  toast.style.animation = 'fadein 0.5s, fadeout 0.5s 2.5s'
71
71
  setTimeout(() => {
72
72
  toast.style.visibility = 'hidden'
73
- hideToast()
73
+ hideToast && hideToast()
74
74
  }, duration)
75
75
  }, [toastConfig])
76
76
 
@@ -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 = ordering?.project?.includes('alsea')
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
  }