react-native-klarna-inapp-sdk 2.2.5 → 2.3.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.
Files changed (70) hide show
  1. package/README.md +3 -2
  2. package/android/build.gradle +10 -10
  3. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/KlarnaMobileSDKPackage.java +3 -1
  4. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/checkout/KlarnaCheckoutViewEventHandler.java +32 -0
  5. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/checkout/KlarnaCheckoutViewEventSender.java +56 -0
  6. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/checkout/KlarnaCheckoutViewManager.java +147 -0
  7. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/common/WebViewResizeObserver.java +59 -19
  8. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/common/event/ComponentEvent.java +37 -0
  9. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/common/event/ComponentEventSender.java +78 -0
  10. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/common/event/KlarnaEventHandlerEventsUtil.java +53 -0
  11. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/common/ui/ResizeObserverWrapperView.java +79 -0
  12. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/common/ui/WrapperView.java +32 -0
  13. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/common/{ArgumentsUtil.java → util/ArgumentsUtil.java} +1 -1
  14. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/common/util/ParserUtil.java +36 -0
  15. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/payments/KlarnaPaymentViewManager.java +1 -1
  16. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/payments/PaymentViewWrapper.java +1 -1
  17. package/android/src/main/java/com/klarna/mobile/sdk/reactnative/standalonewebview/KlarnaStandaloneWebViewEventSender.java +1 -1
  18. package/android/src/newarch/java/com/klarna/mobile/sdk/reactnative/spec/RNKlarnaCheckoutViewSpec.java +31 -0
  19. package/android/src/oldarch/java/com/klarna/mobile/sdk/reactnative/spec/RNKlarnaCheckoutViewSpec.java +20 -0
  20. package/android/src/test/java/com/klarna/mobile/sdk/reactnative/KlarnaMobileSDKPackageTest.java +3 -1
  21. package/android/src/test/java/com/klarna/mobile/sdk/reactnative/common/event/ComponentEventSenderTest.java +85 -0
  22. package/android/src/test/java/com/klarna/mobile/sdk/reactnative/common/event/ComponentEventTest.java +73 -0
  23. package/android/src/test/java/com/klarna/mobile/sdk/reactnative/common/event/KlarnaEventHandlerEventsUtilTest.java +61 -0
  24. package/ios/RNKlarnaMobileSDK.xcodeproj/project.pbxproj +32 -0
  25. package/ios/Sources/KlarnaCheckoutViewManager.h +5 -0
  26. package/ios/Sources/KlarnaCheckoutViewManager.mm +65 -0
  27. package/ios/Sources/common/RNMobileSDKUtils.h +6 -0
  28. package/ios/Sources/common/RNMobileSDKUtils.mm +22 -0
  29. package/ios/Sources/view/newarch/KlarnaCheckoutViewWrapper.h +26 -0
  30. package/ios/Sources/view/newarch/KlarnaCheckoutViewWrapper.mm +153 -0
  31. package/ios/Sources/view/newarch/KlarnaStandaloneWebViewWrapper.mm +22 -1
  32. package/ios/Sources/view/oldarch/KlarnaCheckoutViewWrapper.h +37 -0
  33. package/ios/Sources/view/oldarch/KlarnaCheckoutViewWrapper.mm +116 -0
  34. package/ios/Sources/view/oldarch/KlarnaStandaloneWebViewWrapper.mm +22 -1
  35. package/lib/commonjs/KlarnaCheckoutView.js +84 -0
  36. package/lib/commonjs/KlarnaCheckoutView.js.map +1 -0
  37. package/lib/commonjs/index.js +11 -0
  38. package/lib/commonjs/index.js.map +1 -1
  39. package/lib/commonjs/specs/KlarnaCheckoutViewNativeComponent.js +16 -0
  40. package/lib/commonjs/specs/KlarnaCheckoutViewNativeComponent.js.map +1 -0
  41. package/lib/commonjs/types/common/KlarnaMobileSDKError.js +2 -0
  42. package/lib/commonjs/types/common/KlarnaMobileSDKError.js.map +1 -0
  43. package/lib/commonjs/types/common/KlarnaProductEvent.js +2 -0
  44. package/lib/commonjs/types/common/KlarnaProductEvent.js.map +1 -0
  45. package/lib/module/KlarnaCheckoutView.js +74 -0
  46. package/lib/module/KlarnaCheckoutView.js.map +1 -0
  47. package/lib/module/index.js +1 -0
  48. package/lib/module/index.js.map +1 -1
  49. package/lib/module/specs/KlarnaCheckoutViewNativeComponent.js +7 -0
  50. package/lib/module/specs/KlarnaCheckoutViewNativeComponent.js.map +1 -0
  51. package/lib/module/types/common/KlarnaMobileSDKError.js +2 -0
  52. package/lib/module/types/common/KlarnaMobileSDKError.js.map +1 -0
  53. package/lib/module/types/common/KlarnaProductEvent.js +2 -0
  54. package/lib/module/types/common/KlarnaProductEvent.js.map +1 -0
  55. package/lib/typescript/KlarnaCheckoutView.d.ts +24 -0
  56. package/lib/typescript/KlarnaCheckoutView.d.ts.map +1 -0
  57. package/lib/typescript/index.d.ts +1 -0
  58. package/lib/typescript/index.d.ts.map +1 -1
  59. package/lib/typescript/specs/KlarnaCheckoutViewNativeComponent.d.ts +33 -0
  60. package/lib/typescript/specs/KlarnaCheckoutViewNativeComponent.d.ts.map +1 -0
  61. package/lib/typescript/types/common/KlarnaMobileSDKError.d.ts +6 -0
  62. package/lib/typescript/types/common/KlarnaMobileSDKError.d.ts.map +1 -0
  63. package/lib/typescript/types/common/KlarnaProductEvent.d.ts +7 -0
  64. package/lib/typescript/types/common/KlarnaProductEvent.d.ts.map +1 -0
  65. package/package.json +2 -2
  66. package/src/KlarnaCheckoutView.tsx +130 -0
  67. package/src/index.tsx +1 -0
  68. package/src/specs/KlarnaCheckoutViewNativeComponent.ts +58 -0
  69. package/src/types/common/KlarnaMobileSDKError.ts +5 -0
  70. package/src/types/common/KlarnaProductEvent.ts +4 -0
