@sazito/checkout 0.3.0 → 0.4.0

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 (36) hide show
  1. package/README.md +38 -0
  2. package/dist/chunks/{labels-3zH04p3y.cjs → labels-CnPllzhT.cjs} +15 -2
  3. package/dist/chunks/labels-CnPllzhT.cjs.map +1 -0
  4. package/dist/chunks/{labels-BdxqgReM.js → labels-e8w4zRbg.js} +15 -2
  5. package/dist/chunks/labels-e8w4zRbg.js.map +1 -0
  6. package/dist/chunks/{use-checkout-Bh4tXxFJ.js → use-checkout-BM810__v.js} +5 -3
  7. package/dist/chunks/use-checkout-BM810__v.js.map +1 -0
  8. package/dist/chunks/{use-checkout-DGP2xazd.cjs → use-checkout-DPtLgxlA.cjs} +5 -3
  9. package/dist/chunks/use-checkout-DPtLgxlA.cjs.map +1 -0
  10. package/dist/core/index.cjs +3 -1
  11. package/dist/core/index.cjs.map +1 -1
  12. package/dist/core/index.d.cts +27 -3
  13. package/dist/core/index.d.ts +27 -3
  14. package/dist/core/index.js +2 -1
  15. package/dist/core/index.js.map +1 -1
  16. package/dist/next/index.cjs +15 -7
  17. package/dist/next/index.cjs.map +1 -1
  18. package/dist/next/index.d.cts +24 -3
  19. package/dist/next/index.d.ts +24 -3
  20. package/dist/next/index.js +16 -8
  21. package/dist/next/index.js.map +1 -1
  22. package/dist/next/payment-return.cjs +40 -0
  23. package/dist/next/payment-return.cjs.map +1 -0
  24. package/dist/next/payment-return.d.cts +26 -0
  25. package/dist/next/payment-return.d.ts +26 -0
  26. package/dist/next/payment-return.js +38 -0
  27. package/dist/next/payment-return.js.map +1 -0
  28. package/dist/react/index.cjs +2 -2
  29. package/dist/react/index.d.cts +9 -1
  30. package/dist/react/index.d.ts +9 -1
  31. package/dist/react/index.js +2 -2
  32. package/package.json +15 -1
  33. package/dist/chunks/labels-3zH04p3y.cjs.map +0 -1
  34. package/dist/chunks/labels-BdxqgReM.js.map +0 -1
  35. package/dist/chunks/use-checkout-Bh4tXxFJ.js.map +0 -1
  36. package/dist/chunks/use-checkout-DGP2xazd.cjs.map +0 -1
@@ -3,8 +3,8 @@
3
3
 
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
5
  var react = require('react');
6
- var useCheckout = require('../chunks/use-checkout-DGP2xazd.cjs');
7
- var labels = require('../chunks/labels-3zH04p3y.cjs');
6
+ var useCheckout = require('../chunks/use-checkout-DPtLgxlA.cjs');
7
+ var labels = require('../chunks/labels-CnPllzhT.cjs');
8
8
  require('@sazito/client-sdk');
9
9
 
