react-native-sdk-pianoio 0.2.1 → 0.2.2

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 (35) hide show
  1. package/README.md +10 -9
  2. package/SdkPianoio.podspec +1 -1
  3. package/android/generated/jni/RNSdkPianoioSpec-generated.cpp +1 -65
  4. package/android/generated/jni/RNSdkPianoioSpec.h +0 -7
  5. package/android/generated/jni/react/renderer/components/RNSdkPianoioSpec/RNSdkPianoioSpecJSI-generated.cpp +0 -72
  6. package/android/generated/jni/react/renderer/components/RNSdkPianoioSpec/RNSdkPianoioSpecJSI.h +0 -133
  7. package/ios/ComposerPiano.swift +124 -9
  8. package/ios/MyComposerDelegate.swift +204 -0
  9. package/ios/SdkPianoio.h +2 -4
  10. package/ios/SdkPianoio.mm +90 -48
  11. package/ios/generated/RNSdkPianoioSpec/RNSdkPianoioSpec-generated.mm +0 -86
  12. package/ios/generated/RNSdkPianoioSpec/RNSdkPianoioSpec.h +0 -52
  13. package/ios/generated/RNSdkPianoioSpecJSI-generated.cpp +0 -72
  14. package/ios/generated/RNSdkPianoioSpecJSI.h +0 -133
  15. package/ios/services/ComposerService.swift +49 -0
  16. package/ios/services/TokenService.swift +67 -0
  17. package/lib/commonjs/NativeSdkPianoio.ts +18 -14
  18. package/lib/commonjs/PianoComposer.js +22 -0
  19. package/lib/commonjs/PianoComposer.js.map +1 -1
  20. package/lib/module/NativeSdkPianoio.ts +18 -14
  21. package/lib/module/PianoComposer.js +22 -0
  22. package/lib/module/PianoComposer.js.map +1 -1
  23. package/lib/typescript/commonjs/src/NativeSdkPianoio.d.ts +16 -13
  24. package/lib/typescript/commonjs/src/NativeSdkPianoio.d.ts.map +1 -1
  25. package/lib/typescript/commonjs/src/PianoComposer.d.ts +13 -9
  26. package/lib/typescript/commonjs/src/PianoComposer.d.ts.map +1 -1
  27. package/lib/typescript/module/src/NativeSdkPianoio.d.ts +16 -13
  28. package/lib/typescript/module/src/NativeSdkPianoio.d.ts.map +1 -1
  29. package/lib/typescript/module/src/PianoComposer.d.ts +13 -9
  30. package/lib/typescript/module/src/PianoComposer.d.ts.map +1 -1
  31. package/package.json +1 -1
  32. package/src/NativeSdkPianoio.ts +18 -14
  33. package/src/PianoComposer.tsx +95 -71
  34. package/src/index.tsx +0 -2
  35. package/android/generated/java/com/sdkpianoio/NativeSdkPianoioSpec.java +0 -75
package/README.md CHANGED
@@ -53,13 +53,14 @@ npx expo start
53
53
 
54
54
  Con l’introduzione della versione Expo SDK 52, il team di Expo ha adottato la **New Architecture** di React Native, che introduce importanti novità come i TurboModules, il Codegen e un nuovo sistema di gestione degli eventi (incluso EventEmitterCallback). Questi cambiamenti migliorano performance, interoperabilità con pacchetti nativi complessi e garantiscono una maggiore compatibilità futura con React Native.
55
55
 
56
- Tuttavia, questa evoluzione comporta incompatibilità con versioni precedenti (Expo 51 o inferiori), che non includono le definizioni e i meccanismi introdotti dalla nuova architettura.
56
+ Tuttavia, questa evoluzione comporta incompatibilità con versioni precedenti (Expo 51 o inferiori), che non includono le definizioni e i meccanismi introdotti dalla nuova architettura.
57
57
 
58
- Un esempio concreto è l’uso del tipo facebook::react::EventEmitterCallback, che esiste solo all’interno della New Architecture.
58
+ Un esempio concreto è l’uso del tipo facebook::react::EventEmitterCallback, che esiste solo all’interno della New Architecture.
59
59
 