@@ -0,0 +1,153 @@
1
+ #if RCT_NEW_ARCH_ENABLED
2
+
3
+ #import "KlarnaCheckoutViewWrapper.h"
4
+ #import "../../common/RNMobileSDKUtils.h"
5
+
6
+ #import <AVFoundation/AVFoundation.h>
7
+ #import <KlarnaMobileSDK/KlarnaMobileSDK-Swift.h>
8
+ #import <React/RCTLog.h>
9
+
10
+ #import <react/renderer/components/RNKlarnaMobileSDK/ComponentDescriptors.h>
11
+ #import <react/renderer/components/RNKlarnaMobileSDK/EventEmitters.h>
12
+ #import <react/renderer/components/RNKlarnaMobileSDK/Props.h>
13
+ #import <react/renderer/components/RNKlarnaMobileSDK/RCTComponentViewHelpers.h>
14
+
15
+ #import "RCTFabricComponentsPlugins.h"
16
+
17
+ using namespace facebook::react;
18
+
19
+ @interface KlarnaCheckoutViewWrapper () <KlarnaEventHandler, KlarnaSizingDelegate, RCTRNKlarnaCheckoutViewViewProtocol>
20
+
21
+ @property (nonatomic, strong) KlarnaCheckoutView* actualCheckoutView;
22
+
23
+ @end
24
+
25
+ @implementation KlarnaCheckoutViewWrapper
26
+
27
+ #pragma mark - RN Klarna Checout View
28
+
29
+ - (instancetype)initWithFrame:(CGRect)frame
30
+ {
31
+ self = [super initWithFrame:frame];
32
+ if (self) {
33
+ static const auto defaultProps = std::make_shared<const RNKlarnaCheckoutViewProps>();
34
+ _props = defaultProps;
35
+ }
36
+
37
+ return self;
38
+ }
39
+
40
+ + (ComponentDescriptorProvider)componentDescriptorProvider
41
+ {
42
+ return concreteComponentDescriptorProvider<RNKlarnaCheckoutViewComponentDescriptor>();
43
+ }
44
+
45
+ Class<RCTComponentViewProtocol> RNKlarnaCheckoutViewCls(void)
46
+ {
47
+ return KlarnaCheckoutViewWrapper.class;
48
+ }
49
+
50
+ - (void)handleCommand:(const NSString *)commandName args:(const NSArray *)args {
51
+ RCTRNKlarnaCheckoutViewHandleCommand(self, commandName, args);
52
+ }
53
+
54
+ #pragma mark - RN Klarna Checout View Props
55
+
56
+ - (void)updateProps:(const facebook::react::Props::Shared &)props oldProps:(const facebook::react::Props::Shared &)oldProps {
57
+ const auto &oldViewProps = *std::static_pointer_cast<RNKlarnaCheckoutViewProps const>(_props);
58
+ const auto &newViewProps = *std::static_pointer_cast<RNKlarnaCheckoutViewProps const>(props);
59
+
60
+ if (oldViewProps.returnUrl != newViewProps.returnUrl) {
61
+ NSString * newReturnUrl = [[NSString alloc] initWithUTF8String: newViewProps.returnUrl.c_str()];
62
+ if (self.actualCheckoutView != nil) {
63
+ self.actualCheckoutView.returnURL = [NSURL URLWithString:newReturnUrl];
64
+ } else {
65
+ [self initializeActualCheckoutView:newReturnUrl];
66
+ }
67
+ }
68
+
69
+ [super updateProps:props oldProps:oldProps];
70
+ }
71
+
72
+
73
+ #pragma mark - RN Klarna Checout View Methods
74
+
75
+ - (void)initializeActualCheckoutView:(NSString*)returnUrl {
76
+ self.actualCheckoutView = [[KlarnaCheckoutView alloc] initWithReturnURL:[NSURL URLWithString:returnUrl] eventHandler:self];
77
+ self.actualCheckoutView.sizingDelegate = self;
78
+
79
+ self.actualCheckoutView.translatesAutoresizingMaskIntoConstraints = NO;
80
+
81
+ [self addSubview:self.actualCheckoutView];
82
+
83
+ [NSLayoutConstraint activateConstraints:[[NSArray alloc] initWithObjects:
84
+ [self.actualCheckoutView.topAnchor constraintEqualToAnchor:self.topAnchor],
85
+ [self.actualCheckoutView.bottomAnchor constraintEqualToAnchor:self.bottomAnchor],
86
+ [self.actualCheckoutView.leadingAnchor constraintEqualToAnchor:self.leadingAnchor],
87
+ [self.actualCheckoutView.trailingAnchor constraintEqualToAnchor:self.trailingAnchor], nil
88
+ ]];
89
+ }
90
+
91
+ - (void)setSnippet:(NSString *)snippet {
92
+ [self.actualCheckoutView setSnippet:snippet];
93
+ }
94
+
95
+ - (void)suspend {
96
+ [self.actualCheckoutView suspend];
97
+ }
98
+
99
+ - (void)resume {
100
+ [self.actualCheckoutView resume];
101
+ }
102
+
103
+ #pragma mark - KlarnaEventHandler
104
+
105
+ - (void)klarnaComponent:(id<KlarnaComponent>)klarnaComponent dispatchedEvent:(KlarnaProductEvent *)event {
106
+ if (_eventEmitter) {
107
+ RCTLogInfo(@"Sending onEvent event");
108
+ NSString *serializedParams = [SerializationUtil serializeDictionaryToJsonString:[event getParams]];
109
+ std::dynamic_pointer_cast<const RNKlarnaCheckoutViewEventEmitter>(_eventEmitter)
110
+ ->onEvent(RNKlarnaCheckoutViewEventEmitter::OnEvent{
111
+ .productEvent = {
112
+ .action = std::string([event.action UTF8String]),
113
+ .params = std::string([serializedParams UTF8String]),
114
+ }
115
+ });
116
+ } else {
117
+ RCTLogInfo(@"_eventEmitter is nil!");
118
+ }
119
+ }
120
+
121
+ - (void)klarnaComponent:(id<KlarnaComponent>)klarnaComponent encounteredError:(KlarnaError *)error {
122
+ if (_eventEmitter) {
123
+ RCTLogInfo(@"Sending onEvent event");
124
+ std::dynamic_pointer_cast<const RNKlarnaCheckoutViewEventEmitter>(_eventEmitter)
125
+ ->onError(RNKlarnaCheckoutViewEventEmitter::OnError{
126
+ .error = {
127
+ .name = std::string([error.name UTF8String]),
128
+ .message = std::string([error.message UTF8String]),
129
+ .isFatal = error.isFatal,
130
+ }
131
+ });
132
+ } else {
133
+ RCTLogInfo(@"_eventEmitter is nil!");
134
+ }
135
+ }
136
+
137
+ #pragma mark - KlarnaSizingDelegate
138
+
139
+ - (void)klarnaComponent:(id<KlarnaComponent>)klarnaComponent resizedToHeight:(CGFloat)height {
140
+ if (_eventEmitter) {
141
+ RCTLogInfo(@"Sending onResized event");
142
+ std::dynamic_pointer_cast<const RNKlarnaCheckoutViewEventEmitter>(_eventEmitter)
143
+ ->onResized(RNKlarnaCheckoutViewEventEmitter::OnResized{
144
+ .height = std::string([[[NSNumber numberWithFloat:height] stringValue] UTF8String]),
145
+ });
146
+ } else {
147
+ RCTLogInfo(@"_eventEmitter is nil!");
148
+ }
149
+ }
150
+
151
+ @end
152
+
153
+ #endif
@@ -37,7 +37,11 @@ NSString *const PROPERTY_NAME_ESTIMATED_PROGRESS = @"estimatedProgress";
37
37
  }
