@tyrads.com/tyrads-sdk 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build.gradle +13 -13
- package/android/src/main/java/com/tyradssdk/TyradsSdkComposeViewManager.kt +100 -100
- package/android/src/main/java/com/tyradssdk/TyradsSdkPackage.kt +4 -1
- package/ios/Tyrads/Tyrads.swift +77 -6
- package/lib/commonjs/index.js +13 -8
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +13 -8
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/commonjs/src/index.d.ts +2 -1
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/index.d.ts +2 -1
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/readme.md +2 -0
- package/src/index.tsx +19 -13
package/android/build.gradle
CHANGED
@@ -81,13 +81,13 @@ android {
|
|
81
81
|
targetCompatibility JavaVersion.VERSION_1_8
|
82
82
|
}
|
83
83
|
|
84
|
-
buildFeatures {
|
85
|
-
|
86
|
-
}
|
84
|
+
// buildFeatures {
|
85
|
+
// compose true
|
86
|
+
// }
|
87
87
|
|
88
|
-
composeOptions {
|
89
|
-
|
90
|
-
}
|
88
|
+
// composeOptions {
|
89
|
+
// kotlinCompilerExtensionVersion '1.5.10'
|
90
|
+
// }
|
91
91
|
}
|
92
92
|
|
93
93
|
repositories {
|
@@ -103,15 +103,15 @@ dependencies {
|
|
103
103
|
//noinspection GradleDynamicVersion
|
104
104
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
105
105
|
|
106
|
-
implementation "androidx.activity:activity-compose:1.7.0"
|
107
|
-
implementation "androidx.compose.ui:ui:1.5.0"
|
108
|
-
implementation "androidx.compose.material:material:1.5.10"
|
109
|
-
implementation "androidx.compose.ui:ui-tooling-preview:1.5.10"
|
110
|
-
implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.6.1"
|
106
|
+
// implementation "androidx.activity:activity-compose:1.7.0"
|
107
|
+
// implementation "androidx.compose.ui:ui:1.5.0"
|
108
|
+
// implementation "androidx.compose.material:material:1.5.10"
|
109
|
+
// implementation "androidx.compose.ui:ui-tooling-preview:1.5.10"
|
110
|
+
// implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.6.1"
|
111
111
|
|
112
112
|
implementation "com.facebook.react:react-native:+"
|
113
|
-
implementation 'com.google.code.gson:gson
|
113
|
+
implementation 'com.google.code.gson:gson:+'
|
114
114
|
|
115
|
-
implementation 'com.github.tyrads-com:tyrads-sdk-android:
|
115
|
+
implementation 'com.github.tyrads-com:tyrads-sdk-android:ec58e18e37'
|
116
116
|
}
|
117
117
|
|
@@ -1,112 +1,112 @@
|
|
1
|
-
package com.tyradssdk
|
1
|
+
// package com.tyradssdk
|
2
2
|
|
3
|
-
import android.content.Context
|
4
|
-
import androidx.compose.runtime.Composable
|
5
|
-
import androidx.compose.ui.platform.ComposeView
|
6
|
-
import com.facebook.react.bridge.ReactContext
|
7
|
-
import com.facebook.react.uimanager.SimpleViewManager
|
8
|
-
import com.facebook.react.uimanager.ThemedReactContext
|
9
|
-
import com.facebook.react.uimanager.annotations.ReactProp
|
10
|
-
import com.tyrads.sdk.Tyrads
|
11
|
-
import android.util.Log
|
12
|
-
import androidx.compose.foundation.background
|
13
|
-
import androidx.compose.foundation.layout.Box
|
14
|
-
import androidx.compose.foundation.layout.fillMaxSize
|
15
|
-
import androidx.compose.material.Text
|
16
|
-
import androidx.compose.ui.Alignment
|
17
|
-
import androidx.compose.ui.Modifier
|
18
|
-
import androidx.compose.ui.graphics.Color
|
19
|
-
import androidx.compose.runtime.LaunchedEffect
|
20
|
-
import android.os.Handler
|
21
|
-
import android.os.Looper
|
3
|
+
// import android.content.Context
|
4
|
+
// import androidx.compose.runtime.Composable
|
5
|
+
// import androidx.compose.ui.platform.ComposeView
|
6
|
+
// import com.facebook.react.bridge.ReactContext
|
7
|
+
// import com.facebook.react.uimanager.SimpleViewManager
|
8
|
+
// import com.facebook.react.uimanager.ThemedReactContext
|
9
|
+
// import com.facebook.react.uimanager.annotations.ReactProp
|
10
|
+
// import com.tyrads.sdk.Tyrads
|
11
|
+
// import android.util.Log
|
12
|
+
// import androidx.compose.foundation.background
|
13
|
+
// import androidx.compose.foundation.layout.Box
|
14
|
+
// import androidx.compose.foundation.layout.fillMaxSize
|
15
|
+
// import androidx.compose.material.Text
|
16
|
+
// import androidx.compose.ui.Alignment
|
17
|
+
// import androidx.compose.ui.Modifier
|
18
|
+
// import androidx.compose.ui.graphics.Color
|
19
|
+
// import androidx.compose.runtime.LaunchedEffect
|
20
|
+
// import android.os.Handler
|
21
|
+
// import android.os.Looper
|
22
22
|
|
23
|
-
class ComposeViewManager : SimpleViewManager<ComposeView>() {
|
24
|
-
|
25
|
-
|
26
|
-
|
23
|
+
// class ComposeViewManager : SimpleViewManager<ComposeView>() {
|
24
|
+
// override fun getName(): String {
|
25
|
+
// return "TyradsSdkComposeView"
|
26
|
+
// }
|
27
27
|
|
28
|
-
|
29
|
-
|
28
|
+
// override fun createViewInstance(reactContext: ThemedReactContext): ComposeView {
|
29
|
+
// Log.d("bmd", "ComposeView created")
|
30
30
|
|
31
|
-
|
31
|
+
// val composeView = ComposeView(reactContext)
|
32
32
|
|
33
|
-
|
34
|
-
|
33
|
+
// Handler(Looper.getMainLooper()).post {
|
34
|
+
// Log.d("bmd", "Running setContent inside createViewInstance")
|
35
35
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
36
|
+
// composeView.setContent {
|
37
|
+
// Box(
|
38
|
+
// modifier = Modifier
|
39
|
+
// .fillMaxSize()
|
40
|
+
// .background(Color.Yellow),
|
41
|
+
// contentAlignment = Alignment.Center
|
42
|
+
// ) {
|
43
|
+
// Text("Test Compose", color = Color.Black)
|
44
|
+
// }
|
45
|
+
// }
|
46
|
+
// }
|
47
47
|
|
48
|
-
|
49
|
-
|
48
|
+
// return composeView
|
49
|
+
// }
|
50
50
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
51
|
+
// @ReactProp(name = "showMore")
|
52
|
+
// fun setShowMore(view: ComposeView, showMore: Boolean) {
|
53
|
+
// view.post {
|
54
|
+
// view.setContent {
|
55
|
+
// TopPremiumOffersComposable(showMore = showMore)
|
56
|
+
// }
|
57
|
+
// }
|
58
|
+
// }
|
59
59
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
60
|
+
// @ReactProp(name = "showMyOffers")
|
61
|
+
// fun setShowMyOffers(view: ComposeView, showMyOffers: Boolean) {
|
62
|
+
// view.post{
|
63
|
+
// view.setContent {
|
64
|
+
// TopPremiumOffersComposable(showMyOffers = showMyOffers)
|
65
|
+
// }
|
66
|
+
// }
|
67
|
+
// }
|
68
68
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
69
|
+
// @ReactProp(name = "showMyOffersEmptyView")
|
70
|
+
// fun setShowMyOffersEmptyView(view: ComposeView, showMyOffersEmptyView: Boolean) {
|
71
|
+
// view.post{
|
72
|
+
// view.setContent {
|
73
|
+
// TopPremiumOffersComposable(showMyOffersEmptyView = showMyOffersEmptyView)
|
74
|
+
// }
|
75
|
+
// }
|
76
|
+
// }
|
77
77
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
78
|
+
// @ReactProp(name = "viewStyle")
|
79
|
+
// fun setViewStyle(view: ComposeView, viewStyle: Int) {
|
80
|
+
// view.post{
|
81
|
+
// view.setContent {
|
82
|
+
// TopPremiumOffersComposable(style = viewStyle)
|
83
|
+
// }
|
84
|
+
// }
|
85
|
+
// }
|
86
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
|
-
}
|
87
|
+
// @Composable
|
88
|
+
// private fun TopPremiumOffersComposable(
|
89
|
+
// showMore: Boolean = true,
|
90
|
+
// showMyOffers: Boolean = true,
|
91
|
+
// showMyOffersEmptyView: Boolean = false,
|
92
|
+
// style: Int = 2
|
93
|
+
// ) {
|
94
|
+
// LaunchedEffect(Unit){
|
95
|
+
// Log.d("bmd", "TopPremiumOffersComposable called")
|
96
|
+
// }
|
97
|
+
// Box(
|
98
|
+
// modifier = Modifier
|
99
|
+
// .fillMaxSize()
|
100
|
+
// .background(Color.Yellow),
|
101
|
+
// contentAlignment = Alignment.Center
|
102
|
+
// ) {
|
103
|
+
// Text("Test Compose", color = Color.Black)
|
104
|
+
// }
|
105
|
+
// // Tyrads.getInstance().TopPremiumOffers(
|
106
|
+
// // showMore = showMore,
|
107
|
+
// // showMyOffers = showMyOffers,
|
108
|
+
// // showMyOffersEmptyView = showMyOffersEmptyView,
|
109
|
+
// // style = style
|
110
|
+
// // )
|
111
|
+
// }
|
112
|
+
// }
|
@@ -13,6 +13,9 @@ class TyradsSdkPackage : ReactPackage {
|
|
13
13
|
}
|
14
14
|
|
15
15
|
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
|
16
|
-
return
|
16
|
+
return emptyList()
|
17
17
|
}
|
18
|
+
// override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
|
19
|
+
// return listOf(ComposeViewManager())
|
20
|
+
// }
|
18
21
|
}
|
package/ios/Tyrads/Tyrads.swift
CHANGED
@@ -7,7 +7,7 @@ import WebKit
|
|
7
7
|
|
8
8
|
|
9
9
|
/// The TyradsSdk class provides methods for configuring the SDK and displaying offers.
|
10
|
-
public class Tyrads {
|
10
|
+
public class Tyrads : NSObject {
|
11
11
|
/// Shared instance of the TyradsSdk.
|
12
12
|
public static let instance = Tyrads()
|
13
13
|
|
@@ -172,13 +172,25 @@ public class Tyrads {
|
|
172
172
|
switch launchMode {
|
173
173
|
case 1, 2:
|
174
174
|
DispatchQueue.main.async {
|
175
|
-
let
|
176
|
-
|
177
|
-
|
175
|
+
let config = WKWebViewConfiguration()
|
176
|
+
let userContentController = WKUserContentController()
|
177
|
+
|
178
|
+
userContentController.add(self, name: "clickHandler")
|
179
|
+
config.userContentController = userContentController
|
180
|
+
|
181
|
+
let webView = WKWebView(frame: UIScreen.main.bounds, configuration: config)
|
182
|
+
webView.navigationDelegate = self
|
183
|
+
|
184
|
+
if #available(iOS 16.4, *) {
|
185
|
+
webView.isInspectable = true
|
186
|
+
}
|
187
|
+
|
178
188
|
let viewController = UIViewController()
|
179
189
|
viewController.view = webView
|
180
|
-
viewController.modalPresentationStyle = .fullScreen
|
181
|
-
|
190
|
+
viewController.modalPresentationStyle = .fullScreen
|
191
|
+
|
192
|
+
webView.load(URLRequest(url: url))
|
193
|
+
|
182
194
|
if let rootViewController = UIApplication.shared.windows.first?.rootViewController {
|
183
195
|
rootViewController.present(viewController, animated: true, completion: nil)
|
184
196
|
}
|
@@ -197,3 +209,62 @@ public class Tyrads {
|
|
197
209
|
}
|
198
210
|
}
|
199
211
|
}
|
212
|
+
|
213
|
+
|
214
|
+
extension Tyrads: WKScriptMessageHandler {
|
215
|
+
public func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
|
216
|
+
guard message.name == "clickHandler",
|
217
|
+
let messageDict = message.body as? [String: Any] else {
|
218
|
+
return
|
219
|
+
}
|
220
|
+
print("Message data: \(messageDict)")
|
221
|
+
|
222
|
+
if let action = messageDict["action"] as? String {
|
223
|
+
switch action {
|
224
|
+
case "closeWebview":
|
225
|
+
DispatchQueue.main.async {
|
226
|
+
UIApplication.shared.windows.first?.rootViewController?.dismiss(animated: true)
|
227
|
+
}
|
228
|
+
|
229
|
+
case "changeLanguage":
|
230
|
+
if let langCode = messageDict["languageCode"] as? String {
|
231
|
+
// Handle language change
|
232
|
+
self.currentLanguage = langCode
|
233
|
+
// Notify any observers if needed
|
234
|
+
}
|
235
|
+
|
236
|
+
default:
|
237
|
+
print("Unknown command: \(action)")
|
238
|
+
}
|
239
|
+
}
|
240
|
+
}
|
241
|
+
}
|
242
|
+
|
243
|
+
extension Tyrads: WKNavigationDelegate {
|
244
|
+
public func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
|
245
|
+
let js = """
|
246
|
+
window.addEventListener('message', (event) => {
|
247
|
+
try {
|
248
|
+
const message = typeof event.data === 'string'
|
249
|
+
? JSON.parse(event.data)
|
250
|
+
: event.data;
|
251
|
+
if (message && message.command === 'webview_command') {
|
252
|
+
window.webkit.messageHandlers.clickHandler.postMessage({
|
253
|
+
command: message.command,
|
254
|
+
action: message.action,
|
255
|
+
languageCode: message.languageCode
|
256
|
+
});
|
257
|
+
}
|
258
|
+
} catch (error) {
|
259
|
+
console.log('Message handling error:', error);
|
260
|
+
}
|
261
|
+
});
|
262
|
+
"""
|
263
|
+
|
264
|
+
webView.evaluateJavaScript(js) { _, error in
|
265
|
+
if let error = error {
|
266
|
+
print("JavaScript injection failed: \(error)")
|
267
|
+
}
|
268
|
+
}
|
269
|
+
}
|
270
|
+
}
|
package/lib/commonjs/index.js
CHANGED
@@ -27,17 +27,20 @@ const Tyrads = {
|
|
27
27
|
},
|
28
28
|
loginUser: async userId => {
|
29
29
|
try {
|
30
|
-
|
30
|
+
const data = await TyradsSdk.loginUser(userId);
|
31
31
|
console.log("data from login: ", data);
|
32
32
|
if (typeof data === "object") {
|
33
|
-
|
33
|
+
await (0, _storage.saveData)('apiHeaders', JSON.stringify(data));
|
34
|
+
await (0, _storage.saveData)('language', data.languageCode);
|
35
|
+
} else if (typeof data === "string") {
|
36
|
+
await (0, _storage.saveData)('apiHeaders', data);
|
37
|
+
await (0, _storage.saveData)('language', JSON.parse(data).languageCode);
|
34
38
|
}
|
35
|
-
|
36
|
-
await (0, _storage.saveData)('language', JSON.parse(data).languageCode);
|
39
|
+
return data;
|
37
40
|
} catch (err) {
|
38
41
|
console.log(`error from login: ${err}`);
|
42
|
+
return null;
|
39
43
|
}
|
40
|
-
return TyradsSdk.loginUser(userId);
|
41
44
|
},
|
42
45
|
showOffers: ({
|
43
46
|
launchMode = 3,
|
@@ -54,12 +57,14 @@ const Tyrads = {
|
|
54
57
|
showMore = true,
|
55
58
|
showMyOffers = true,
|
56
59
|
showMyOffersEmptyView = false,
|
57
|
-
viewStyle = 1
|
60
|
+
viewStyle = 1,
|
61
|
+
launchMode = 2
|
58
62
|
} = {}) => {
|
59
63
|
const handleNavigation = (route, campaignID) => {
|
60
64
|
Tyrads.showOffers({
|
61
|
-
route,
|
62
|
-
campaignID
|
65
|
+
route: route,
|
66
|
+
campaignID: campaignID,
|
67
|
+
launchMode: launchMode
|
63
68
|
});
|
64
69
|
};
|
65
70
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactI18next.I18nextProvider, {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_top_offers","_interopRequireDefault","_storage","_reactI18next","_i18n","_jsxRuntime","e","__esModule","default","LINKING_ERROR","Platform","select","ios","TyradsSdk","NativeModules","Proxy","get","Error","Tyrads","init","apiKey","apiSecret","loginUser","userId","data","console","log","JSON","stringify","
|
1
|
+
{"version":3,"names":["_reactNative","require","_top_offers","_interopRequireDefault","_storage","_reactI18next","_i18n","_jsxRuntime","e","__esModule","default","LINKING_ERROR","Platform","select","ios","TyradsSdk","NativeModules","Proxy","get","Error","Tyrads","init","apiKey","apiSecret","loginUser","userId","data","console","log","saveData","JSON","stringify","languageCode","parse","err","showOffers","launchMode","route","campaignID","OS","topPremiumOffers","showMore","showMyOffers","showMyOffersEmptyView","viewStyle","handleNavigation","jsx","I18nextProvider","i18n","children","View","style","flex","justifyContent","alignItems","onNavigate","_default","exports"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
@@ -23,17 +23,20 @@ const Tyrads = {
|
|
23
23
|
},
|
24
24
|
loginUser: async userId => {
|
25
25
|
try {
|
26
|
-
|
26
|
+
const data = await TyradsSdk.loginUser(userId);
|
27
27
|
console.log("data from login: ", data);
|
28
28
|
if (typeof data === "object") {
|
29
|
-
|
29
|
+
await saveData('apiHeaders', JSON.stringify(data));
|
30
|
+
await saveData('language', data.languageCode);
|
31
|
+
} else if (typeof data === "string") {
|
32
|
+
await saveData('apiHeaders', data);
|
33
|
+
await saveData('language', JSON.parse(data).languageCode);
|
30
34
|
}
|
31
|
-
|
32
|
-
await saveData('language', JSON.parse(data).languageCode);
|
35
|
+
return data;
|
33
36
|
} catch (err) {
|
34
37
|
console.log(`error from login: ${err}`);
|
38
|
+
return null;
|
35
39
|
}
|
36
|
-
return TyradsSdk.loginUser(userId);
|
37
40
|
},
|
38
41
|
showOffers: ({
|
39
42
|
launchMode = 3,
|
@@ -50,12 +53,14 @@ const Tyrads = {
|
|
50
53
|
showMore = true,
|
51
54
|
showMyOffers = true,
|
52
55
|
showMyOffersEmptyView = false,
|
53
|
-
viewStyle = 1
|
56
|
+
viewStyle = 1,
|
57
|
+
launchMode = 2
|
54
58
|
} = {}) => {
|
55
59
|
const handleNavigation = (route, campaignID) => {
|
56
60
|
Tyrads.showOffers({
|
57
|
-
route,
|
58
|
-
campaignID
|
61
|
+
route: route,
|
62
|
+
campaignID: campaignID,
|
63
|
+
launchMode: launchMode
|
59
64
|
});
|
60
65
|
};
|
61
66
|
return /*#__PURE__*/_jsx(I18nextProvider, {
|
package/lib/module/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","View","TopOffers","saveData","I18nextProvider","i18n","jsx","_jsx","LINKING_ERROR","select","ios","default","TyradsSdk","Proxy","get","Error","Tyrads","init","apiKey","apiSecret","loginUser","userId","data","console","log","JSON","stringify","
|
1
|
+
{"version":3,"names":["NativeModules","Platform","View","TopOffers","saveData","I18nextProvider","i18n","jsx","_jsx","LINKING_ERROR","select","ios","default","TyradsSdk","Proxy","get","Error","Tyrads","init","apiKey","apiSecret","loginUser","userId","data","console","log","JSON","stringify","languageCode","parse","err","showOffers","launchMode","route","campaignID","OS","topPremiumOffers","showMore","showMyOffers","showMyOffersEmptyView","viewStyle","handleNavigation","children","style","flex","justifyContent","alignItems","onNavigate"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
@@ -6,11 +6,12 @@ declare const Tyrads: {
|
|
6
6
|
route?: string;
|
7
7
|
campaignID?: number;
|
8
8
|
}) => any;
|
9
|
-
topPremiumOffers: ({ showMore, showMyOffers, showMyOffersEmptyView, viewStyle, }?: {
|
9
|
+
topPremiumOffers: ({ showMore, showMyOffers, showMyOffersEmptyView, viewStyle, launchMode, }?: {
|
10
10
|
showMore?: boolean;
|
11
11
|
showMyOffers?: boolean;
|
12
12
|
showMyOffersEmptyView?: boolean;
|
13
13
|
viewStyle?: number;
|
14
|
+
launchMode?: number;
|
14
15
|
}) => import("react/jsx-runtime").JSX.Element;
|
15
16
|
};
|
16
17
|
export default Tyrads;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AA2BA,QAAA,MAAM,MAAM;mBACK,MAAM,aAAa,MAAM;wBAGd,MAAM;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AA2BA,QAAA,MAAM,MAAM;mBACK,MAAM,aAAa,MAAM;wBAGd,MAAM;sDAwB7B;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;mGAa5D;QACD,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB;CAkBF,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
@@ -6,11 +6,12 @@ declare const Tyrads: {
|
|
6
6
|
route?: string;
|
7
7
|
campaignID?: number;
|
8
8
|
}) => any;
|
9
|
-
topPremiumOffers: ({ showMore, showMyOffers, showMyOffersEmptyView, viewStyle, }?: {
|
9
|
+
topPremiumOffers: ({ showMore, showMyOffers, showMyOffersEmptyView, viewStyle, launchMode, }?: {
|
10
10
|
showMore?: boolean;
|
11
11
|
showMyOffers?: boolean;
|
12
12
|
showMyOffersEmptyView?: boolean;
|
13
13
|
viewStyle?: number;
|
14
|
+
launchMode?: number;
|
14
15
|
}) => import("react/jsx-runtime").JSX.Element;
|
15
16
|
};
|
16
17
|
export default Tyrads;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AA2BA,QAAA,MAAM,MAAM;mBACK,MAAM,aAAa,MAAM;wBAGd,MAAM;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AA2BA,QAAA,MAAM,MAAM;mBACK,MAAM,aAAa,MAAM;wBAGd,MAAM;sDAwB7B;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;mGAa5D;QACD,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB;CAkBF,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/package.json
CHANGED
package/readme.md
CHANGED
package/src/index.tsx
CHANGED
@@ -29,22 +29,26 @@ const Tyrads = {
|
|
29
29
|
init: (apiKey: string, apiSecret: string) => {
|
30
30
|
return TyradsSdk.init(apiKey, apiSecret);
|
31
31
|
},
|
32
|
-
loginUser: async (userId: string) =>{
|
33
|
-
try{
|
34
|
-
|
35
|
-
console.log("data from login: ",data);
|
36
|
-
|
37
|
-
if(typeof data === "object"){
|
38
|
-
|
32
|
+
loginUser: async (userId: string) => {
|
33
|
+
try {
|
34
|
+
const data = await TyradsSdk.loginUser(userId);
|
35
|
+
console.log("data from login: ", data);
|
36
|
+
|
37
|
+
if (typeof data === "object") {
|
38
|
+
await saveData('apiHeaders', JSON.stringify(data));
|
39
|
+
await saveData('language', data.languageCode);
|
40
|
+
} else if (typeof data === "string") {
|
41
|
+
await saveData('apiHeaders', data);
|
42
|
+
await saveData('language', JSON.parse(data).languageCode);
|
39
43
|
}
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
}catch (err){
|
44
|
+
|
45
|
+
return data;
|
46
|
+
} catch (err) {
|
44
47
|
console.log(`error from login: ${err}`);
|
48
|
+
return null;
|
45
49
|
}
|
46
|
-
return TyradsSdk.loginUser(userId);
|
47
50
|
},
|
51
|
+
|
48
52
|
showOffers: ({
|
49
53
|
launchMode = 3,
|
50
54
|
route,
|
@@ -61,14 +65,16 @@ const Tyrads = {
|
|
61
65
|
showMyOffers = true,
|
62
66
|
showMyOffersEmptyView = false,
|
63
67
|
viewStyle = 1,
|
68
|
+
launchMode = 2,
|
64
69
|
}: {
|
65
70
|
showMore?: boolean;
|
66
71
|
showMyOffers?: boolean;
|
67
72
|
showMyOffersEmptyView?: boolean;
|
68
73
|
viewStyle?: number;
|
74
|
+
launchMode?: number;
|
69
75
|
} = {}) => {
|
70
76
|
const handleNavigation = (route?: string, campaignID?: number) => {
|
71
|
-
Tyrads.showOffers({ route, campaignID });
|
77
|
+
Tyrads.showOffers({ route: route, campaignID: campaignID, launchMode: launchMode});
|
72
78
|
};
|
73
79
|
return (
|
74
80
|
<I18nextProvider i18n={i18n}>
|