react-native-klarna-inapp-sdk 2.3.15 → 2.4.1
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/README.md +1 -0
- package/android/src/main/java/com/klarna/mobile/sdk/reactnative/KlarnaMobileSDKPackage.java +2 -4
- package/android/src/main/java/com/klarna/mobile/sdk/reactnative/checkout/KlarnaCheckoutViewEventSender.java +7 -2
- package/android/src/main/java/com/klarna/mobile/sdk/reactnative/checkout/KlarnaCheckoutViewManager.java +51 -18
- package/android/src/main/java/com/klarna/mobile/sdk/reactnative/common/WebViewResizeObserver.java +9 -4
- package/android/src/main/java/com/klarna/mobile/sdk/reactnative/common/event/KlarnaEventHandlerEventsUtil.java +62 -3
- package/android/src/main/java/com/klarna/mobile/sdk/reactnative/common/ui/ResizeObserverWrapperView.java +3 -2
- package/android/src/main/java/com/klarna/mobile/sdk/reactnative/common/util/ArgumentsUtil.java +40 -0
- package/android/src/main/java/com/klarna/mobile/sdk/reactnative/payments/PaymentViewWrapper.java +1 -1
- package/android/src/main/java/com/klarna/mobile/sdk/reactnative/signin/KlarnaSignInData.java +15 -0
- package/android/src/main/java/com/klarna/mobile/sdk/reactnative/signin/KlarnaSignInEventsMapper.java +40 -0
- package/android/src/main/java/com/klarna/mobile/sdk/reactnative/signin/KlarnaSignInModuleImpl.java +124 -0
- package/android/src/newarch/java/com/klarna/mobile/sdk/reactnative/spec/RNKlarnaSignInModuleSpec.java +65 -0
- package/android/src/oldarch/java/com/klarna/mobile/sdk/reactnative/spec/RNKlarnaSignInModuleSpec.java +39 -0
- package/android/src/test/java/com/klarna/mobile/sdk/reactnative/KlarnaMobileSDKPackageTest.java +5 -4
- package/ios/Sources/KlarnaCheckoutViewManager.mm +32 -24
- package/ios/Sources/signIn/KlarnaSignInData.h +25 -0
- package/ios/Sources/signIn/KlarnaSignInData.mm +21 -0
- package/ios/Sources/signIn/KlarnaSignInEventsMapper.h +18 -0
- package/ios/Sources/signIn/KlarnaSignInEventsMapper.m +54 -0
- package/ios/Sources/signIn/KlarnaSignInModule.h +26 -0
- package/ios/Sources/signIn/KlarnaSignInModuleImpl.h +37 -0
- package/ios/Sources/signIn/KlarnaSignInModuleImpl.mm +244 -0
- package/ios/Sources/signIn/newarch/KlarnaSignInModule.mm +75 -0
- package/ios/Sources/signIn/oldarch/KlarnaSignInModule.mm +72 -0
- package/ios/Sources/view/KlarnaCheckoutViewWrapper.h +1 -3
- package/ios/Sources/view/newarch/KlarnaCheckoutViewWrapper.mm +53 -29
- package/ios/Sources/view/oldarch/KlarnaCheckoutViewWrapper.mm +58 -20
- package/lib/commonjs/KlarnaCheckoutView.js +16 -3
- package/lib/commonjs/KlarnaCheckoutView.js.map +1 -1
- package/lib/commonjs/KlarnaSignInSDK.js +80 -0
- package/lib/commonjs/KlarnaSignInSDK.js.map +1 -0
- package/lib/commonjs/index.js +11 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/specs/KlarnaCheckoutViewNativeComponent.js.map +1 -1
- package/lib/commonjs/specs/NativeKlarnaSignIn.js +10 -0
- package/lib/commonjs/specs/NativeKlarnaSignIn.js.map +1 -0
- package/lib/commonjs/types/common/KlarnaEnvironment.js +13 -0
- package/lib/commonjs/types/common/KlarnaEnvironment.js.map +1 -0
- package/lib/commonjs/types/common/KlarnaRegion.js +14 -0
- package/lib/commonjs/types/common/KlarnaRegion.js.map +1 -0
- package/lib/module/KlarnaCheckoutView.js +16 -3
- package/lib/module/KlarnaCheckoutView.js.map +1 -1
- package/lib/module/KlarnaSignInSDK.js +72 -0
- package/lib/module/KlarnaSignInSDK.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/specs/KlarnaCheckoutViewNativeComponent.js.map +1 -1
- package/lib/module/specs/NativeKlarnaSignIn.js +3 -0
- package/lib/module/specs/NativeKlarnaSignIn.js.map +1 -0
- package/lib/module/types/common/KlarnaEnvironment.js +6 -0
- package/lib/module/types/common/KlarnaEnvironment.js.map +1 -0
- package/lib/module/types/common/KlarnaRegion.js +7 -0
- package/lib/module/types/common/KlarnaRegion.js.map +1 -0
- package/lib/typescript/KlarnaCheckoutView.d.ts +2 -0
- package/lib/typescript/KlarnaCheckoutView.d.ts.map +1 -1
- package/lib/typescript/KlarnaSignInSDK.d.ts +19 -0
- package/lib/typescript/KlarnaSignInSDK.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/specs/KlarnaCheckoutViewNativeComponent.d.ts +1 -0
- package/lib/typescript/specs/KlarnaCheckoutViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/specs/NativeKlarnaSignIn.d.ts +10 -0
- package/lib/typescript/specs/NativeKlarnaSignIn.d.ts.map +1 -0
- package/lib/typescript/types/common/KlarnaEnvironment.d.ts +5 -0
- package/lib/typescript/types/common/KlarnaEnvironment.d.ts.map +1 -0
- package/lib/typescript/types/common/KlarnaMobileSDKError.d.ts +4 -0
- package/lib/typescript/types/common/KlarnaMobileSDKError.d.ts.map +1 -1
- package/lib/typescript/types/common/KlarnaProductEvent.d.ts +1 -0
- package/lib/typescript/types/common/KlarnaProductEvent.d.ts.map +1 -1
- package/lib/typescript/types/common/KlarnaRegion.d.ts +6 -0
- package/lib/typescript/types/common/KlarnaRegion.d.ts.map +1 -0
- package/package.json +1 -1
- package/react-native-klarna-inapp-sdk.podspec +1 -1
- package/src/KlarnaCheckoutView.tsx +16 -3
- package/src/KlarnaSignInSDK.tsx +122 -0
- package/src/index.tsx +1 -0
- package/src/specs/KlarnaCheckoutViewNativeComponent.ts +1 -0
- package/src/specs/NativeKlarnaSignIn.ts +25 -0
- package/src/types/common/KlarnaEnvironment.ts +4 -0
- package/src/types/common/KlarnaMobileSDKError.ts +2 -0
- package/src/types/common/KlarnaProductEvent.ts +1 -0
- package/src/types/common/KlarnaRegion.ts +5 -0
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import React, { Component } from 'react';
|
|
2
2
|
import RNKlarnaCheckoutView, { Commands as RNKlarnaCheckoutViewCommands } from './specs/KlarnaCheckoutViewNativeComponent';
|
|
3
3
|
export class KlarnaCheckoutView extends Component {
|
|
4
|
+
snippet = null;
|
|
5
|
+
isCheckoutViewReady = false;
|
|
4
6
|
constructor(props) {
|
|
5
7
|
super(props);
|
|
6
8
|
this.state = {
|
|
7
9
|
nativeViewHeight: 0
|
|
8
10
|
};
|
|
9
11
|
this.checkoutViewRef = /*#__PURE__*/React.createRef();
|
|
12
|
+
this.isCheckoutViewReady = false;
|
|
10
13
|
}
|
|
11
14
|
render() {
|
|
12
15
|
return /*#__PURE__*/React.createElement(RNKlarnaCheckoutView, {
|
|
@@ -49,24 +52,34 @@ export class KlarnaCheckoutView extends Component {
|
|
|
49
52
|
nativeViewHeight: newHeight
|
|
50
53
|
});
|
|
51
54
|
}
|
|
55
|
+
},
|
|
56
|
+
onCheckoutViewReady: () => {
|
|
57
|
+
this.isCheckoutViewReady = true;
|
|
58
|
+
console.log('onCheckoutViewReady');
|
|
59
|
+
if (this.snippet) {
|
|
60
|
+
console.log('Setting the snippet...');
|
|
61
|
+
this.setSnippet(this.snippet);
|
|
62
|
+
this.snippet = null;
|
|
63
|
+
}
|
|
52
64
|
}
|
|
53
65
|
});
|
|
54
66
|
}
|
|
55
67
|
setSnippet = snippet => {
|
|
68
|
+
this.snippet = snippet;
|
|
56
69
|
const view = this.checkoutViewRef.current;
|
|
57
|
-
if (view != null) {
|
|
70
|
+
if (view != null && this.isCheckoutViewReady) {
|
|
58
71
|
RNKlarnaCheckoutViewCommands.setSnippet(view, snippet);
|
|
59
72
|
}
|
|
60
73
|
};
|
|
61
74
|
suspend = () => {
|
|
62
75
|
const view = this.checkoutViewRef.current;
|
|
63
|
-
if (view != null) {
|
|
76
|
+
if (view != null && this.isCheckoutViewReady) {
|
|
64
77
|
RNKlarnaCheckoutViewCommands.suspend(view);
|
|
65
78
|
}
|
|
66
79
|
};
|
|
67
80
|
resume = () => {
|
|
68
81
|
const view = this.checkoutViewRef.current;
|
|
69
|
-
if (view != null) {
|
|
82
|
+
if (view != null && this.isCheckoutViewReady) {
|
|
70
83
|
RNKlarnaCheckoutViewCommands.resume(view);
|
|
71
84
|
}
|
|
72
85
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Component","RNKlarnaCheckoutView","Commands","RNKlarnaCheckoutViewCommands","KlarnaCheckoutView","constructor","props","state","nativeViewHeight","checkoutViewRef","createRef","render","createElement","ref","style","width","height","flexShrink","returnUrl","onEvent","event","_this$props$onEvent","_this$props","params","JSON","parse","nativeEvent","productEvent","e","console","error","action","call","onError","_this$props$onError","_this$props2","mobileSdkError","isFatal","message","name","onResized","newHeight","Number","log","setState","
|
|
1
|
+
{"version":3,"names":["React","Component","RNKlarnaCheckoutView","Commands","RNKlarnaCheckoutViewCommands","KlarnaCheckoutView","snippet","isCheckoutViewReady","constructor","props","state","nativeViewHeight","checkoutViewRef","createRef","render","createElement","ref","style","width","height","flexShrink","returnUrl","onEvent","event","_this$props$onEvent","_this$props","params","JSON","parse","nativeEvent","productEvent","e","console","error","action","call","onError","_this$props$onError","_this$props2","mobileSdkError","isFatal","message","name","onResized","newHeight","Number","log","setState","onCheckoutViewReady","setSnippet","view","current","suspend","resume"],"sourceRoot":"../../src","sources":["KlarnaCheckoutView.tsx"],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import RNKlarnaSignIn from './specs/NativeKlarnaSignIn';
|
|
2
|
+
// declare a class that receive the KlarnaSignInProps in the initializer and expose a method to sign in
|
|
3
|
+
export class KlarnaSignInSDK {
|
|
4
|
+
constructor(props, instanceId) {
|
|
5
|
+
this.environment = props.environment;
|
|
6
|
+
this.region = props.region;
|
|
7
|
+
this.returnUrl = props.returnUrl;
|
|
8
|
+
this.instanceId = instanceId;
|
|
9
|
+
}
|
|
10
|
+
static async createInstance(props) {
|
|
11
|
+
if (props.returnUrl.trim() === '') {
|
|
12
|
+
return new Promise((_, reject) => {
|
|
13
|
+
const sdkError = {
|
|
14
|
+
isFatal: true,
|
|
15
|
+
message: 'Invalid or null return URL',
|
|
16
|
+
name: 'KlarnaSignInMissingReturnUrl'
|
|
17
|
+
};
|
|
18
|
+
reject(sdkError);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return new Promise((resolve, reject) => {
|
|
22
|
+
let instanceId = Math.random().toString(36).substring(2, 15);
|
|
23
|
+
RNKlarnaSignIn.init(instanceId, props.environment, props.region, props.returnUrl).then(_ => {
|
|
24
|
+
resolve(new KlarnaSignInSDK(props, instanceId));
|
|
25
|
+
}).catch(error => {
|
|
26
|
+
const errorInfo = error.userInfo;
|
|
27
|
+
const sdkError = {
|
|
28
|
+
isFatal: errorInfo.isFatal,
|
|
29
|
+
message: errorInfo.message,
|
|
30
|
+
name: errorInfo.name,
|
|
31
|
+
sessionId: errorInfo.sessionId,
|
|
32
|
+
params: errorInfo.params
|
|
33
|
+
};
|
|
34
|
+
reject(sdkError);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
dispose() {
|
|
39
|
+
return RNKlarnaSignIn.dispose(this.instanceId);
|
|
40
|
+
}
|
|
41
|
+
signIn(clientId, scope, market, locale, tokenizationId) {
|
|
42
|
+
const scopes = scope.split(' ');
|
|
43
|
+
const tokenizationScopes = ['payment:customer_not_present', 'payment:customer_present'];
|
|
44
|
+
const isTokenizationScopeIncluded = tokenizationScopes.some(value => scopes.includes(value));
|
|
45
|
+
if (isTokenizationScopeIncluded && (!tokenizationId || tokenizationId.trim() === '')) {
|
|
46
|
+
return new Promise((_, reject) => {
|
|
47
|
+
const sdkError = {
|
|
48
|
+
isFatal: false,
|
|
49
|
+
message: `Found ${tokenizationScopes} in scope but tokenizationId is empty.`,
|
|
50
|
+
name: 'KlarnaSignInMissingTokenizationId'
|
|
51
|
+
};
|
|
52
|
+
reject(sdkError);
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
return new Promise((resolve, reject) => {
|
|
56
|
+
RNKlarnaSignIn.signIn(this.instanceId, clientId, scope, market, locale, tokenizationId).then(result => {
|
|
57
|
+
resolve(result);
|
|
58
|
+
}).catch(error => {
|
|
59
|
+
const errorInfo = error.userInfo;
|
|
60
|
+
const sdkError = {
|
|
61
|
+
isFatal: errorInfo.isFatal,
|
|
62
|
+
message: errorInfo.message,
|
|
63
|
+
name: errorInfo.name,
|
|
64
|
+
sessionId: errorInfo.sessionId,
|
|
65
|
+
params: errorInfo.params
|
|
66
|
+
};
|
|
67
|
+
reject(sdkError);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=KlarnaSignInSDK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["RNKlarnaSignIn","KlarnaSignInSDK","constructor","props","instanceId","environment","region","returnUrl","createInstance","trim","Promise","_","reject","sdkError","isFatal","message","name","resolve","Math","random","toString","substring","init","then","catch","error","errorInfo","userInfo","sessionId","params","dispose","signIn","clientId","scope","market","locale","tokenizationId","scopes","split","tokenizationScopes","isTokenizationScopeIncluded","some","value","includes","result"],"sourceRoot":"../../src","sources":["KlarnaSignInSDK.tsx"],"mappings":"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"}
|
package/lib/module/index.js
CHANGED
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,cAAc,qBAAqB;AACnC,cAAc,2BAA2B;AACzC,cAAc,sBAAsB"}
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,cAAc,qBAAqB;AACnC,cAAc,2BAA2B;AACzC,cAAc,sBAAsB;AACpC,cAAc,mBAAmB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["codegenNativeCommands","codegenNativeComponent","Commands","supportedCommands"],"sourceRoot":"../../../src","sources":["specs/KlarnaCheckoutViewNativeComponent.ts"],"mappings":"AAIA,OAAOA,qBAAqB,MAAM,wDAAwD;AAC1F,OAAOC,sBAAsB,MAAM,yDAAyD;
|
|
1
|
+
{"version":3,"names":["codegenNativeCommands","codegenNativeComponent","Commands","supportedCommands"],"sourceRoot":"../../../src","sources":["specs/KlarnaCheckoutViewNativeComponent.ts"],"mappings":"AAIA,OAAOA,qBAAqB,MAAM,wDAAwD;AAC1F,OAAOC,sBAAsB,MAAM,yDAAyD;AA8C5F,OAAO,MAAMC,QAA4C,GACvDF,qBAAqB,CAAqC;EACxDG,iBAAiB,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ;AACvD,CAAC,CAAC;AAEJ,eAAeF,sBAAsB,CACnC,sBACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["specs/NativeKlarnaSignIn.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;AAuBlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["KlarnaEnvironment"],"sourceRoot":"../../../../src","sources":["types/common/KlarnaEnvironment.ts"],"mappings":"AAAA,WAAYA,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["KlarnaRegion"],"sourceRoot":"../../../../src","sources":["types/common/KlarnaRegion.ts"],"mappings":"AAAA,WAAYA,YAAY,0BAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA"}
|
|
@@ -14,6 +14,8 @@ interface KlarnaCheckoutViewState {
|
|
|
14
14
|
}
|
|
15
15
|
export declare class KlarnaCheckoutView extends Component<KlarnaCheckoutViewProps, KlarnaCheckoutViewState> {
|
|
16
16
|
checkoutViewRef: RefObject<Component<RNKlarnaCheckoutViewProps> & Readonly<NativeMethods>>;
|
|
17
|
+
private snippet;
|
|
18
|
+
private isCheckoutViewReady;
|
|
17
19
|
constructor(props: KlarnaCheckoutViewProps);
|
|
18
20
|
render(): React.JSX.Element;
|
|
19
21
|
setSnippet: (snippet: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KlarnaCheckoutView.d.ts","sourceRoot":"","sources":["../../src/KlarnaCheckoutView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EACV,aAAa,EAEb,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAA6B,EAE3B,KAAK,yBAAyB,EAC/B,MAAM,2CAA2C,CAAC;AAEnD,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACpE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAC1D;AAED,UAAU,uBAAuB;IAC/B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,kBAAmB,SAAQ,SAAS,CAC/C,uBAAuB,EACvB,uBAAuB,CACxB;IACC,eAAe,EAAE,SAAS,CACxB,SAAS,CAAC,yBAAyB,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAC/D,CAAC;
|
|
1
|
+
{"version":3,"file":"KlarnaCheckoutView.d.ts","sourceRoot":"","sources":["../../src/KlarnaCheckoutView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EACV,aAAa,EAEb,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAA6B,EAE3B,KAAK,yBAAyB,EAC/B,MAAM,2CAA2C,CAAC;AAEnD,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACpE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAC1D;AAED,UAAU,uBAAuB;IAC/B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,kBAAmB,SAAQ,SAAS,CAC/C,uBAAuB,EACvB,uBAAuB,CACxB;IACC,eAAe,EAAE,SAAS,CACxB,SAAS,CAAC,yBAAyB,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAC/D,CAAC;IACF,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,mBAAmB,CAAS;gBAExB,KAAK,EAAE,uBAAuB;IAS1C,MAAM;IA6EN,UAAU,YAAa,MAAM,UAM3B;IAEF,OAAO,aAKL;IAEF,MAAM,aAKJ;CACH;AAED,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { KlarnaEnvironment } from './types/common/KlarnaEnvironment';
|
|
2
|
+
import type { KlarnaProductEvent } from './types/common/KlarnaProductEvent';
|
|
3
|
+
import type { KlarnaRegion } from './types/common/KlarnaRegion';
|
|
4
|
+
export interface KlarnaSignInProps {
|
|
5
|
+
readonly environment: KlarnaEnvironment;
|
|
6
|
+
readonly region: KlarnaRegion;
|
|
7
|
+
readonly returnUrl: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class KlarnaSignInSDK {
|
|
10
|
+
readonly environment: KlarnaEnvironment;
|
|
11
|
+
readonly region: KlarnaRegion;
|
|
12
|
+
readonly returnUrl: string;
|
|
13
|
+
readonly instanceId: string;
|
|
14
|
+
private constructor();
|
|
15
|
+
static createInstance(props: KlarnaSignInProps): Promise<KlarnaSignInSDK>;
|
|
16
|
+
dispose(): Promise<void>;
|
|
17
|
+
signIn(clientId: string, scope: string, market: string, locale: string, tokenizationId?: string): Promise<KlarnaProductEvent>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=KlarnaSignInSDK.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KlarnaSignInSDK.d.ts","sourceRoot":"","sources":["../../src/KlarnaSignInSDK.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAGD,qBAAa,eAAe;IAC1B,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,OAAO;WAOM,cAAc,CACzB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,eAAe,CAAC;IAoC3B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,MAAM,CACJ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,kBAAkB,CAAC;CA+C/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC"}
|
|
@@ -20,6 +20,7 @@ export interface RNKlarnaCheckoutViewProps extends ViewProps {
|
|
|
20
20
|
readonly onResized: DirectEventHandler<Readonly<{
|
|
21
21
|
readonly height: string;
|
|
22
22
|
}>>;
|
|
23
|
+
readonly onCheckoutViewReady?: DirectEventHandler<{}>;
|
|
23
24
|
}
|
|
24
25
|
type KlarnaCheckoutViewNativeComponentType = HostComponent<RNKlarnaCheckoutViewProps>;
|
|
25
26
|
interface RNKlarnaCheckoutViewNativeCommands {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KlarnaCheckoutViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/specs/KlarnaCheckoutViewNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sDAAsD,CAAC;AACtF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,WAAW,yBAA0B,SAAQ,SAAS;IAC1D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAClC,QAAQ,CAAC;QACP,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;YAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;YACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;SACzB,CAAC,CAAC;KACJ,CAAC,CACH,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAClC,QAAQ,CAAC;QACP,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;YACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;YAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;YACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;SACvB,CAAC,CAAC;KACJ,CAAC,CACH,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CACpC,QAAQ,CAAC;QAEP,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC,CACH,CAAC;
|
|
1
|
+
{"version":3,"file":"KlarnaCheckoutViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/specs/KlarnaCheckoutViewNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sDAAsD,CAAC;AACtF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,WAAW,yBAA0B,SAAQ,SAAS;IAC1D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAClC,QAAQ,CAAC;QACP,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;YAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;YACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;SACzB,CAAC,CAAC;KACJ,CAAC,CACH,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAClC,QAAQ,CAAC;QACP,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;YACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;YAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;YACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;SACvB,CAAC,CAAC;KACJ,CAAC,CACH,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CACpC,QAAQ,CAAC;QAEP,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,CAAC,CACH,CAAC;IACF,QAAQ,CAAC,mBAAmB,CAAC,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC;CACvD;AAED,KAAK,qCAAqC,GACxC,aAAa,CAAC,yBAAyB,CAAC,CAAC;AAE3C,UAAU,kCAAkC;IAC1C,UAAU,EAAE,CACV,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,qCAAqC,CAAC,EAChE,OAAO,EAAE,MAAM,KACZ,IAAI,CAAC;IACV,OAAO,EAAE,CACP,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,qCAAqC,CAAC,KAC7D,IAAI,CAAC;IACV,MAAM,EAAE,CACN,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,qCAAqC,CAAC,KAC7D,IAAI,CAAC;CACX;AAED,eAAO,MAAM,QAAQ,EAAE,kCAGnB,CAAC;;AAEL,wBAE2C"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TurboModule } from 'react-native';
|
|
2
|
+
import type { KlarnaProductEvent } from 'src/types/common/KlarnaProductEvent';
|
|
3
|
+
export interface Spec extends TurboModule {
|
|
4
|
+
init(instanceId: string, environment: string, region: string, returnUrl: string): Promise<void>;
|
|
5
|
+
dispose(instanceId: string): Promise<void>;
|
|
6
|
+
signIn(instanceId: string, clientId: string, scope: string, market: string, locale: string, tokenizationId?: string): Promise<KlarnaProductEvent>;
|
|
7
|
+
}
|
|
8
|
+
declare const _default: Spec;
|
|
9
|
+
export default _default;
|
|
10
|
+
//# sourceMappingURL=NativeKlarnaSignIn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeKlarnaSignIn.d.ts","sourceRoot":"","sources":["../../../src/specs/NativeKlarnaSignIn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,IAAI,CACF,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3C,MAAM,CACJ,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAChC;;AAED,wBAAwE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KlarnaEnvironment.d.ts","sourceRoot":"","sources":["../../../../src/types/common/KlarnaEnvironment.ts"],"names":[],"mappings":"AAAA,oBAAY,iBAAiB;IAC3B,UAAU,eAAe;IACzB,UAAU,eAAe;CAC1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KlarnaMobileSDKError.d.ts","sourceRoot":"","sources":["../../../../src/types/common/KlarnaMobileSDKError.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"KlarnaMobileSDKError.d.ts","sourceRoot":"","sources":["../../../../src/types/common/KlarnaMobileSDKError.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;CAC1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KlarnaProductEvent.d.ts","sourceRoot":"","sources":["../../../../src/types/common/KlarnaProductEvent.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"KlarnaProductEvent.d.ts","sourceRoot":"","sources":["../../../../src/types/common/KlarnaProductEvent.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KlarnaRegion.d.ts","sourceRoot":"","sources":["../../../../src/types/common/KlarnaRegion.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY;IACtB,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;CACV"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-klarna-inapp-sdk",
|
|
3
3
|
"title": "Klarna Mobile SDK React Native",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.4.1",
|
|
5
5
|
"description": "This library wraps Klarna Mobile SDK and exposes its functionality as React Native components.",
|
|
6
6
|
"main": "lib/commonjs/index",
|
|
7
7
|
"module": "lib/module/index",
|
|
@@ -29,6 +29,8 @@ export class KlarnaCheckoutView extends Component<
|
|
|
29
29
|
checkoutViewRef: RefObject<
|
|
30
30
|
Component<RNKlarnaCheckoutViewProps> & Readonly<NativeMethods>
|
|
31
31
|
>;
|
|
32
|
+
private snippet: string | null = null;
|
|
33
|
+
private isCheckoutViewReady = false;
|
|
32
34
|
|
|
33
35
|
constructor(props: KlarnaCheckoutViewProps) {
|
|
34
36
|
super(props);
|
|
@@ -36,6 +38,7 @@ export class KlarnaCheckoutView extends Component<
|
|
|
36
38
|
nativeViewHeight: 0,
|
|
37
39
|
};
|
|
38
40
|
this.checkoutViewRef = React.createRef();
|
|
41
|
+
this.isCheckoutViewReady = false;
|
|
39
42
|
}
|
|
40
43
|
|
|
41
44
|
render() {
|
|
@@ -102,27 +105,37 @@ export class KlarnaCheckoutView extends Component<
|
|
|
102
105
|
this.setState({ nativeViewHeight: newHeight });
|
|
103
106
|
}
|
|
104
107
|
}}
|
|
108
|
+
onCheckoutViewReady={() => {
|
|
109
|
+
this.isCheckoutViewReady = true;
|
|
110
|
+
console.log('onCheckoutViewReady');
|
|
111
|
+
if (this.snippet) {
|
|
112
|
+
console.log('Setting the snippet...');
|
|
113
|
+
this.setSnippet(this.snippet);
|
|
114
|
+
this.snippet = null;
|
|
115
|
+
}
|
|
116
|
+
}}
|
|
105
117
|
/>
|
|
106
118
|
);
|
|
107
119
|
}
|
|
108
120
|
|
|
109
121
|
setSnippet = (snippet: string) => {
|
|
122
|
+
this.snippet = snippet;
|
|
110
123
|
const view = this.checkoutViewRef.current;
|
|
111
|
-
if (view != null) {
|
|
124
|
+
if (view != null && this.isCheckoutViewReady) {
|
|
112
125
|
RNKlarnaCheckoutViewCommands.setSnippet(view, snippet);
|
|
113
126
|
}
|
|
114
127
|
};
|
|
115
128
|
|
|
116
129
|
suspend = () => {
|
|
117
130
|
const view = this.checkoutViewRef.current;
|
|
118
|
-
if (view != null) {
|
|
131
|
+
if (view != null && this.isCheckoutViewReady) {
|
|
119
132
|
RNKlarnaCheckoutViewCommands.suspend(view);
|
|
120
133
|
}
|
|
121
134
|
};
|
|
122
135
|
|
|
123
136
|
resume = () => {
|
|
124
137
|
const view = this.checkoutViewRef.current;
|
|
125
|
-
if (view != null) {
|
|
138
|
+
if (view != null && this.isCheckoutViewReady) {
|
|
126
139
|
RNKlarnaCheckoutViewCommands.resume(view);
|
|
127
140
|
}
|
|
128
141
|
};
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import RNKlarnaSignIn from './specs/NativeKlarnaSignIn';
|
|
2
|
+
import type { KlarnaEnvironment } from './types/common/KlarnaEnvironment';
|
|
3
|
+
import type { KlarnaMobileSDKError } from './types/common/KlarnaMobileSDKError';
|
|
4
|
+
import type { KlarnaProductEvent } from './types/common/KlarnaProductEvent';
|
|
5
|
+
import type { KlarnaRegion } from './types/common/KlarnaRegion';
|
|
6
|
+
|
|
7
|
+
export interface KlarnaSignInProps {
|
|
8
|
+
readonly environment: KlarnaEnvironment;
|
|
9
|
+
readonly region: KlarnaRegion;
|
|
10
|
+
readonly returnUrl: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// declare a class that receive the KlarnaSignInProps in the initializer and expose a method to sign in
|
|
14
|
+
export class KlarnaSignInSDK {
|
|
15
|
+
readonly environment: KlarnaEnvironment;
|
|
16
|
+
readonly region: KlarnaRegion;
|
|
17
|
+
readonly returnUrl: string;
|
|
18
|
+
readonly instanceId: string;
|
|
19
|
+
|
|
20
|
+
private constructor(props: KlarnaSignInProps, instanceId: string) {
|
|
21
|
+
this.environment = props.environment;
|
|
22
|
+
this.region = props.region;
|
|
23
|
+
this.returnUrl = props.returnUrl;
|
|
24
|
+
this.instanceId = instanceId;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
static async createInstance(
|
|
28
|
+
props: KlarnaSignInProps
|
|
29
|
+
): Promise<KlarnaSignInSDK> {
|
|
30
|
+
if (props.returnUrl.trim() === '') {
|
|
31
|
+
return new Promise((_, reject) => {
|
|
32
|
+
const sdkError: KlarnaMobileSDKError = {
|
|
33
|
+
isFatal: true,
|
|
34
|
+
message: 'Invalid or null return URL',
|
|
35
|
+
name: 'KlarnaSignInMissingReturnUrl',
|
|
36
|
+
};
|
|
37
|
+
reject(sdkError);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return new Promise((resolve, reject) => {
|
|
41
|
+
let instanceId = Math.random().toString(36).substring(2, 15);
|
|
42
|
+
RNKlarnaSignIn.init(
|
|
43
|
+
instanceId,
|
|
44
|
+
props.environment,
|
|
45
|
+
props.region,
|
|
46
|
+
props.returnUrl
|
|
47
|
+
)
|
|
48
|
+
.then((_) => {
|
|
49
|
+
resolve(new KlarnaSignInSDK(props, instanceId));
|
|
50
|
+
})
|
|
51
|
+
.catch((error) => {
|
|
52
|
+
const errorInfo = error.userInfo;
|
|
53
|
+
const sdkError: KlarnaMobileSDKError = {
|
|
54
|
+
isFatal: errorInfo.isFatal,
|
|
55
|
+
message: errorInfo.message,
|
|
56
|
+
name: errorInfo.name,
|
|
57
|
+
sessionId: errorInfo.sessionId,
|
|
58
|
+
params: errorInfo.params,
|
|
59
|
+
};
|
|
60
|
+
reject(sdkError);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
dispose(): Promise<void> {
|
|
66
|
+
return RNKlarnaSignIn.dispose(this.instanceId);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
signIn(
|
|
70
|
+
clientId: string,
|
|
71
|
+
scope: string,
|
|
72
|
+
market: string,
|
|
73
|
+
locale: string,
|
|
74
|
+
tokenizationId?: string
|
|
75
|
+
): Promise<KlarnaProductEvent> {
|
|
76
|
+
const scopes = scope.split(' ');
|
|
77
|
+
const tokenizationScopes = [
|
|
78
|
+
'payment:customer_not_present',
|
|
79
|
+
'payment:customer_present',
|
|
80
|
+
];
|
|
81
|
+
const isTokenizationScopeIncluded = tokenizationScopes.some((value) =>
|
|
82
|
+
scopes.includes(value)
|
|
83
|
+
);
|
|
84
|
+
if (
|
|
85
|
+
isTokenizationScopeIncluded &&
|
|
86
|
+
(!tokenizationId || tokenizationId.trim() === '')
|
|
87
|
+
) {
|
|
88
|
+
return new Promise((_, reject) => {
|
|
89
|
+
const sdkError: KlarnaMobileSDKError = {
|
|
90
|
+
isFatal: false,
|
|
91
|
+
message: `Found ${tokenizationScopes} in scope but tokenizationId is empty.`,
|
|
92
|
+
name: 'KlarnaSignInMissingTokenizationId',
|
|
93
|
+
};
|
|
94
|
+
reject(sdkError);
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
return new Promise((resolve, reject) => {
|
|
98
|
+
RNKlarnaSignIn.signIn(
|
|
99
|
+
this.instanceId,
|
|
100
|
+
clientId,
|
|
101
|
+
scope,
|
|
102
|
+
market,
|
|
103
|
+
locale,
|
|
104
|
+
tokenizationId
|
|
105
|
+
)
|
|
106
|
+
.then((result) => {
|
|
107
|
+
resolve(result);
|
|
108
|
+
})
|
|
109
|
+
.catch((error) => {
|
|
110
|
+
const errorInfo = error.userInfo;
|
|
111
|
+
const sdkError: KlarnaMobileSDKError = {
|
|
112
|
+
isFatal: errorInfo.isFatal,
|
|
113
|
+
message: errorInfo.message,
|
|
114
|
+
name: errorInfo.name,
|
|
115
|
+
sessionId: errorInfo.sessionId,
|
|
116
|
+
params: errorInfo.params,
|
|
117
|
+
};
|
|
118
|
+
reject(sdkError);
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
}
|
package/src/index.tsx
CHANGED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { TurboModule } from 'react-native';
|
|
2
|
+
import { TurboModuleRegistry } from 'react-native';
|
|
3
|
+
import type { KlarnaProductEvent } from 'src/types/common/KlarnaProductEvent';
|
|
4
|
+
|
|
5
|
+
export interface Spec extends TurboModule {
|
|
6
|
+
init(
|
|
7
|
+
instanceId: string,
|
|
8
|
+
environment: string,
|
|
9
|
+
region: string,
|
|
10
|
+
returnUrl: string
|
|
11
|
+
): Promise<void>;
|
|
12
|
+
|
|
13
|
+
dispose(instanceId: string): Promise<void>;
|
|
14
|
+
|
|
15
|
+
signIn(
|
|
16
|
+
instanceId: string,
|
|
17
|
+
clientId: string,
|
|
18
|
+
scope: string,
|
|
19
|
+
market: string,
|
|
20
|
+
locale: string,
|
|
21
|
+
tokenizationId?: string
|
|
22
|
+
): Promise<KlarnaProductEvent>;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export default TurboModuleRegistry.getEnforcing<Spec>('RNKlarnaSignIn');
|