38
38
 
39
39
  -(void)dealloc {
40
- [self.klarnaStandaloneWebView removeObserver:self forKeyPath:PROPERTY_NAME_ESTIMATED_PROGRESS context:nil];
40
+ @try {
41
+ [self.klarnaStandaloneWebView removeObserver:self forKeyPath:PROPERTY_NAME_ESTIMATED_PROGRESS context:nil];
42
+ } @catch(NSException *exception) {
43
+ RCTLog(@"Could not remove the progress observer: %@", exception);
44
+ }
41
45
  }
42
46
 
43
47
  - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
@@ -80,6 +84,7 @@ NSString *const PROPERTY_NAME_ESTIMATED_PROGRESS = @"estimatedProgress";
80
84
  self.klarnaStandaloneWebView.translatesAutoresizingMaskIntoConstraints = NO;
81
85
 
82
86
  [self addSubview:self.klarnaStandaloneWebView];
87
+ [self setWebViewBackgroundToTransparent];
83
88
 
84
89
  [NSLayoutConstraint activateConstraints:[[NSArray alloc] initWithObjects:
85
90
  [self.klarnaStandaloneWebView.topAnchor constraintEqualToAnchor:self.topAnchor],
@@ -89,6 +94,17 @@ NSString *const PROPERTY_NAME_ESTIMATED_PROGRESS = @"estimatedProgress";
89
94
  ]];
