@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.
- package/esm/CartProvider.js +61 -31
- package/esm/stripe/LegacyStripeCardForm.js +11 -4
- package/esm/stripe/StripeCardForm.js +122 -16
- package/esm/stripe/actions.js +155 -57
- package/esm/stripe/actions.test.js +120 -0
- package/esm/utilities/cookie.js +15 -12
- package/esm/utilities/index.js +1 -0
- package/esm/utilities/test_checkout.js +25 -0
- package/esm/utilities/test_checkout.test.js +31 -0
- package/lib/CartProvider.js +61 -31
- package/lib/stripe/LegacyStripeCardForm.js +10 -3
- package/lib/stripe/StripeCardForm.js +123 -17
- package/lib/stripe/actions.d.ts +2 -0
- package/lib/stripe/actions.js +157 -57
- package/lib/stripe/actions.test.d.ts +1 -0
- package/lib/utilities/cookie.d.ts +3 -3
- package/lib/utilities/cookie.js +15 -12
- package/lib/utilities/index.d.ts +1 -0
- package/lib/utilities/index.js +11 -0
- package/lib/utilities/test_checkout.d.ts +6 -0
- package/lib/utilities/test_checkout.js +34 -0
- package/lib/utilities/test_checkout.test.d.ts +1 -0
- package/package.json +8 -5
- package/src/CartProvider.tsx +25 -4
- package/src/stripe/LegacyStripeCardForm.tsx +9 -3
- package/src/stripe/StripeCardForm.tsx +92 -8
- package/src/stripe/actions.test.ts +50 -0
- package/src/stripe/actions.ts +41 -0
- package/src/utilities/cookie.ts +9 -6
- package/src/utilities/index.ts +1 -0
- package/src/utilities/test_checkout.test.ts +39 -0
- package/src/utilities/test_checkout.ts +27 -0
package/lib/CartProvider.js
CHANGED
|
@@ -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
|
|
522
|
-
_context2.n =
|
|
540
|
+
case 4:
|
|
541
|
+
_context2.n = 5;
|
|
523
542
|
return _cart.toJson();
|
|
524
|
-
case
|
|
543
|
+
case 5:
|
|
525
544
|
cartJson = _context2.v;
|
|
526
|
-
if (domainId) (0, _cookie.setCartCookie)(Number(domainId), cartJson, undefined);
|
|
527
|
-
_context2.n =
|
|
545
|
+
if (domainId) (0, _cookie.setCartCookie)(Number(domainId), cartJson, undefined, isTest);
|
|
546
|
+
_context2.n = 6;
|
|
528
547
|
return attachSavedClientIfNeeded(cartJson);
|
|
529
|
-
case
|
|
548
|
+
case 6:
|
|
530
549
|
cartJson = _context2.v;
|
|
531
550
|
setCart(_objectSpread({}, cartJson));
|
|
532
551
|
if (callback) callback();
|
|
533
|
-
_context2.n =
|
|
552
|
+
_context2.n = 8;
|
|
534
553
|
break;
|
|
535
|
-
case
|
|
536
|
-
_context2.p =
|
|
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
|
|
540
|
-
_context2.p =
|
|
558
|
+
case 8:
|
|
559
|
+
_context2.p = 8;
|
|
541
560
|
setFetchingCart(false);
|
|
542
|
-
return _context2.f(
|
|
543
|
-
case
|
|
561
|
+
return _context2.f(8);
|
|
562
|
+
case 9:
|
|
544
563
|
return _context2.a(2);
|
|
545
564
|
}
|
|
546
|
-
}, _callee2, null, [[1,
|
|
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
|
-
|
|
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
|
|
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 =
|
|
611
|
+
_context3.n = 8;
|
|
583
612
|
break;
|
|
584
|
-
case
|
|
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
|
|
588
|
-
_context3.n =
|
|
616
|
+
case 8:
|
|
617
|
+
_context3.n = 10;
|
|
589
618
|
break;
|
|
590
|
-
case
|
|
591
|
-
_context3.p =
|
|
619
|
+
case 9:
|
|
620
|
+
_context3.p = 9;
|
|
592
621
|
_t4 = _context3.v;
|
|
593
|
-
_context3.n =
|
|
622
|
+
_context3.n = 10;
|
|
594
623
|
return createCartAndCookie();
|
|
595
|
-
case
|
|
596
|
-
_context3.p =
|
|
624
|
+
case 10:
|
|
625
|
+
_context3.p = 10;
|
|
597
626
|
setFetchingCart(false);
|
|
598
|
-
return _context3.f(
|
|
599
|
-
case
|
|
627
|
+
return _context3.f(10);
|
|
628
|
+
case 11:
|
|
600
629
|
return _context3.a(2);
|
|
601
630
|
}
|
|
602
|
-
}, _callee3, null, [[1,
|
|
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
|
|
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
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
}
|
package/lib/stripe/actions.d.ts
CHANGED
|
@@ -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>;
|