diff --git a/dist/bundle.js b/dist/bundle.js index 8ac706b..82468ef 100644 --- a/dist/bundle.js +++ b/dist/bundle.js @@ -1,2 +1,2 @@ /*! For license information please see bundle.js.LICENSE.txt */ -!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("react"),require("react/jsx-runtime")):"function"==typeof define&&define.amd?define(["react","react/jsx-runtime"],n):"object"==typeof exports?exports.ReactHyperJs=n(require("react"),require("react/jsx-runtime")):e.ReactHyperJs=n(e.React,e[void 0])}(this,(e,n)=>(()=>{"use strict";var t={12(n){n.exports=e},402(e){e.exports=n}},o={};function r(e){var n=o[e];if(void 0!==n)return n.exports;var i=o[e]={exports:{}};return t[e](i,i.exports,r),i.exports}r.d=(e,n)=>{for(var t in n)r.o(n,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},r.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};r.r(i),r.d(i,{ApplePayElement:()=>ve,CardCVCElement:()=>fe,CardCVCWidget:()=>de,CardElement:()=>se,CardExpiryElement:()=>ye,CardExpiryWidget:()=>Ce,CardNumberElement:()=>me,CardNumberWidget:()=>pe,CardWidget:()=>le,Elements:()=>ie,ExpressCheckoutElement:()=>Ee,GooglePayElement:()=>Pe,HyperElements:()=>ae,HyperManagementElements:()=>ke,PayPalElement:()=>ge,PaymentElement:()=>ue,PaymentMethodsManagementElement:()=>Se,PazeElement:()=>he,UnifiedCheckout:()=>ce,initPaymentSession:()=>ne,useElements:()=>re,useHyper:()=>Z,usePaymentSession:()=>ee,useStripe:()=>$,useWidgets:()=>oe});var a=r(12),u=r(402),c={on:function(e,n){},collapse:function(){},blur:function(){},update:function(e){},destroy:function(){},unmount:function(){},mount:function(e){},focus:function(){},clear:function(){},onSDKHandleClick:function(e){}},s=function(e){if("string"==typeof e)return e},l=function(e){if("object"==typeof e&&!Array.isArray(e)&&null!==e)return e},m=function(e){if(Array.isArray(e))return e};function p(e,n,t){for(var o=new Array(t),r=0,i=n;r=0)return function(e,n){return function(t){return f(e,n.concat([t]))}}(o,t);n=p(t,i,0|-a),e=o.apply(null,p(t,0,i))}}function d(e){return 1===e.length?e:function(n){return function(e,n){var t=e.length;if(1===t)return e(n);switch(t){case 1:return e(n);case 2:return function(t){return e(n,t)};case 3:return function(t,o){return e(n,t,o)};case 4:return function(t,o,r){return e(n,t,o,r)};case 5:return function(t,o,r,i){return e(n,t,o,r,i)};case 6:return function(t,o,r,i,a){return e(n,t,o,r,i,a)};case 7:return function(t,o,r,i,a,u){return e(n,t,o,r,i,a,u)};default:return f(e,[n])}}(e,n)}}function y(e){return void 0===e?{BS_PRIVATE_NESTED_SOME_NONE:0}:null!==e&&void 0!==e.BS_PRIVATE_NESTED_SOME_NONE?{BS_PRIVATE_NESTED_SOME_NONE:e.BS_PRIVATE_NESTED_SOME_NONE+1|0}:e}function C(e){if(null===e||void 0===e.BS_PRIVATE_NESTED_SOME_NONE)return e;var n=e.BS_PRIVATE_NESTED_SOME_NONE;return 0===n?void 0:{BS_PRIVATE_NESTED_SOME_NONE:n-1|0}}function P(e,n){return function(e,n){if(void 0!==e)return n(C(e))}(e,d(n))}function v(e,n){return void 0!==e?C(e):n}function h(e){return e}var g={getCustomerSavedPaymentMethods:function(e){return Promise.resolve(null)},updateIntent:function(e){return Promise.resolve({})}},E={clientSecret:"",confirmPayment:function(e){return Promise.resolve({})},confirmCardPayment:function(e,n,t){return Promise.resolve({})},retrievePaymentIntent:function(e){return Promise.resolve({})},paymentRequest:h,initPaymentSession:function(e){return g},completeUpdateIntent:function(e){return Promise.resolve({})},initiateUpdateIntent:function(){return Promise.resolve({})},confirmTokenization:function(e){return Promise.resolve({})}},k=a.createContext(E),S={make:k.Provider},x={ephemeralKey:"",paymentRequest:h},B=a.createContext(x),T={make:k.Provider};function R(e,n,t){return v(P(e[n],s),t)}function j(e){var n=v(l(e),{});return{fonts:v(P(n.fonts,m),[]),locale:R(n,"locale",""),clientSecret:R(n,"clientSecret",""),appearance:v(P(n.appearance,l),{}),loader:R(n,"loader","auto")}}function I(e){}function _(e){}function b(){return new Promise(function(e,n){setTimeout(function(){e({})},1e3)})}function O(e,n){return c}var F={options:{fonts:[],locale:"",clientSecret:"",appearance:{},loader:""},update:I,getElement:_,fetchUpdates:b,create:O,updateIntent:function(e){return Promise.resolve({})}},N=a.createContext(F),U={make:N.Provider},M={getCustomerSavedPaymentMethods:function(e){return Promise.resolve({})},updateIntent:function(e){return Promise.resolve({})}},w=a.createContext(M),A={make:w.Provider},q={options:{fonts:[],locale:"",ephemeralKey:"",appearance:{},loader:""},update:I,getElement:_,fetchUpdates:b,create:O},D=a.createContext(q),z={make:D.Provider},V=function(e){var n=e.onPaymentButtonClick,t=e.onPaymentComplete,o=e.onClick,r=e.onBlur,i=e.onFocus,c=e.componentType,s=e.onReady,l=e.onChange,m=e.options,p=e.id,f=void 0!==p?p:"payment-Element",d=a.useContext(k),C=a.useContext(N),P=a.useRef(null),v=C.create(c,m);return a.useEffect(function(){C.create(c,m).mount("#orca-elements-payment-element-"+f)},[P,C]),a.useEffect(function(){v.on("ready",s),v.on("focus",i),v.on("blur",r),v.on("clickTriggered",o),v.on("change",l),v.on("completeDoThis",t),v.onSDKHandleClick(n)},[C,d]),u.jsx("div",{ref:y(P),id:"orca-elements-payment-element-"+f})},H=function(e){return u.jsx(V,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"cardCvc",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick,onPaymentComplete:e.onPaymentComplete,onPaymentButtonClick:e.onPaymentButtonClick})};function G(e,n){return n.then(d(e))}var K=function(e){return u.jsx(V,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"cardExpiry",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick,onPaymentComplete:e.onPaymentComplete,onPaymentButtonClick:e.onPaymentButtonClick})},W=function(e){return u.jsx(V,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"cardNumber",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick,onPaymentComplete:e.onPaymentComplete,onPaymentButtonClick:e.onPaymentButtonClick})},J=function(e){return u.jsx(V,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"card",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick,onPaymentComplete:e.onPaymentComplete,onPaymentButtonClick:e.onPaymentButtonClick})},L=function(e){return u.jsx(V,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"payment",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick,onPaymentComplete:e.onPaymentComplete,onPaymentButtonClick:e.onPaymentButtonClick})};function Q(){var e,n,t="function"==typeof Symbol?Symbol:{},o=t.iterator||"@@iterator",r=t.toStringTag||"@@toStringTag";function i(t,o,r,i){var c=o&&o.prototype instanceof u?o:u,s=Object.create(c.prototype);return X(s,"_invoke",function(t,o,r){var i,u,c,s=0,l=r||[],m=!1,p={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(n,t){return i=n,u=0,c=e,p.n=t,a}};function f(t,o){for(u=t,c=o,n=0;!m&&s&&!r&&n3?(r=d===o)&&(c=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=e):i[0]<=f&&((r=t<2&&fo||o>d)&&(i[4]=t,i[5]=o,p.n=d,u=0))}if(r||t>1)return a;throw m=!0,o}return function(r,l,d){if(s>1)throw TypeError("Generator is already running");for(m&&1===l&&f(l,d),u=l,c=d;(n=u<2?e:c)||!m;){i||(u?u<3?(u>1&&(p.n=-1),f(u,c)):p.n=c:p.v=c);try{if(s=2,i){if(u||(r="next"),n=i[r]){if(!(n=n.call(i,c)))throw TypeError("iterator result is not an object");if(!n.done)return n;c=n.value,u<2&&(u=0)}else 1===u&&(n=i.return)&&n.call(i),u<2&&(c=TypeError("The iterator does not provide a '"+r+"' method"),u=1);i=e}else if((n=(m=p.n<0)?c:t.call(o,p))!==a)break}catch(n){i=e,u=1,c=n}finally{s=1}}return{value:n,done:m}}}(t,r,i),!0),s}var a={};function u(){}function c(){}function s(){}n=Object.getPrototypeOf;var l=[][o]?n(n([][o]())):(X(n={},o,function(){return this}),n),m=s.prototype=u.prototype=Object.create(l);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,s):(e.__proto__=s,X(e,r,"GeneratorFunction")),e.prototype=Object.create(m),e}return c.prototype=s,X(m,"constructor",s),X(s,"constructor",c),c.displayName="GeneratorFunction",X(s,r,"GeneratorFunction"),X(m),X(m,r,"Generator"),X(m,o,function(){return this}),X(m,"toString",function(){return"[object Generator]"}),(Q=function(){return{w:i,m:p}})()}function X(e,n,t,o){var r=Object.defineProperty;try{r({},"",{})}catch(e){r=0}X=function(e,n,t,o){function i(n,t){X(e,n,function(e){return this._invoke(n,t,e)})}n?r?r(e,n,{value:t,enumerable:!o,configurable:!o,writable:!o}):e[n]=t:(i("next",0),i("throw",1),i("return",2))},X(e,n,t,o)}function Y(e,n,t,o,r,i,a){try{var u=e[i](a),c=u.value}catch(e){return void t(e)}u.done?n(c):Promise.resolve(c).then(o,r)}function Z(){return a.useContext(k)}function $(){return console.warn("useStripe() is deprecated. Use useHyper() instead"),a.useContext(k)}function ee(){return a.useContext(w)}function ne(e,n){return te.apply(this,arguments)}function te(){var e;return e=Q().m(function e(n,t){var o;return Q().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,n;case 1:return o=e.v,e.a(2,o.initPaymentSession(t))}},e)}),te=function(){var n=this,t=arguments;return new Promise(function(o,r){var i=e.apply(n,t);function a(e){Y(i,o,r,a,u,"next",e)}function u(e){Y(i,o,r,a,u,"throw",e)}a(void 0)})},te.apply(this,arguments)}function oe(){return a.useContext(N)}function re(){return console.warn("useElements() is deprecated. Use useWidgets() instead"),a.useContext(N)}var ie=function(e){var n=e.options,t=e.stripe,o=j(n),r=a.useState(function(){return E}),i=r[1],c=a.useState(function(){return F}),s=c[1];return a.useEffect(function(){G(function(e){var t=e.elements(n),r=t.update,a=t.getElement,u=t.fetchUpdates,c=t.create,l=t.updateIntent,m={options:o,update:r,getElement:a,fetchUpdates:u,create:c,updateIntent:l},p={clientSecret:o.clientSecret,confirmPayment:e.confirmPayment,confirmCardPayment:e.confirmCardPayment,retrievePaymentIntent:e.retrievePaymentIntent,paymentRequest:e.paymentRequest,initPaymentSession:e.initPaymentSession,completeUpdateIntent:e.completeUpdateIntent,initiateUpdateIntent:e.initiateUpdateIntent,confirmTokenization:e.confirmTokenization};return i(function(e){return p}),s(function(e){return m}),Promise.resolve(p)},t)},[]),u.jsx(S.make,{value:r[0],children:u.jsx(U.make,{value:c[0],children:e.children})})},ae=function(e){var n=e.options,t=e.hyper,o=j(n),r=a.useState(function(){return E}),i=r[1],c=a.useState(function(){return F}),s=c[1],l=a.useState(function(){return M}),m=l[1];return a.useEffect(function(){G(function(e){var t=e.elements(n),r=t.update,a=t.getElement,u=t.fetchUpdates,c=t.create,l=t.updateIntent,p={options:o,update:r,getElement:a,fetchUpdates:u,create:c,updateIntent:l},f={clientSecret:o.clientSecret,confirmPayment:e.confirmPayment,confirmCardPayment:e.confirmCardPayment,retrievePaymentIntent:e.retrievePaymentIntent,paymentRequest:e.paymentRequest,initPaymentSession:e.initPaymentSession,completeUpdateIntent:e.completeUpdateIntent,initiateUpdateIntent:e.initiateUpdateIntent,confirmTokenization:e.confirmTokenization},d=e.initPaymentSession(n),y={getCustomerSavedPaymentMethods:d.getCustomerSavedPaymentMethods,updateIntent:d.updateIntent};return i(function(e){return f}),s(function(e){return p}),m(function(e){return y}),Promise.resolve(f)},t)},[]),u.jsx(S.make,{value:r[0],children:u.jsx(U.make,{value:c[0],children:u.jsx(A.make,{value:l[0],children:e.children})})})},ue=L,ce=L,se=J,le=J,me=W,pe=W,fe=H,de=H,ye=K,Ce=K,Pe=function(e){return u.jsx(V,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"googlePay",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick,onPaymentComplete:e.onPaymentComplete,onPaymentButtonClick:e.onPaymentButtonClick})},ve=function(e){return u.jsx(V,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"applePay",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick,onPaymentComplete:e.onPaymentComplete,onPaymentButtonClick:e.onPaymentButtonClick})},he=function(e){return u.jsx(V,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"paze",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick,onPaymentComplete:e.onPaymentComplete,onPaymentButtonClick:e.onPaymentButtonClick})},ge=function(e){return u.jsx(V,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"payPal",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick,onPaymentComplete:e.onPaymentComplete,onPaymentButtonClick:e.onPaymentButtonClick})},Ee=function(e){return u.jsx(V,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"expressCheckout",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick,onPaymentComplete:e.onPaymentComplete,onPaymentButtonClick:e.onPaymentButtonClick})},ke=function(e){var n=e.options,t=e.hyper,o=function(e){var n=v(l(e),{});return{fonts:v(P(n.fonts,m),[]),locale:R(n,"locale",""),ephemeralKey:R(n,"ephemeralKey",""),appearance:v(P(n.appearance,l),{}),loader:R(n,"loader","auto")}}(n),r=a.useState(function(){return E}),i=r[1],c=a.useState(function(){return q}),s=c[1];return a.useEffect(function(){G(function(e){var t=e.paymentMethodsManagementElements(n),r=t.update,a=t.getElement,u=t.fetchUpdates,c=t.create,l={options:o,update:r,getElement:a,fetchUpdates:u,create:c},m={clientSecret:"",confirmPayment:e.confirmPayment,confirmCardPayment:e.confirmCardPayment,retrievePaymentIntent:e.retrievePaymentIntent,paymentRequest:e.paymentRequest,initPaymentSession:e.initPaymentSession,completeUpdateIntent:e.completeUpdateIntent,initiateUpdateIntent:e.initiateUpdateIntent,confirmTokenization:e.confirmTokenization};return i(function(e){return m}),s(function(e){return l}),Promise.resolve(m)},t)},[]),u.jsx(T.make,{value:r[0],children:u.jsx(z.make,{value:c[0],children:e.children})})},Se=function(e){var n=e.onClick,t=e.onBlur,o=e.onFocus,r=e.componentType,i=e.onReady,c=e.onChange,s=e.options,l=e.id,m=void 0!==l?l:"payment-management",p=void 0!==r?r:"paymentMethodsManagement",f=a.useContext(B),d=a.useContext(D),C=a.useRef(null),P=d.create(p,s);return a.useEffect(function(){d.create(p,s).mount("#orca-elements-payment-management-"+m)},[C,d]),a.useEffect(function(){return P.on("ready",i),P.on("focus",o),P.on("blur",t),P.on("clickTriggered",n),P.on("change",c),function(){P.on("ready",void 0),P.on("focus",void 0),P.on("blur",void 0),P.on("clickTriggered",void 0),P.on("change",void 0)}},[d,f]),u.jsx("div",{ref:y(C),id:"orca-elements-payment-management-"+m})};return i})()); \ No newline at end of file +!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("react"),require("react/jsx-runtime")):"function"==typeof define&&define.amd?define(["react","react/jsx-runtime"],n):"object"==typeof exports?exports.ReactHyperJs=n(require("react"),require("react/jsx-runtime")):e.ReactHyperJs=n(e.React,e[void 0])}(this,(e,n)=>(()=>{"use strict";var t={12(n){n.exports=e},402(e){e.exports=n}},o={};function r(e){var n=o[e];if(void 0!==n)return n.exports;var i=o[e]={exports:{}};return t[e](i,i.exports,r),i.exports}r.d=(e,n)=>{for(var t in n)r.o(n,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},r.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};r.r(i),r.d(i,{ApplePayElement:()=>Ee,CardCVCElement:()=>de,CardCVCWidget:()=>Pe,CardElement:()=>me,CardExpiryElement:()=>Ce,CardExpiryWidget:()=>ve,CardNumberElement:()=>fe,CardNumberWidget:()=>ye,CardWidget:()=>pe,Elements:()=>ue,ExpressCheckoutElement:()=>Se,GooglePayElement:()=>he,HyperElements:()=>ce,HyperManagementElements:()=>xe,PayPalElement:()=>ke,PaymentElement:()=>le,PaymentMethodsManagementElement:()=>Be,PazeElement:()=>ge,UnifiedCheckout:()=>se,initPaymentSession:()=>oe,useElements:()=>ae,useHyper:()=>ee,usePaymentSession:()=>te,useStripe:()=>ne,useWidgets:()=>ie});var a=r(12),u=r(402),c={on:function(e,n){},collapse:function(){},blur:function(){},update:function(e){},destroy:function(){},unmount:function(){},mount:function(e){},focus:function(){},clear:function(){},onSDKHandleClick:function(e){}},l=function(e){if("string"==typeof e)return e},s=function(e){if("object"==typeof e&&!Array.isArray(e)&&null!==e)return e},m=function(e){if(Array.isArray(e))return e};function p(e,n,t){for(var o=new Array(t),r=0,i=n;r=0)return function(e,n){return function(t){return f(e,n.concat([t]))}}(o,t);n=p(t,i,0|-a),e=o.apply(null,p(t,0,i))}}function y(e){return 1===e.length?e:function(n){return function(e,n){var t=e.length;if(1===t)return e(n);switch(t){case 1:return e(n);case 2:return function(t){return e(n,t)};case 3:return function(t,o){return e(n,t,o)};case 4:return function(t,o,r){return e(n,t,o,r)};case 5:return function(t,o,r,i){return e(n,t,o,r,i)};case 6:return function(t,o,r,i,a){return e(n,t,o,r,i,a)};case 7:return function(t,o,r,i,a,u){return e(n,t,o,r,i,a,u)};default:return f(e,[n])}}(e,n)}}function d(e){return void 0===e?{BS_PRIVATE_NESTED_SOME_NONE:0}:null!==e&&void 0!==e.BS_PRIVATE_NESTED_SOME_NONE?{BS_PRIVATE_NESTED_SOME_NONE:e.BS_PRIVATE_NESTED_SOME_NONE+1|0}:e}function P(e){if(null===e||void 0===e.BS_PRIVATE_NESTED_SOME_NONE)return e;var n=e.BS_PRIVATE_NESTED_SOME_NONE;return 0===n?void 0:{BS_PRIVATE_NESTED_SOME_NONE:n-1|0}}function C(e,n){return function(e,n){if(void 0!==e)return n(P(e))}(e,y(n))}function v(e,n){return void 0!==e?P(e):n}function h(e){return e}var E={getCustomerSavedPaymentMethods:function(e){return Promise.resolve(null)},updateIntent:function(e){return Promise.resolve({})}},g={clientSecret:"",confirmPayment:function(e){return Promise.resolve({})},confirmCardPayment:function(e,n,t){return Promise.resolve({})},retrievePaymentIntent:function(e){return Promise.resolve({})},paymentRequest:h,initPaymentSession:function(e){return E},completeUpdateIntent:function(e){return Promise.resolve({})},initiateUpdateIntent:function(){return Promise.resolve({})},confirmTokenization:function(e){return Promise.resolve({})}},k=a.createContext(g),S={make:k.Provider},x={ephemeralKey:"",paymentRequest:h},B=a.createContext(x),T={make:k.Provider};function R(e,n,t){return v(C(e[n],l),t)}function b(e){var n=v(s(e),{});return{fonts:v(C(n.fonts,m),[]),locale:R(n,"locale",""),clientSecret:R(n,"clientSecret",""),appearance:v(C(n.appearance,s),{}),loader:R(n,"loader","auto")}}function _(e){}function j(e){}function I(){return new Promise(function(e,n){setTimeout(function(){e({})},1e3)})}function O(e,n){return c}var F={options:{fonts:[],locale:"",clientSecret:"",appearance:{},loader:""},update:_,getElement:j,fetchUpdates:I,create:O,updateIntent:function(e){return Promise.resolve({})}},N=a.createContext(F),U={make:N.Provider},M={getCustomerSavedPaymentMethods:function(e){return Promise.resolve({})},updateIntent:function(e){return Promise.resolve({})}},w=a.createContext(M),A={make:w.Provider},q={options:{fonts:[],locale:"",ephemeralKey:"",appearance:{},loader:""},update:_,getElement:j,fetchUpdates:I,create:O},D=a.createContext(q),H={make:D.Provider},z=function(e){var n=e.onPaymentButtonClick,t=e.onPaymentComplete,o=e.onClick,r=e.onBlur,i=e.onFocus,c=e.componentType,l=e.onReady,s=e.onChange,m=e.options,p=e.id,f=void 0!==p?p:"payment-Element",y=a.useContext(k),P=a.useContext(N),C=a.useRef(null),v=P.create(c,m);return a.useEffect(function(){P.create(c,m).mount("#orca-elements-payment-element-"+f)},[C,P]),a.useEffect(function(){v.on("ready",l),v.on("focus",i),v.on("blur",r),v.on("clickTriggered",o),v.on("change",s),v.on("completeDoThis",t),v.onSDKHandleClick(n)},[P,y]),u.jsx("div",{ref:d(C),id:"orca-elements-payment-element-"+f})},V=function(e){return u.jsx(z,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"cardCvc",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick,onPaymentComplete:e.onPaymentComplete,onPaymentButtonClick:e.onPaymentButtonClick})};function G(e){return G="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},G(e)}var K=function(e){return null!==e&&"object"===G(e)&&"function"==typeof e.then?e:Promise.resolve(e)};function W(e,n){return e.catch(function(e){return n(function(e){return null!=e&&"string"==typeof e.RE_EXN_ID}(t=e)?t:{RE_EXN_ID:"JsError",_1:t});var t})}new Map;var J=function(e){return u.jsx(z,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"cardExpiry",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick,onPaymentComplete:e.onPaymentComplete,onPaymentButtonClick:e.onPaymentButtonClick})},X=function(e){return u.jsx(z,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"cardNumber",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick,onPaymentComplete:e.onPaymentComplete,onPaymentButtonClick:e.onPaymentButtonClick})},L=function(e){return u.jsx(z,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"card",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick,onPaymentComplete:e.onPaymentComplete,onPaymentButtonClick:e.onPaymentButtonClick})},Q=function(e){return u.jsx(z,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"payment",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick,onPaymentComplete:e.onPaymentComplete,onPaymentButtonClick:e.onPaymentButtonClick})};function Y(){var e,n,t="function"==typeof Symbol?Symbol:{},o=t.iterator||"@@iterator",r=t.toStringTag||"@@toStringTag";function i(t,o,r,i){var c=o&&o.prototype instanceof u?o:u,l=Object.create(c.prototype);return Z(l,"_invoke",function(t,o,r){var i,u,c,l=0,s=r||[],m=!1,p={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(n,t){return i=n,u=0,c=e,p.n=t,a}};function f(t,o){for(u=t,c=o,n=0;!m&&l&&!r&&n3?(r=y===o)&&(c=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=e):i[0]<=f&&((r=t<2&&fo||o>y)&&(i[4]=t,i[5]=o,p.n=y,u=0))}if(r||t>1)return a;throw m=!0,o}return function(r,s,y){if(l>1)throw TypeError("Generator is already running");for(m&&1===s&&f(s,y),u=s,c=y;(n=u<2?e:c)||!m;){i||(u?u<3?(u>1&&(p.n=-1),f(u,c)):p.n=c:p.v=c);try{if(l=2,i){if(u||(r="next"),n=i[r]){if(!(n=n.call(i,c)))throw TypeError("iterator result is not an object");if(!n.done)return n;c=n.value,u<2&&(u=0)}else 1===u&&(n=i.return)&&n.call(i),u<2&&(c=TypeError("The iterator does not provide a '"+r+"' method"),u=1);i=e}else if((n=(m=p.n<0)?c:t.call(o,p))!==a)break}catch(n){i=e,u=1,c=n}finally{l=1}}return{value:n,done:m}}}(t,r,i),!0),l}var a={};function u(){}function c(){}function l(){}n=Object.getPrototypeOf;var s=[][o]?n(n([][o]())):(Z(n={},o,function(){return this}),n),m=l.prototype=u.prototype=Object.create(s);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,Z(e,r,"GeneratorFunction")),e.prototype=Object.create(m),e}return c.prototype=l,Z(m,"constructor",l),Z(l,"constructor",c),c.displayName="GeneratorFunction",Z(l,r,"GeneratorFunction"),Z(m),Z(m,r,"Generator"),Z(m,o,function(){return this}),Z(m,"toString",function(){return"[object Generator]"}),(Y=function(){return{w:i,m:p}})()}function Z(e,n,t,o){var r=Object.defineProperty;try{r({},"",{})}catch(e){r=0}Z=function(e,n,t,o){function i(n,t){Z(e,n,function(e){return this._invoke(n,t,e)})}n?r?r(e,n,{value:t,enumerable:!o,configurable:!o,writable:!o}):e[n]=t:(i("next",0),i("throw",1),i("return",2))},Z(e,n,t,o)}function $(e,n,t,o,r,i,a){try{var u=e[i](a),c=u.value}catch(e){return void t(e)}u.done?n(c):Promise.resolve(c).then(o,r)}function ee(){return a.useContext(k)}function ne(){return console.warn("useStripe() is deprecated. Use useHyper() instead"),a.useContext(k)}function te(){return a.useContext(w)}function oe(e,n){return re.apply(this,arguments)}function re(){var e;return e=Y().m(function e(n,t){var o;return Y().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,n;case 1:return o=e.v,e.a(2,o.initPaymentSession(t))}},e)}),re=function(){var n=this,t=arguments;return new Promise(function(o,r){var i=e.apply(n,t);function a(e){$(i,o,r,a,u,"next",e)}function u(e){$(i,o,r,a,u,"throw",e)}a(void 0)})},re.apply(this,arguments)}function ie(){return a.useContext(N)}function ae(){return console.warn("useElements() is deprecated. Use useWidgets() instead"),a.useContext(N)}var ue=function(e){var n=e.options,t=e.stripe,o=a.useState(function(){return g}),r=o[1],i=a.useState(function(){return F}),c=i[1];return a.useEffect(function(){W(Promise.all([t,K(n)]).then(function(e){var n=e[1],t=e[0],o=b(n),i=t.elements(n),a={options:o,update:i.update,getElement:i.getElement,fetchUpdates:i.fetchUpdates,create:i.create,updateIntent:i.updateIntent},u={clientSecret:o.clientSecret,confirmPayment:t.confirmPayment,confirmCardPayment:t.confirmCardPayment,retrievePaymentIntent:t.retrievePaymentIntent,paymentRequest:t.paymentRequest,initPaymentSession:t.initPaymentSession,completeUpdateIntent:t.completeUpdateIntent,initiateUpdateIntent:t.initiateUpdateIntent,confirmTokenization:t.confirmTokenization};return r(function(e){return u}),c(function(e){return a}),Promise.resolve(u)}),function(e){return console.warn("[Elements] Failed to initialise hyper promise:",e),Promise.resolve(g)})},[t,n]),u.jsx(S.make,{value:o[0],children:u.jsx(U.make,{value:i[0],children:e.children})})},ce=function(e){var n=e.options,t=e.hyper,o=a.useState(function(){return g}),r=o[1],i=a.useState(function(){return F}),c=i[1],l=a.useState(function(){return M}),s=l[1];return a.useEffect(function(){W(Promise.all([t,K(n)]).then(function(e){var n=e[1],t=e[0],o=b(n),i=t.elements(n),a={options:o,update:i.update,getElement:i.getElement,fetchUpdates:i.fetchUpdates,create:i.create,updateIntent:i.updateIntent},u={clientSecret:o.clientSecret,confirmPayment:t.confirmPayment,confirmCardPayment:t.confirmCardPayment,retrievePaymentIntent:t.retrievePaymentIntent,paymentRequest:t.paymentRequest,initPaymentSession:t.initPaymentSession,completeUpdateIntent:t.completeUpdateIntent,initiateUpdateIntent:t.initiateUpdateIntent,confirmTokenization:t.confirmTokenization},l=t.initPaymentSession(n),m={getCustomerSavedPaymentMethods:l.getCustomerSavedPaymentMethods,updateIntent:l.updateIntent};return r(function(e){return u}),c(function(e){return a}),s(function(e){return m}),Promise.resolve(u)}),function(e){return console.warn("[HyperElements] Failed to initialise hyper promise:",e),Promise.resolve(g)})},[t,n]),u.jsx(S.make,{value:o[0],children:u.jsx(U.make,{value:i[0],children:u.jsx(A.make,{value:l[0],children:e.children})})})},le=Q,se=Q,me=L,pe=L,fe=X,ye=X,de=V,Pe=V,Ce=J,ve=J,he=function(e){return u.jsx(z,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"googlePay",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick,onPaymentComplete:e.onPaymentComplete,onPaymentButtonClick:e.onPaymentButtonClick})},Ee=function(e){return u.jsx(z,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"applePay",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick,onPaymentComplete:e.onPaymentComplete,onPaymentButtonClick:e.onPaymentButtonClick})},ge=function(e){return u.jsx(z,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"paze",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick,onPaymentComplete:e.onPaymentComplete,onPaymentButtonClick:e.onPaymentButtonClick})},ke=function(e){return u.jsx(z,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"payPal",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick,onPaymentComplete:e.onPaymentComplete,onPaymentButtonClick:e.onPaymentButtonClick})},Se=function(e){return u.jsx(z,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"expressCheckout",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick,onPaymentComplete:e.onPaymentComplete,onPaymentButtonClick:e.onPaymentButtonClick})},xe=function(e){var n=e.options,t=e.hyper,o=a.useState(function(){return g}),r=o[1],i=a.useState(function(){return q}),c=i[1];return a.useEffect(function(){W(Promise.all([t,K(n)]).then(function(e){var n=e[1],t=e[0],o=function(e){var n=v(s(e),{});return{fonts:v(C(n.fonts,m),[]),locale:R(n,"locale",""),ephemeralKey:R(n,"ephemeralKey",""),appearance:v(C(n.appearance,s),{}),loader:R(n,"loader","auto")}}(n),i=t.paymentMethodsManagementElements(n),a={options:o,update:i.update,getElement:i.getElement,fetchUpdates:i.fetchUpdates,create:i.create},u={clientSecret:"",confirmPayment:t.confirmPayment,confirmCardPayment:t.confirmCardPayment,retrievePaymentIntent:t.retrievePaymentIntent,paymentRequest:t.paymentRequest,initPaymentSession:t.initPaymentSession,completeUpdateIntent:t.completeUpdateIntent,initiateUpdateIntent:t.initiateUpdateIntent,confirmTokenization:t.confirmTokenization};return r(function(e){return u}),c(function(e){return a}),Promise.resolve(u)}),function(e){return console.warn("[HyperManagementElements] Failed to initialise hyper promise:",e),Promise.resolve(g)})},[t,n]),u.jsx(T.make,{value:o[0],children:u.jsx(H.make,{value:i[0],children:e.children})})},Be=function(e){var n=e.onClick,t=e.onBlur,o=e.onFocus,r=e.componentType,i=e.onReady,c=e.onChange,l=e.options,s=e.id,m=void 0!==s?s:"payment-management",p=void 0!==r?r:"paymentMethodsManagement",f=a.useContext(B),y=a.useContext(D),P=a.useRef(null),C=y.create(p,l);return a.useEffect(function(){y.create(p,l).mount("#orca-elements-payment-management-"+m)},[P,y]),a.useEffect(function(){return C.on("ready",i),C.on("focus",o),C.on("blur",t),C.on("clickTriggered",n),C.on("change",c),function(){C.on("ready",void 0),C.on("focus",void 0),C.on("blur",void 0),C.on("clickTriggered",void 0),C.on("change",void 0)}},[y,f]),u.jsx("div",{ref:d(P),id:"orca-elements-payment-management-"+m})};return i})()); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index b83e207..608365a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@juspay-tech/react-hyper-js", - "version": "2.4.0", + "version": "2.6.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@juspay-tech/react-hyper-js", - "version": "2.4.0", + "version": "2.6.0", "license": "Apache-2.0", "dependencies": { "@rescript/core": "^0.7.0", diff --git a/package.json b/package.json index d75b6ab..a9faa10 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@juspay-tech/react-hyper-js", - "version": "2.4.0", + "version": "2.6.0", "main": "dist/bundle.js", "files": [ "dist/", diff --git a/src/Utils.bs.js b/src/Utils.bs.js new file mode 100644 index 0000000..beccd5e --- /dev/null +++ b/src/Utils.bs.js @@ -0,0 +1,14 @@ +// Generated by ReScript, PLEASE EDIT WITH CARE + + +var normalizeToPromise = (function(value) { + if (value !== null && typeof value === 'object' && typeof value.then === 'function') { + return value + } + return Promise.resolve(value) + }); + +export { + normalizeToPromise , +} +/* No side effect */ diff --git a/src/Utils.res b/src/Utils.res new file mode 100644 index 0000000..20a5f41 --- /dev/null +++ b/src/Utils.res @@ -0,0 +1,10 @@ +// Normalises options to a promise regardless of whether the caller passed +// a plain JSON object (backward compat) or a Promise (new pattern). +let normalizeToPromise: 'a => Promise.t = %raw(` + function(value) { + if (value !== null && typeof value === 'object' && typeof value.then === 'function') { + return value + } + return Promise.resolve(value) + } +`) diff --git a/src/components/Elements.bs.js b/src/components/Elements.bs.js index a538634..aad366b 100644 --- a/src/components/Elements.bs.js +++ b/src/components/Elements.bs.js @@ -1,14 +1,14 @@ // Generated by ReScript, PLEASE EDIT WITH CARE +import * as Utils from "../Utils.bs.js"; import * as React from "react"; import * as Context from "../Context.bs.js"; -import * as Js_promise from "rescript/lib/es6/js_promise.js"; +import * as Core__Promise from "@rescript/core/src/Core__Promise.bs.js"; import * as JsxRuntime from "react/jsx-runtime"; function Elements(props) { var options = props.options; var stripe = props.stripe; - var elementOptions = Context.elementsOptionObjMapper(options); var match = React.useState(function () { return Context.defaultSwitchContext; }); @@ -18,52 +18,62 @@ function Elements(props) { }); var setElementsState = match$1[1]; React.useEffect((function () { - ((function (__x) { - return Js_promise.then_((function (switchInstance) { - var orcaElementsConfig = switchInstance.elements(options); - var newElemValues_update = orcaElementsConfig.update; - var newElemValues_getElement = orcaElementsConfig.getElement; - var newElemValues_fetchUpdates = orcaElementsConfig.fetchUpdates; - var newElemValues_create = orcaElementsConfig.create; - var newElemValues_updateIntent = orcaElementsConfig.updateIntent; - var newElemValues = { - options: elementOptions, - update: newElemValues_update, - getElement: newElemValues_getElement, - fetchUpdates: newElemValues_fetchUpdates, - create: newElemValues_create, - updateIntent: newElemValues_updateIntent - }; - var switchValClone_clientSecret = elementOptions.clientSecret; - var switchValClone_confirmPayment = switchInstance.confirmPayment; - var switchValClone_confirmCardPayment = switchInstance.confirmCardPayment; - var switchValClone_retrievePaymentIntent = switchInstance.retrievePaymentIntent; - var switchValClone_paymentRequest = switchInstance.paymentRequest; - var switchValClone_initPaymentSession = switchInstance.initPaymentSession; - var switchValClone_completeUpdateIntent = switchInstance.completeUpdateIntent; - var switchValClone_initiateUpdateIntent = switchInstance.initiateUpdateIntent; - var switchValClone_confirmTokenization = switchInstance.confirmTokenization; - var switchValClone = { - clientSecret: switchValClone_clientSecret, - confirmPayment: switchValClone_confirmPayment, - confirmCardPayment: switchValClone_confirmCardPayment, - retrievePaymentIntent: switchValClone_retrievePaymentIntent, - paymentRequest: switchValClone_paymentRequest, - initPaymentSession: switchValClone_initPaymentSession, - completeUpdateIntent: switchValClone_completeUpdateIntent, - initiateUpdateIntent: switchValClone_initiateUpdateIntent, - confirmTokenization: switchValClone_confirmTokenization - }; - setSwitchState(function (param) { - return switchValClone; - }); - setElementsState(function (param) { - return newElemValues; - }); - return Promise.resolve(switchValClone); - }), __x); - })(stripe)); - }), []); + Core__Promise.$$catch(Promise.all([ + stripe, + Utils.normalizeToPromise(options) + ]).then(function (param) { + var resolvedOptions = param[1]; + var switchInstance = param[0]; + var elementOptions = Context.elementsOptionObjMapper(resolvedOptions); + var orcaElementsConfig = switchInstance.elements(resolvedOptions); + var newElemValues_update = orcaElementsConfig.update; + var newElemValues_getElement = orcaElementsConfig.getElement; + var newElemValues_fetchUpdates = orcaElementsConfig.fetchUpdates; + var newElemValues_create = orcaElementsConfig.create; + var newElemValues_updateIntent = orcaElementsConfig.updateIntent; + var newElemValues = { + options: elementOptions, + update: newElemValues_update, + getElement: newElemValues_getElement, + fetchUpdates: newElemValues_fetchUpdates, + create: newElemValues_create, + updateIntent: newElemValues_updateIntent + }; + var switchValClone_clientSecret = elementOptions.clientSecret; + var switchValClone_confirmPayment = switchInstance.confirmPayment; + var switchValClone_confirmCardPayment = switchInstance.confirmCardPayment; + var switchValClone_retrievePaymentIntent = switchInstance.retrievePaymentIntent; + var switchValClone_paymentRequest = switchInstance.paymentRequest; + var switchValClone_initPaymentSession = switchInstance.initPaymentSession; + var switchValClone_completeUpdateIntent = switchInstance.completeUpdateIntent; + var switchValClone_initiateUpdateIntent = switchInstance.initiateUpdateIntent; + var switchValClone_confirmTokenization = switchInstance.confirmTokenization; + var switchValClone = { + clientSecret: switchValClone_clientSecret, + confirmPayment: switchValClone_confirmPayment, + confirmCardPayment: switchValClone_confirmCardPayment, + retrievePaymentIntent: switchValClone_retrievePaymentIntent, + paymentRequest: switchValClone_paymentRequest, + initPaymentSession: switchValClone_initPaymentSession, + completeUpdateIntent: switchValClone_completeUpdateIntent, + initiateUpdateIntent: switchValClone_initiateUpdateIntent, + confirmTokenization: switchValClone_confirmTokenization + }; + setSwitchState(function (param) { + return switchValClone; + }); + setElementsState(function (param) { + return newElemValues; + }); + return Promise.resolve(switchValClone); + }), (function (err) { + console.warn("[Elements] Failed to initialise hyper promise:", err); + return Promise.resolve(Context.defaultSwitchContext); + })); + }), [ + stripe, + options + ]); return JsxRuntime.jsx(Context.SwitchContextProvider.make, { value: match[0], children: JsxRuntime.jsx(Context.ElementsContextProvider.make, { diff --git a/src/components/Elements.res b/src/components/Elements.res index 9dc2ecb..7a9e605 100644 --- a/src/components/Elements.res +++ b/src/components/Elements.res @@ -1,13 +1,13 @@ @react.component let make = (~children, ~stripe: Promise.t, ~options: JSON.t) => { - let elementOptions = options->Context.elementsOptionObjMapper let (switchState, setSwitchState) = React.useState(() => Context.defaultSwitchContext) let (elementsState, setElementsState) = React.useState(() => Context.defaultElementsContext) - React.useEffect0(() => { - stripe - ->Js.Promise.then_((switchInstance: OrcaJs.switchInstance) => { - let orcaElementsConfig = switchInstance.elements(options) + React.useEffect(() => { + Promise.all2((stripe, options->Utils.normalizeToPromise)) + ->Promise.then(((switchInstance: OrcaJs.switchInstance, resolvedOptions)) => { + let elementOptions = resolvedOptions->Context.elementsOptionObjMapper + let orcaElementsConfig = switchInstance.elements(resolvedOptions) let newElemValues: Context.elementsType = { options: elementOptions, update: orcaElementsConfig.update, @@ -27,14 +27,17 @@ let make = (~children, ~stripe: Promise.t, ~options: JSON initiateUpdateIntent: switchInstance.initiateUpdateIntent, confirmTokenization: switchInstance.confirmTokenization, } - setSwitchState(_ => switchValClone) setElementsState(_ => newElemValues) Promise.resolve(switchValClone) - }, _) + }) + ->Promise.catch(err => { + Console.warn2("[Elements] Failed to initialise hyper promise:", err) + Promise.resolve(Context.defaultSwitchContext) + }) ->ignore None - }) + }, (stripe, options)) diff --git a/src/components/HyperElements.bs.js b/src/components/HyperElements.bs.js index 6f239c6..dedb43b 100644 --- a/src/components/HyperElements.bs.js +++ b/src/components/HyperElements.bs.js @@ -1,14 +1,14 @@ // Generated by ReScript, PLEASE EDIT WITH CARE +import * as Utils from "../Utils.bs.js"; import * as React from "react"; import * as Context from "../Context.bs.js"; -import * as Js_promise from "rescript/lib/es6/js_promise.js"; +import * as Core__Promise from "@rescript/core/src/Core__Promise.bs.js"; import * as JsxRuntime from "react/jsx-runtime"; function HyperElements(props) { var options = props.options; var hyper = props.hyper; - var elementOptions = Context.elementsOptionObjMapper(options); var match = React.useState(function () { return Context.defaultSwitchContext; }); @@ -22,62 +22,72 @@ function HyperElements(props) { }); var setPaymentSessionState = match$2[1]; React.useEffect((function () { - ((function (__x) { - return Js_promise.then_((function (switchInstance) { - var orcaElementsConfig = switchInstance.elements(options); - var newElemValues_update = orcaElementsConfig.update; - var newElemValues_getElement = orcaElementsConfig.getElement; - var newElemValues_fetchUpdates = orcaElementsConfig.fetchUpdates; - var newElemValues_create = orcaElementsConfig.create; - var newElemValues_updateIntent = orcaElementsConfig.updateIntent; - var newElemValues = { - options: elementOptions, - update: newElemValues_update, - getElement: newElemValues_getElement, - fetchUpdates: newElemValues_fetchUpdates, - create: newElemValues_create, - updateIntent: newElemValues_updateIntent - }; - var switchValClone_clientSecret = elementOptions.clientSecret; - var switchValClone_confirmPayment = switchInstance.confirmPayment; - var switchValClone_confirmCardPayment = switchInstance.confirmCardPayment; - var switchValClone_retrievePaymentIntent = switchInstance.retrievePaymentIntent; - var switchValClone_paymentRequest = switchInstance.paymentRequest; - var switchValClone_initPaymentSession = switchInstance.initPaymentSession; - var switchValClone_completeUpdateIntent = switchInstance.completeUpdateIntent; - var switchValClone_initiateUpdateIntent = switchInstance.initiateUpdateIntent; - var switchValClone_confirmTokenization = switchInstance.confirmTokenization; - var switchValClone = { - clientSecret: switchValClone_clientSecret, - confirmPayment: switchValClone_confirmPayment, - confirmCardPayment: switchValClone_confirmCardPayment, - retrievePaymentIntent: switchValClone_retrievePaymentIntent, - paymentRequest: switchValClone_paymentRequest, - initPaymentSession: switchValClone_initPaymentSession, - completeUpdateIntent: switchValClone_completeUpdateIntent, - initiateUpdateIntent: switchValClone_initiateUpdateIntent, - confirmTokenization: switchValClone_confirmTokenization - }; - var paymentSession = switchInstance.initPaymentSession(options); - var newPaymentSessionValues_getCustomerSavedPaymentMethods = paymentSession.getCustomerSavedPaymentMethods; - var newPaymentSessionValues_updateIntent = paymentSession.updateIntent; - var newPaymentSessionValues = { - getCustomerSavedPaymentMethods: newPaymentSessionValues_getCustomerSavedPaymentMethods, - updateIntent: newPaymentSessionValues_updateIntent - }; - setSwitchState(function (param) { - return switchValClone; - }); - setElementsState(function (param) { - return newElemValues; - }); - setPaymentSessionState(function (param) { - return newPaymentSessionValues; - }); - return Promise.resolve(switchValClone); - }), __x); - })(hyper)); - }), []); + Core__Promise.$$catch(Promise.all([ + hyper, + Utils.normalizeToPromise(options) + ]).then(function (param) { + var resolvedOptions = param[1]; + var switchInstance = param[0]; + var elementOptions = Context.elementsOptionObjMapper(resolvedOptions); + var orcaElementsConfig = switchInstance.elements(resolvedOptions); + var newElemValues_update = orcaElementsConfig.update; + var newElemValues_getElement = orcaElementsConfig.getElement; + var newElemValues_fetchUpdates = orcaElementsConfig.fetchUpdates; + var newElemValues_create = orcaElementsConfig.create; + var newElemValues_updateIntent = orcaElementsConfig.updateIntent; + var newElemValues = { + options: elementOptions, + update: newElemValues_update, + getElement: newElemValues_getElement, + fetchUpdates: newElemValues_fetchUpdates, + create: newElemValues_create, + updateIntent: newElemValues_updateIntent + }; + var switchValClone_clientSecret = elementOptions.clientSecret; + var switchValClone_confirmPayment = switchInstance.confirmPayment; + var switchValClone_confirmCardPayment = switchInstance.confirmCardPayment; + var switchValClone_retrievePaymentIntent = switchInstance.retrievePaymentIntent; + var switchValClone_paymentRequest = switchInstance.paymentRequest; + var switchValClone_initPaymentSession = switchInstance.initPaymentSession; + var switchValClone_completeUpdateIntent = switchInstance.completeUpdateIntent; + var switchValClone_initiateUpdateIntent = switchInstance.initiateUpdateIntent; + var switchValClone_confirmTokenization = switchInstance.confirmTokenization; + var switchValClone = { + clientSecret: switchValClone_clientSecret, + confirmPayment: switchValClone_confirmPayment, + confirmCardPayment: switchValClone_confirmCardPayment, + retrievePaymentIntent: switchValClone_retrievePaymentIntent, + paymentRequest: switchValClone_paymentRequest, + initPaymentSession: switchValClone_initPaymentSession, + completeUpdateIntent: switchValClone_completeUpdateIntent, + initiateUpdateIntent: switchValClone_initiateUpdateIntent, + confirmTokenization: switchValClone_confirmTokenization + }; + var paymentSession = switchInstance.initPaymentSession(resolvedOptions); + var newPaymentSessionValues_getCustomerSavedPaymentMethods = paymentSession.getCustomerSavedPaymentMethods; + var newPaymentSessionValues_updateIntent = paymentSession.updateIntent; + var newPaymentSessionValues = { + getCustomerSavedPaymentMethods: newPaymentSessionValues_getCustomerSavedPaymentMethods, + updateIntent: newPaymentSessionValues_updateIntent + }; + setSwitchState(function (param) { + return switchValClone; + }); + setElementsState(function (param) { + return newElemValues; + }); + setPaymentSessionState(function (param) { + return newPaymentSessionValues; + }); + return Promise.resolve(switchValClone); + }), (function (err) { + console.warn("[HyperElements] Failed to initialise hyper promise:", err); + return Promise.resolve(Context.defaultSwitchContext); + })); + }), [ + hyper, + options + ]); return JsxRuntime.jsx(Context.SwitchContextProvider.make, { value: match[0], children: JsxRuntime.jsx(Context.ElementsContextProvider.make, { diff --git a/src/components/HyperElements.res b/src/components/HyperElements.res index 198a368..a84c8f0 100644 --- a/src/components/HyperElements.res +++ b/src/components/HyperElements.res @@ -1,16 +1,16 @@ @react.component -let make = (~children, ~hyper: Promise.t, ~options: JSON.t) => { - let elementOptions = options->Context.elementsOptionObjMapper +let make = (~children, ~hyper: Promise.t, ~options: 'a) => { let (switchState, setSwitchState) = React.useState(() => Context.defaultSwitchContext) let (elementsState, setElementsState) = React.useState(() => Context.defaultElementsContext) let (paymentSessionState, setPaymentSessionState) = React.useState(() => Context.defaultPaymentSessionContext ) - React.useEffect0(() => { - hyper - ->Js.Promise.then_((switchInstance: OrcaJs.switchInstance) => { - let orcaElementsConfig = switchInstance.elements(options) + React.useEffect(() => { + Promise.all2((hyper, options->Utils.normalizeToPromise)) + ->Promise.then(((switchInstance: OrcaJs.switchInstance, resolvedOptions)) => { + let elementOptions = resolvedOptions->Context.elementsOptionObjMapper + let orcaElementsConfig = switchInstance.elements(resolvedOptions) let newElemValues: Context.elementsType = { options: elementOptions, update: orcaElementsConfig.update, @@ -31,7 +31,7 @@ let make = (~children, ~hyper: Promise.t, ~options: JSON. confirmTokenization: switchInstance.confirmTokenization, } - let paymentSession = switchInstance.initPaymentSession(options) + let paymentSession = switchInstance.initPaymentSession(resolvedOptions) let newPaymentSessionValues: Context.paymentSessionContextType = { getCustomerSavedPaymentMethods: paymentSession.getCustomerSavedPaymentMethods, updateIntent: paymentSession.updateIntent, @@ -41,10 +41,14 @@ let make = (~children, ~hyper: Promise.t, ~options: JSON. setElementsState(_ => newElemValues) setPaymentSessionState(_ => newPaymentSessionValues) Promise.resolve(switchValClone) - }, _) + }) + ->Promise.catch(err => { + Console.warn2("[HyperElements] Failed to initialise hyper promise:", err) + Promise.resolve(Context.defaultSwitchContext) + }) ->ignore None - }) + }, (hyper, options)) diff --git a/src/components/HyperManagementElements.bs.js b/src/components/HyperManagementElements.bs.js index 2bfff91..a0561cd 100644 --- a/src/components/HyperManagementElements.bs.js +++ b/src/components/HyperManagementElements.bs.js @@ -1,14 +1,14 @@ // Generated by ReScript, PLEASE EDIT WITH CARE +import * as Utils from "../Utils.bs.js"; import * as React from "react"; import * as Context from "../Context.bs.js"; -import * as Js_promise from "rescript/lib/es6/js_promise.js"; +import * as Core__Promise from "@rescript/core/src/Core__Promise.bs.js"; import * as JsxRuntime from "react/jsx-runtime"; function HyperManagementElements(props) { var options = props.options; var hyper = props.hyper; - var paymentMethodsManagementElementOptions = Context.paymentMethodsManagementElementsOptionObjMapper(options); var match = React.useState(function () { return Context.defaultSwitchContext; }); @@ -18,49 +18,59 @@ function HyperManagementElements(props) { }); var setElementsState = match$1[1]; React.useEffect((function () { - ((function (__x) { - return Js_promise.then_((function (switchInstance) { - var orcaElementsConfig = switchInstance.paymentMethodsManagementElements(options); - var newElemValues_update = orcaElementsConfig.update; - var newElemValues_getElement = orcaElementsConfig.getElement; - var newElemValues_fetchUpdates = orcaElementsConfig.fetchUpdates; - var newElemValues_create = orcaElementsConfig.create; - var newElemValues = { - options: paymentMethodsManagementElementOptions, - update: newElemValues_update, - getElement: newElemValues_getElement, - fetchUpdates: newElemValues_fetchUpdates, - create: newElemValues_create - }; - var switchValClone_confirmPayment = switchInstance.confirmPayment; - var switchValClone_confirmCardPayment = switchInstance.confirmCardPayment; - var switchValClone_retrievePaymentIntent = switchInstance.retrievePaymentIntent; - var switchValClone_paymentRequest = switchInstance.paymentRequest; - var switchValClone_initPaymentSession = switchInstance.initPaymentSession; - var switchValClone_completeUpdateIntent = switchInstance.completeUpdateIntent; - var switchValClone_initiateUpdateIntent = switchInstance.initiateUpdateIntent; - var switchValClone_confirmTokenization = switchInstance.confirmTokenization; - var switchValClone = { - clientSecret: "", - confirmPayment: switchValClone_confirmPayment, - confirmCardPayment: switchValClone_confirmCardPayment, - retrievePaymentIntent: switchValClone_retrievePaymentIntent, - paymentRequest: switchValClone_paymentRequest, - initPaymentSession: switchValClone_initPaymentSession, - completeUpdateIntent: switchValClone_completeUpdateIntent, - initiateUpdateIntent: switchValClone_initiateUpdateIntent, - confirmTokenization: switchValClone_confirmTokenization - }; - setSwitchState(function (param) { - return switchValClone; - }); - setElementsState(function (param) { - return newElemValues; - }); - return Promise.resolve(switchValClone); - }), __x); - })(hyper)); - }), []); + Core__Promise.$$catch(Promise.all([ + hyper, + Utils.normalizeToPromise(options) + ]).then(function (param) { + var resolvedOptions = param[1]; + var switchInstance = param[0]; + var paymentMethodsManagementElementOptions = Context.paymentMethodsManagementElementsOptionObjMapper(resolvedOptions); + var orcaElementsConfig = switchInstance.paymentMethodsManagementElements(resolvedOptions); + var newElemValues_update = orcaElementsConfig.update; + var newElemValues_getElement = orcaElementsConfig.getElement; + var newElemValues_fetchUpdates = orcaElementsConfig.fetchUpdates; + var newElemValues_create = orcaElementsConfig.create; + var newElemValues = { + options: paymentMethodsManagementElementOptions, + update: newElemValues_update, + getElement: newElemValues_getElement, + fetchUpdates: newElemValues_fetchUpdates, + create: newElemValues_create + }; + var switchValClone_confirmPayment = switchInstance.confirmPayment; + var switchValClone_confirmCardPayment = switchInstance.confirmCardPayment; + var switchValClone_retrievePaymentIntent = switchInstance.retrievePaymentIntent; + var switchValClone_paymentRequest = switchInstance.paymentRequest; + var switchValClone_initPaymentSession = switchInstance.initPaymentSession; + var switchValClone_completeUpdateIntent = switchInstance.completeUpdateIntent; + var switchValClone_initiateUpdateIntent = switchInstance.initiateUpdateIntent; + var switchValClone_confirmTokenization = switchInstance.confirmTokenization; + var switchValClone = { + clientSecret: "", + confirmPayment: switchValClone_confirmPayment, + confirmCardPayment: switchValClone_confirmCardPayment, + retrievePaymentIntent: switchValClone_retrievePaymentIntent, + paymentRequest: switchValClone_paymentRequest, + initPaymentSession: switchValClone_initPaymentSession, + completeUpdateIntent: switchValClone_completeUpdateIntent, + initiateUpdateIntent: switchValClone_initiateUpdateIntent, + confirmTokenization: switchValClone_confirmTokenization + }; + setSwitchState(function (param) { + return switchValClone; + }); + setElementsState(function (param) { + return newElemValues; + }); + return Promise.resolve(switchValClone); + }), (function (err) { + console.warn("[HyperManagementElements] Failed to initialise hyper promise:", err); + return Promise.resolve(Context.defaultSwitchContext); + })); + }), [ + hyper, + options + ]); return JsxRuntime.jsx(Context.PaymentMethodsManagementSwitchContextProvider.make, { value: match[0], children: JsxRuntime.jsx(Context.PaymentMethodsManagementElementsContextProvider.make, { diff --git a/src/components/HyperManagementElements.res b/src/components/HyperManagementElements.res index 4243941..c7abdee 100644 --- a/src/components/HyperManagementElements.res +++ b/src/components/HyperManagementElements.res @@ -1,16 +1,16 @@ @react.component let make = (~children, ~hyper: Promise.t, ~options: JSON.t) => { - let paymentMethodsManagementElementOptions = - options->Context.paymentMethodsManagementElementsOptionObjMapper let (switchState, setSwitchState) = React.useState(() => Context.defaultSwitchContext) let (elementsState, setElementsState) = React.useState(() => Context.defaultPaymentMethodsManagementElementsContext ) - React.useEffect0(() => { - hyper - ->(Js.Promise.then_((switchInstance: OrcaJs.switchInstance) => { - let orcaElementsConfig = switchInstance.paymentMethodsManagementElements(options) + React.useEffect(() => { + Promise.all2((hyper, options->Utils.normalizeToPromise)) + ->Promise.then(((switchInstance: OrcaJs.switchInstance, resolvedOptions)) => { + let paymentMethodsManagementElementOptions = + resolvedOptions->Context.paymentMethodsManagementElementsOptionObjMapper + let orcaElementsConfig = switchInstance.paymentMethodsManagementElements(resolvedOptions) let newElemValues: Context.paymentMethodsManagementElementsType = { options: paymentMethodsManagementElementOptions, update: orcaElementsConfig.update, @@ -33,10 +33,14 @@ let make = (~children, ~hyper: Promise.t, ~options: JSON. setSwitchState(_ => switchValClone) setElementsState(_ => newElemValues) Promise.resolve(switchValClone) - }, _)) + }) + ->Promise.catch(err => { + Console.warn2("[HyperManagementElements] Failed to initialise hyper promise:", err) + Promise.resolve(Context.defaultSwitchContext) + }) ->ignore None - }) + }, (hyper, options))