90
95
  }
91
96
 
97
+ - (void)setWebViewBackgroundToTransparent {
98
+ for (UIView *subview in self.klarnaStandaloneWebView.subviews) {
99
+ if ([subview isKindOfClass:[WKWebView class]]) {
100
+ WKWebView *webView = (WKWebView *) subview;
101
+ webView.backgroundColor = [UIColor clearColor];
102
+ webView.opaque = NO;
103
+ webView.scrollView.backgroundColor = [UIColor clearColor];
104
+ }
105
+ }
106
+ }
107
+
92
108
  - (void)layoutSubviews {
93
109
  [super layoutSubviews];
94
110
  self.klarnaStandaloneWebView.frame = self.bounds;
@@ -262,6 +278,11 @@ Class<RCTComponentViewProtocol>RNKlarnaStandaloneWebViewCls(void)
262
278
  }
263
279
 
264
280
  - (NSString *)serializeDictionaryToJsonString:(NSDictionary<NSString *, id<NSCoding>> *)dictionary {
281
+ if (!dictionary) {
282
+ RCTLog(@"Dictionary is nil");
283
+ return @"{}";
284
+ }
285
+
265
286
  NSError *error;
266
287
  NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionary options:NSJSONWritingPrettyPrinted error:&error];
267
288
 
