react-native-sdk-pianoio 0.2.1 → 0.2.3
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 +33 -110
- package/SdkPianoio.podspec +1 -1
- package/android/generated/jni/RNSdkPianoioSpec-generated.cpp +1 -65
- package/android/generated/jni/RNSdkPianoioSpec.h +0 -7
- package/android/generated/jni/react/renderer/components/RNSdkPianoioSpec/RNSdkPianoioSpecJSI-generated.cpp +0 -72
- package/android/generated/jni/react/renderer/components/RNSdkPianoioSpec/RNSdkPianoioSpecJSI.h +0 -133
- package/ios/ComposerPiano.swift +124 -9
- package/ios/MyComposerDelegate.swift +204 -0
- package/ios/SdkPianoio.h +2 -4
- package/ios/SdkPianoio.mm +90 -48
- package/ios/generated/RNSdkPianoioSpec/RNSdkPianoioSpec-generated.mm +0 -86
- package/ios/generated/RNSdkPianoioSpec/RNSdkPianoioSpec.h +0 -52
- package/ios/generated/RNSdkPianoioSpecJSI-generated.cpp +0 -72
- package/ios/generated/RNSdkPianoioSpecJSI.h +0 -133
- package/ios/services/ComposerService.swift +49 -0
- package/ios/services/TokenService.swift +67 -0
- package/lib/commonjs/NativeSdkPianoio.ts +18 -14
- package/lib/commonjs/PianoComposer.js +22 -0
- package/lib/commonjs/PianoComposer.js.map +1 -1
- package/lib/module/NativeSdkPianoio.ts +18 -14
- package/lib/module/PianoComposer.js +22 -0
- package/lib/module/PianoComposer.js.map +1 -1
- package/lib/typescript/commonjs/src/NativeSdkPianoio.d.ts +16 -13
- package/lib/typescript/commonjs/src/NativeSdkPianoio.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/PianoComposer.d.ts +13 -9
- package/lib/typescript/commonjs/src/PianoComposer.d.ts.map +1 -1
- package/lib/typescript/module/src/NativeSdkPianoio.d.ts +16 -13
- package/lib/typescript/module/src/NativeSdkPianoio.d.ts.map +1 -1
- package/lib/typescript/module/src/PianoComposer.d.ts +13 -9
- package/lib/typescript/module/src/PianoComposer.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/NativeSdkPianoio.ts +18 -14
- package/src/PianoComposer.tsx +95 -71
- package/src/index.tsx +0 -2
- package/android/generated/java/com/sdkpianoio/NativeSdkPianoioSpec.java +0 -75
package/ios/ComposerPiano.swift
CHANGED
@@ -9,24 +9,33 @@ import PianoComposer
|
|
9
9
|
import PianoOAuth
|
10
10
|
import PianoConsents
|
11
11
|
import PianoTemplate
|
12
|
+
import React
|
13
|
+
|
14
|
+
import SwiftUI
|
15
|
+
|
12
16
|
|
13
17
|
@objcMembers public class ComposerPianoImpl: NSObject {
|
14
|
-
|
15
18
|
private var composer: PianoComposer?;
|
19
|
+
private var delegateHelper : MyComposerDelegate?;
|
20
|
+
public static var aid = "";
|
16
21
|
|
17
22
|
@objc public func initializeComposer(_ aid: String) -> PianoComposer? {
|
18
|
-
|
19
|
-
|
23
|
+
ComposerPianoImpl.aid = aid;
|
24
|
+
let tokenService = TokenService();
|
25
|
+
delegateHelper = MyComposerDelegate(tokenService: tokenService);
|
26
|
+
composer = PianoComposer(aid: ComposerPianoImpl.aid, endpoint: PianoEndpoint.sandbox);
|
27
|
+
composer = delegateHelper?.setComposerAndDelegate(composer!);
|
20
28
|
return composer;
|
21
29
|
}
|
22
30
|
|
23
31
|
@objc public func addTag(_ tag: String) -> PianoComposer? {
|
24
|
-
print("ASSIGN TAG");
|
25
32
|
return composer?.tag(tag);
|
26
33
|
}
|
34
|
+
@objc public func addTagToComposer(_ composer: PianoComposer, tag: String) {
|
35
|
+
composer.tag(tag);
|
36
|
+
}
|
27
37
|
|
28
38
|
@objc public func addTags(_ tags: [String]) -> PianoComposer? {
|
29
|
-
print("ASSIGN TAGS");
|
30
39
|
return composer?.tags(tags);
|
31
40
|
}
|
32
41
|
|
@@ -44,19 +53,96 @@ import PianoTemplate
|
|
44
53
|
|
45
54
|
@objc public func setCustomVariable(_ name: String, value: String) -> PianoComposer? {
|
46
55
|
return composer?.customVariable(name: name, value: value);
|
47
|
-
|
48
56
|
}
|
49
57
|
|
50
58
|
@objc public func setUserToken(_ token: String) -> PianoComposer? {
|
51
59
|
return composer?.userToken(token);
|
52
60
|
}
|
53
61
|
|
54
|
-
|
62
|
+
/*@objc public func executeComposer() -> PianoComposer? {
|
55
63
|
return composer?.execute();
|
64
|
+
}*/
|
65
|
+
@objc public func executeComposer() {
|
66
|
+
DispatchQueue.main.async {
|
67
|
+
guard let rootVC = UIApplication.shared.connectedScenes
|
68
|
+
.compactMap({ $0 as? UIWindowScene })
|
69
|
+
.first(where: { $0.activationState == .foregroundActive })?.windows
|
70
|
+
.first(where: { $0.isKeyWindow })?.rootViewController else {
|
71
|
+
return
|
72
|
+
}
|
73
|
+
|
74
|
+
self.composer?.execute()
|
75
|
+
}
|
76
|
+
}
|
77
|
+
|
78
|
+
|
79
|
+
|
80
|
+
// Delegate handler
|
81
|
+
@objc public func executeExperience() {
|
82
|
+
let eventDict: [String: Any] = [
|
83
|
+
"eventType": "login"
|
84
|
+
];
|
85
|
+
|
86
|
+
let xpEvent = XpEvent(dict: eventDict);
|
87
|
+
|
88
|
+
if(composer != nil && composer!.delegate != nil ) {
|
89
|
+
delegateHelper?.executeExperience(composer: composer!, event: xpEvent, params: nil);
|
90
|
+
}
|
56
91
|
}
|
92
|
+
|
93
|
+
@objc public func showLogin() {
|
94
|
+
let eventDict: [String: Any] = [
|
95
|
+
"eventType": "login"
|
96
|
+
];
|
97
|
+
|
98
|
+
let xpEvent = XpEvent(dict: eventDict);
|
99
|
+
|
100
|
+
if(composer != nil && composer!.delegate != nil ) {
|
101
|
+
delegateHelper?.myShowLogin(composer: composer!, event: xpEvent, params: nil);
|
102
|
+
}
|
103
|
+
}
|
104
|
+
|
105
|
+
@objc public func showTemplate() {
|
106
|
+
DispatchQueue.main.async {
|
107
|
+
guard let rootVC = UIApplication.shared
|
108
|
+
.connectedScenes
|
109
|
+
.compactMap({ $0 as? UIWindowScene })
|
110
|
+
.flatMap({ $0.windows })
|
111
|
+
.first(where: { $0.isKeyWindow })?
|
112
|
+
.rootViewController else {
|
113
|
+
print("⚠️ rootViewController non trovato")
|
114
|
+
return
|
115
|
+
}
|
116
|
+
|
117
|
+
let tokenService = self.delegateHelper!.tokenService
|
118
|
+
let view = ShowTemplateView(tokenService: tokenService)
|
119
|
+
let hostingController = UIHostingController(rootView: view)
|
120
|
+
hostingController.modalPresentationStyle = .fullScreen
|
121
|
+
|
122
|
+
rootVC.present(hostingController, animated: true, completion: nil)
|
123
|
+
}
|
124
|
+
}
|
125
|
+
|
126
|
+
@objc public func showForm() {
|
127
|
+
let eventDict: [String: Any] = [
|
128
|
+
"eventType": "form"
|
129
|
+
];
|
130
|
+
|
131
|
+
let xpEvent = XpEvent(dict: eventDict);
|
57
132
|
|
133
|
+
if(composer != nil && composer!.delegate != nil ) {
|
134
|
+
delegateHelper?.myShowForm(composer: composer!, event: xpEvent, params: nil);
|
135
|
+
}
|
136
|
+
}
|
137
|
+
|
138
|
+
|
139
|
+
|
140
|
+
public func findViewBySelector(selector: String) -> UIView? {
|
141
|
+
return nil;
|
142
|
+
}
|
143
|
+
|
58
144
|
|
59
|
-
//
|
145
|
+
// method to get values and helpers
|
60
146
|
@objc public func getAid() -> String {
|
61
147
|
if(composer != nil){
|
62
148
|
return composer?.aid ?? "";
|
@@ -74,7 +160,6 @@ import PianoTemplate
|
|
74
160
|
}
|
75
161
|
|
76
162
|
@objc public func getComposer() -> PianoComposer? {
|
77
|
-
print("GET COMPOSER");
|
78
163
|
return composer;
|
79
164
|
}
|
80
165
|
|
@@ -93,5 +178,35 @@ import PianoTemplate
|
|
93
178
|
@objc public func getUserToken() -> String {
|
94
179
|
return composer?.userToken ?? ""
|
95
180
|
}
|
181
|
+
|
182
|
+
@objc public func addTagsToComposer(_ composer: PianoComposer, tags: [String]) {
|
183
|
+
composer.tags(tags)
|
184
|
+
}
|
185
|
+
|
186
|
+
@objc public func setCustomVariable(_ composer: PianoComposer, name: String, value: String) {
|
187
|
+
composer.customVariable(name: name, value: value)
|
188
|
+
}
|
189
|
+
|
190
|
+
@objc public func setReferrer(_ composer: PianoComposer, referrer: String) {
|
191
|
+
composer.referrer(referrer)
|
192
|
+
}
|
193
|
+
|
194
|
+
@objc public func setUrl(_ composer: PianoComposer, url: String) {
|
195
|
+
composer.url(url)
|
196
|
+
}
|
197
|
+
|
198
|
+
@objc public func setUserToken(_ composer: PianoComposer, token: String) {
|
199
|
+
composer.userToken(token)
|
200
|
+
}
|
201
|
+
|
202
|
+
@objc public func setZoneId(_ composer: PianoComposer, zoneId: String) {
|
203
|
+
composer.zoneId(zoneId)
|
204
|
+
}
|
205
|
+
|
206
|
+
@objc public func executeComposer(_ composer: PianoComposer) {
|
207
|
+
DispatchQueue.main.async {
|
208
|
+
composer.execute()
|
209
|
+
}
|
210
|
+
}
|
96
211
|
|
97
212
|
}
|
@@ -0,0 +1,204 @@
|
|
1
|
+
//
|
2
|
+
// MyComposerDelegate.swift
|
3
|
+
// Pods
|
4
|
+
//
|
5
|
+
// Created by Alessia Sarak on 23.04.2025.
|
6
|
+
//
|
7
|
+
|
8
|
+
import Foundation
|
9
|
+
import PianoComposer
|
10
|
+
import PianoOAuth
|
11
|
+
import PianoCommon
|
12
|
+
import PianoTemplate
|
13
|
+
|
14
|
+
import SwiftUI
|
15
|
+
import WebKit
|
16
|
+
|
17
|
+
public class MyComposerDelegate: ComposerService, PianoShowTemplateDelegate {
|
18
|
+
|
19
|
+
var view: WKWebView?
|
20
|
+
|
21
|
+
func showTemplate(params: ShowTemplateEventParams) {
|
22
|
+
if params.displayMode == .inline {
|
23
|
+
let request = URLRequest(url: URL(string: params.templateUrl)!)
|
24
|
+
view?.load(request)
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
public func setComposerAndDelegate(_ myComposer: PianoComposer) -> PianoComposer? {
|
29
|
+
myComposer.delegate = self;
|
30
|
+
return myComposer;
|
31
|
+
}
|
32
|
+
|
33
|
+
public func myShowLogin(composer: PianoComposer, event: XpEvent, params: [AnyHashable: Any]?) {
|
34
|
+
DispatchQueue.main.async {
|
35
|
+
PianoID.shared.aid = composer.aid;
|
36
|
+
PianoID.shared.endpoint = composer.endpoint;
|
37
|
+
PianoID.shared.signUpEnabled = true;
|
38
|
+
|
39
|
+
PianoID.shared.signIn();
|
40
|
+
};
|
41
|
+
}
|
42
|
+
|
43
|
+
public func myShowForm(composer: PianoComposer, event: XpEvent, params: [AnyHashable: Any]?) {
|
44
|
+
DispatchQueue.main.async {
|
45
|
+
PianoID.shared.formInfo(accessToken: PianoIDToken.description()) { formInfo, error in
|
46
|
+
if let error = error {
|
47
|
+
print("Errore nel recuperare il form: \(error.localizedDescription)")
|
48
|
+
return
|
49
|
+
}
|
50
|
+
|
51
|
+
guard let formInfo = formInfo else {
|
52
|
+
print("FormInfo non disponibile.")
|
53
|
+
return
|
54
|
+
}
|
55
|
+
|
56
|
+
composer.delegate?.showForm?(composer: composer, event: event, params: nil)
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
public func myShowTemplate(composer: PianoComposer, event: XpEvent, params: ShowTemplateEventParams?) {
|
64
|
+
if let p = params {
|
65
|
+
let webView = WKWebView()
|
66
|
+
let request = URLRequest(url: URL(string: p.templateUrl)!)
|
67
|
+
webView.load(request)
|
68
|
+
|
69
|
+
// Aggiungi webView alla vista principale
|
70
|
+
let controller = PianoShowTemplateController(p)
|
71
|
+
controller.delegate = self
|
72
|
+
controller.show()
|
73
|
+
|
74
|
+
self.execute();
|
75
|
+
}
|
76
|
+
}
|
77
|
+
|
78
|
+
public func executeExperience(composer: PianoComposer, event: XpEvent, params: ExperienceExecuteEventParams?) {
|
79
|
+
composer.delegate?.experienceExecute?(composer: composer, event: event, params: params)
|
80
|
+
}
|
81
|
+
|
82
|
+
|
83
|
+
|
84
|
+
public func findViewBySelector(selector: String) -> UIView? {
|
85
|
+
return nil;
|
86
|
+
}
|
87
|
+
}
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
struct WebView : UIViewRepresentable {
|
114
|
+
|
115
|
+
let webView: WKWebView
|
116
|
+
|
117
|
+
@Binding var height: CGFloat
|
118
|
+
|
119
|
+
class Coordinator: NSObject, WKNavigationDelegate {
|
120
|
+
|
121
|
+
var parent: WebView
|
122
|
+
|
123
|
+
init(_ parent: WebView) {
|
124
|
+
self.parent = parent
|
125
|
+
}
|
126
|
+
|
127
|
+
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
|
128
|
+
webView.evaluateJavaScript("document.documentElement.scrollHeight", completionHandler: { (height, error) in
|
129
|
+
DispatchQueue.main.async {
|
130
|
+
self.parent.height = height as! CGFloat
|
131
|
+
}
|
132
|
+
})
|
133
|
+
}
|
134
|
+
}
|
135
|
+
|
136
|
+
func makeCoordinator() -> Coordinator {
|
137
|
+
Coordinator(self)
|
138
|
+
}
|
139
|
+
|
140
|
+
func makeUIView(context: Context) -> WKWebView {
|
141
|
+
webView.scrollView.bounces = false
|
142
|
+
webView.navigationDelegate = context.coordinator
|
143
|
+
|
144
|
+
return webView
|
145
|
+
}
|
146
|
+
|
147
|
+
func updateUIView(_ uiView: WKWebView, context: Context) {}
|
148
|
+
}
|
149
|
+
|
150
|
+
fileprivate class ShowTemplateService: ComposerService, PianoShowTemplateDelegate {
|
151
|
+
|
152
|
+
@Published var webView: WKWebView? = nil
|
153
|
+
|
154
|
+
override func prepare(composer: PianoComposer) {
|
155
|
+
webView = nil
|
156
|
+
_ = composer.tag("templates")
|
157
|
+
}
|
158
|
+
|
159
|
+
func showTemplate(composer: PianoComposer, event: XpEvent, params: ShowTemplateEventParams?) {
|
160
|
+
if let p = params {
|
161
|
+
if p.displayMode == .inline {
|
162
|
+
webView = WKWebView()
|
163
|
+
}
|
164
|
+
|
165
|
+
let controller = PianoShowTemplateController(p)
|
166
|
+
controller.delegate = self
|
167
|
+
controller.show()
|
168
|
+
}
|
169
|
+
}
|
170
|
+
|
171
|
+
func findViewBySelector(selector: String) -> UIView? {
|
172
|
+
selector == "template" ? webView : nil
|
173
|
+
}
|
174
|
+
}
|
175
|
+
|
176
|
+
struct ShowTemplateView: View {
|
177
|
+
|
178
|
+
@ObservedObject private var service: ShowTemplateService
|
179
|
+
|
180
|
+
@State private var height: CGFloat = .zero
|
181
|
+
|
182
|
+
init(tokenService: TokenService) {
|
183
|
+
service = ShowTemplateService(tokenService: tokenService)
|
184
|
+
}
|
185
|
+
|
186
|
+
var body: some View {
|
187
|
+
if #available(iOS 14.0, *) {
|
188
|
+
VStack(spacing: 20) {
|
189
|
+
if !service.loading {
|
190
|
+
Button("Execute") {
|
191
|
+
service.execute()
|
192
|
+
}
|
193
|
+
|
194
|
+
if let wv = service.webView {
|
195
|
+
WebView(webView: wv, height: $height)
|
196
|
+
.frame(height: height > 320 ? 320 : height)
|
197
|
+
}
|
198
|
+
} else {
|
199
|
+
|
200
|
+
}
|
201
|
+
}.navigationTitle("Show template")
|
202
|
+
}
|
203
|
+
}
|
204
|
+
}
|
package/ios/SdkPianoio.h
CHANGED
package/ios/SdkPianoio.mm
CHANGED
@@ -1,40 +1,41 @@
|
|
1
1
|
#import "SdkPianoio.h"
|
2
2
|
#import "SdkPianoio-Swift.h"
|
3
|
+
#import <React/RCTBridgeModule.h>
|
3
4
|
|
4
5
|
@implementation SdkPianoio {
|
5
6
|
ComposerPianoImpl *moduleImpl;
|
6
7
|
}
|
7
8
|
|
8
|
-
|
9
|
+
RCT_EXPORT_MODULE(SdkPianoio)
|
10
|
+
|
11
|
+
|
12
|
+
- (instancetype)init {
|
9
13
|
self = [super init];
|
10
|
-
if(self){
|
14
|
+
if (self) {
|
11
15
|
moduleImpl = [ComposerPianoImpl new];
|
12
16
|
}
|
13
17
|
return self;
|
14
18
|
}
|
15
19
|
|
16
|
-
|
17
|
-
|
18
|
-
|
20
|
+
RCT_EXPORT_METHOD(initializeComposer:(NSString *)aid
|
21
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
22
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
19
23
|
{
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
- (void) initializeComposer:(nonnull NSString *)aid
|
25
|
-
resolve:(nonnull RCTPromiseResolveBlock)resolve
|
26
|
-
reject:(nonnull RCTPromiseRejectBlock)reject {
|
24
|
+
if (!moduleImpl) {
|
25
|
+
moduleImpl = [ComposerPianoImpl new];
|
26
|
+
}
|
27
|
+
|
27
28
|
PianoComposer *composer = [moduleImpl initializeComposer:aid];
|
28
29
|
if (composer) {
|
29
30
|
resolve(composer);
|
30
31
|
} else {
|
31
|
-
reject(@"composer_error", @"Impossibile
|
32
|
+
reject(@"composer_error", @"Impossibile inizializzare il composer", nil);
|
32
33
|
}
|
33
34
|
}
|
34
35
|
|
35
|
-
|
36
|
-
|
37
|
-
|
36
|
+
RCT_EXPORT_METHOD(getComposer:(RCTPromiseResolveBlock)resolve
|
37
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
38
|
+
{
|
38
39
|
PianoComposer *composer = [moduleImpl getComposer];
|
39
40
|
if (composer) {
|
40
41
|
NSMutableDictionary *response = [NSMutableDictionary new];
|
@@ -44,16 +45,15 @@ RCT_EXPORT_MODULE()
|
|
44
45
|
[response setObject:[moduleImpl getReferrer] forKey:@"referrer"];
|
45
46
|
[response setObject:[moduleImpl getUrl] forKey:@"url"];
|
46
47
|
[response setObject:[moduleImpl getUserToken] forKey:@"userToken"];
|
47
|
-
|
48
48
|
resolve(response);
|
49
49
|
} else {
|
50
|
-
reject(@"composer_error", @"Impossibile
|
50
|
+
reject(@"composer_error", @"Impossibile ottenere il composer", nil);
|
51
51
|
}
|
52
52
|
}
|
53
53
|
|
54
|
-
|
55
|
-
|
56
|
-
|
54
|
+
RCT_EXPORT_METHOD(addComposerTag:(NSString *)tag
|
55
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
56
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
57
57
|
{
|
58
58
|
PianoComposer *composer = [moduleImpl addTag:tag];
|
59
59
|
if (composer) {
|
@@ -63,9 +63,9 @@ RCT_EXPORT_MODULE()
|
|
63
63
|
}
|
64
64
|
}
|
65
65
|
|
66
|
-
|
67
|
-
|
68
|
-
|
66
|
+
RCT_EXPORT_METHOD(addComposerTags:(NSArray *)tags
|
67
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
68
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
69
69
|
{
|
70
70
|
PianoComposer *composer = [moduleImpl addTags:tags];
|
71
71
|
if (composer) {
|
@@ -75,21 +75,17 @@ RCT_EXPORT_MODULE()
|
|
75
75
|
}
|
76
76
|
}
|
77
77
|
|
78
|
-
|
79
|
-
|
78
|
+
RCT_EXPORT_METHOD(executeComposer:(RCTPromiseResolveBlock)resolve
|
79
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
80
80
|
{
|
81
|
-
|
82
|
-
|
83
|
-
resolve(nil);
|
84
|
-
} else {
|
85
|
-
reject(@"composer_error", @"Impossibile eseguire il composer", nil);
|
86
|
-
}
|
81
|
+
[moduleImpl executeComposer];
|
82
|
+
resolve(nil);
|
87
83
|
}
|
88
84
|
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
85
|
+
RCT_EXPORT_METHOD(setComposerCustomVariable:(NSString *)name
|
86
|
+
value:(NSString *)value
|
87
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
88
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
93
89
|
{
|
94
90
|
PianoComposer *composer = [moduleImpl setCustomVariable:name value:value];
|
95
91
|
if (composer) {
|
@@ -99,9 +95,9 @@ RCT_EXPORT_MODULE()
|
|
99
95
|
}
|
100
96
|
}
|
101
97
|
|
102
|
-
|
103
|
-
|
104
|
-
|
98
|
+
RCT_EXPORT_METHOD(setComposerReferrer:(NSString *)referrer
|
99
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
100
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
105
101
|
{
|
106
102
|
PianoComposer *composer = [moduleImpl setReferrer:referrer];
|
107
103
|
if (composer) {
|
@@ -111,9 +107,9 @@ RCT_EXPORT_MODULE()
|
|
111
107
|
}
|
112
108
|
}
|
113
109
|
|
114
|
-
|
115
|
-
|
116
|
-
|
110
|
+
RCT_EXPORT_METHOD(setComposerUrl:(NSString *)url
|
111
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
112
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
117
113
|
{
|
118
114
|
PianoComposer *composer = [moduleImpl setUrl:url];
|
119
115
|
if (composer) {
|
@@ -123,9 +119,9 @@ RCT_EXPORT_MODULE()
|
|
123
119
|
}
|
124
120
|
}
|
125
121
|
|
126
|
-
|
127
|
-
|
128
|
-
|
122
|
+
RCT_EXPORT_METHOD(setComposerUserToken:(NSString *)token
|
123
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
124
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
129
125
|
{
|
130
126
|
PianoComposer *composer = [moduleImpl setUserToken:token];
|
131
127
|
if (composer) {
|
@@ -135,9 +131,9 @@ RCT_EXPORT_MODULE()
|
|
135
131
|
}
|
136
132
|
}
|
137
133
|
|
138
|
-
|
139
|
-
|
140
|
-
|
134
|
+
RCT_EXPORT_METHOD(setComposerZoneId:(NSString *)zoneId
|
135
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
136
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
141
137
|
{
|
142
138
|
PianoComposer *composer = [moduleImpl setZoneId:zoneId];
|
143
139
|
if (composer) {
|
@@ -147,6 +143,52 @@ RCT_EXPORT_MODULE()
|
|
147
143
|
}
|
148
144
|
}
|
149
145
|
|
146
|
+
RCT_EXPORT_METHOD(showLogin:(RCTPromiseResolveBlock)resolve
|
147
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
148
|
+
{
|
149
|
+
@try {
|
150
|
+
[moduleImpl showLogin];
|
151
|
+
resolve(@(YES));
|
152
|
+
}
|
153
|
+
@catch (NSException *exception) {
|
154
|
+
reject(@"show_login_error", @"Errore in showLogin", nil);
|
155
|
+
}
|
156
|
+
}
|
157
|
+
|
158
|
+
RCT_EXPORT_METHOD(showTemplate:(RCTPromiseResolveBlock)resolve
|
159
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
160
|
+
{
|
161
|
+
@try {
|
162
|
+
[moduleImpl showTemplate];
|
163
|
+
resolve(@(YES));
|
164
|
+
}
|
165
|
+
@catch (NSException *exception) {
|
166
|
+
reject(@"show_template_error", @"Errore in showTemplate", nil);
|
167
|
+
}
|
168
|
+
}
|
150
169
|
|
170
|
+
RCT_EXPORT_METHOD(showForm:(RCTPromiseResolveBlock)resolve
|
171
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
172
|
+
{
|
173
|
+
@try {
|
174
|
+
[moduleImpl showForm];
|
175
|
+
resolve(@(YES));
|
176
|
+
}
|
177
|
+
@catch (NSException *exception) {
|
178
|
+
reject(@"show_template_error", @"Errore in showForm", nil);
|
179
|
+
}
|
180
|
+
}
|
181
|
+
|
182
|
+
RCT_EXPORT_METHOD(experienceExecute:(RCTPromiseResolveBlock)resolve
|
183
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
184
|
+
{
|
185
|
+
@try {
|
186
|
+
[moduleImpl executeExperience];
|
187
|
+
resolve(@(YES));
|
188
|
+
}
|
189
|
+
@catch (NSException *exception) {
|
190
|
+
reject(@"experience_execute_error", @"Errore in experienceExecute", nil);
|
191
|
+
}
|
192
|
+
}
|
151
193
|
|
152
194
|
@end
|