60
60
  Per far funzionare il pacchetto con versioni precedenti alla 52, è necessario usare un approccio un po' forzato, modificando manualmente il codice generato per evitare riferimenti non supportati.
61
61
 
62
- Una volta installato il pacchetto e aver eseguito:
62
+ Una volta installato il pacchetto e aver eseguito:
63
+
63
64
  ```sh
64
65
  npx expo run:ios
65
66
  ```
@@ -75,10 +76,11 @@ Dovrebbe comparire una serie di errori simili a questo:
75
76
  | ^ no type named 'EventEmitterCallback' in namespace 'facebook::react'
76
77
  73 | }
77
78
  74 | - (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *) eventEmitterCallbackWrapper;
78
- 75 |
79
+ 75 |
79
80
  ```
80
81
 
81
82
  I file causanti di questi errori sono:
83
+
82
84
  - RNSdkPianoioSpec.h
83
85
  - RNSdkPianoioSpec-generated.mm
84
86
 
@@ -95,6 +97,7 @@ Quindi, cliccare sulla referenza del file e andare alla linea dell'errore.
95
97
 
96
98
  @end
97
99
  ```
100
+
98
101
  Sostituire il codice sovrastante con:
99
102
 
100
103
  ```
@@ -132,8 +135,7 @@ Sostituire il codice sovrastante con:
132
135
  @end
133
136
  ```
134
137
 
135
-
136
- ### React native
138
+ ### React native
137
139
 
138
140
  Nel progetto di react native eseguire:
139
141
 
@@ -141,7 +143,7 @@ Nel progetto di react native eseguire:
141
143
  npm install react-native-sdk-pianoio
142
144
  ```
143
145
 
144
- #### iOS
146
+ #### iOS
145
147
 
146
148
  Nel progetto di react native entrare nella cartella per ios ed installare le dipendenze:
147
149
 
@@ -149,7 +151,7 @@ Nel progetto di react native entrare nella cartella per ios ed installare le dip
149
151
  pod install
150
152
  ```
151
153
 
152
- #### Android
154
+ #### Android
153
155
 
154
156
  Nel progetto di react native entrare nella cartella per android e [...]
155
157
 