@@ -0,0 +1,37 @@
1
+ #if !RCT_NEW_ARCH_ENABLED
2
+
3
+ #import <React/RCTUIManager.h>
4
+
5
+ #import <AVFoundation/AVFoundation.h>
6
+ #import <UIKit/UIKit.h>
7
+ #import <React/RCTView.h>
8
+ #import <React/RCTUIManager.h>
9
+
10
+ NS_ASSUME_NONNULL_BEGIN
11
+
12
+ @interface KlarnaCheckoutViewWrapper : UIView
13
+
14
+ @property (nonatomic, copy) RCTDirectEventBlock onEvent;
15
+ @property (nonatomic, copy) RCTDirectEventBlock onError;
16
+ @property (nonatomic, copy) RCTDirectEventBlock onResized;
17
+
18
+ @property (nonatomic, strong) NSString* returnUrl;
19
+
20
+ #pragma mark - React Native Overrides
21
+ - (void) setReturnUrl:(NSString * _Nonnull)returnUrl;
22
+ - (void) evaluateProps;
23
+ - (void) initializeActualCheckoutView;
24
+
25
+ @property (nonatomic, weak) RCTUIManager* uiManager;
26
+
27
+ - (void)setSnippet:(NSString*)snippet;
28
+
29
+ - (void)suspend;
30
+
31
+ - (void)resume;
32
+
33
+ @end
34
+
35
+ NS_ASSUME_NONNULL_END
36
+
37
+ #endif
@@ -0,0 +1,116 @@
1
+ #if !RCT_NEW_ARCH_ENABLED
2
+
3
+ #import "KlarnaCheckoutViewWrapper.h"
4
+ #import "../../common/RNMobileSDKUtils.h"
5
+
6
+ #import <KlarnaMobileSDK/KlarnaMobileSDK-Swift.h>
7
+ #import <React/RCTLog.h>
8
+
9
+ @interface KlarnaCheckoutViewWrapper () <KlarnaEventHandler, KlarnaSizingDelegate>
10
+
11
+ @property (nonatomic, strong) KlarnaCheckoutView* actualCheckoutView;
12
+
13
+ @end
14
+
15
+ @implementation KlarnaCheckoutViewWrapper
16
+
17
+ #pragma mark - React Native Overrides
18
+
19
+ - (void) setReturnUrl:(NSString *)returnUrl {
20
+ _returnUrl = returnUrl;
21
+ if (returnUrl.length > 0) {
22
+ self.actualCheckoutView.returnURL = [NSURL URLWithString:self.returnUrl];
23
+ }
24
+ [self evaluateProps];
25
+ }
26
+
27
+ - (void) evaluateProps {
28
+ [self initializeActualCheckoutView];
29
+ }
30
+
31
+ - (void) initializeActualCheckoutView {
32
+ self.actualCheckoutView = [[KlarnaCheckoutView alloc] initWithReturnURL:[NSURL URLWithString:self.returnUrl] eventHandler:self];
33
+ self.actualCheckoutView.sizingDelegate = self;
34
+
35
+ self.actualCheckoutView.translatesAutoresizingMaskIntoConstraints = NO;
36
+
37
+ [self addSubview:self.actualCheckoutView];
38
+
39
+ [NSLayoutConstraint activateConstraints:[[NSArray alloc] initWithObjects:
40
+ [self.actualCheckoutView.topAnchor constraintEqualToAnchor:self.topAnchor],
41
+ [self.actualCheckoutView.bottomAnchor constraintEqualToAnchor:self.bottomAnchor],
42
+ [self.actualCheckoutView.leadingAnchor constraintEqualToAnchor:self.leadingAnchor],
43
+ [self.actualCheckoutView.trailingAnchor constraintEqualToAnchor:self.trailingAnchor], nil
44
+ ]];
45
+ }
46
+
47
+ - (void)layoutSubviews {
48
+ [super layoutSubviews];
49
+ self.actualCheckoutView.frame = self.bounds;
50
+ [self.actualCheckoutView layoutSubviews];
51
+ }
52
+
53
+ #pragma mark - KlarnaCheckoutView Methods
54
+
55
+ - (void)setSnippet:(NSString *)snippet {
56
+ [self.actualCheckoutView setSnippet:snippet];
57
+ }
58
+
59
+ - (void)suspend {
60
+ [self.actualCheckoutView suspend];
61
+ }
62
+
63
+ - (void)resume {
64
+ [self.actualCheckoutView resume];
65
+ }
66
+
67
+
68
+ #pragma mark - KlarnaEventHandler
69
+
70
+ - (void)klarnaComponent:(id<KlarnaComponent>)klarnaComponent dispatchedEvent:(KlarnaProductEvent *)event {
71
+ if (!self.onEvent) {
72
+ RCTLog(@"Missing 'onEvent' callback prop.");
73
+ return;
74
+ }
75
+
76
+ NSString *serializedParams = [SerializationUtil serializeDictionaryToJsonString:[event getParams]];
77
+
78
+ self.onEvent(@{
79
+ @"productEvent": @{
80
+ @"action": event.action,
81
+ @"params": serializedParams,
82
+ }
83
+ });
84
+ }
85
+
86
+ - (void)klarnaComponent:(id<KlarnaComponent>)klarnaComponent encounteredError:(KlarnaError *)error {
87
+ if (!self.onError) {
88
+ RCTLog(@"Missing 'onError' callback prop.");
89
+ return;
90
+ }
91
+
92
+ self.onError(@{
93
+ @"error": @{
94
+ @"name": error.name,
95
+ @"message": error.message,
96
+ @"isFatal": [NSNumber numberWithBool:error.isFatal],
97
+ }
98
+ });
99
+ }
100
+
101
+ #pragma mark - KlarnaSizingDelegate
102
+
103
+ - (void)klarnaComponent:(id<KlarnaComponent>)klarnaComponent resizedToHeight:(CGFloat)height {
104
+ if (!self.onResized) {
105
+ RCTLog(@"Missing 'onResized' callback prop.");
106
+ return;
107
+ }
108
+
109
+ self.onResized(@{
110
+ @"height": [[NSNumber numberWithFloat:height] stringValue]
111
+ });
112
+ }
113
+
114
+ @end
115
+
116
+ #endif
@@ -26,7 +26,11 @@ NSString * const PROPERTY_NAME_ESTIMATED_PROGRESS = @"estimatedProgress";
26
26
  }
