@juspay-tech/react-hyper-js 1.0.1 → 1.1.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.
- package/CHANGELOG.md +9 -0
- package/README.md +3 -0
- package/build.js +18 -9
- package/index.js +1 -1
- package/index.mjs +1 -0
- package/package.json +16 -22
- package/rescript.json +23 -0
- package/src/Context.bs.js +63 -24
- package/src/Context.res +116 -61
- package/src/Index.bs.js +52 -272
- package/src/Index.res +20 -173
- package/src/Index.resi +153 -119
- package/src/OrcaJs.bs.js +6 -6
- package/src/OrcaJs.res +14 -15
- package/src/Window.res +3 -3
- package/src/components/ApplePayElement.bs.js +24 -0
- package/src/components/ApplePayElement.res +6 -0
- package/src/components/CardCVC.bs.js +24 -0
- package/src/components/CardCVC.res +6 -0
- package/src/components/CardElement.bs.js +24 -0
- package/src/components/CardElement.res +4 -0
- package/src/components/CardExpiry.bs.js +24 -0
- package/src/components/CardExpiry.res +6 -0
- package/src/components/CardNumber.bs.js +24 -0
- package/src/components/CardNumber.res +6 -0
- package/src/components/Elements.bs.js +71 -0
- package/src/components/Elements.res +39 -0
- package/src/components/ExpressCheckoutElement.bs.js +24 -0
- package/src/components/ExpressCheckoutElement.res +6 -0
- package/src/components/GooglePayElement.bs.js +24 -0
- package/src/components/GooglePayElement.res +6 -0
- package/src/components/HyperElements.bs.js +71 -0
- package/src/components/HyperElements.res +39 -0
- package/src/components/HyperManagementElements.bs.js +65 -0
- package/src/components/HyperManagementElements.res +41 -0
- package/src/components/PayPalElement.bs.js +24 -0
- package/src/components/PayPalElement.res +6 -0
- package/src/components/PaymentElement.bs.js +24 -0
- package/src/components/PaymentElement.res +6 -0
- package/src/components/PaymentElementsWrapper.bs.js +50 -0
- package/src/components/PaymentElementsWrapper.res +34 -0
- package/src/components/PaymentMethodsManagementElement.bs.js +58 -0
- package/src/components/PaymentMethodsManagementElement.res +45 -0
- package/bsconfig.json +0 -19
package/CHANGELOG.md
ADDED
package/README.md
ADDED
package/build.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
const esbuild = require("esbuild");
|
|
2
2
|
const inlineImage = require("esbuild-plugin-inline-image");
|
|
3
3
|
const postcss = require("esbuild-postcss");
|
|
4
|
-
//const { copy } = require("esbuild-plugin-copy");
|
|
5
4
|
|
|
6
5
|
esbuild
|
|
7
6
|
.build({
|
|
8
7
|
entryPoints: ["./src/Index.bs.js"],
|
|
9
|
-
outfile: "index.
|
|
8
|
+
outfile: "index.mjs",
|
|
10
9
|
minify: true,
|
|
11
10
|
bundle: true,
|
|
12
11
|
loader: {
|
|
@@ -17,13 +16,23 @@ esbuild
|
|
|
17
16
|
plugins: [
|
|
18
17
|
inlineImage(),
|
|
19
18
|
postcss(),
|
|
20
|
-
// copy({
|
|
21
|
-
// assets: {
|
|
22
|
-
// from: ["./public/**/*"],
|
|
23
|
-
// to: ["../"],
|
|
24
|
-
// keepStructure: true,
|
|
25
|
-
// },
|
|
26
|
-
// }),
|
|
27
19
|
],
|
|
28
20
|
})
|
|
29
21
|
.catch(() => process.exit(1));
|
|
22
|
+
|
|
23
|
+
esbuild
|
|
24
|
+
.build({
|
|
25
|
+
entryPoints: ["./src/Index.bs.js"],
|
|
26
|
+
outfile: "index.js",
|
|
27
|
+
minify: true,
|
|
28
|
+
bundle: true,
|
|
29
|
+
loader: {
|
|
30
|
+
".js": "jsx",
|
|
31
|
+
},
|
|
32
|
+
format: "cjs",
|
|
33
|
+
external: ["react", "react-dom"],
|
|
34
|
+
plugins: [
|
|
35
|
+
inlineImage(),
|
|
36
|
+
postcss(),
|
|
37
|
+
],
|
|
38
|
+
}).catch(() => process.exit(1));
|
package/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
var We=Object.create;var U=Object.defineProperty;var Ae=Object.getOwnPropertyDescriptor;var De=Object.getOwnPropertyNames;var Ue=Object.getPrototypeOf,$e=Object.prototype.hasOwnProperty;var je=(e,t)=>{for(var r in t)U(e,r,{get:t[r],enumerable:!0})},me=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of De(t))!$e.call(e,n)&&n!==r&&U(e,n,{get:()=>t[n],enumerable:!(o=Ae(t,n))||o.enumerable});return e};var a=(e,t,r)=>(r=e!=null?We(Ue(e)):{},me(t||!e||!e.__esModule?U(r,"default",{value:e,enumerable:!0}):r,e)),Ie=e=>me(U({},"__esModule",{value:!0}),e);var yn={};je(yn,{ApplePayElement:()=>fn,CardCVCElement:()=>an,CardCVCWidget:()=>mn,CardElement:()=>nn,CardExpiryElement:()=>ln,CardExpiryWidget:()=>cn,CardNumberElement:()=>on,CardNumberWidget:()=>un,CardWidget:()=>rn,Elements:()=>Yt,ExpressCheckoutElement:()=>pn,GooglePayElement:()=>sn,HyperElements:()=>Zt,HyperManagementElements:()=>Cn,PayPalElement:()=>dn,PaymentElement:()=>en,UnifiedCheckout:()=>tn,useElements:()=>Qt,useHyper:()=>Xt,useStripe:()=>Lt,useWidgets:()=>zt});module.exports=Ie(yn);var D=a(require("react"));var xe=a(require("react/jsx-runtime"));var E=a(require("react"));var J=a(require("react"));function qe(e,t){}function He(){}function Ge(){}function Ke(e){}function Xe(){}function Le(){}function ze(e){}function Qe(){}function Ye(){}var le={on:qe,collapse:He,blur:Ge,update:Ke,destroy:Xe,unmount:Le,mount:ze,focus:Qe,clear:Ye};function et(e){if(typeof e=="boolean")return e}function tt(e){if(e===null)return null}function nt(e){if(typeof e=="string")return e}function rt(e){if(typeof e=="number")return e}function ot(e){if(typeof e=="object"&&!Array.isArray(e)&&e!==null)return e}function ut(e){if(Array.isArray(e))return e}var v={bool:et,$$null:tt,string:nt,$$float:rt,object:ot,array:ut};function L(e,t,r){for(var o=new Array(r),n=0,u=t;n<r;)o[n]=e[u],n=n+1|0,u=u+1|0;return o}function ce(e,t){for(;;){var r=t,o=e,n=o.length,u=n===0?1:n,m=r.length,s=u-m|0;if(s===0)return o.apply(null,r);if(s>=0)return function(f,i){return function(l){return ce(f,i.concat([l]))}}(o,r);t=L(r,u,-s|0),e=o.apply(null,L(r,0,u))}}function mt(e,t){var r=e.length;if(r===1)return e(t);switch(r){case 1:return e(t);case 2:return function(o){return e(t,o)};case 3:return function(o,n){return e(t,o,n)};case 4:return function(o,n,u){return e(t,o,n,u)};case 5:return function(o,n,u,m){return e(t,o,n,u,m)};case 6:return function(o,n,u,m,s){return e(t,o,n,u,m,s)};case 7:return function(o,n,u,m,s,f){return e(t,o,n,u,m,s,f)};default:return ce(e,[t])}}function $(e){var t=e.length;return t===1?e:function(r){return mt(e,r)}}function j(e){return e===void 0?{BS_PRIVATE_NESTED_SOME_NONE:0}:e!==null&&e.BS_PRIVATE_NESTED_SOME_NONE!==void 0?{BS_PRIVATE_NESTED_SOME_NONE:e.BS_PRIVATE_NESTED_SOME_NONE+1|0}:e}function I(e){if(!(e!==null&&e.BS_PRIVATE_NESTED_SOME_NONE!==void 0))return e;var t=e.BS_PRIVATE_NESTED_SOME_NONE;if(t!==0)return{BS_PRIVATE_NESTED_SOME_NONE:t-1|0}}function lt(e,t){if(e!==void 0)return t(I(e))}function P(e,t){return lt(e,$(t))}function _(e,t){return e!==void 0?I(e):t}function ft(e){return Promise.resolve({})}function dt(e,t,r){return Promise.resolve({})}function pt(e){return Promise.resolve({})}function fe(e){return e}var V={clientSecret:"",confirmPayment:ft,confirmCardPayment:dt,retrievePaymentIntent:pt,paymentRequest:fe},R=J.createContext(V),Ct=R.Provider,q={make:Ct},Q={ephemeralKey:"",paymentRequest:fe},yt=J.createContext(Q),vt=yt.Provider,de={make:vt};function g(e,t,r){return _(P(e[t],v.string),r)}function H(e){var t=_(v.object(e),{});return{fonts:_(P(t.fonts,v.array),[]),locale:g(t,"locale",""),clientSecret:g(t,"clientSecret",""),appearance:_(P(t.appearance,v.object),{}),loader:g(t,"loader","auto")}}function pe(e){}function Ce(e){}function ye(){return new Promise(function(e,t){setTimeout(function(){e({})},1e3)})}function ve(e,t){return le}var _t={fonts:[],locale:"",clientSecret:"",appearance:{},loader:""},b={options:_t,update:pe,getElement:Ce,fetchUpdates:ye,create:ve},O=J.createContext(b),Et=O.Provider,G={make:Et};function _e(e){var t=_(v.object(e),{});return{fonts:_(P(t.fonts,v.array),[]),locale:g(t,"locale",""),ephemeralKey:g(t,"ephemeralKey",""),appearance:_(P(t.appearance,v.object),{}),loader:g(t,"loader","auto")}}var ht={fonts:[],locale:"",ephemeralKey:"",appearance:{},loader:""},Y={options:ht,update:pe,getElement:Ce,fetchUpdates:ye,create:ve},xt=J.createContext(Y),Pt=xt.Provider,Ee={make:Pt};var he=a(require("react/jsx-runtime"));function gt(e){var t=e.onClick,r=e.onBlur,o=e.onFocus,n=e.componentType,u=e.onReady,m=e.onChange,s=e.options,f=e.id,i=f!==void 0?f:"payment-Element",l=E.useContext(R),p=E.useContext(O),y=E.useRef(null),d=p.create(n,s);return E.useEffect(function(){var h=p.create(n,s);h.mount("#orca-elements-payment-element-"+i)},[y,p]),E.useEffect(function(){d.on("ready",u),d.on("focus",o),d.on("blur",r),d.on("clickTriggered",t),d.on("change",m)},[p,l]),he.jsx("div",{ref:j(y),id:"orca-elements-payment-element-"+i})}var c=gt;function Rt(e){return xe.jsx(c,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"cardCvc",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick})}var Z=Rt;var T=a(require("react"));function k(e,t){return t.then($(e))}var te=a(require("react/jsx-runtime"));function kt(e){var t=e.options,r=e.stripe,o=H(t),n=T.useState(function(){return V}),u=n[1],m=T.useState(function(){return b}),s=m[1];return T.useEffect(function(){(function(f){return k(function(i){var l=i.elements(t),p=l.update,y=l.getElement,d=l.fetchUpdates,h=l.create,S={options:o,update:p,getElement:y,fetchUpdates:d,create:h},w=o.clientSecret,M=i.confirmPayment,x=i.confirmCardPayment,N=i.retrievePaymentIntent,K=i.paymentRequest,F={clientSecret:w,confirmPayment:M,confirmCardPayment:x,retrievePaymentIntent:N,paymentRequest:K};return u(function(X){return F}),s(function(X){return S}),Promise.resolve(F)},f)})(r)},[]),te.jsx(q.make,{value:n[0],children:te.jsx(G.make,{value:m[0],children:e.children})})}var Pe=kt;var ge=a(require("react/jsx-runtime"));function wt(e){return ge.jsx(c,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"cardExpiry",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick})}var ne=wt;var Re=a(require("react/jsx-runtime"));function Nt(e){return Re.jsx(c,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"cardNumber",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick})}var re=Nt;var Oe=a(require("react/jsx-runtime"));function Jt(e){return Oe.jsx(c,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"card",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick})}var oe=Jt;var W=a(require("react"));var ue=a(require("react/jsx-runtime"));function bt(e){var t=e.options,r=e.hyper,o=H(t),n=W.useState(function(){return V}),u=n[1],m=W.useState(function(){return b}),s=m[1];return W.useEffect(function(){(function(f){return k(function(i){var l=i.elements(t),p=l.update,y=l.getElement,d=l.fetchUpdates,h=l.create,S={options:o,update:p,getElement:y,fetchUpdates:d,create:h},w=o.clientSecret,M=i.confirmPayment,x=i.confirmCardPayment,N=i.retrievePaymentIntent,K=i.paymentRequest,F={clientSecret:w,confirmPayment:M,confirmCardPayment:x,retrievePaymentIntent:N,paymentRequest:K};return u(function(X){return F}),s(function(X){return S}),Promise.resolve(F)},f)})(r)},[]),ue.jsx(q.make,{value:n[0],children:ue.jsx(G.make,{value:m[0],children:e.children})})}var ke=bt;var Se=a(require("react/jsx-runtime"));function Tt(e){return Se.jsx(c,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"payPal",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick})}var we=Tt;var Me=a(require("react/jsx-runtime"));function At(e){return Me.jsx(c,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"payment",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick})}var ie=At;var Ne=a(require("react/jsx-runtime"));function Ut(e){return Ne.jsx(c,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"applePay",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick})}var Fe=Ut;var Je=a(require("react/jsx-runtime"));function jt(e){return Je.jsx(c,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"googlePay",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick})}var Ve=jt;var be=a(require("react/jsx-runtime"));function qt(e){return be.jsx(c,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"expressCheckout",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick})}var Be=qt;var A=a(require("react"));var ae=a(require("react/jsx-runtime"));function Gt(e){var t=e.options,r=e.hyper,o=_e(t),n=A.useState(function(){return Q}),u=n[1],m=A.useState(function(){return Y}),s=m[1];return A.useEffect(function(){(function(f){return k(function(i){var l=i.paymentMethodsManagementElements(t),p=l.update,y=l.getElement,d=l.fetchUpdates,h=l.create,S={options:o,update:p,getElement:y,fetchUpdates:d,create:h},w=o.ephemeralKey,M=i.paymentRequest,x={ephemeralKey:w,paymentRequest:M};return u(function(N){return x}),s(function(N){return S}),Promise.resolve(x)},f)})(r)},[]),ae.jsx(de.make,{value:n[0],children:ae.jsx(Ee.make,{value:m[0],children:e.children})})}var Te=Gt;function Xt(){return D.useContext(R)}function Lt(){return console.warn("useStripe() is deprecated. Use useHyper() instead"),D.useContext(R)}function zt(){return D.useContext(O)}function Qt(){return console.warn("useElements() is deprecated. Use useWidgets() instead"),D.useContext(O)}var Yt=Pe,Zt=ke,en=ie,tn=ie,nn=oe,rn=oe,on=re,un=re,an=Z,mn=Z,ln=ne,cn=ne,sn=Ve,fn=Fe,dn=we,pn=Be,Cn=Te;
|
package/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as A from"react";import*as _e from"react/jsx-runtime";import*as _ from"react";import*as F from"react";function be(e,t){}function Be(){}function Te(){}function We(e){}function Ae(){}function De(){}function Ue(e){}function $e(){}function je(){}var ie={on:be,collapse:Be,blur:Te,update:We,destroy:Ae,unmount:De,mount:Ue,focus:$e,clear:je};function qe(e){if(typeof e=="boolean")return e}function He(e){if(e===null)return null}function Ge(e){if(typeof e=="string")return e}function Ke(e){if(typeof e=="number")return e}function Xe(e){if(typeof e=="object"&&!Array.isArray(e)&&e!==null)return e}function Le(e){if(Array.isArray(e))return e}var y={bool:qe,$$null:He,string:Ge,$$float:Ke,object:Xe,array:Le};function K(e,t,o){for(var n=new Array(o),r=0,u=t;r<o;)n[r]=e[u],r=r+1|0,u=u+1|0;return n}function ae(e,t){for(;;){var o=t,n=e,r=n.length,u=r===0?1:r,a=o.length,c=u-a|0;if(c===0)return n.apply(null,o);if(c>=0)return function(s,i){return function(m){return ae(s,i.concat([m]))}}(n,o);t=K(o,u,-c|0),e=n.apply(null,K(o,0,u))}}function Ye(e,t){var o=e.length;if(o===1)return e(t);switch(o){case 1:return e(t);case 2:return function(n){return e(t,n)};case 3:return function(n,r){return e(t,n,r)};case 4:return function(n,r,u){return e(t,n,r,u)};case 5:return function(n,r,u,a){return e(t,n,r,u,a)};case 6:return function(n,r,u,a,c){return e(t,n,r,u,a,c)};case 7:return function(n,r,u,a,c,s){return e(t,n,r,u,a,c,s)};default:return ae(e,[t])}}function D(e){var t=e.length;return t===1?e:function(o){return Ye(e,o)}}function U(e){return e===void 0?{BS_PRIVATE_NESTED_SOME_NONE:0}:e!==null&&e.BS_PRIVATE_NESTED_SOME_NONE!==void 0?{BS_PRIVATE_NESTED_SOME_NONE:e.BS_PRIVATE_NESTED_SOME_NONE+1|0}:e}function $(e){if(!(e!==null&&e.BS_PRIVATE_NESTED_SOME_NONE!==void 0))return e;var t=e.BS_PRIVATE_NESTED_SOME_NONE;if(t!==0)return{BS_PRIVATE_NESTED_SOME_NONE:t-1|0}}function Ze(e,t){if(e!==void 0)return t($(e))}function x(e,t){return Ze(e,D(t))}function v(e,t){return e!==void 0?$(e):t}function nt(e){return Promise.resolve({})}function rt(e,t,o){return Promise.resolve({})}function ot(e){return Promise.resolve({})}function le(e){return e}var J={clientSecret:"",confirmPayment:nt,confirmCardPayment:rt,retrievePaymentIntent:ot,paymentRequest:le},g=F.createContext(J),ut=g.Provider,j={make:ut},L={ephemeralKey:"",paymentRequest:le},it=F.createContext(L),at=it.Provider,ce={make:at};function P(e,t,o){return v(x(e[t],y.string),o)}function I(e){var t=v(y.object(e),{});return{fonts:v(x(t.fonts,y.array),[]),locale:P(t,"locale",""),clientSecret:P(t,"clientSecret",""),appearance:v(x(t.appearance,y.object),{}),loader:P(t,"loader","auto")}}function se(e){}function fe(e){}function de(){return new Promise(function(e,t){setTimeout(function(){e({})},1e3)})}function pe(e,t){return ie}var mt={fonts:[],locale:"",clientSecret:"",appearance:{},loader:""},V={options:mt,update:se,getElement:fe,fetchUpdates:de,create:pe},R=F.createContext(V),lt=R.Provider,q={make:lt};function Ce(e){var t=v(y.object(e),{});return{fonts:v(x(t.fonts,y.array),[]),locale:P(t,"locale",""),ephemeralKey:P(t,"ephemeralKey",""),appearance:v(x(t.appearance,y.object),{}),loader:P(t,"loader","auto")}}var ct={fonts:[],locale:"",ephemeralKey:"",appearance:{},loader:""},z={options:ct,update:se,getElement:fe,fetchUpdates:de,create:pe},st=F.createContext(z),ft=st.Provider,ye={make:ft};import*as ve from"react/jsx-runtime";function dt(e){var t=e.onClick,o=e.onBlur,n=e.onFocus,r=e.componentType,u=e.onReady,a=e.onChange,c=e.options,s=e.id,i=s!==void 0?s:"payment-Element",m=_.useContext(g),d=_.useContext(R),C=_.useRef(null),f=d.create(r,c);return _.useEffect(function(){var E=d.create(r,c);E.mount("#orca-elements-payment-element-"+i)},[C,d]),_.useEffect(function(){f.on("ready",u),f.on("focus",n),f.on("blur",o),f.on("clickTriggered",t),f.on("change",a)},[d,m]),ve.jsx("div",{ref:U(C),id:"orca-elements-payment-element-"+i})}var l=dt;function pt(e){return _e.jsx(l,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"cardCvc",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick})}var Q=pt;import*as B from"react";function O(e,t){return t.then(D(e))}import*as Z from"react/jsx-runtime";function yt(e){var t=e.options,o=e.stripe,n=I(t),r=B.useState(function(){return J}),u=r[1],a=B.useState(function(){return V}),c=a[1];return B.useEffect(function(){(function(s){return O(function(i){var m=i.elements(t),d=m.update,C=m.getElement,f=m.fetchUpdates,E=m.create,k={options:n,update:d,getElement:C,fetchUpdates:f,create:E},S=n.clientSecret,w=i.confirmPayment,h=i.confirmCardPayment,M=i.retrievePaymentIntent,H=i.paymentRequest,N={clientSecret:S,confirmPayment:w,confirmCardPayment:h,retrievePaymentIntent:M,paymentRequest:H};return u(function(G){return N}),c(function(G){return k}),Promise.resolve(N)},s)})(o)},[]),Z.jsx(j.make,{value:r[0],children:Z.jsx(q.make,{value:a[0],children:e.children})})}var Ee=yt;import*as he from"react/jsx-runtime";function _t(e){return he.jsx(l,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"cardExpiry",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick})}var ee=_t;import*as xe from"react/jsx-runtime";function ht(e){return xe.jsx(l,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"cardNumber",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick})}var te=ht;import*as Pe from"react/jsx-runtime";function Pt(e){return Pe.jsx(l,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"card",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick})}var ne=Pt;import*as T from"react";import*as re from"react/jsx-runtime";function Rt(e){var t=e.options,o=e.hyper,n=I(t),r=T.useState(function(){return J}),u=r[1],a=T.useState(function(){return V}),c=a[1];return T.useEffect(function(){(function(s){return O(function(i){var m=i.elements(t),d=m.update,C=m.getElement,f=m.fetchUpdates,E=m.create,k={options:n,update:d,getElement:C,fetchUpdates:f,create:E},S=n.clientSecret,w=i.confirmPayment,h=i.confirmCardPayment,M=i.retrievePaymentIntent,H=i.paymentRequest,N={clientSecret:S,confirmPayment:w,confirmCardPayment:h,retrievePaymentIntent:M,paymentRequest:H};return u(function(G){return N}),c(function(G){return k}),Promise.resolve(N)},s)})(o)},[]),re.jsx(j.make,{value:r[0],children:re.jsx(q.make,{value:a[0],children:e.children})})}var ge=Rt;import*as Re from"react/jsx-runtime";function kt(e){return Re.jsx(l,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"payPal",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick})}var Oe=kt;import*as ke from"react/jsx-runtime";function wt(e){return ke.jsx(l,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"payment",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick})}var oe=wt;import*as Se from"react/jsx-runtime";function Nt(e){return Se.jsx(l,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"applePay",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick})}var we=Nt;import*as Me from"react/jsx-runtime";function Jt(e){return Me.jsx(l,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"googlePay",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick})}var Ne=Jt;import*as Fe from"react/jsx-runtime";function bt(e){return Fe.jsx(l,{id:e.id,options:e.options,onChange:e.onChange,onReady:e.onReady,componentType:"expressCheckout",onFocus:e.onFocus,onBlur:e.onBlur,onClick:e.onClick})}var Je=bt;import*as W from"react";import*as ue from"react/jsx-runtime";function Tt(e){var t=e.options,o=e.hyper,n=Ce(t),r=W.useState(function(){return L}),u=r[1],a=W.useState(function(){return z}),c=a[1];return W.useEffect(function(){(function(s){return O(function(i){var m=i.paymentMethodsManagementElements(t),d=m.update,C=m.getElement,f=m.fetchUpdates,E=m.create,k={options:n,update:d,getElement:C,fetchUpdates:f,create:E},S=n.ephemeralKey,w=i.paymentRequest,h={ephemeralKey:S,paymentRequest:w};return u(function(M){return h}),c(function(M){return k}),Promise.resolve(h)},s)})(o)},[]),ue.jsx(ce.make,{value:r[0],children:ue.jsx(ye.make,{value:a[0],children:e.children})})}var Ve=Tt;function Dt(){return A.useContext(g)}function Ut(){return console.warn("useStripe() is deprecated. Use useHyper() instead"),A.useContext(g)}function $t(){return A.useContext(R)}function jt(){return console.warn("useElements() is deprecated. Use useWidgets() instead"),A.useContext(R)}var It=Ee,qt=ge,Ht=oe,Gt=oe,Kt=ne,Xt=ne,Lt=te,zt=te,Qt=Q,Yt=Q,Zt=ee,en=ee,tn=Ne,nn=we,rn=Oe,on=Je,un=Ve;export{nn as ApplePayElement,Qt as CardCVCElement,Yt as CardCVCWidget,Kt as CardElement,Zt as CardExpiryElement,en as CardExpiryWidget,Lt as CardNumberElement,zt as CardNumberWidget,Xt as CardWidget,It as Elements,on as ExpressCheckoutElement,tn as GooglePayElement,qt as HyperElements,un as HyperManagementElements,rn as PayPalElement,Ht as PaymentElement,Gt as UnifiedCheckout,jt as useElements,Dt as useHyper,Ut as useStripe,$t as useWidgets};
|
package/package.json
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@juspay-tech/react-hyper-js",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"main": "index.js",
|
|
5
|
+
"module": "index.mjs",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"import": "./index.mjs",
|
|
9
|
+
"require": "./index.js"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
5
12
|
"dependencies": {
|
|
6
|
-
"@rescript/react": "^0.
|
|
13
|
+
"@rescript/react": "^0.12.1",
|
|
7
14
|
"@ryyppy/rescript-promise": "^2.1.0",
|
|
8
|
-
"bs-fetch": "^0.6.2",
|
|
9
|
-
"bs-webapi": "^0.19.1",
|
|
10
15
|
"postcss": "^8.4.19",
|
|
11
|
-
"react-scripts": "^
|
|
16
|
+
"react-scripts": "^5.0.1",
|
|
17
|
+
"@rescript/core": "^0.7.0"
|
|
12
18
|
},
|
|
13
19
|
"peerDependencies": {
|
|
14
20
|
"react": "^16.9.0 || ^17.0.0 || ^18.0.0",
|
|
@@ -20,32 +26,20 @@
|
|
|
20
26
|
"build:es": "node build.js",
|
|
21
27
|
"re:build": "rescript",
|
|
22
28
|
"re:start": "rescript build -w",
|
|
29
|
+
"re:format": "rescript format -all",
|
|
30
|
+
"re:clean": "rescript clean",
|
|
23
31
|
"publish:public": "npm publish --access public"
|
|
24
32
|
},
|
|
25
33
|
"devDependencies": {
|
|
26
|
-
"@babel/cli": "^7.7.0",
|
|
27
|
-
"@babel/core": "^7.7.2",
|
|
28
|
-
"@babel/plugin-transform-react-jsx": "^7.10.1",
|
|
29
34
|
"@babel/preset-env": "^7.7.1",
|
|
30
35
|
"@babel/preset-react": "^7.7.0",
|
|
31
|
-
"babel-
|
|
32
|
-
"
|
|
33
|
-
"babel-eslint": "^10.0.3",
|
|
34
|
-
"babel-jest": "^24.9.0",
|
|
35
|
-
"babel-loader": "^8.0.6",
|
|
36
|
-
"babel-preset-env": "^1.7.0",
|
|
37
|
-
"babel-preset-react": "^6.24.1",
|
|
38
|
-
"babel-preset-stage-2": "^6.24.1",
|
|
39
|
-
"css-loader": "^0.28.11",
|
|
36
|
+
"babel-loader": "^8.3.0",
|
|
37
|
+
"css-loader": "^6.8.1",
|
|
40
38
|
"esbuild": "^0.17.4",
|
|
41
39
|
"esbuild-plugin-copy": "^1.3.0",
|
|
42
40
|
"esbuild-plugin-inline-image": "0.0.8",
|
|
43
41
|
"esbuild-postcss": "0.0.4",
|
|
44
|
-
"
|
|
45
|
-
"react-hot-loader": "^4.3.3",
|
|
46
|
-
"rescript": "^10.0.1",
|
|
47
|
-
"rollup-plugin-babel": "^4.3.3",
|
|
48
|
-
"sass-loader": "^7.0.3",
|
|
42
|
+
"rescript": "^11.1.0",
|
|
49
43
|
"style-loader": "^0.21.0"
|
|
50
44
|
},
|
|
51
45
|
"directories": {
|
package/rescript.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "react-orca-js",
|
|
3
|
+
"sources": [
|
|
4
|
+
{
|
|
5
|
+
"dir": "src",
|
|
6
|
+
"subdirs": true
|
|
7
|
+
}
|
|
8
|
+
],
|
|
9
|
+
"bsc-flags": ["-bs-super-errors", "-open RescriptCore"],
|
|
10
|
+
"package-specs": [
|
|
11
|
+
{
|
|
12
|
+
"module": "esmodule",
|
|
13
|
+
"in-source": true
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"suffix": ".bs.js",
|
|
17
|
+
"jsx": { "version": 4 },
|
|
18
|
+
"bs-dependencies": [
|
|
19
|
+
"@rescript/react",
|
|
20
|
+
"@ryyppy/rescript-promise",
|
|
21
|
+
"@rescript/core"
|
|
22
|
+
]
|
|
23
|
+
}
|
package/src/Context.bs.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import * as OrcaJs from "./OrcaJs.bs.js";
|
|
5
|
-
import * as
|
|
6
|
-
import * as Js_json from "rescript/lib/es6/js_json.js";
|
|
5
|
+
import * as Core__JSON from "@rescript/core/src/Core__JSON.bs.js";
|
|
7
6
|
import * as Belt_Option from "rescript/lib/es6/belt_Option.js";
|
|
7
|
+
import * as Core__Option from "@rescript/core/src/Core__Option.bs.js";
|
|
8
8
|
|
|
9
9
|
function confirmPaymentFn(_elements) {
|
|
10
10
|
return Promise.resolve({});
|
|
@@ -32,31 +32,36 @@ var defaultSwitchContext = {
|
|
|
32
32
|
|
|
33
33
|
var switchContext = React.createContext(defaultSwitchContext);
|
|
34
34
|
|
|
35
|
-
function makeProps(value, children, param) {
|
|
36
|
-
return {
|
|
37
|
-
value: value,
|
|
38
|
-
children: children
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
|
|
42
35
|
var make = switchContext.Provider;
|
|
43
36
|
|
|
44
37
|
var SwitchContextProvider = {
|
|
45
|
-
makeProps: makeProps,
|
|
46
38
|
make: make
|
|
47
39
|
};
|
|
48
40
|
|
|
41
|
+
var defaultPaymentMethodsManagementSwitchContext = {
|
|
42
|
+
ephemeralKey: "",
|
|
43
|
+
paymentRequest: paymentRequest
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
var paymentMethodsManagementSwitchContext = React.createContext(defaultPaymentMethodsManagementSwitchContext);
|
|
47
|
+
|
|
48
|
+
var make$1 = paymentMethodsManagementSwitchContext.Provider;
|
|
49
|
+
|
|
50
|
+
var PaymentMethodsManagementSwitchContextProvider = {
|
|
51
|
+
make: make$1
|
|
52
|
+
};
|
|
53
|
+
|
|
49
54
|
function getString(dict, key, defaultVal) {
|
|
50
|
-
return
|
|
55
|
+
return Core__Option.getOr(Belt_Option.flatMap(dict[key], Core__JSON.Decode.string), defaultVal);
|
|
51
56
|
}
|
|
52
57
|
|
|
53
58
|
function elementsOptionObjMapper(options) {
|
|
54
|
-
var dict =
|
|
59
|
+
var dict = Core__Option.getOr(Core__JSON.Decode.object(options), {});
|
|
55
60
|
return {
|
|
56
|
-
fonts:
|
|
61
|
+
fonts: Core__Option.getOr(Belt_Option.flatMap(dict["fonts"], Core__JSON.Decode.array), []),
|
|
57
62
|
locale: getString(dict, "locale", ""),
|
|
58
63
|
clientSecret: getString(dict, "clientSecret", ""),
|
|
59
|
-
appearance:
|
|
64
|
+
appearance: Core__Option.getOr(Belt_Option.flatMap(dict["appearance"], Core__JSON.Decode.object), {}),
|
|
60
65
|
loader: getString(dict, "loader", "auto")
|
|
61
66
|
};
|
|
62
67
|
}
|
|
@@ -69,9 +74,9 @@ function getElement(_componentName) {
|
|
|
69
74
|
|
|
70
75
|
}
|
|
71
76
|
|
|
72
|
-
function fetchUpdates(
|
|
77
|
+
function fetchUpdates() {
|
|
73
78
|
return new Promise((function (resolve, param) {
|
|
74
|
-
setTimeout((function (
|
|
79
|
+
setTimeout((function () {
|
|
75
80
|
resolve({});
|
|
76
81
|
}), 1000);
|
|
77
82
|
}));
|
|
@@ -99,18 +104,45 @@ var defaultElementsContext = {
|
|
|
99
104
|
|
|
100
105
|
var elementsContext = React.createContext(defaultElementsContext);
|
|
101
106
|
|
|
102
|
-
|
|
107
|
+
var make$2 = elementsContext.Provider;
|
|
108
|
+
|
|
109
|
+
var ElementsContextProvider = {
|
|
110
|
+
make: make$2
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
function paymentMethodsManagementElementsOptionObjMapper(options) {
|
|
114
|
+
var dict = Core__Option.getOr(Core__JSON.Decode.object(options), {});
|
|
103
115
|
return {
|
|
104
|
-
|
|
105
|
-
|
|
116
|
+
fonts: Core__Option.getOr(Belt_Option.flatMap(dict["fonts"], Core__JSON.Decode.array), []),
|
|
117
|
+
locale: getString(dict, "locale", ""),
|
|
118
|
+
ephemeralKey: getString(dict, "ephemeralKey", ""),
|
|
119
|
+
appearance: Core__Option.getOr(Belt_Option.flatMap(dict["appearance"], Core__JSON.Decode.object), {}),
|
|
120
|
+
loader: getString(dict, "loader", "auto")
|
|
106
121
|
};
|
|
107
122
|
}
|
|
108
123
|
|
|
109
|
-
var
|
|
124
|
+
var defaultPaymentMethodsManagementElementsContext_options = {
|
|
125
|
+
fonts: [],
|
|
126
|
+
locale: "",
|
|
127
|
+
ephemeralKey: "",
|
|
128
|
+
appearance: {},
|
|
129
|
+
loader: ""
|
|
130
|
+
};
|
|
110
131
|
|
|
111
|
-
var
|
|
112
|
-
|
|
113
|
-
|
|
132
|
+
var defaultPaymentMethodsManagementElementsContext = {
|
|
133
|
+
options: defaultPaymentMethodsManagementElementsContext_options,
|
|
134
|
+
update: update,
|
|
135
|
+
getElement: getElement,
|
|
136
|
+
fetchUpdates: fetchUpdates,
|
|
137
|
+
create: create
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
var paymentMethodsManagementElementsContext = React.createContext(defaultPaymentMethodsManagementElementsContext);
|
|
141
|
+
|
|
142
|
+
var make$3 = paymentMethodsManagementElementsContext.Provider;
|
|
143
|
+
|
|
144
|
+
var PaymentMethodsManagementElementsContextProvider = {
|
|
145
|
+
make: make$3
|
|
114
146
|
};
|
|
115
147
|
|
|
116
148
|
export {
|
|
@@ -121,6 +153,9 @@ export {
|
|
|
121
153
|
defaultSwitchContext ,
|
|
122
154
|
switchContext ,
|
|
123
155
|
SwitchContextProvider ,
|
|
156
|
+
defaultPaymentMethodsManagementSwitchContext ,
|
|
157
|
+
paymentMethodsManagementSwitchContext ,
|
|
158
|
+
PaymentMethodsManagementSwitchContextProvider ,
|
|
124
159
|
getString ,
|
|
125
160
|
elementsOptionObjMapper ,
|
|
126
161
|
update ,
|
|
@@ -130,5 +165,9 @@ export {
|
|
|
130
165
|
defaultElementsContext ,
|
|
131
166
|
elementsContext ,
|
|
132
167
|
ElementsContextProvider ,
|
|
168
|
+
paymentMethodsManagementElementsOptionObjMapper ,
|
|
169
|
+
defaultPaymentMethodsManagementElementsContext ,
|
|
170
|
+
paymentMethodsManagementElementsContext ,
|
|
171
|
+
PaymentMethodsManagementElementsContextProvider ,
|
|
133
172
|
}
|
|
134
|
-
/*
|
|
173
|
+
/* switchContext Not a pure module */
|
package/src/Context.res
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
external contentWindow: Js.nullable<Dom.element> => Js.nullable<Dom.element> = "contentWindow"
|
|
3
3
|
@send
|
|
4
4
|
external postMessage: (Js.nullable<Dom.element>, string, string) => unit = "postMessage"
|
|
5
|
-
external jsonToRef:
|
|
5
|
+
external jsonToRef: JSON.t => React.ref<Js.nullable<Dom.element>> = "%identity"
|
|
6
6
|
@get external getClientSecret: 'a => string = "clientSecret"
|
|
7
|
-
external toJson: 'b =>
|
|
8
|
-
type func =
|
|
7
|
+
external toJson: 'b => JSON.t = "%identity"
|
|
8
|
+
type func = unit => string
|
|
9
9
|
external toFunc: 'c => func = "%identity"
|
|
10
10
|
|
|
11
11
|
type paymentElement
|
|
@@ -18,7 +18,7 @@ type address = {
|
|
|
18
18
|
postal_code: option<string>,
|
|
19
19
|
state: option<string>,
|
|
20
20
|
}
|
|
21
|
-
type confirmCardPaymentMethodType = String(string) | Obj(
|
|
21
|
+
type confirmCardPaymentMethodType = String(string) | Obj(JSON.t)
|
|
22
22
|
type shipping = {
|
|
23
23
|
address: address,
|
|
24
24
|
name: string,
|
|
@@ -40,49 +40,64 @@ type confirmCardPaymentDataType = {
|
|
|
40
40
|
payment_method_options: string,
|
|
41
41
|
}
|
|
42
42
|
type elementsOptions = {
|
|
43
|
-
fonts:
|
|
43
|
+
fonts: array<JSON.t>,
|
|
44
44
|
locale: string,
|
|
45
45
|
clientSecret: string,
|
|
46
|
-
appearance:
|
|
46
|
+
appearance: Dict.t<JSON.t>,
|
|
47
47
|
loader: string,
|
|
48
48
|
}
|
|
49
|
-
|
|
49
|
+
type paymentMethodsManagementElementsOptions = {
|
|
50
|
+
fonts: array<JSON.t>,
|
|
51
|
+
locale: string,
|
|
52
|
+
ephemeralKey: string,
|
|
53
|
+
appearance: Dict.t<JSON.t>,
|
|
54
|
+
loader: string,
|
|
55
|
+
}
|
|
56
|
+
external optionsToJson: elementsOptions => JSON.t = "%identity"
|
|
50
57
|
type rec elementsType = {
|
|
51
58
|
options: elementsOptions,
|
|
52
|
-
update:
|
|
53
|
-
getElement:
|
|
54
|
-
fetchUpdates: unit =>
|
|
55
|
-
create: (string,
|
|
59
|
+
update: JSON.t => unit,
|
|
60
|
+
getElement: string => option<OrcaJs.paymentElement>,
|
|
61
|
+
fetchUpdates: unit => Promise.t<JSON.t>,
|
|
62
|
+
create: (string, JSON.t) => OrcaJs.paymentElement, // return a react component instead by doing new Payment Element.
|
|
56
63
|
}
|
|
57
64
|
|
|
58
|
-
type
|
|
65
|
+
type rec paymentMethodsManagementElementsType = {
|
|
66
|
+
options: paymentMethodsManagementElementsOptions,
|
|
67
|
+
update: JSON.t => unit,
|
|
68
|
+
getElement: string => option<OrcaJs.paymentElement>,
|
|
69
|
+
fetchUpdates: unit => Promise.t<JSON.t>,
|
|
70
|
+
create: (string, JSON.t) => OrcaJs.paymentElement,
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
type elementsContextType = {options: Dict.t<JSON.t>}
|
|
59
74
|
type confirmPaymentParams = {return_url: string}
|
|
60
75
|
type switchContextType = {
|
|
61
76
|
clientSecret: string,
|
|
62
|
-
confirmPayment:
|
|
63
|
-
confirmCardPayment:
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
let
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
77
|
+
confirmPayment: JSON.t => Promise.t<JSON.t>,
|
|
78
|
+
confirmCardPayment: (string, option<JSON.t>, option<JSON.t>) => Promise.t<JSON.t>,
|
|
79
|
+
retrievePaymentIntent: string => Promise.t<JSON.t>,
|
|
80
|
+
paymentRequest: JSON.t => JSON.t,
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
type paymentMethodsManagementSwitchContextType = {
|
|
84
|
+
ephemeralKey: string,
|
|
85
|
+
paymentRequest: JSON.t => JSON.t,
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
let confirmPaymentFn = (_elements: JSON.t) => {
|
|
89
|
+
Promise.resolve(Dict.make()->JSON.Encode.object)
|
|
90
|
+
}
|
|
91
|
+
let confirmCardPaymentFn = (
|
|
92
|
+
_clientSecretId: string,
|
|
93
|
+
_data: option<JSON.t>,
|
|
94
|
+
_options: option<JSON.t>,
|
|
95
|
+
) => {
|
|
96
|
+
Promise.resolve(Dict.make()->JSON.Encode.object)
|
|
97
|
+
}
|
|
83
98
|
|
|
84
99
|
let retrievePaymentIntentFn = _paymentIntentId => {
|
|
85
|
-
|
|
100
|
+
Promise.resolve(Dict.make()->JSON.Encode.object)
|
|
86
101
|
}
|
|
87
102
|
let paymentRequest = options => {
|
|
88
103
|
options
|
|
@@ -99,35 +114,42 @@ let defaultSwitchContext = {
|
|
|
99
114
|
let switchContext = React.createContext(defaultSwitchContext)
|
|
100
115
|
|
|
101
116
|
module SwitchContextProvider = {
|
|
102
|
-
let makeProps = (~value, ~children, ()) =>
|
|
103
|
-
{
|
|
104
|
-
"value": value,
|
|
105
|
-
"children": children,
|
|
106
|
-
}
|
|
107
|
-
|
|
108
117
|
let make = React.Context.provider(switchContext)
|
|
109
118
|
}
|
|
110
119
|
|
|
120
|
+
let defaultPaymentMethodsManagementSwitchContext = {
|
|
121
|
+
ephemeralKey: "",
|
|
122
|
+
paymentRequest,
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
let paymentMethodsManagementSwitchContext = React.createContext(
|
|
126
|
+
defaultPaymentMethodsManagementSwitchContext,
|
|
127
|
+
)
|
|
128
|
+
|
|
129
|
+
module PaymentMethodsManagementSwitchContextProvider = {
|
|
130
|
+
let make = React.Context.provider(paymentMethodsManagementSwitchContext)
|
|
131
|
+
}
|
|
132
|
+
|
|
111
133
|
let getString = (dict, key, defaultVal) => {
|
|
112
134
|
dict
|
|
113
|
-
->
|
|
114
|
-
->Belt.Option.flatMap(
|
|
115
|
-
->
|
|
135
|
+
->Dict.get(key)
|
|
136
|
+
->Belt.Option.flatMap(JSON.Decode.string)
|
|
137
|
+
->Option.getOr(defaultVal)
|
|
116
138
|
}
|
|
117
139
|
|
|
118
|
-
let elementsOptionObjMapper = (options:
|
|
119
|
-
let dict = options->
|
|
140
|
+
let elementsOptionObjMapper = (options: JSON.t) => {
|
|
141
|
+
let dict = options->JSON.Decode.object->Option.getOr(Dict.make())
|
|
120
142
|
{
|
|
121
143
|
fonts: dict
|
|
122
|
-
->
|
|
123
|
-
->Belt.Option.flatMap(
|
|
124
|
-
->
|
|
144
|
+
->Dict.get("fonts")
|
|
145
|
+
->Belt.Option.flatMap(JSON.Decode.array)
|
|
146
|
+
->Option.getOr([]),
|
|
125
147
|
locale: dict->getString("locale", ""),
|
|
126
148
|
clientSecret: dict->getString("clientSecret", ""),
|
|
127
149
|
appearance: dict
|
|
128
|
-
->
|
|
129
|
-
->Belt.Option.flatMap(
|
|
130
|
-
->
|
|
150
|
+
->Dict.get("appearance")
|
|
151
|
+
->Belt.Option.flatMap(JSON.Decode.object)
|
|
152
|
+
->Option.getOr(Dict.make()),
|
|
131
153
|
loader: dict->getString("loader", "auto"),
|
|
132
154
|
}
|
|
133
155
|
}
|
|
@@ -142,20 +164,20 @@ let getElement = _componentName => {
|
|
|
142
164
|
|
|
143
165
|
let fetchUpdates = () => {
|
|
144
166
|
//add API call
|
|
145
|
-
|
|
146
|
-
|
|
167
|
+
Promise.make((resolve, _) => {
|
|
168
|
+
setTimeout(() => resolve(Dict.make()->JSON.Encode.object), 1000)->ignore
|
|
147
169
|
})
|
|
148
170
|
}
|
|
149
171
|
|
|
150
172
|
let create = (_componentType, _options) => {
|
|
151
173
|
OrcaJs.defaultPaymentElement
|
|
152
174
|
}
|
|
153
|
-
let defaultElementsContext = {
|
|
175
|
+
let defaultElementsContext: elementsType = {
|
|
154
176
|
options: {
|
|
155
177
|
fonts: [],
|
|
156
178
|
locale: "",
|
|
157
179
|
clientSecret: "",
|
|
158
|
-
appearance:
|
|
180
|
+
appearance: Dict.make(),
|
|
159
181
|
loader: "",
|
|
160
182
|
},
|
|
161
183
|
update,
|
|
@@ -167,11 +189,44 @@ let defaultElementsContext = {
|
|
|
167
189
|
let elementsContext = React.createContext(defaultElementsContext)
|
|
168
190
|
|
|
169
191
|
module ElementsContextProvider = {
|
|
170
|
-
let makeProps = (~value, ~children, ()) =>
|
|
171
|
-
{
|
|
172
|
-
"value": value,
|
|
173
|
-
"children": children,
|
|
174
|
-
}
|
|
175
|
-
|
|
176
192
|
let make = React.Context.provider(elementsContext)
|
|
177
193
|
}
|
|
194
|
+
|
|
195
|
+
let paymentMethodsManagementElementsOptionObjMapper = (options: JSON.t) => {
|
|
196
|
+
let dict = options->JSON.Decode.object->Option.getOr(Dict.make())
|
|
197
|
+
{
|
|
198
|
+
fonts: dict
|
|
199
|
+
->Dict.get("fonts")
|
|
200
|
+
->Belt.Option.flatMap(JSON.Decode.array)
|
|
201
|
+
->Option.getOr([]),
|
|
202
|
+
locale: dict->getString("locale", ""),
|
|
203
|
+
ephemeralKey: dict->getString("ephemeralKey", ""),
|
|
204
|
+
appearance: dict
|
|
205
|
+
->Dict.get("appearance")
|
|
206
|
+
->Belt.Option.flatMap(JSON.Decode.object)
|
|
207
|
+
->Option.getOr(Dict.make()),
|
|
208
|
+
loader: dict->getString("loader", "auto"),
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
let defaultPaymentMethodsManagementElementsContext: paymentMethodsManagementElementsType = {
|
|
213
|
+
options: {
|
|
214
|
+
fonts: [],
|
|
215
|
+
locale: "",
|
|
216
|
+
ephemeralKey: "",
|
|
217
|
+
appearance: Js.Dict.empty(),
|
|
218
|
+
loader: "",
|
|
219
|
+
},
|
|
220
|
+
update,
|
|
221
|
+
getElement,
|
|
222
|
+
fetchUpdates,
|
|
223
|
+
create,
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
let paymentMethodsManagementElementsContext = React.createContext(
|
|
227
|
+
defaultPaymentMethodsManagementElementsContext,
|
|
228
|
+
)
|
|
229
|
+
|
|
230
|
+
module PaymentMethodsManagementElementsContextProvider = {
|
|
231
|
+
let make = React.Context.provider(paymentMethodsManagementElementsContext)
|
|
232
|
+
}
|