@merchi/cart 1.4.4 → 1.4.5

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.
@@ -18,6 +18,7 @@ var _job = require("./utilities/job");
18
18
  var _product = require("./utilities/product");
19
19
  var _local_storage = require("./utilities/local_storage");
20
20
  var _user = require("./utilities/user");
21
+ var _test_checkout = require("./utilities/test_checkout");
21
22
  var _jsxRuntime = require("react/jsx-runtime");
22
23
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t9 in e) "default" !== _t9 && {}.hasOwnProperty.call(e, _t9) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t9)) && (i.get || i.set) ? o(f, _t9, i) : f[_t9] = e[_t9]); return f; })(e, t); }
23
24
  function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
@@ -503,47 +504,65 @@ var CartProvider = function CartProvider(_ref) {
503
504
  }
504
505
  function _createCartAndCookie() {
505
506
  _createCartAndCookie = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(callback) {
506
- var _cart, cartJson, _t3;
507
+ var isTest, _cart, created, cartJson, _t3;
507
508
  return _regenerator().w(function (_context2) {
508
509
  while (1) switch (_context2.p = _context2.n) {
509
510
  case 0:
510
511
  setFetchingCart(true);
511
512
  _context2.p = 1;
513
+ isTest = (0, _test_checkout.readTestCheckoutFlag)();
512
514
  _cart = (0, _cart3.makeCart)({
513
515
  domain: {
514
516
  id: domainId
515
- }
517
+ },
518
+ isTest: isTest
516
519
  }, true);
520
+ if (!isTest) {
521
+ _context2.n = 3;
522
+ break;
523
+ }
517
524
  _context2.n = 2;
525
+ return merchi.authenticatedFetch('/carts/', {
526
+ method: 'POST',
527
+ body: _cart.toFormData(),
528
+ query: [['embed', JSON.stringify(_helpers.cartEmbed)], ['skip_rights', 'y'], ['is_test', 'true']]
529
+ });
530
+ case 2:
531
+ created = _context2.v;
532
+ _cart.fromJson(created.cart);
533
+ _context2.n = 4;
534
+ break;
535
+ case 3:
536
+ _context2.n = 4;
518
537
  return _cart.create({
519
538
  embed: _helpers.cartEmbed
520
539
  });
521
- case 2:
522
- _context2.n = 3;
540
+ case 4:
541
+ _context2.n = 5;
523
542
  return _cart.toJson();
524
- case 3:
543
+ case 5:
525
544
  cartJson = _context2.v;
526
- if (domainId) (0, _cookie.setCartCookie)(Number(domainId), cartJson, undefined);
527
- _context2.n = 4;
545
+ if (domainId) (0, _cookie.setCartCookie)(Number(domainId), cartJson, undefined, isTest);
546
+ _context2.n = 6;
528
547
  return attachSavedClientIfNeeded(cartJson);
529
- case 4:
548
+ case 6:
530
549
  cartJson = _context2.v;
531
550
  setCart(_objectSpread({}, cartJson));
532
551
  if (callback) callback();
533
- _context2.n = 6;
552
+ _context2.n = 8;
534
553
  break;
535
- case 5:
536
- _context2.p = 5;
554
+ case 7:
555
+ _context2.p = 7;
537
556
  _t3 = _context2.v;
538
557
  alertError(_t3.errorMessage || _t3.message || 'Unable to fetch cart.');
539
- case 6:
540
- _context2.p = 6;
558
+ case 8:
559
+ _context2.p = 8;
541
560
  setFetchingCart(false);
542
- return _context2.f(6);
543
- case 7:
561
+ return _context2.f(8);
562
+ case 9:
544
563
  return _context2.a(2);
545
564
  }
546
- }, _callee2, null, [[1, 5, 6, 7]]);
565
+ }, _callee2, null, [[1, 7, 8, 9]]);
547
566
  }));
548
567
  return _createCartAndCookie.apply(this, arguments);
549
568
  }
@@ -552,7 +571,7 @@ var CartProvider = function CartProvider(_ref) {
552
571
  }