27
27
 
28
28
  -(void)dealloc {
29
- [self.klarnaStandaloneWebView removeObserver:self forKeyPath:PROPERTY_NAME_ESTIMATED_PROGRESS context:nil];
29
+ @try {
30
+ [self.klarnaStandaloneWebView removeObserver:self forKeyPath:PROPERTY_NAME_ESTIMATED_PROGRESS context:nil];
31
+ } @catch(NSException *exception) {
32
+ RCTLog(@"Could not remove the progress observer: %@", exception);
33
+ }
30
34
  }
31
35
 
32
36
  - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
@@ -75,6 +79,7 @@ NSString * const PROPERTY_NAME_ESTIMATED_PROGRESS = @"estimatedProgress";
75
79
  self.klarnaStandaloneWebView.translatesAutoresizingMaskIntoConstraints = NO;
76
80
 
77
81
  [self addSubview:self.klarnaStandaloneWebView];
82
+ [self setWebViewBackgroundToTransparent];
78
83
 
79
84
  [NSLayoutConstraint activateConstraints:[[NSArray alloc] initWithObjects:
80
85
  [self.klarnaStandaloneWebView.topAnchor constraintEqualToAnchor:self.topAnchor],
@@ -84,6 +89,17 @@ NSString * const PROPERTY_NAME_ESTIMATED_PROGRESS = @"estimatedProgress";
84
89
  ]];
85
90
  }
86
91
 
92
+ - (void)setWebViewBackgroundToTransparent {
93
+ for (UIView *subview in self.klarnaStandaloneWebView.subviews) {
94
+ if ([subview isKindOfClass:[WKWebView class]]) {
95
+ WKWebView *webView = (WKWebView *) subview;
96
+ webView.backgroundColor = [UIColor clearColor];
97
+ webView.opaque = NO;
98
+ webView.scrollView.backgroundColor = [UIColor clearColor];
99
+ }
100
+ }
101
+ }
102
+
87
103
  - (void)layoutSubviews {
88
104
  [super layoutSubviews];
89
105
  self.klarnaStandaloneWebView.frame = self.bounds;
@@ -182,6 +198,11 @@ NSString * const PROPERTY_NAME_ESTIMATED_PROGRESS = @"estimatedProgress";
182
198
  #pragma mark - Events
183
199
 
184
200
  - (NSString *)serializeDictionaryToJsonString:(NSDictionary<NSString *, id<NSCoding>> *)dictionary {
201
+ if (!dictionary) {
202
+ RCTLog(@"Dictionary is nil");
203
+ return @"{}";
204
+ }
205
+
185
206
  NSError *error;
186
207
  NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionary options:NSJSONWritingPrettyPrinted error:&error];
187
208
 
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.KlarnaCheckoutView = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _KlarnaCheckoutViewNativeComponent = _interopRequireWildcard(require("./specs/KlarnaCheckoutViewNativeComponent"));
9
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
11
+ class KlarnaCheckoutView extends _react.Component {
12
+ constructor(props) {
13
+ super(props);
14
+ this.state = {
15
+ nativeViewHeight: 0
16
+ };
17
+ this.checkoutViewRef = /*#__PURE__*/_react.default.createRef();
18
+ }
19
+ render() {
20
+ return /*#__PURE__*/_react.default.createElement(_KlarnaCheckoutViewNativeComponent.default, {
21
+ ref: this.checkoutViewRef
22
+ /* eslint-disable-next-line react-native/no-inline-styles */,
23
+ style: {
24
+ width: '100%',
25
+ height: this.state.nativeViewHeight
26
+ },
27
+ returnUrl: this.props.returnUrl || '',
28
+ onEvent: event => {
29
+ var _this$props$onEvent, _this$props;
30
+ let params = {};
31
+ try {
32
+ params = JSON.parse(event.nativeEvent.productEvent.params);
33
+ } catch (e) {
34
+ console.error('Failed to parse productEvent.params', e);
35
+ }
36
+ const productEvent = {
37
+ action: event.nativeEvent.productEvent.action,
38
+ params: params
39
+ };
40
+ (_this$props$onEvent = (_this$props = this.props).onEvent) === null || _this$props$onEvent === void 0 || _this$props$onEvent.call(_this$props, productEvent);
41
+ },
42
+ onError: event => {
43
+ var _this$props$onError, _this$props2;
44
+ const mobileSdkError = {
45
+ isFatal: event.nativeEvent.error.isFatal,
46
+ message: event.nativeEvent.error.message,
47
+ name: event.nativeEvent.error.name
48
+ };
49
+ (_this$props$onError = (_this$props2 = this.props).onError) === null || _this$props$onError === void 0 || _this$props$onError.call(_this$props2, mobileSdkError);
50
+ },
51
+ onResized: event => {
52
+ const newHeight = Number(event.nativeEvent.height);
53
+ if (newHeight !== this.state.nativeViewHeight) {
54
+ console.log('onResized', newHeight);
55
+ this.setState({
56
+ nativeViewHeight: newHeight
57
+ });
58
+ }
59
+ }
60
+ });
61
+ }
62
+ setSnippet = snippet => {
63
+ const view = this.checkoutViewRef.current;
64
+ if (view != null) {
65
+ _KlarnaCheckoutViewNativeComponent.RNKlarnaCheckoutViewCommands.setSnippet(view, snippet);
66
+ }
67
+ };
68
+ suspend = () => {
69
+ const view = this.checkoutViewRef.current;
70
+ if (view != null) {
71
+ _KlarnaCheckoutViewNativeComponent.RNKlarnaCheckoutViewCommands.suspend(view);
72
+ }
73
+ };
74
+ resume = () => {
75
+ const view = this.checkoutViewRef.current;
76
+ if (view != null) {
77
+ _KlarnaCheckoutViewNativeComponent.RNKlarnaCheckoutViewCommands.resume(view);
78
+ }
79
+ };
80
+ }
81
+ exports.KlarnaCheckoutView = KlarnaCheckoutView;
82
+ var _default = KlarnaCheckoutView;
83
+ exports.default = _default;
84
+ //# sourceMappingURL=KlarnaCheckoutView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_KlarnaCheckoutViewNativeComponent","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","KlarnaCheckoutView","Component","constructor","props","state","nativeViewHeight","checkoutViewRef","React","createRef","render","createElement","ref","style","width","height","returnUrl","onEvent","event","_this$props$onEvent","_this$props","params","JSON","parse","nativeEvent","productEvent","e","console","error","action","onError","_this$props$onError","_this$props2","mobileSdkError","isFatal","message","name","onResized","newHeight","Number","log","setState","setSnippet","snippet","view","current","RNKlarnaCheckoutViewCommands","suspend","resume","exports","_default"],"sourceRoot":"../../src","sources":["KlarnaCheckoutView.tsx"],"mappings":"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"}
@@ -25,4 +25,15 @@ Object.keys(_KlarnaStandaloneWebView).forEach(function (key) {
25
25
  }
26
26
  });