10
10
  /**
@@ -848,17 +848,25 @@ function SazitoCheckout({ theme, continueShoppingUrl, className, renderNextButto
848
848
  return (jsxRuntime.jsxs("div", { className: `szc-root${className ? ` ${className}` : ''}`, dir: direction, style: themeVars(theme), children: [mobileHead, jsxRuntime.jsx(Stepper, {}), bootstrapping ? (jsxRuntime.jsx(CheckoutLoading, { label: t.loading })) : fatal ? (jsxRuntime.jsx(ErrorBanner, { message: error.message })) : isResult ? (jsxRuntime.jsx("div", { className: "szc-result-wrap", children: jsxRuntime.jsx(ResultStep, { continueShoppingUrl: continueShoppingUrl }) })) : (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs("div", { className: `szc-layout${cartEmpty ? ' szc-layout--full' : ''}`, children: [jsxRuntime.jsxs("main", { className: "szc-main", children: [error && !emptyCartError ? jsxRuntime.jsx(ErrorBanner, { message: error.message }) : null, step === 'cart' ? (jsxRuntime.jsx(CartStep, { continueShoppingUrl: continueShoppingUrl, emptyCart: emptyCart, renderEmpty: renderEmptyCart })) : null, step === 'shipping' ? jsxRuntime.jsx(ShippingStep, {}) : null, step === 'payment' ? jsxRuntime.jsx(PaymentStep, {}) : null, actionsVisible && backButtonNode ? (jsxRuntime.jsx("div", { className: "szc-back-row", children: backButtonNode })) : null] }), !cartEmpty ? (jsxRuntime.jsxs("div", { className: "szc-side", children: [jsxRuntime.jsx(OrderSummary, {}), actionsVisible ? jsxRuntime.jsx("div", { className: "szc-side__cta", children: nextButtonNode }) : null] })) : null] }) })), actionsVisible ? (jsxRuntime.jsx("div", { className: "szc-footer-bar", children: jsxRuntime.jsxs("div", { className: "szc-footer", children: [jsxRuntime.jsxs("div", { className: "szc-footer__total", children: [jsxRuntime.jsx("span", { className: "szc-footer__total-label", children: t.total }), jsxRuntime.jsx("span", { className: "szc-footer__total-value", children: money(summary.total) })] }), jsxRuntime.jsx("div", { className: "szc-footer__actions", children: nextButtonNode })] }) })) : null] }));
849
849
  }
850
850
 
851
- function SazitoCheckoutPage({ credentials, config, paymentReturnParams, className, renderNextButton, renderBackButton, renderEmptyCart, emptyCart, }) {
852
- const isReturn = paymentReturnParams != null;
851
+ function SazitoCheckoutPage({ credentials, config, paymentReturn, paymentReturnParams, className, renderNextButton, renderBackButton, renderEmptyCart, emptyCart, }) {
852
+ const returnParams = paymentReturn?.params ?? paymentReturnParams;
853
+ const isReturn = returnParams != null;
854
+ const checkoutCredentials = paymentReturn
855
+ ? { ...credentials, payment: paymentReturn.payment }
856
+ : credentials;
853
857
  const client = useCheckout.useSazitoClient();
854
- return (jsxRuntime.jsxs(useCheckout.CheckoutProvider, { client: client, credentials: credentials, config: config, autoStart: !isReturn, children: [isReturn ? jsxRuntime.jsx(ResolveReturn, { params: paymentReturnParams }) : null, jsxRuntime.jsx(SazitoCheckout, { theme: config?.theme, continueShoppingUrl: config?.continueShoppingUrl, className: className, renderNextButton: renderNextButton, renderBackButton: renderBackButton, renderEmptyCart: renderEmptyCart, emptyCart: emptyCart })] }));
858
+ return (jsxRuntime.jsxs(useCheckout.CheckoutProvider, { client: client, credentials: checkoutCredentials, config: config, autoStart: !isReturn, children: [returnParams ? jsxRuntime.jsx(ResolveReturn, { params: returnParams }) : null, jsxRuntime.jsx(SazitoCheckout, { theme: config?.theme, continueShoppingUrl: config?.continueShoppingUrl, className: className, renderNextButton: renderNextButton, renderBackButton: renderBackButton, renderEmptyCart: renderEmptyCart, emptyCart: emptyCart })] }));
855
859
  }
856
860
  function ResolveReturn({ params }) {
857
861
  const { actions } = useCheckout.useCheckout();
862
+ const resolvedKey = react.useRef(null);
863
+ const paramsKey = JSON.stringify(Object.entries(params).sort(([a], [b]) => a.localeCompare(b)));
858
864
  react.useEffect(() => {
865
+ if (resolvedKey.current === paramsKey)
866
+ return;
867
+ resolvedKey.current = paramsKey;
859
868
  void actions.resolvePaymentReturn(params);
860
- // eslint-disable-next-line react-hooks/exhaustive-deps
861
- }, []);
869
+ }, [actions, params, paramsKey]);
862
870
  return null;
863
871
  }
864
872