@appboxo/react-native-sdk 1.0.33 → 1.0.35

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 CHANGED
@@ -26,11 +26,11 @@ import { StyleSheet, View, Button } from 'react-native';
26
26
  export default function App() {
27
27
 
28
28
  React.useEffect(() => {
29
- appboxo.setConfig('[client_id]', false); //set your Appboxo client_id and specify multitask mode (by default is "true")
29
+ appboxo.setConfig('[client_id]', false, false); //set your Appboxo client_id, sandbox mode (by default is "false") and specify multitask mode (by default is "true")
30
30
  }, [])
31
31
 
32
32
  const handleOpenMiniapp = () => {
33
- appboxo.openMiniapp('[miniapp_id]', '[auth_payload]', {'key': 'value'}); //launch miniapp by id with auth payload and with data as {[key: string]: any} | undefined that is sent to miniapp.
33
+ appboxo.openMiniapp('[miniapp_id]', {'key': 'value'}); //launch miniapp by id with data as {[key: string]: any} | undefined that is sent to miniapp.
34
34
  }
35
35
 
36
36
  return (
@@ -69,13 +69,14 @@ import { StyleSheet, View, Button } from 'react-native';
69
69
  export default function App() {
70
70
 
71
71
  React.useEffect(() => {
72
- appboxo.setConfig('[client_id]', false); //set your Appboxo client_id and specify multitask mode (by default is "true")
72
+ appboxo.setConfig('[client_id]', false, false); //set your Appboxo client_id, sandbox mode and specify multitask mode (by default is "true")
73
73
 
74
74
  const subscription = appboxo.lifecycleHooksListener({
75
75
  onLaunch: (appId: string) => console.log('onLaunch', appId), // called when the miniapp will launch with openMiniapp(...)
76
76
  onResume: (appId: string) => console.log('onResume', appId), // called when the miniapp will start interacting with the user
77
77
  onPause: (appId: string) => console.log('onPause', appId), // called when clicked close button in miniapp or when destroyed miniapp activity
78
78
  onClose: (appId: string) => console.log('onClose', appId), // called when the miniapp loses foreground state
79
+ onAuth: (appId: string) => console.log('onAuth', appId), // called when authorization flow starts
79
80
  onError: (appId: string, error: string) => console.log('onError', appId, error), // handle error
80
81
  });
81
82
 
@@ -83,7 +84,7 @@ export default function App() {
83
84
  }, [])
84
85
 
85
86
  const handleOpenMiniapp = () => {
86
- appboxo.openMiniapp('[miniapp_id]', '[auth_payload]'); //launch miniapp by id with auth payload.
87
+ appboxo.openMiniapp('[miniapp_id]'); //launch miniapp by id
87
88
  }
88
89
 
89
90
  return (
@@ -1,6 +1,6 @@
1
- def DEFAULT_COMPILE_SDK_VERSION = 30
1
+ def DEFAULT_COMPILE_SDK_VERSION = 33
2
2
  def DEFAULT_MIN_SDK_VERSION = 21
3
- def DEFAULT_TARGET_SDK_VERSION = 30
3
+ def DEFAULT_TARGET_SDK_VERSION = 33
4
4
 
5
5
  def safeExtGet(prop, fallback) {
6
6
  rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
@@ -12,7 +12,7 @@ buildscript {
12
12
  jcenter()
13
13
  }
14
14
  dependencies {
15
- classpath 'com.android.tools.build:gradle:7.1.3'
15
+ classpath "com.android.tools.build:gradle:7.4.2"
16
16
  }
17
17
  }
18
18
 
@@ -127,5 +127,5 @@ rootProject.allprojects {
127
127
  dependencies {
128
128
  //noinspection GradleDynamicVersion
129
129
  implementation 'com.facebook.react:react-native:+' // From node_modules
130
- implementation 'com.appboxo:miniapp-sdk:1.4.13'
130
+ implementation 'com.appboxo:sdk:1.4.19'
131
131
  }
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
3
3
  distributionPath=wrapper/dists
4
4
  zipStoreBase=GRADLE_USER_HOME
5
5
  zipStorePath=wrapper/dists
6
- distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip
6
+ distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
@@ -23,6 +23,7 @@ import android.os.Looper;
23
23
  import androidx.annotation.NonNull;
24
24
 
25
25
  import com.appboxo.js.params.CustomEvent;
26
+ import com.appboxo.js.params.PaymentData;
26
27
  import com.appboxo.sdk.Appboxo;
27
28
  import com.appboxo.sdk.Config;
28
29
  import com.appboxo.sdk.Miniapp;
@@ -43,7 +44,7 @@ import java.util.HashMap;
43
44
  import java.util.Map;
44
45
 
45
46
  public class RnappboxosdkModule extends ReactContextBaseJavaModule
46
- implements Miniapp.LifecycleListener, Miniapp.CustomEventListener {
47
+ implements Miniapp.LifecycleListener, Miniapp.CustomEventListener, Miniapp.AuthListener {
47
48
  private static final String CUSTOM_EVENTS_EVENT_NAME = "appboxo_custom_events";
48
49
  private static final String MINIAPP_LIFECYCLE_EVENT_NAME = "appboxo_miniapp_lifecycle";
49
50
 
@@ -63,7 +64,7 @@ public class RnappboxosdkModule extends ReactContextBaseJavaModule
63
64
  }
64
65
 
65
66
  @ReactMethod
66
- public void setConfig(String clientId, boolean enableMultitaskMode, String theme) {
67
+ public void setConfig(String clientId, boolean sandboxMode, boolean enableMultitaskMode, String theme) {
67
68
  Config.Theme globalTheme;
68
69
  switch (theme) {
69
70
  case "light":
@@ -78,15 +79,17 @@ public class RnappboxosdkModule extends ReactContextBaseJavaModule
78
79
  Appboxo.INSTANCE
79
80
  .setConfig(new Config.Builder()
80
81
  .setClientId(clientId)
82
+ .sandboxMode(sandboxMode)
81
83
  .multitaskMode(enableMultitaskMode)
82
84
  .setTheme(globalTheme)
83
85
  .build());
84
86
  }
85
87
 
86
88
  @ReactMethod
87
- public void openMiniapp(String appId, String payload, ReadableMap data, String theme, ReadableMap customUrlParams) {
89
+ public void openMiniapp(String appId, ReadableMap data, String theme, ReadableMap customUrlParams) {
88
90
  Miniapp miniapp = Appboxo.INSTANCE.getMiniapp(appId)
89
91
  .setCustomEventListener(this)
92
+ .setAuthListener(this)
90
93
  .setLifecycleListener(this);
91
94
 
92
95
  MiniappConfig.Builder configBuilder = new MiniappConfig.Builder();
@@ -125,6 +128,12 @@ public class RnappboxosdkModule extends ReactContextBaseJavaModule
125
128
  miniapp.open(reactContext);
126
129
  }
127
130
 
131
+ @ReactMethod
132
+ public void setAuthCode(String appId, String authCode) {
133
+ Appboxo.INSTANCE.getMiniapp(appId)
134
+ .setAuthCode(authCode);
135
+ }
136
+
128
137
  @Override
129
138
  public void handle(@NotNull AppboxoActivity appboxoActivity, @NotNull Miniapp miniApp, @NotNull CustomEvent customEvent) {
130
139
  WritableMap params = Arguments.createMap();
@@ -192,8 +201,16 @@ public class RnappboxosdkModule extends ReactContextBaseJavaModule
192
201
  sendEvent(MINIAPP_LIFECYCLE_EVENT_NAME, params);
193
202
  }
194
203
 
204
+ @Override
205
+ public void onAuth(@NotNull AppboxoActivity appboxoActivity, @NonNull Miniapp miniapp) {
206
+ WritableMap params = Arguments.createMap();
207
+ params.putString("app_id", miniapp.getAppId());
208
+ params.putString("lifecycle", "onAuth");
209
+ sendEvent(MINIAPP_LIFECYCLE_EVENT_NAME, params);
210
+ }
211
+
195
212
  @ReactMethod
196
- void sendCustomEvent(ReadableMap map) {
213
+ public void sendCustomEvent(ReadableMap map) {
197
214
  try {
198
215
  String appId = map.getString("app_id");
199
216
  ReadableMap customEventMap = map.getMap("custom_event");
@@ -215,6 +232,33 @@ public class RnappboxosdkModule extends ReactContextBaseJavaModule
215
232
  }
216
233
  }
217
234
 
235
+ @ReactMethod
236
+ public void sendPaymentEvent(ReadableMap map) {
237
+ try {
238
+ String appId = map.getString("app_id");
239
+ ReadableMap paymentEvent = map.getMap("payment_event");
240
+ final PaymentData data = new PaymentData(
241
+ paymentEvent.getString("transaction_token"),
242
+ paymentEvent.getString("miniapp_order_id"),
243
+ paymentEvent.getDouble("amount"),
244
+ paymentEvent.getString("currency"),
245
+ paymentEvent.getString("status"),
246
+ paymentEvent.getString("hostapp_order_id"),
247
+ MapUtil.toMap(paymentEvent.getMap("extra_params")));
248
+ final Miniapp miniapp = Appboxo.INSTANCE.getMiniapp(appId);
249
+ handler.post(new Runnable() {
250
+ @Override
251
+ public void run() {
252
+ if (miniapp != null) {
253
+ miniapp.sendPaymentResult(data);
254
+ }
255
+ }
256
+ });
257
+ } catch (Exception e) {
258
+ e.printStackTrace();
259
+ }
260
+ }
261
+
218
262
  @ReactMethod
219
263
  void hideMiniapps() {
220
264
  Appboxo.INSTANCE.hideMiniapps();
package/index.d.ts CHANGED
@@ -21,22 +21,21 @@ declare module '@appboxo/react-native-sdk' {
21
21
  /**
22
22
  * Set Appboxo clientId
23
23
  * @param {string} clientId Appboxo clientId
24
+ * @param {boolean} sandboxMode (by default false)
24
25
  * @param {boolean} enableMultitaskMode Enable multiscreen mode (by default true)
25
26
  * @param {'dark' | 'light'} theme Miniapp theme (by default 'system')
26
27
  * */
27
- export function setConfig(clientId: string, enableMultitaskMode?: boolean, theme?: 'dark' | 'light'): void
28
+ export function setConfig(clientId: string, sandboxMode?: boolean, enableMultitaskMode?: boolean, theme?: 'dark' | 'light'): void
28
29
 
29
30
  /**
30
31
  * Launch miniapp by id with payload and custom data
31
32
  * @param {string} miniAppId Appboxo miniAppId
32
- * @param {string} payload Appboxo payload for Appboxo miniapp
33
33
  * @param {{ data?: object, theme?: 'dark' | 'light' | 'system', extraUrlParams?: object }} options Appboxo options: data for send to miniapp,
34
34
  * theme Miniapp theme (by default is value of "theme" argument in setConfig function)
35
35
  * */
36
36
 
37
37
  export function openMiniapp(
38
38
  miniAppId: string,
39
- payload: string,
40
39
  options?: {
41
40
  data?: object,
42
41
  theme?: 'dark' | 'light' | 'system',
package/index.js CHANGED
@@ -20,7 +20,9 @@ import lifecycleHooksListener from './js/lifecycleHooks'
20
20
  import customEvents from './js/customEvents'
21
21
  import mOpenMiniapp from './js/mOpenMiniapp'
22
22
  import mSetConfig from './js/mSetConfig'
23
+ import mSetAuthCode from './js/mSetAuthCode'
24
+ import paymentEvents from './js/paymentEvents'
23
25
 
24
- const { Rnappboxosdk: { sendCustomEvent, openMiniapp, setConfig, ...methods } } = NativeModules
26
+ const { Rnappboxosdk: { sendCustomEvent, sendPaymentEvent, openMiniapp, setConfig, ...methods } } = NativeModules
25
27
 
26
- export default { ...methods, lifecycleHooksListener, openMiniapp: mOpenMiniapp, setConfig: mSetConfig, customEvents }
28
+ export default { ...methods, lifecycleHooksListener, openMiniapp: mOpenMiniapp, setConfig: mSetConfig, customEvents, paymentEvents }
@@ -23,6 +23,7 @@ limitations under the License.
23
23
  @end
24
24
 
25
25
  #define APPBOXO_CUSTOM_EVENT @"appboxo_custom_events"
26
+ #define APPBOXO_PAYMENT_EVENT @"appboxo_payment_events"
26
27
  #define APPBOXO_MINIAPP_LIFECYCLE_EVENT @"appboxo_miniapp_lifecycle"
27
28
 
28
29
  @implementation Rnappboxosdk
@@ -30,7 +31,7 @@ limitations under the License.
30
31
  RCT_EXPORT_MODULE()
31
32
 
32
33
 
33
- RCT_EXPORT_METHOD(setConfig:(NSString *)clientId multitaskMode:(BOOL)multitaskMode theme:(NSString *)theme)
34
+ RCT_EXPORT_METHOD(setConfig:(NSString *)clientId sandboxMode:(BOOL)sandboxMode multitaskMode:(BOOL)multitaskMode theme:(NSString *)theme)
34
35
  {
35
36
  NSArray *themes = @[@"dark", @"light", @"system"];
36
37
 
@@ -40,13 +41,17 @@ RCT_EXPORT_METHOD(setConfig:(NSString *)clientId multitaskMode:(BOOL)multitaskMo
40
41
  globalTheme = (Theme) [themes indexOfObject:theme];
41
42
  };
42
43
 
43
- [[Appboxo shared] setConfig: [[Config alloc] initWithClientId: clientId theme: globalTheme]];
44
+ Config *config = [[Config alloc] initWithClientId: clientId theme: globalTheme];
45
+ config.sandboxMode = sandboxMode;
46
+
47
+ [[Appboxo shared] setConfig: config];
44
48
  }
45
49
 
46
- RCT_EXPORT_METHOD(openMiniapp:(NSString *)appId payload:(NSString *)payload data:(nullable NSDictionary<NSString *,id> *)data theme:(nullable NSString *)theme customUrlParams:(nullable NSDictionary<NSString *,id> *)customUrlParams)
50
+ RCT_EXPORT_METHOD(openMiniapp:(NSString *)appId data:(nullable NSDictionary<NSString *,id> *)data theme:(nullable NSString *)theme customUrlParams:(nullable NSDictionary<NSString *,id> *)customUrlParams)
47
51
  {
48
52
  dispatch_async(dispatch_get_main_queue(), ^{
49
- Miniapp *miniapp = [[Appboxo shared] getMiniappWithAppId: appId authPayload: payload data: data];
53
+ Miniapp *miniapp = [[Appboxo shared] getMiniappWithAppId: appId];
54
+ [miniapp setData: data];
50
55
  [miniapp setDelegate:self];
51
56
 
52
57
  MiniappConfig *miniappConfig = [[MiniappConfig alloc] initWithTheme: ThemeSystem];
@@ -64,6 +69,14 @@ RCT_EXPORT_METHOD(openMiniapp:(NSString *)appId payload:(NSString *)payload data
64
69
  });
65
70
  }
66
71
 
72
+ RCT_EXPORT_METHOD(setAuthCode:(NSString *)appId code:(NSString *)code)
73
+ {
74
+ dispatch_async(dispatch_get_main_queue(), ^{
75
+ Miniapp *miniapp = [[Appboxo shared] getMiniappWithAppId: appId];
76
+ [miniapp setAuthCode: code];
77
+ });
78
+ }
79
+
67
80
  RCT_EXPORT_METHOD(hideAllMiniApps)
68
81
  {
69
82
  dispatch_async(dispatch_get_main_queue(), ^{
@@ -82,10 +95,39 @@ RCT_EXPORT_METHOD(sendCustomEvent:(NSDictionary<NSString *,id> * _Nonnull)params
82
95
  {
83
96
  dispatch_async(dispatch_get_main_queue(), ^{
84
97
  NSString *appId = params[@"app_id"] != NULL ? params[@"app_id"] : @"";
85
- NSDictionary *customEvent = params[@"custom_event"] != NULL ? params[@"custom_event"] : @{};
98
+ NSDictionary<NSString *, id> *customEventParams = params[@"custom_event"];
99
+
100
+ CustomEvent *customEvent = [CustomEvent new];
101
+ customEvent.requestId = customEventParams[@"request_id"] != NULL ? (NSInteger) customEventParams[@"request_id"] : 0;
102
+ customEvent.type = customEventParams[@"type"] != NULL ? (NSString *) customEventParams[@"type"] : @"";
103
+ customEvent.errorType = customEventParams[@"error_type"] != NULL ? (NSString *) customEventParams[@"error_type"] : @"";
104
+ customEvent.payload = customEventParams[@"payload"] != NULL ? (NSDictionary<NSString *, id> *) customEventParams[@"payload"] : NULL;
105
+
86
106
  Miniapp *miniapp = [[Appboxo shared] getMiniappWithAppId:appId];
87
107
  if (miniapp != NULL) {
88
- [miniapp sendCustomEventWithParams:customEvent];
108
+ [miniapp sendCustomEvent:customEvent];
109
+ };
110
+ });
111
+ }
112
+
113
+ RCT_EXPORT_METHOD(sendPaymentEvent:(NSDictionary<NSString *,id> * _Nonnull)params)
114
+ {
115
+ dispatch_async(dispatch_get_main_queue(), ^{
116
+ NSString *appId = params[@"app_id"] != NULL ? params[@"app_id"] : @"";
117
+ NSDictionary<NSString *, id> *paymentEventParams = params[@"payment_event"];
118
+
119
+ PaymentData *paymentData = [PaymentData new];
120
+ paymentData.transactionToken = paymentEventParams[@"transaction_token"] != NULL ? (NSString *) paymentEventParams[@"transaction_token"] : @"";
121
+ paymentData.miniappOrderId = paymentEventParams[@"miniapp_order_id"] != NULL ? (NSString *) paymentEventParams[@"miniapp_order_id"] : @"";
122
+ paymentData.amount = paymentEventParams[@"amount"] != NULL ? [paymentEventParams[@"amount"] doubleValue] : 0;
123
+ paymentData.currency = paymentEventParams[@"currency"] != NULL ? (NSString *) paymentEventParams[@"currency"] : @"";
124
+ paymentData.status = paymentEventParams[@"status"] != NULL ? (NSString *) paymentEventParams[@"status"] : @"";
125
+ paymentData.hostappOrderId = paymentEventParams[@"hostapp_order_id"] != NULL ? (NSString *) paymentEventParams[@"hostapp_order_id"] : @"";
126
+ paymentData.extraParams = paymentEventParams[@"extra_params"] != NULL ? (NSDictionary<NSString *, id> *) paymentEventParams[@"extra_params"] : NULL;
127
+
128
+ Miniapp *miniapp = [[Appboxo shared] getMiniappWithAppId:appId];
129
+ if (miniapp != NULL) {
130
+ [miniapp sendPaymentEvent: paymentData];
89
131
  };
90
132
  });
91
133
  }
@@ -93,35 +135,46 @@ RCT_EXPORT_METHOD(sendCustomEvent:(NSDictionary<NSString *,id> * _Nonnull)params
93
135
 
94
136
  - (NSArray<NSString *> *)supportedEvents
95
137
  {
96
- return @[APPBOXO_CUSTOM_EVENT,APPBOXO_MINIAPP_LIFECYCLE_EVENT];
138
+ return @[APPBOXO_CUSTOM_EVENT, APPBOXO_PAYMENT_EVENT, APPBOXO_MINIAPP_LIFECYCLE_EVENT];
97
139
  }
98
140
 
99
- - (void)didReceiveCustomEventWithMiniapp:(Miniapp * _Nonnull)miniapp params:(NSDictionary<NSString *,id> * _Nonnull)params {
100
-
101
- NSMutableDictionary *customEvent = [NSMutableDictionary new];
141
+ - (void)didReceiveCustomEvent:(Miniapp *)miniapp customEvent:(CustomEvent *)customEvent {
142
+ NSMutableDictionary *customEventParams = [NSMutableDictionary new];
143
+ customEventParams[@"request_id"] = [NSNumber numberWithLong: customEvent.requestId];
144
+ customEventParams[@"type"] = customEvent.type;
145
+ customEventParams[@"error_type"] = customEvent.errorType;
102
146
 
103
- if (params[@"request_id"]) {
104
- customEvent[@"request_id"] = params[@"request_id"];
147
+ if (customEvent.payload) {
148
+ customEventParams[@"payload"] = customEvent.payload;
105
149
  }
106
150
 
107
- if (params[@"type"]) {
108
- customEvent[@"type"] = params[@"type"];
109
- }
151
+ NSDictionary *body = @{
152
+ @"app_id": miniapp.appId,
153
+ @"custom_event": customEventParams
154
+ };
110
155
 
111
- if (params[@"error_type"]) {
112
- customEvent[@"error_type"] = params[@"error_type"];
113
- }
156
+ [self sendEventWithName:APPBOXO_CUSTOM_EVENT body:body];
157
+ }
114
158
 
115
- if (params[@"payload"]) {
116
- customEvent[@"payload"] = params[@"payload"];
159
+ - (void)didReceivePaymentEvent:(Miniapp *)miniapp paymentData:(PaymentData *)paymentData {
160
+ NSMutableDictionary *paymentEventParams = [NSMutableDictionary new];
161
+ paymentEventParams[@"transaction_token"] = paymentData.transactionToken;
162
+ paymentEventParams[@"miniapp_order_id"] = paymentData.miniappOrderId;
163
+ paymentEventParams[@"amount"] = [NSNumber numberWithDouble:paymentData.amount];
164
+ paymentEventParams[@"currency"] = paymentData.currency;
165
+ paymentEventParams[@"status"] = paymentData.status;
166
+ paymentEventParams[@"hostapp_order_id"] = paymentData.hostappOrderId;
167
+
168
+ if (paymentData.extraParams) {
169
+ paymentEventParams[@"extra_params"] = paymentData.extraParams;
117
170
  }
118
171
 
119
172
  NSDictionary *body = @{
120
173
  @"app_id": miniapp.appId,
121
- @"custom_event": customEvent
174
+ @"payment_event": paymentEventParams
122
175
  };
123
176
 
124
- [self sendEventWithName:APPBOXO_CUSTOM_EVENT body:body];
177
+ [self sendEventWithName:APPBOXO_PAYMENT_EVENT body:body];
125
178
  }
126
179
 
127
180
  - (void)onLaunchMiniapp:(Miniapp *)miniapp {
@@ -170,4 +223,12 @@ RCT_EXPORT_METHOD(sendCustomEvent:(NSDictionary<NSString *,id> * _Nonnull)params
170
223
  [self sendEventWithName:APPBOXO_MINIAPP_LIFECYCLE_EVENT body:body];
171
224
  }
172
225
 
226
+ - (void)onAuthMiniapp:(Miniapp *)miniapp {
227
+ NSDictionary *body = @{
228
+ @"app_id": miniapp.appId,
229
+ @"lifecycle": @"onAuth"
230
+ };
231
+ [self sendEventWithName:APPBOXO_MINIAPP_LIFECYCLE_EVENT body:body];
232
+ }
233
+
173
234
  @end
@@ -1,12 +1,11 @@
1
1
  import { NativeModules } from 'react-native'
2
2
 
3
3
  /**
4
- * Launch miniapp by id with payload and custom data
4
+ * Launch miniapp by id and custom data
5
5
  * */
6
- const mOpenMiniapp = (miniAppId, payload, options) => {
6
+ const mOpenMiniapp = (miniAppId, options) => {
7
7
  NativeModules.Rnappboxosdk.openMiniapp(
8
8
  miniAppId,
9
- payload,
10
9
  options?.data,
11
10
  options?.theme === 'dark' || options?.theme === 'light' || options?.theme === 'system' ? options.theme : null,
12
11
  options?.extraUrlParams,
@@ -0,0 +1,13 @@
1
+ import { NativeModules } from 'react-native'
2
+
3
+ /**
4
+ * Set auth code
5
+ * */
6
+ const mAuthCode = (miniAppId, authCode) => {
7
+ NativeModules.Rnappboxosdk.setAuthCode(
8
+ miniAppId,
9
+ authCode,
10
+ )
11
+ }
12
+
13
+ export default mAuthCode
package/js/mSetConfig.js CHANGED
@@ -3,8 +3,8 @@ import { NativeModules } from 'react-native'
3
3
  /**
4
4
  * Miniapp theme (by default 'system')
5
5
  * */
6
- const mSetConfig = (clientId, enableMultitaskMode = true, theme = 'system') => {
7
- NativeModules.Rnappboxosdk.setConfig(clientId, enableMultitaskMode, theme === 'dark' || theme === 'light' ? theme : 'system')
6
+ const mSetConfig = (clientId, sandboxMode = false, enableMultitaskMode = true, theme = 'system') => {
7
+ NativeModules.Rnappboxosdk.setConfig(clientId, sandboxMode, enableMultitaskMode, theme === 'dark' || theme === 'light' ? theme : 'system')
8
8
  }
9
9
 
10
10
  export default mSetConfig
@@ -0,0 +1,36 @@
1
+ import { NativeEventEmitter, NativeModules } from 'react-native'
2
+
3
+ /**
4
+ * Appboxo custom events system for handle events from miniapp and send to miniapp.
5
+ * */
6
+ const paymentEvents = {
7
+
8
+ /**
9
+ * Subscribe to events from miniapp
10
+ * @param {function} eventHandler the custom event handler
11
+ * @param {function} errorHandler the custom event error handler
12
+ * @returns {function} unsubscribe events from miniapp
13
+ * */
14
+ subscribe: (eventHandler) => {
15
+ const appboxoPaymentEventEmitter = new NativeEventEmitter(NativeModules.Rnappboxosdk)
16
+ const appboxoEventListener =
17
+ appboxoPaymentEventEmitter.addListener('appboxo_payment_events', event => {
18
+ if (event.payment_event && event.app_id) {
19
+ eventHandler(event)
20
+ }
21
+ }
22
+ )
23
+ return () => appboxoEventListener.remove()
24
+ },
25
+
26
+ /**
27
+ * Send events to miniapp
28
+ * @param {AppboxoPaymentEvent} event to send to miniapp
29
+ * */
30
+ send: (event) => {
31
+ const { Rnappboxosdk: { sendPaymentEvent } } = NativeModules
32
+ sendPaymentEvent(event)
33
+ },
34
+ }
35
+
36
+ export default paymentEvents
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@appboxo/react-native-sdk",
3
3
  "title": "Appboxo react native sdk",
4
- "version": "1.0.33",
4
+ "version": "1.0.35",
5
5
  "description": "Appboxo react native sdk",
6
6
  "main": "index.js",
7
7
  "files": [
@@ -39,7 +39,7 @@
39
39
  "react-native": ">=0.60.0-rc.0 <1.0.x"
40
40
  },
41
41
  "devDependencies": {
42
- "react": "17.0.2",
43
- "react-native": "0.69.0"
42
+ "react": "18.2.0",
43
+ "react-native": "0.72.4"
44
44
  }
45
45
  }
@@ -22,7 +22,7 @@ Pod::Spec.new do |s|
22
22
  s.requires_arc = true
23
23
 
24
24
  s.dependency "React"
25
- s.dependency 'AppBoxoSDK', '1.3.37'
25
+ s.dependency 'AppBoxoSDK', '1.4.12'
26
26
  # ...
27
27
  # s.dependency "..."
28
28
  end
package/types.ts CHANGED
@@ -66,5 +66,6 @@ export interface LifecycleHooksCallbacks {
66
66
  onResume: (appId: string) => void
67
67
  onPause: (appId: string) => void
68
68
  onClose: (appId: string) => void
69
+ onAuth: (appId: string) => void
69
70
  onError: (appId: string, error: string) => void
70
71
  }