27
27
  });
28
+ var _KlarnaCheckoutView = require("./KlarnaCheckoutView");
29
+ Object.keys(_KlarnaCheckoutView).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _KlarnaCheckoutView[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _KlarnaCheckoutView[key];
36
+ }
37
+ });
38
+ });
28
39
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_KlarnaPaymentView","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_KlarnaStandaloneWebView"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,kBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,kBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,kBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,wBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,wBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,wBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,wBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA"}
1
+ {"version":3,"names":["_KlarnaPaymentView","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_KlarnaStandaloneWebView","_KlarnaCheckoutView"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,kBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,kBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,kBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,wBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,wBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,wBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,wBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,mBAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,mBAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,mBAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,mBAAA,CAAAN,GAAA;IAAA;EAAA;AAAA"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.RNKlarnaCheckoutViewCommands = void 0;
7
+ var _codegenNativeCommands = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeCommands"));
8
+ var _codegenNativeComponent = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeComponent"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ const RNKlarnaCheckoutViewCommands = (0, _codegenNativeCommands.default)({
11
+ supportedCommands: ['setSnippet', 'suspend', 'resume']
12
+ });
13
+ exports.RNKlarnaCheckoutViewCommands = RNKlarnaCheckoutViewCommands;
14
+ var _default = (0, _codegenNativeComponent.default)('RNKlarnaCheckoutView');
15
+ exports.default = _default;
16
+ //# sourceMappingURL=KlarnaCheckoutViewNativeComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_codegenNativeCommands","_interopRequireDefault","require","_codegenNativeComponent","obj","__esModule","default","RNKlarnaCheckoutViewCommands","codegenNativeCommands","supportedCommands","exports","_default","codegenNativeComponent"],"sourceRoot":"../../../src","sources":["specs/KlarnaCheckoutViewNativeComponent.ts"],"mappings":";;;;;;AAIA,IAAAA,sBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AA6CtF,MAAMG,4BAAgE,GAC3E,IAAAC,8BAAqB,EAAqC;EACxDC,iBAAiB,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ;AACvD,CAAC,CAAC;AAACC,OAAA,CAAAH,4BAAA,GAAAA,4BAAA;AAAA,IAAAI,QAAA,GAEU,IAAAC,+BAAsB,EACnC,sBACF,CAAC;AAAAF,OAAA,CAAAJ,OAAA,GAAAK,QAAA"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=KlarnaMobileSDKError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["types/common/KlarnaMobileSDKError.ts"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=KlarnaProductEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["types/common/KlarnaProductEvent.ts"],"mappings":""}
@@ -0,0 +1,74 @@
1
+ import React, { Component } from 'react';
2
+ import RNKlarnaCheckoutView, { RNKlarnaCheckoutViewCommands } from './specs/KlarnaCheckoutViewNativeComponent';
3
+ export class KlarnaCheckoutView extends Component {
4
+ constructor(props) {
5
+ super(props);
6
+ this.state = {
7
+ nativeViewHeight: 0
8
+ };
9
+ this.checkoutViewRef = /*#__PURE__*/React.createRef();
10
+ }
11
+ render() {
12
+ return /*#__PURE__*/React.createElement(RNKlarnaCheckoutView, {
13
+ ref: this.checkoutViewRef
14
+ /* eslint-disable-next-line react-native/no-inline-styles */,
15
+ style: {
16
+ width: '100%',
17
+ height: this.state.nativeViewHeight
18
+ },
19
+ returnUrl: this.props.returnUrl || '',
20
+ onEvent: event => {
21
+ var _this$props$onEvent, _this$props;
22
+ let params = {};
23
+ try {
24
+ params = JSON.parse(event.nativeEvent.productEvent.params);
25
+ } catch (e) {
26
+ console.error('Failed to parse productEvent.params', e);
27
+ }
28
+ const productEvent = {
29
+ action: event.nativeEvent.productEvent.action,
30
+ params: params
31
+ };
32
+ (_this$props$onEvent = (_this$props = this.props).onEvent) === null || _this$props$onEvent === void 0 || _this$props$onEvent.call(_this$props, productEvent);
33
+ },
34
+ onError: event => {
35
+ var _this$props$onError, _this$props2;
36
+ const mobileSdkError = {
37
+ isFatal: event.nativeEvent.error.isFatal,
38
+ message: event.nativeEvent.error.message,
39
+ name: event.nativeEvent.error.name
40
+ };
41
+ (_this$props$onError = (_this$props2 = this.props).onError) === null || _this$props$onError === void 0 || _this$props$onError.call(_this$props2, mobileSdkError);
42
+ },
43
+ onResized: event => {
44
+ const newHeight = Number(event.nativeEvent.height);
45
+ if (newHeight !== this.state.nativeViewHeight) {
46
+ console.log('onResized', newHeight);
47
+ this.setState({
48
+ nativeViewHeight: newHeight
49
+ });
50
+ }
51
+ }
52
+ });
53
+ }
54
+ setSnippet = snippet => {
55
+ const view = this.checkoutViewRef.current;
56
+ if (view != null) {
57
+ RNKlarnaCheckoutViewCommands.setSnippet(view, snippet);
58
+ }
59
+ };
60
+ suspend = () => {
61
+ const view = this.checkoutViewRef.current;
62
+ if (view != null) {
63
+ RNKlarnaCheckoutViewCommands.suspend(view);
64
+ }
65
+ };
66
+ resume = () => {
67
+ const view = this.checkoutViewRef.current;
68
+ if (view != null) {
69
+ RNKlarnaCheckoutViewCommands.resume(view);
70
+ }
71
+ };
72
+ }
73
+ export default KlarnaCheckoutView;
74
+ //# sourceMappingURL=KlarnaCheckoutView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Component","RNKlarnaCheckoutView","RNKlarnaCheckoutViewCommands","KlarnaCheckoutView","constructor","props","state","nativeViewHeight","checkoutViewRef","createRef","render","createElement","ref","style","width","height","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","setSnippet","snippet","view","current","suspend","resume"],"sourceRoot":"../../src","sources":["KlarnaCheckoutView.tsx"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export * from './KlarnaPaymentView';
2
2
  export * from './KlarnaStandaloneWebView';
3
+ export * from './KlarnaCheckoutView';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,cAAc,qBAAqB;AACnC,cAAc,2BAA2B"}
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,cAAc,qBAAqB;AACnC,cAAc,2BAA2B;AACzC,cAAc,sBAAsB"}