@stripe/react-stripe-js
Advanced tools
Comparing version 1.8.1 to 1.9.0
import { FunctionComponent, PropsWithChildren, ReactNode } from "react"; | ||
import * as stripeJs from "@stripe/stripe-js"; | ||
import { StripeError } from "@stripe/stripe-js"; | ||
interface ElementProps { | ||
@@ -228,2 +229,9 @@ /** | ||
onEscape?: () => any; | ||
/** | ||
* Triggered when the Element fails to load. | ||
*/ | ||
onLoadError?: (event: { | ||
elementType: "linkAuthentication"; | ||
error: StripeError; | ||
}) => any; | ||
} | ||
@@ -271,2 +279,9 @@ type LinkAuthenticationElementComponent = FunctionComponent<LinkAuthenticationElementProps>; | ||
onEscape?: () => any; | ||
/** | ||
* Triggered when the Element fails to load. | ||
*/ | ||
onLoadError?: (event: { | ||
elementType: "payment"; | ||
error: StripeError; | ||
}) => any; | ||
} | ||
@@ -309,2 +324,9 @@ type PaymentElementComponent = FunctionComponent<PaymentElementProps>; | ||
onEscape?: () => any; | ||
/** | ||
* Triggered when the Element fails to load. | ||
*/ | ||
onLoadError?: (event: { | ||
elementType: "shippingAddress"; | ||
error: StripeError; | ||
}) => any; | ||
} | ||
@@ -311,0 +333,0 @@ type ShippingAddressElementComponent = FunctionComponent<ShippingAddressElementProps>; |
import { FunctionComponent, PropsWithChildren, ReactNode } from "react"; | ||
import * as stripeJs from "@stripe/stripe-js"; | ||
import { StripeError } from "@stripe/stripe-js"; | ||
interface ElementProps { | ||
@@ -228,2 +229,9 @@ /** | ||
onEscape?: () => any; | ||
/** | ||
* Triggered when the Element fails to load. | ||
*/ | ||
onLoadError?: (event: { | ||
elementType: "linkAuthentication"; | ||
error: StripeError; | ||
}) => any; | ||
} | ||
@@ -271,2 +279,9 @@ type LinkAuthenticationElementComponent = FunctionComponent<LinkAuthenticationElementProps>; | ||
onEscape?: () => any; | ||
/** | ||
* Triggered when the Element fails to load. | ||
*/ | ||
onLoadError?: (event: { | ||
elementType: "payment"; | ||
error: StripeError; | ||
}) => any; | ||
} | ||
@@ -309,2 +324,9 @@ type PaymentElementComponent = FunctionComponent<PaymentElementProps>; | ||
onEscape?: () => any; | ||
/** | ||
* Triggered when the Element fails to load. | ||
*/ | ||
onLoadError?: (event: { | ||
elementType: "shippingAddress"; | ||
error: StripeError; | ||
}) => any; | ||
} | ||
@@ -311,0 +333,0 @@ type ShippingAddressElementComponent = FunctionComponent<ShippingAddressElementProps>; |
@@ -356,3 +356,3 @@ import React from 'react'; | ||
name: 'react-stripe-js', | ||
version: "1.8.1" | ||
version: "1.9.0" | ||
}); | ||
@@ -362,3 +362,3 @@ | ||
name: 'react-stripe-js', | ||
version: "1.8.1", | ||
version: "1.9.0", | ||
url: 'https://stripe.com/docs/stripe-js/react' | ||
@@ -450,3 +450,5 @@ }); | ||
_ref$onClick = _ref.onClick, | ||
onClick = _ref$onClick === void 0 ? noop : _ref$onClick; | ||
onClick = _ref$onClick === void 0 ? noop : _ref$onClick, | ||
_ref$onLoadError = _ref.onLoadError, | ||
onLoadError = _ref$onLoadError === void 0 ? noop : _ref$onLoadError; | ||
@@ -464,2 +466,3 @@ var _useElementsContextWi = useElementsContextWithUseCase("mounts <".concat(displayName, ">")), | ||
var callOnEscape = useCallbackReference(onEscape); | ||
var callOnLoadError = useCallbackReference(onLoadError); | ||
React.useLayoutEffect(function () { | ||
@@ -476,3 +479,7 @@ if (elementRef.current == null && elements && domNode.current != null) { | ||
element.on('focus', callOnFocus); | ||
element.on('escape', callOnEscape); // Users can pass an onClick prop on any Element component | ||
element.on('escape', callOnEscape); // Users can pass an onLoadError prop on any Element component | ||
// just as they could listen for the `loaderror` event on any Element, | ||
// but only certain Elements will trigger the event. | ||
element.on('loaderror', callOnLoadError); // Users can pass an onClick prop on any Element component | ||
// just as they could listen for the `click` event on any Element, | ||
@@ -532,2 +539,3 @@ // but only the PaymentRequestButton will actually trigger the event. | ||
onClick: PropTypes.func, | ||
onLoadError: PropTypes.func, | ||
options: PropTypes.object | ||
@@ -534,0 +542,0 @@ }; |
@@ -362,3 +362,3 @@ 'use strict'; | ||
name: 'react-stripe-js', | ||
version: "1.8.1" | ||
version: "1.9.0" | ||
}); | ||
@@ -368,3 +368,3 @@ | ||
name: 'react-stripe-js', | ||
version: "1.8.1", | ||
version: "1.9.0", | ||
url: 'https://stripe.com/docs/stripe-js/react' | ||
@@ -456,3 +456,5 @@ }); | ||
_ref$onClick = _ref.onClick, | ||
onClick = _ref$onClick === void 0 ? noop : _ref$onClick; | ||
onClick = _ref$onClick === void 0 ? noop : _ref$onClick, | ||
_ref$onLoadError = _ref.onLoadError, | ||
onLoadError = _ref$onLoadError === void 0 ? noop : _ref$onLoadError; | ||
@@ -470,2 +472,3 @@ var _useElementsContextWi = useElementsContextWithUseCase("mounts <".concat(displayName, ">")), | ||
var callOnEscape = useCallbackReference(onEscape); | ||
var callOnLoadError = useCallbackReference(onLoadError); | ||
React.useLayoutEffect(function () { | ||
@@ -482,3 +485,7 @@ if (elementRef.current == null && elements && domNode.current != null) { | ||
element.on('focus', callOnFocus); | ||
element.on('escape', callOnEscape); // Users can pass an onClick prop on any Element component | ||
element.on('escape', callOnEscape); // Users can pass an onLoadError prop on any Element component | ||
// just as they could listen for the `loaderror` event on any Element, | ||
// but only certain Elements will trigger the event. | ||
element.on('loaderror', callOnLoadError); // Users can pass an onClick prop on any Element component | ||
// just as they could listen for the `click` event on any Element, | ||
@@ -538,2 +545,3 @@ // but only the PaymentRequestButton will actually trigger the event. | ||
onClick: PropTypes.func, | ||
onLoadError: PropTypes.func, | ||
options: PropTypes.object | ||
@@ -540,0 +548,0 @@ }; |
import { FunctionComponent, PropsWithChildren, ReactNode } from "react"; | ||
import * as stripeJs from "@stripe/stripe-js"; | ||
import { StripeError } from "@stripe/stripe-js"; | ||
interface ElementProps { | ||
@@ -228,2 +229,9 @@ /** | ||
onEscape?: () => any; | ||
/** | ||
* Triggered when the Element fails to load. | ||
*/ | ||
onLoadError?: (event: { | ||
elementType: "linkAuthentication"; | ||
error: StripeError; | ||
}) => any; | ||
} | ||
@@ -271,2 +279,9 @@ type LinkAuthenticationElementComponent = FunctionComponent<LinkAuthenticationElementProps>; | ||
onEscape?: () => any; | ||
/** | ||
* Triggered when the Element fails to load. | ||
*/ | ||
onLoadError?: (event: { | ||
elementType: "payment"; | ||
error: StripeError; | ||
}) => any; | ||
} | ||
@@ -309,2 +324,9 @@ type PaymentElementComponent = FunctionComponent<PaymentElementProps>; | ||
onEscape?: () => any; | ||
/** | ||
* Triggered when the Element fails to load. | ||
*/ | ||
onLoadError?: (event: { | ||
elementType: "shippingAddress"; | ||
error: StripeError; | ||
}) => any; | ||
} | ||
@@ -311,0 +333,0 @@ type ShippingAddressElementComponent = FunctionComponent<ShippingAddressElementProps>; |
@@ -439,3 +439,3 @@ (function (global, factory) { | ||
name: 'react-stripe-js', | ||
version: "1.8.1" | ||
version: "1.9.0" | ||
}); | ||
@@ -445,3 +445,3 @@ | ||
name: 'react-stripe-js', | ||
version: "1.8.1", | ||
version: "1.9.0", | ||
url: 'https://stripe.com/docs/stripe-js/react' | ||
@@ -533,3 +533,5 @@ }); | ||
_ref$onClick = _ref.onClick, | ||
onClick = _ref$onClick === void 0 ? noop : _ref$onClick; | ||
onClick = _ref$onClick === void 0 ? noop : _ref$onClick, | ||
_ref$onLoadError = _ref.onLoadError, | ||
onLoadError = _ref$onLoadError === void 0 ? noop : _ref$onLoadError; | ||
@@ -547,2 +549,3 @@ var _useElementsContextWi = useElementsContextWithUseCase("mounts <".concat(displayName, ">")), | ||
var callOnEscape = useCallbackReference(onEscape); | ||
var callOnLoadError = useCallbackReference(onLoadError); | ||
React.useLayoutEffect(function () { | ||
@@ -559,3 +562,7 @@ if (elementRef.current == null && elements && domNode.current != null) { | ||
element.on('focus', callOnFocus); | ||
element.on('escape', callOnEscape); // Users can pass an onClick prop on any Element component | ||
element.on('escape', callOnEscape); // Users can pass an onLoadError prop on any Element component | ||
// just as they could listen for the `loaderror` event on any Element, | ||
// but only certain Elements will trigger the event. | ||
element.on('loaderror', callOnLoadError); // Users can pass an onClick prop on any Element component | ||
// just as they could listen for the `click` event on any Element, | ||
@@ -615,2 +622,3 @@ // but only the PaymentRequestButton will actually trigger the event. | ||
onClick: propTypes.func, | ||
onLoadError: propTypes.func, | ||
options: propTypes.object | ||
@@ -617,0 +625,0 @@ }; |
import { FunctionComponent, PropsWithChildren, ReactNode } from "react"; | ||
import * as stripeJs from "@stripe/stripe-js"; | ||
import { StripeError } from "@stripe/stripe-js"; | ||
interface ElementProps { | ||
@@ -228,2 +229,9 @@ /** | ||
onEscape?: () => any; | ||
/** | ||
* Triggered when the Element fails to load. | ||
*/ | ||
onLoadError?: (event: { | ||
elementType: "linkAuthentication"; | ||
error: StripeError; | ||
}) => any; | ||
} | ||
@@ -271,2 +279,9 @@ type LinkAuthenticationElementComponent = FunctionComponent<LinkAuthenticationElementProps>; | ||
onEscape?: () => any; | ||
/** | ||
* Triggered when the Element fails to load. | ||
*/ | ||
onLoadError?: (event: { | ||
elementType: "payment"; | ||
error: StripeError; | ||
}) => any; | ||
} | ||
@@ -309,2 +324,9 @@ type PaymentElementComponent = FunctionComponent<PaymentElementProps>; | ||
onEscape?: () => any; | ||
/** | ||
* Triggered when the Element fails to load. | ||
*/ | ||
onLoadError?: (event: { | ||
elementType: "shippingAddress"; | ||
error: StripeError; | ||
}) => any; | ||
} | ||
@@ -311,0 +333,0 @@ type ShippingAddressElementComponent = FunctionComponent<ShippingAddressElementProps>; |
@@ -1,1 +0,1 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],t):t((e=e||self).ReactStripe={},e.React)}(this,(function(e,t){"use strict";t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;function n(){}function r(){}r.resetWarningCache=n;var o=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){e.exports=function(){function e(e,t,n,r,o,u){if("SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"!==u){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}function t(){return e}e.isRequired=e;var o={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:r,resetWarningCache:n};return o.PropTypes=o,o}()}));function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null==n)return;var r,o,u=[],c=!0,i=!1;try{for(n=n.call(e);!(c=(r=n.next()).done)&&(u.push(r.value),!t||u.length!==t);c=!0);}catch(e){i=!0,o=e}finally{try{c||null==n.return||n.return()}finally{if(i)throw o}}return u}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return p(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var f=function(e){var n=t.useRef(e);return t.useEffect((function(){n.current=e}),[e]),n.current},l=function(e){return null!==e&&"object"===i(e)},y=function(e,t,n){return l(e)?Object.keys(e).reduce((function(r,o){var u=!l(t)||!function e(t,n){if(!l(t)||!l(n))return t===n;var r=Array.isArray(t);if(r!==Array.isArray(n))return!1;var o="[object Object]"===Object.prototype.toString.call(t);if(o!==("[object Object]"===Object.prototype.toString.call(n)))return!1;if(!o&&!r)return t===n;var u=Object.keys(t),c=Object.keys(n);if(u.length!==c.length)return!1;for(var i={},a=0;a<u.length;a+=1)i[u[a]]=!0;for(var s=0;s<c.length;s+=1)i[c[s]]=!0;var p=Object.keys(i);if(p.length!==u.length)return!1;var f=t,y=n;return p.every((function(t){return e(f[t],y[t])}))}(e[o],t[o]);return n.includes(o)?(u&&console.warn("Unsupported prop change: options.".concat(o," is not a mutable property.")),r):u?c(c({},r||{}),{},a({},o,e[o])):r}),null):null},m=function(e){if(null===e||l(t=e)&&"function"==typeof t.elements&&"function"==typeof t.createToken&&"function"==typeof t.createPaymentMethod&&"function"==typeof t.confirmCardPayment)return e;var t;throw new Error("Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.")},d=function(e){if(function(e){return l(e)&&"function"==typeof e.then}(e))return{tag:"async",stripePromise:Promise.resolve(e).then(m)};var t=m(e);return null===t?{tag:"empty"}:{tag:"sync",stripe:t}},v=t.createContext(null);v.displayName="ElementsContext";var b=function(e){var n=e.stripe,r=e.options,o=e.children,u=t.useMemo((function(){return d(n)}),[n]),c=s(t.useState((function(){return{stripe:"sync"===u.tag?u.stripe:null,elements:"sync"===u.tag?u.stripe.elements(r):null}})),2),i=c[0],a=c[1];t.useEffect((function(){var e=!0,t=function(e){a((function(t){return t.stripe?t:{stripe:e,elements:e.elements(r)}}))};return"async"!==u.tag||i.stripe?"sync"!==u.tag||i.stripe||t(u.stripe):u.stripePromise.then((function(n){n&&e&&t(n)})),function(){e=!1}}),[u,i,r]);var p=f(n);t.useEffect((function(){null!==p&&p!==n&&console.warn("Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.")}),[p,n]);var l=f(r);return t.useEffect((function(){if(i.elements){var e=y(r,l,["clientSecret","fonts"]);e&&i.elements.update(e)}}),[r,l,i.elements]),t.useEffect((function(){var e=i.stripe;e&&e._registerWrapper&&e.registerAppInfo&&(e._registerWrapper({name:"react-stripe-js",version:"1.8.1"}),e.registerAppInfo({name:"react-stripe-js",version:"1.8.1",url:"https://stripe.com/docs/stripe-js/react"}))}),[i.stripe]),t.createElement(v.Provider,{value:i},o)};b.propTypes={stripe:o.any,options:o.object};var h=function(e){return function(e,t){if(!e)throw new Error("Could not find Elements context; You need to wrap the part of your app that ".concat(t," in an <Elements> provider."));return e}(t.useContext(v),e)},g=function(e){return(0,e.children)(h("mounts <ElementsConsumer>"))};g.propTypes={children:o.func.isRequired};var E=function(e){var n=t.useRef(e);return t.useEffect((function(){n.current=e}),[e]),function(){n.current&&n.current.apply(n,arguments)}},O=function(){},j=function(e,n){var r,u="".concat((r=e).charAt(0).toUpperCase()+r.slice(1),"Element"),c=n?function(e){h("mounts <".concat(u,">"));var n=e.id,r=e.className;return t.createElement("div",{id:n,className:r})}:function(n){var r=n.id,o=n.className,c=n.options,i=void 0===c?{}:c,a=n.onBlur,s=void 0===a?O:a,p=n.onFocus,l=void 0===p?O:p,m=n.onReady,d=void 0===m?O:m,v=n.onChange,b=void 0===v?O:v,g=n.onEscape,j=void 0===g?O:g,P=n.onClick,S=void 0===P?O:P,k=h("mounts <".concat(u,">")).elements,C=t.useRef(null),w=t.useRef(null),A=E(d),x=E(s),R=E(l),T=E(S),B=E(b),_=E(j);t.useLayoutEffect((function(){if(null==C.current&&k&&null!=w.current){var t=k.create(e,i);C.current=t,t.mount(w.current),t.on("ready",(function(){return A(t)})),t.on("change",B),t.on("blur",x),t.on("focus",R),t.on("escape",_),t.on("click",T)}}));var I=f(i);return t.useEffect((function(){if(C.current){var e=y(i,I,["paymentRequest"]);e&&C.current.update(e)}}),[i,I]),t.useLayoutEffect((function(){return function(){C.current&&(C.current.destroy(),C.current=null)}}),[]),t.createElement("div",{id:r,className:o,ref:w})};return c.propTypes={id:o.string,className:o.string,onChange:o.func,onBlur:o.func,onFocus:o.func,onReady:o.func,onClick:o.func,options:o.object},c.displayName=u,c.__elementType=e,c},P="undefined"==typeof window,S=j("auBankAccount",P),k=j("card",P),C=j("cardNumber",P),w=j("cardExpiry",P),A=j("cardCvc",P),x=j("fpxBank",P),R=j("iban",P),T=j("idealBank",P),B=j("p24Bank",P),_=j("epsBank",P),I=j("payment",P),N=j("paymentRequestButton",P),M=j("linkAuthentication",P),q=j("shippingAddress",P),D=j("affirmMessage",P),U=j("afterpayClearpayMessage",P);e.AffirmMessageElement=D,e.AfterpayClearpayMessageElement=U,e.AuBankAccountElement=S,e.CardCvcElement=A,e.CardElement=k,e.CardExpiryElement=w,e.CardNumberElement=C,e.Elements=b,e.ElementsConsumer=g,e.EpsBankElement=_,e.FpxBankElement=x,e.IbanElement=R,e.IdealBankElement=T,e.LinkAuthenticationElement=M,e.P24BankElement=B,e.PaymentElement=I,e.PaymentRequestButtonElement=N,e.ShippingAddressElement=q,e.useElements=function(){return h("calls useElements()").elements},e.useStripe=function(){return h("calls useStripe()").stripe},Object.defineProperty(e,"__esModule",{value:!0})})); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],t):t((e=e||self).ReactStripe={},e.React)}(this,(function(e,t){"use strict";t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;function n(){}function r(){}r.resetWarningCache=n;var o=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){e.exports=function(){function e(e,t,n,r,o,u){if("SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"!==u){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}function t(){return e}e.isRequired=e;var o={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:r,resetWarningCache:n};return o.PropTypes=o,o}()}));function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null==n)return;var r,o,u=[],c=!0,i=!1;try{for(n=n.call(e);!(c=(r=n.next()).done)&&(u.push(r.value),!t||u.length!==t);c=!0);}catch(e){i=!0,o=e}finally{try{c||null==n.return||n.return()}finally{if(i)throw o}}return u}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return p(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var f=function(e){var n=t.useRef(e);return t.useEffect((function(){n.current=e}),[e]),n.current},l=function(e){return null!==e&&"object"===i(e)},y=function(e,t,n){return l(e)?Object.keys(e).reduce((function(r,o){var u=!l(t)||!function e(t,n){if(!l(t)||!l(n))return t===n;var r=Array.isArray(t);if(r!==Array.isArray(n))return!1;var o="[object Object]"===Object.prototype.toString.call(t);if(o!==("[object Object]"===Object.prototype.toString.call(n)))return!1;if(!o&&!r)return t===n;var u=Object.keys(t),c=Object.keys(n);if(u.length!==c.length)return!1;for(var i={},a=0;a<u.length;a+=1)i[u[a]]=!0;for(var s=0;s<c.length;s+=1)i[c[s]]=!0;var p=Object.keys(i);if(p.length!==u.length)return!1;var f=t,y=n;return p.every((function(t){return e(f[t],y[t])}))}(e[o],t[o]);return n.includes(o)?(u&&console.warn("Unsupported prop change: options.".concat(o," is not a mutable property.")),r):u?c(c({},r||{}),{},a({},o,e[o])):r}),null):null},m=function(e){if(null===e||l(t=e)&&"function"==typeof t.elements&&"function"==typeof t.createToken&&"function"==typeof t.createPaymentMethod&&"function"==typeof t.confirmCardPayment)return e;var t;throw new Error("Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.")},d=function(e){if(function(e){return l(e)&&"function"==typeof e.then}(e))return{tag:"async",stripePromise:Promise.resolve(e).then(m)};var t=m(e);return null===t?{tag:"empty"}:{tag:"sync",stripe:t}},v=t.createContext(null);v.displayName="ElementsContext";var b=function(e){var n=e.stripe,r=e.options,o=e.children,u=t.useMemo((function(){return d(n)}),[n]),c=s(t.useState((function(){return{stripe:"sync"===u.tag?u.stripe:null,elements:"sync"===u.tag?u.stripe.elements(r):null}})),2),i=c[0],a=c[1];t.useEffect((function(){var e=!0,t=function(e){a((function(t){return t.stripe?t:{stripe:e,elements:e.elements(r)}}))};return"async"!==u.tag||i.stripe?"sync"!==u.tag||i.stripe||t(u.stripe):u.stripePromise.then((function(n){n&&e&&t(n)})),function(){e=!1}}),[u,i,r]);var p=f(n);t.useEffect((function(){null!==p&&p!==n&&console.warn("Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.")}),[p,n]);var l=f(r);return t.useEffect((function(){if(i.elements){var e=y(r,l,["clientSecret","fonts"]);e&&i.elements.update(e)}}),[r,l,i.elements]),t.useEffect((function(){var e=i.stripe;e&&e._registerWrapper&&e.registerAppInfo&&(e._registerWrapper({name:"react-stripe-js",version:"1.9.0"}),e.registerAppInfo({name:"react-stripe-js",version:"1.9.0",url:"https://stripe.com/docs/stripe-js/react"}))}),[i.stripe]),t.createElement(v.Provider,{value:i},o)};b.propTypes={stripe:o.any,options:o.object};var h=function(e){return function(e,t){if(!e)throw new Error("Could not find Elements context; You need to wrap the part of your app that ".concat(t," in an <Elements> provider."));return e}(t.useContext(v),e)},E=function(e){return(0,e.children)(h("mounts <ElementsConsumer>"))};E.propTypes={children:o.func.isRequired};var g=function(e){var n=t.useRef(e);return t.useEffect((function(){n.current=e}),[e]),function(){n.current&&n.current.apply(n,arguments)}},O=function(){},j=function(e,n){var r,u="".concat((r=e).charAt(0).toUpperCase()+r.slice(1),"Element"),c=n?function(e){h("mounts <".concat(u,">"));var n=e.id,r=e.className;return t.createElement("div",{id:n,className:r})}:function(n){var r=n.id,o=n.className,c=n.options,i=void 0===c?{}:c,a=n.onBlur,s=void 0===a?O:a,p=n.onFocus,l=void 0===p?O:p,m=n.onReady,d=void 0===m?O:m,v=n.onChange,b=void 0===v?O:v,E=n.onEscape,j=void 0===E?O:E,P=n.onClick,S=void 0===P?O:P,k=n.onLoadError,C=void 0===k?O:k,w=h("mounts <".concat(u,">")).elements,A=t.useRef(null),x=t.useRef(null),R=g(d),T=g(s),B=g(l),_=g(S),I=g(b),N=g(j),M=g(C);t.useLayoutEffect((function(){if(null==A.current&&w&&null!=x.current){var t=w.create(e,i);A.current=t,t.mount(x.current),t.on("ready",(function(){return R(t)})),t.on("change",I),t.on("blur",T),t.on("focus",B),t.on("escape",N),t.on("loaderror",M),t.on("click",_)}}));var L=f(i);return t.useEffect((function(){if(A.current){var e=y(i,L,["paymentRequest"]);e&&A.current.update(e)}}),[i,L]),t.useLayoutEffect((function(){return function(){A.current&&(A.current.destroy(),A.current=null)}}),[]),t.createElement("div",{id:r,className:o,ref:x})};return c.propTypes={id:o.string,className:o.string,onChange:o.func,onBlur:o.func,onFocus:o.func,onReady:o.func,onClick:o.func,onLoadError:o.func,options:o.object},c.displayName=u,c.__elementType=e,c},P="undefined"==typeof window,S=j("auBankAccount",P),k=j("card",P),C=j("cardNumber",P),w=j("cardExpiry",P),A=j("cardCvc",P),x=j("fpxBank",P),R=j("iban",P),T=j("idealBank",P),B=j("p24Bank",P),_=j("epsBank",P),I=j("payment",P),N=j("paymentRequestButton",P),M=j("linkAuthentication",P),L=j("shippingAddress",P),q=j("affirmMessage",P),D=j("afterpayClearpayMessage",P);e.AffirmMessageElement=q,e.AfterpayClearpayMessageElement=D,e.AuBankAccountElement=S,e.CardCvcElement=A,e.CardElement=k,e.CardExpiryElement=w,e.CardNumberElement=C,e.Elements=b,e.ElementsConsumer=E,e.EpsBankElement=_,e.FpxBankElement=x,e.IbanElement=R,e.IdealBankElement=T,e.LinkAuthenticationElement=M,e.P24BankElement=B,e.PaymentElement=I,e.PaymentRequestButtonElement=N,e.ShippingAddressElement=L,e.useElements=function(){return h("calls useElements()").elements},e.useStripe=function(){return h("calls useStripe()").stripe},Object.defineProperty(e,"__esModule",{value:!0})})); |
{ | ||
"name": "@stripe/react-stripe-js", | ||
"version": "1.8.1", | ||
"version": "1.9.0", | ||
"description": "React components for Stripe.js and Stripe Elements", | ||
@@ -65,3 +65,3 @@ "main": "dist/react-stripe.js", | ||
"@storybook/react": "^6.5.0-beta.8", | ||
"@stripe/stripe-js": "^1.26.0", | ||
"@stripe/stripe-js": "^1.32.0", | ||
"@testing-library/jest-dom": "^5.16.4", | ||
@@ -110,3 +110,3 @@ "@testing-library/react": "^13.1.1", | ||
"peerDependencies": { | ||
"@stripe/stripe-js": "^1.26.0", | ||
"@stripe/stripe-js": "^1.32.0", | ||
"react": "^16.8.0 || ^17.0.0 || ^18.0.0", | ||
@@ -113,0 +113,0 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" |
import {FunctionComponent} from 'react'; | ||
import * as stripeJs from '@stripe/stripe-js'; | ||
import {StripeError} from '@stripe/stripe-js'; | ||
@@ -290,2 +291,10 @@ export interface ElementProps { | ||
onEscape?: () => any; | ||
/** | ||
* Triggered when the Element fails to load. | ||
*/ | ||
onLoadError?: (event: { | ||
elementType: 'linkAuthentication'; | ||
error: StripeError; | ||
}) => any; | ||
} | ||
@@ -346,2 +355,7 @@ | ||
onEscape?: () => any; | ||
/** | ||
* Triggered when the Element fails to load. | ||
*/ | ||
onLoadError?: (event: {elementType: 'payment'; error: StripeError}) => any; | ||
} | ||
@@ -397,2 +411,10 @@ | ||
onEscape?: () => any; | ||
/** | ||
* Triggered when the Element fails to load. | ||
*/ | ||
onLoadError?: (event: { | ||
elementType: 'shippingAddress'; | ||
error: StripeError; | ||
}) => any; | ||
} | ||
@@ -399,0 +421,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
284805
6034
1