@@ -275,7 +277,6 @@ PianoComposer {
275
277
 
276
278
  Crea e inizializza una nuova istanza di `PianoComposer`.
277
279
 
278
-
279
280
  ### `PianoComposer.isInitialized(): Promise<boolean>`
280
281
 
281
282
  Verifica se il composer è stato inizializzato correttamente a livello nativo.
@@ -14,7 +14,7 @@ Pod::Spec.new do |s|
14
14
  s.platforms = { :ios => min_ios_version_supported }
15
15
  s.source = { :git => "https://google.ch$.git", :tag => "#{s.version}" }
16
16
 
17
- s.source_files = "ios/**/*.{h,m,mm,cpp,swift}"
17
+ s.source_files = "ios/**/*.{h,m,mm,cpp,swift}", "ios/services/**/*.{swift}"
18
18
  s.private_header_files = "ios/**/*.h"
19
19
 
20
20
 
@@ -12,74 +12,10 @@
12
12
 
13
13
  namespace facebook::react {
14
14
 
15
- static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_initializeComposer(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
16
- static jmethodID cachedMethodId = nullptr;
17
- return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "initializeComposer", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
18
- }
19
-
20
- static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_getComposer(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
21
- static jmethodID cachedMethodId = nullptr;
22
- return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "getComposer", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
23
- }
24
15
 
25
- static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_addComposerTag(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
26
- static jmethodID cachedMethodId = nullptr;
27
- return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "addComposerTag", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
28
- }
29
-
30
- static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_addComposerTags(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
31
- static jmethodID cachedMethodId = nullptr;
32
- return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "addComposerTags", "(Lcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
33
- }
34
-
35
- static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_setComposerZoneId(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
36
- static jmethodID cachedMethodId = nullptr;
37
- return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "setComposerZoneId", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
38
- }
39
-
40
- static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_setComposerReferrer(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
41
- static jmethodID cachedMethodId = nullptr;
42
- return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "setComposerReferrer", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
43
- }
44
-
45
- static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_setComposerUrl(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
46
- static jmethodID cachedMethodId = nullptr;
47
- return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "setComposerUrl", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
48
- }
49
-
50
- static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_setComposerCustomVariable(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
51
- static jmethodID cachedMethodId = nullptr;
52
- return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "setComposerCustomVariable", "(Ljava/lang/String;Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
53
- }
54
-
55
- static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_setComposerUserToken(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
56
- static jmethodID cachedMethodId = nullptr;
57
- return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "setComposerUserToken", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
58
- }
59
-
60
- static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_executeComposer(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
61
- static jmethodID cachedMethodId = nullptr;
62
- return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "executeComposer", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
63
- }
64
-
65
- NativeSdkPianoioSpecJSI::NativeSdkPianoioSpecJSI(const JavaTurboModule::InitParams &params)
66
- : JavaTurboModule(params) {
67
- methodMap_["initializeComposer"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioSpecJSI_initializeComposer};
68
- methodMap_["getComposer"] = MethodMetadata {0, __hostFunction_NativeSdkPianoioSpecJSI_getComposer};
69
- methodMap_["addComposerTag"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioSpecJSI_addComposerTag};
70
- methodMap_["addComposerTags"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioSpecJSI_addComposerTags};
71
- methodMap_["setComposerZoneId"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioSpecJSI_setComposerZoneId};
72
- methodMap_["setComposerReferrer"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioSpecJSI_setComposerReferrer};
73
- methodMap_["setComposerUrl"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioSpecJSI_setComposerUrl};
74
- methodMap_["setComposerCustomVariable"] = MethodMetadata {2, __hostFunction_NativeSdkPianoioSpecJSI_setComposerCustomVariable};
75
- methodMap_["setComposerUserToken"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioSpecJSI_setComposerUserToken};
76
- methodMap_["executeComposer"] = MethodMetadata {0, __hostFunction_NativeSdkPianoioSpecJSI_executeComposer};
77
- }
78
16
 
79
17
  std::shared_ptr<TurboModule> RNSdkPianoioSpec_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams &params) {
80
- if (moduleName == "SdkPianoio") {
81
- return std::make_shared<NativeSdkPianoioSpecJSI>(params);
82
- }
18
+
83
19
  return nullptr;
84
20
  }
85
21
 
@@ -16,13 +16,6 @@
16
16
 
17
17
  namespace facebook::react {
18
18
 
19
- /**
20
- * JNI C++ class for module 'NativeSdkPianoio'
21
- */
22
- class JSI_EXPORT NativeSdkPianoioSpecJSI : public JavaTurboModule {
23
- public:
24
- NativeSdkPianoioSpecJSI(const JavaTurboModule::InitParams &params);
25
- };
26
19
 
27
20
 
28
21
  JSI_EXPORT
@@ -11,79 +11,7 @@
11
11
 
12
12
  namespace facebook::react {
13
13
 
14
- static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_initializeComposer(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
15
- return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->initializeComposer(
16
- rt,
17
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
18
- );
19
- }
20
- static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_getComposer(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
21
- return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->getComposer(
22
- rt
23
- );
24
- }
25
- static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_addComposerTag(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
26
- return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->addComposerTag(
27
- rt,
28
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
29
- );
30
- }
31
- static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_addComposerTags(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
32
- return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->addComposerTags(
33
- rt,
34
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt).asArray(rt)
35
- );
36
- }
37
- static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerZoneId(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
38
- return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->setComposerZoneId(
39
- rt,
40
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
41
- );
42
- }
43
- static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerReferrer(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
44
- return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->setComposerReferrer(
45
- rt,
46
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
47
- );
48
- }
49
- static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerUrl(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
50
- return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->setComposerUrl(
51
- rt,
52
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
53
- );
54
- }
55
- static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerCustomVariable(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
56
- return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->setComposerCustomVariable(
57
- rt,
58
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
59
- count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt)
60
- );
61
- }
62
- static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerUserToken(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
63
- return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->setComposerUserToken(
64
- rt,
65
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
66
- );
67
- }
68
- static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_executeComposer(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
69
- return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->executeComposer(
70
- rt
71
- );
72
- }
73
14
 
74
- NativeSdkPianoioCxxSpecJSI::NativeSdkPianoioCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
75
- : TurboModule("SdkPianoio", jsInvoker) {
76
- methodMap_["initializeComposer"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioCxxSpecJSI_initializeComposer};
77
- methodMap_["getComposer"] = MethodMetadata {0, __hostFunction_NativeSdkPianoioCxxSpecJSI_getComposer};
78
- methodMap_["addComposerTag"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioCxxSpecJSI_addComposerTag};
79
- methodMap_["addComposerTags"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioCxxSpecJSI_addComposerTags};
80
- methodMap_["setComposerZoneId"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerZoneId};
81
- methodMap_["setComposerReferrer"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerReferrer};
82
- methodMap_["setComposerUrl"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerUrl};
83
- methodMap_["setComposerCustomVariable"] = MethodMetadata {2, __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerCustomVariable};
84
- methodMap_["setComposerUserToken"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerUserToken};
85
- methodMap_["executeComposer"] = MethodMetadata {0, __hostFunction_NativeSdkPianoioCxxSpecJSI_executeComposer};
86
- }
87
15
 
88
16
 
89
17
  } // namespace facebook::react