553
572
  function _getCart() {
554
573
  _getCart = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(cartIdAndToken) {
555
- var id, _cart2, cartJson, _t4;
574
+ var id, _cart2, cartJson, isTest, _t4;
556
575
  return _regenerator().w(function (_context3) {
557
576
  while (1) switch (_context3.p = _context3.n) {
558
577
  case 0:
@@ -570,36 +589,46 @@ var CartProvider = function CartProvider(_ref) {
570
589
  return _cart2.toJson();
571
590
  case 3:
572
591
  cartJson = _context3.v;
573
- if (!(0, _cart3.stripeIsValidAndActive)(cartJson)) {
592
+ isTest = (0, _test_checkout.readTestCheckoutFlag)();
593
+ if (!(Boolean(cartJson.isTest) !== isTest)) {
574
594
  _context3.n = 5;
575
595
  break;
576
596
  }
577
597
  _context3.n = 4;
578
- return attachSavedClientIfNeeded(cartJson);
598
+ return createCartAndCookie();
579
599
  case 4:
600
+ return _context3.a(2);
601
+ case 5:
602
+ if (!((0, _cart3.stripeIsValidAndActive)(cartJson) || isTest)) {
603
+ _context3.n = 7;
604
+ break;
605
+ }
606
+ _context3.n = 6;
607
+ return attachSavedClientIfNeeded(cartJson);
608
+ case 6:
580
609
  cartJson = _context3.v;
581
610
  setCart(_objectSpread({}, cartJson));
582
- _context3.n = 6;
611
+ _context3.n = 8;
583
612
  break;
584
- case 5:
613
+ case 7:
585
614
  console.error("MErhci cart error: Stripe payment " + "options have not been correctly set up. " + "Check the company profile payment options tab " + "to set and edit stripe payment options.");
586
615
  setCartSettingsInvalid(true);
587
- case 6:
588
- _context3.n = 8;
616
+ case 8:
617
+ _context3.n = 10;
589
618
  break;
590
- case 7:
591
- _context3.p = 7;
619
+ case 9:
620
+ _context3.p = 9;
592
621
  _t4 = _context3.v;
593
- _context3.n = 8;
622
+ _context3.n = 10;
594
623
  return createCartAndCookie();
595
- case 8:
596
- _context3.p = 8;
624
+ case 10:
625
+ _context3.p = 10;
597
626
  setFetchingCart(false);
598
- return _context3.f(8);
599
- case 9:
627
+ return _context3.f(10);
628
+ case 11:
600
629
  return _context3.a(2);
601
630
  }
602
- }, _callee3, null, [[1, 7, 8, 9]]);
631
+ }, _callee3, null, [[1, 9, 10, 11]]);
603
632
  }));
604
633
  return _getCart.apply(this, arguments);
605
634
  }
@@ -962,6 +991,7 @@ var CartProvider = function CartProvider(_ref) {
962
991
  window.createCartAndCookie = createCartAndCookie;
963
992
  }
964
993
  (0, _react.useEffect)(function () {
994
+ (0, _test_checkout.persistTestCheckoutFlag)();
965
995
  if (domainId) actionGetMerchiCart();
966
996
  if (domainId && includeTheme) actionFetchTheme();
967
997
  }, [domainId]);
@@ -56,6 +56,7 @@ function StripeCardForm() {
56
56
  error = _useState2[0],
57
57
  setError = _useState2[1];
58
58
  var company = domain.company;
59
+ var isTestCheckout = Boolean(cart.isTest);
59
60
  var hasCompanyPubKey = Boolean(company.isStripeValid && (0, _utils.companyStripePubKeyOrTestPubKey)(company));
60
61
  var companyPubKey = hasCompanyPubKey ? (0, _utils.companyStripePubKeyOrTestPubKey)(company) : '';
61
62
  var canUseConnect = !!company.stripeAccountId;
@@ -142,15 +143,21 @@ function StripeCardForm() {
142
143
  }));
143
144
  return _doStripePaymentRequestForButton.apply(this, arguments);
144
145
  }
145
- var _useState7 = (0, _react.useState)(companyPubKey),
146
+ var _useState7 = (0, _react.useState)(isTestCheckout ? '' : companyPubKey),
146
147
  _useState8 = _slicedToArray(_useState7, 2),
147
148
  stripePublicKey = _useState8[0],
148
149
  setStripePublicKey = _useState8[1];