@@ -15,138 +15,5 @@
15
15
  namespace facebook::react {
16
16
 
17
17
 
18
- class JSI_EXPORT NativeSdkPianoioCxxSpecJSI : public TurboModule {
19
- protected:
20
- NativeSdkPianoioCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
21
-
22
- public:
23
- virtual jsi::Value initializeComposer(jsi::Runtime &rt, jsi::String aid) = 0;
24
- virtual jsi::Value getComposer(jsi::Runtime &rt) = 0;
25
- virtual jsi::Value addComposerTag(jsi::Runtime &rt, jsi::String tag) = 0;
26
- virtual jsi::Value addComposerTags(jsi::Runtime &rt, jsi::Array tags) = 0;
27
- virtual jsi::Value setComposerZoneId(jsi::Runtime &rt, jsi::String zoneId) = 0;
28
- virtual jsi::Value setComposerReferrer(jsi::Runtime &rt, jsi::String referrer) = 0;
29
- virtual jsi::Value setComposerUrl(jsi::Runtime &rt, jsi::String url) = 0;
30
- virtual jsi::Value setComposerCustomVariable(jsi::Runtime &rt, jsi::String name, jsi::String value) = 0;
31
- virtual jsi::Value setComposerUserToken(jsi::Runtime &rt, jsi::String token) = 0;
32
- virtual jsi::Value executeComposer(jsi::Runtime &rt) = 0;
33
-
34
- };
35
-
36
- template <typename T>
37
- class JSI_EXPORT NativeSdkPianoioCxxSpec : public TurboModule {
38
- public:
39
- jsi::Value create(jsi::Runtime &rt, const jsi::PropNameID &propName) override {
40
- return delegate_.create(rt, propName);
41
- }
42
-
43
- std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime& runtime) override {
44
- return delegate_.getPropertyNames(runtime);
45
- }
46
-
47
- static constexpr std::string_view kModuleName = "SdkPianoio";
48
-
49
- protected:
50
- NativeSdkPianoioCxxSpec(std::shared_ptr<CallInvoker> jsInvoker)
51
- : TurboModule(std::string{NativeSdkPianoioCxxSpec::kModuleName}, jsInvoker),
52
- delegate_(reinterpret_cast<T*>(this), jsInvoker) {}
53
-
54
-
55
- private:
56
- class Delegate : public NativeSdkPianoioCxxSpecJSI {
57
- public:
58
- Delegate(T *instance, std::shared_ptr<CallInvoker> jsInvoker) :
59
- NativeSdkPianoioCxxSpecJSI(std::move(jsInvoker)), instance_(instance) {
60
-
61
- }
62
-
63
- jsi::Value initializeComposer(jsi::Runtime &rt, jsi::String aid) override {
64
- static_assert(
65
- bridging::getParameterCount(&T::initializeComposer) == 2,
66
- "Expected initializeComposer(...) to have 2 parameters");
67
-
68
- return bridging::callFromJs<jsi::Value>(
69
- rt, &T::initializeComposer, jsInvoker_, instance_, std::move(aid));
70
- }
71
- jsi::Value getComposer(jsi::Runtime &rt) override {
72
- static_assert(
73
- bridging::getParameterCount(&T::getComposer) == 1,
74
- "Expected getComposer(...) to have 1 parameters");
75
-
76
- return bridging::callFromJs<jsi::Value>(
77
- rt, &T::getComposer, jsInvoker_, instance_);
78
- }
79
- jsi::Value addComposerTag(jsi::Runtime &rt, jsi::String tag) override {
80
- static_assert(
81
- bridging::getParameterCount(&T::addComposerTag) == 2,
82
- "Expected addComposerTag(...) to have 2 parameters");
83
-
84
- return bridging::callFromJs<jsi::Value>(
85
- rt, &T::addComposerTag, jsInvoker_, instance_, std::move(tag));
86
- }
87
- jsi::Value addComposerTags(jsi::Runtime &rt, jsi::Array tags) override {
88
- static_assert(
89
- bridging::getParameterCount(&T::addComposerTags) == 2,
90
- "Expected addComposerTags(...) to have 2 parameters");
91
-
92
- return bridging::callFromJs<jsi::Value>(
93
- rt, &T::addComposerTags, jsInvoker_, instance_, std::move(tags));
94
- }
95
- jsi::Value setComposerZoneId(jsi::Runtime &rt, jsi::String zoneId) override {
96
- static_assert(
97
- bridging::getParameterCount(&T::setComposerZoneId) == 2,
98
- "Expected setComposerZoneId(...) to have 2 parameters");
99
-
100
- return bridging::callFromJs<jsi::Value>(
101
- rt, &T::setComposerZoneId, jsInvoker_, instance_, std::move(zoneId));
102
- }
103
- jsi::Value setComposerReferrer(jsi::Runtime &rt, jsi::String referrer) override {
104
- static_assert(
105
- bridging::getParameterCount(&T::setComposerReferrer) == 2,
106
- "Expected setComposerReferrer(...) to have 2 parameters");
107
-
108
- return bridging::callFromJs<jsi::Value>(
109
- rt, &T::setComposerReferrer, jsInvoker_, instance_, std::move(referrer));
110
- }
111
- jsi::Value setComposerUrl(jsi::Runtime &rt, jsi::String url) override {
112
- static_assert(
113
- bridging::getParameterCount(&T::setComposerUrl) == 2,
114
- "Expected setComposerUrl(...) to have 2 parameters");
115
-
116
- return bridging::callFromJs<jsi::Value>(
117
- rt, &T::setComposerUrl, jsInvoker_, instance_, std::move(url));
118
- }
119
- jsi::Value setComposerCustomVariable(jsi::Runtime &rt, jsi::String name, jsi::String value) override {
120
- static_assert(
121
- bridging::getParameterCount(&T::setComposerCustomVariable) == 3,
122
- "Expected setComposerCustomVariable(...) to have 3 parameters");
123
-
124
- return bridging::callFromJs<jsi::Value>(
125
- rt, &T::setComposerCustomVariable, jsInvoker_, instance_, std::move(name), std::move(value));
126
- }
127
- jsi::Value setComposerUserToken(jsi::Runtime &rt, jsi::String token) override {
128
- static_assert(
129
- bridging::getParameterCount(&T::setComposerUserToken) == 2,
130
- "Expected setComposerUserToken(...) to have 2 parameters");
131
-
132
- return bridging::callFromJs<jsi::Value>(
133
- rt, &T::setComposerUserToken, jsInvoker_, instance_, std::move(token));
134
- }
135
- jsi::Value executeComposer(jsi::Runtime &rt) override {
136
- static_assert(
137
- bridging::getParameterCount(&T::executeComposer) == 1,
138
- "Expected executeComposer(...) to have 1 parameters");
139
-
140
- return bridging::callFromJs<jsi::Value>(
141
- rt, &T::executeComposer, jsInvoker_, instance_);
142
- }
143
-
144
- private:
145
- friend class NativeSdkPianoioCxxSpec;
146
- T *instance_;
147
- };
148
-
149
- Delegate delegate_;
150
- };
151
18
 
152
19
  } // namespace facebook::react
@@ -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
- print("ASSING AID");
19
- composer = PianoComposer(aid: aid);
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
- @objc public func executeComposer() -> PianoComposer? {
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
- // metodi di aiuto :)
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
  }