149
150
  (0, _react.useEffect)(function () {
151
+ if (isTestCheckout) {
152
+ (0, _actions.fetchTestPublishableKey)(url).then(setStripePublicKey)["catch"](function () {
153
+ return setStripePublicKey('');
154
+ });
155
+ return;
156
+ }
150
157
  if (!stripePublicKey && canUseConnect) (0, _actions.stripeInitPromise)(url).then(setStripePublicKey);
151
- }, [stripePublicKey, canUseConnect]);
158
+ }, [stripePublicKey, canUseConnect, isTestCheckout, url]);
152
159
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
153
- children: [company.isTesting && badgeTestMode, /*#__PURE__*/(0, _jsxRuntime.jsx)(_StripeCardFields["default"], {
160
+ children: [!isTestCheckout && company.isTesting && badgeTestMode, /*#__PURE__*/(0, _jsxRuntime.jsx)(_StripeCardFields["default"], {
154
161
  doStripePayment: doStripePayment,
155
162
  doStripePaymentRequestForButton: doStripePaymentRequestForButton,
156
163
  cart: cart,
@@ -5,38 +5,144 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports["default"] = StripeCardForm;
8
- var React = _interopRequireWildcard(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var React = _react;
9
10
  var _invoice = require("@merchi/invoice");
10
11
  var _LegacyStripeCardForm = _interopRequireDefault(require("./LegacyStripeCardForm"));
12
+ var _actions = require("./actions");
11
13
  var _CartProvider = require("../CartProvider");
12
14
  var _tabs = require("../utilities/tabs");
15
+ var _test_checkout = require("../utilities/test_checkout");
13
16
  var _jsxRuntime = require("react/jsx-runtime");
14
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
15
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
18
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
19
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
20
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
21
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
22
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
23
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
24
+ 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."); }
25
+ 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; } }
26
+ 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; }
27
+ 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; } }
28
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
29
+ var testCheckoutHint = /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
30
+ style: {
31
+ marginBottom: '12px'
32
+ },
33
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
34
+ style: {
35
+ color: 'red',
36
+ fontWeight: 600
37
+ },
38
+ children: "Test checkout"
39
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
40
+ style: {
41
+ margin: '4px 0 0',
42
+ fontSize: '13px'
43
+ },
44
+ children: ["No real charge. Use card ", _test_checkout.TEST_CARD_NUMBER, ", any future expiry, any CVC, any ZIP."]
45
+ })]
46
+ });
16
47
  function StripeCardForm() {
17
48
  var _useCartContext = (0, _CartProvider.useCartContext)(),
18
49
  alertError = _useCartContext.alertError,
19
50
  apiUrl = _useCartContext.apiUrl,
20
51
  cart = _useCartContext.cart,
52
+ classNameBtnPay = _useCartContext.classNameBtnPay,
21
53
  setActiveTabIndex = _useCartContext.setActiveTabIndex,
22
54
  setInvoiceJson = _useCartContext.setInvoiceJson;
23
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_invoice.StripePaymentGate, {
24
- engine: cart.stripePaymentEngine,
25
- apiUrl: apiUrl || 'https://api.merchi.co/v6/',
26
- resource: "cart",
27
- resourceId: cart.id,
28
- resourceToken: cart.token || cart.cartToken,
29
- legacy: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LegacyStripeCardForm["default"], {}),
30
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_invoice.StripePaymentForm, {
31
- apiUrl: apiUrl || 'https://api.merchi.co/v6/',
55
+ var isTestCheckout = Boolean(cart.isTest);
56
+ var url = apiUrl || 'https://api.merchi.co/v6/';
57
+ var _useState = (0, _react.useState)(false),
58
+ _useState2 = _slicedToArray(_useState, 2),
59
+ testKeyMissing = _useState2[0],
60
+ setTestKeyMissing = _useState2[1];
61
+ var _useState3 = (0, _react.useState)(false),
62
+ _useState4 = _slicedToArray(_useState3, 2),
63
+ loadingTestPayment = _useState4[0],
64
+ setLoadingTestPayment = _useState4[1];
65
+ (0, _react.useEffect)(function () {
66
+ if (!isTestCheckout) {
67
+ setTestKeyMissing(false);
68
+ return;
69
+ }
70
+ (0, _actions.fetchTestPublishableKey)(url).then(function () {
71
+ return setTestKeyMissing(false);
72
+ })["catch"](function () {
73
+ return setTestKeyMissing(true);
74
+ });
75
+ }, [isTestCheckout, url]);
76
+ function doCompleteTestPayment() {
77
+ return _doCompleteTestPayment.apply(this, arguments);
78
+ }
79
+ function _doCompleteTestPayment() {
80
+ _doCompleteTestPayment = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
81
+ var invoice, _t;
82
+ return _regenerator().w(function (_context) {
83
+ while (1) switch (_context.p = _context.n) {
84
+ case 0:
85
+ setLoadingTestPayment(true);
86
+ _context.p = 1;
87
+ _context.n = 2;
88
+ return (0, _actions.completeTestPayment)(url, cart);
89
+ case 2:
90
+ invoice = _context.v;
91
+ setInvoiceJson(invoice);
92
+ setActiveTabIndex(_tabs.tabIdPaymentSuccess);
93
+ _context.n = 4;
94
+ break;
95
+ case 3:
96
+ _context.p = 3;
97
+ _t = _context.v;
98
+ alertError(_t.message);
99
+ case 4:
100
+ _context.p = 4;
101
+ setLoadingTestPayment(false);
102
+ return _context.f(4);
103
+ case 5:
104
+ return _context.a(2);
105
+ }
106
+ }, _callee, null, [[1, 3, 4, 5]]);
107
+ }));
108
+ return _doCompleteTestPayment.apply(this, arguments);
109
+ }
110
+ if (isTestCheckout && testKeyMissing) {
111
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
112
+ children: [testCheckoutHint, /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
113
+ style: {
114
+ fontSize: '13px',
115
+ marginBottom: '12px'
116
+ },
117
+ children: "Stripe test keys are not configured. Complete this as a test order without a card."
118
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
119
+ type: "button",
120
+ className: classNameBtnPay,
121
+ disabled: loadingTestPayment,
122
+ onClick: doCompleteTestPayment,
123
+ children: loadingTestPayment ? 'Completing…' : 'Complete test order'
124
+ })]
125
+ });
126
+ }
127
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
128
+ children: [isTestCheckout && testCheckoutHint, /*#__PURE__*/(0, _jsxRuntime.jsx)(_invoice.StripePaymentGate, {
129
+ engine: isTestCheckout ? 'legacy' : cart.stripePaymentEngine,
130
+ apiUrl: url,
32
131
  resource: "cart",
33
132
  resourceId: cart.id,
34
133
  resourceToken: cart.token || cart.cartToken,
35
- onError: alertError,
36
- onSuccess: function onSuccess(invoice) {
37
- setInvoiceJson(invoice);
38
- setActiveTabIndex(_tabs.tabIdPaymentSuccess);
39
- }
40
- })
134
+ legacy: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LegacyStripeCardForm["default"], {}),
135
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_invoice.StripePaymentForm, {
136
+ apiUrl: url,
137
+ resource: "cart",
138
+ resourceId: cart.id,
139
+ resourceToken: cart.token || cart.cartToken,
140
+ onError: alertError,
141
+ onSuccess: function onSuccess(invoice) {
142
+ setInvoiceJson(invoice);
143
+ setActiveTabIndex(_tabs.tabIdPaymentSuccess);
144
+ }
145
+ })
146
+ })]
41
147
  });
42
148
  }
@@ -1,4 +1,6 @@
1
1
  import { PaymentRequestPaymentMethodEvent } from '@stripe/stripe-js';
2
2
  export declare function stripeInitPromise(apiUrl: string): Promise<any>;
3
+ export declare function fetchTestPublishableKey(apiUrl: string): Promise<any>;
4
+ export declare function completeTestPayment(apiUrl: string, cart: any): Promise<any>;
3
5
  export declare function stripeCardFormSubmit(apiUrl: string, stripe: any, card: any, cart: any): Promise<any>;
4
6
  export declare function stripePaymentButtonSubmit(apiUrl: string, stripe: any, cart: any, paymentMethodEvent: PaymentRequestPaymentMethodEvent): Promise<any>;