react-native-firework-sdk 1.2.0-beta.9 → 1.2.0
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/src/main/AndroidManifest.xml +0 -8
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FWNavigatorInterface.kt +2 -1
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FWVideoShoppingInterface.kt +2 -2
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FireworkSDKInterface.kt +2 -1
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWNavigatorModule.kt +7 -22
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWVideoShoppingModule.kt +4 -19
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FireworkSDKModule.kt +28 -9
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/pages/FWContainerActivity.kt +22 -10
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/utils/FWDataUtils.kt +119 -0
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/utils/FWEventUtils.kt +38 -3
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWBundleUtils.kt +86 -0
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWVideoPlayerUtils.kt +0 -1
- package/ios/FireworkSdk.xcodeproj/project.pbxproj +0 -4
- package/ios/Modules/FWNavigatorModule/FWNavigatorContainerViewController.swift +3 -11
- package/ios/Modules/FWNavigatorModule/FWNavigatorModule.m +2 -2
- package/ios/Modules/FWNavigatorModule/FWNavigatorModule.swift +20 -10
- package/ios/Modules/FWNavigatorModule/FWNavigatorProtocol.swift +2 -2
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule+CTA.swift +14 -6
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule.m +2 -1
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule.swift +12 -4
- package/ios/Modules/Shopping/CartViewController.swift +6 -1
- package/ios/Modules/Shopping/ShoppingModule.m +1 -2
- package/ios/Modules/Shopping/ShoppingModule.swift +10 -12
- package/lib/commonjs/FWNavigator.js +7 -13
- package/lib/commonjs/FWNavigator.js.map +1 -1
- package/lib/commonjs/FireworkSDK.js +24 -12
- package/lib/commonjs/FireworkSDK.js.map +1 -1
- package/lib/commonjs/VideoShopping.js +3 -16
- package/lib/commonjs/VideoShopping.js.map +1 -1
- package/lib/commonjs/index.js +0 -14
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/NewNativeContainerProps.js +2 -0
- package/lib/commonjs/models/NewNativeContainerProps.js.map +1 -0
- package/lib/commonjs/modules/FWNavigatorModule.js.map +1 -1
- package/lib/commonjs/modules/FireworkSDKModule.js.map +1 -1
- package/lib/commonjs/modules/ShoppingModule.js.map +1 -1
- package/lib/module/FWNavigator.js +8 -14
- package/lib/module/FWNavigator.js.map +1 -1
- package/lib/module/FireworkSDK.js +23 -11
- package/lib/module/FireworkSDK.js.map +1 -1
- package/lib/module/VideoShopping.js +3 -16
- package/lib/module/VideoShopping.js.map +1 -1
- package/lib/module/index.js +0 -7
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/NewNativeContainerProps.js +2 -0
- package/lib/module/models/NewNativeContainerProps.js.map +1 -0
- package/lib/module/modules/FWNavigatorModule.js.map +1 -1
- package/lib/module/modules/FireworkSDKModule.js.map +1 -1
- package/lib/module/modules/ShoppingModule.js.map +1 -1
- package/lib/typescript/FWNavigator.d.ts +8 -7
- package/lib/typescript/FireworkSDK.d.ts +11 -6
- package/lib/typescript/VideoShopping.d.ts +2 -9
- package/lib/typescript/index.d.ts +2 -1
- package/lib/typescript/models/NewNativeContainerProps.d.ts +6 -0
- package/lib/typescript/modules/FWNavigatorModule.d.ts +3 -1
- package/lib/typescript/modules/FireworkSDKModule.d.ts +2 -1
- package/lib/typescript/modules/ShoppingModule.d.ts +2 -2
- package/package.json +1 -1
- package/src/FWNavigator.tsx +12 -11
- package/src/FireworkSDK.ts +24 -20
- package/src/VideoShopping.ts +5 -17
- package/src/index.tsx +2 -15
- package/src/models/NewNativeContainerProps.ts +4 -0
- package/src/modules/FWNavigatorModule.ts +1 -1
- package/src/modules/FireworkSDKModule.ts +2 -1
- package/src/modules/ShoppingModule.ts +5 -2
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/pages/FWCustomCTALinkContentContainerActivity.kt +0 -55
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/pages/FWVideoShoppingCartActivity.kt +0 -43
- package/ios/Modules/FireworkSDKModule/FWCustomCTALinkContentContainerViewController.swift +0 -31
- package/lib/commonjs/components/CartContainer.js +0 -35
- package/lib/commonjs/components/CartContainer.js.map +0 -1
- package/lib/commonjs/components/CustomCTALinkContentContainer.js +0 -43
- package/lib/commonjs/components/CustomCTALinkContentContainer.js.map +0 -1
- package/lib/commonjs/components/NavigationContainer.js +0 -40
- package/lib/commonjs/components/NavigationContainer.js.map +0 -1
- package/lib/module/components/CartContainer.js +0 -18
- package/lib/module/components/CartContainer.js.map +0 -1
- package/lib/module/components/CustomCTALinkContentContainer.js +0 -26
- package/lib/module/components/CustomCTALinkContentContainer.js.map +0 -1
- package/lib/module/components/NavigationContainer.js +0 -23
- package/lib/module/components/NavigationContainer.js.map +0 -1
- package/lib/typescript/components/CartContainer.d.ts +0 -3
- package/lib/typescript/components/CustomCTALinkContentContainer.d.ts +0 -6
- package/lib/typescript/components/NavigationContainer.d.ts +0 -6
- package/src/components/CartContainer.tsx +0 -20
- package/src/components/CustomCTALinkContentContainer.tsx +0 -28
- package/src/components/NavigationContainer.tsx +0 -24
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// File.swift
|
|
3
3
|
// react-native-firework-sdk
|
|
4
4
|
//
|
|
5
|
-
// Created by
|
|
5
|
+
// Created by Big Bear Xiong on 2022/4/21.
|
|
6
6
|
//
|
|
7
7
|
|
|
8
8
|
import FireworkVideo
|
|
@@ -18,7 +18,7 @@ class FWNavigatorModule: RCTEventEmitter, FWNavigator {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
@objc(pushNativeContainer:resolver:rejecter:)
|
|
21
|
-
func pushNativeContainer(_
|
|
21
|
+
func pushNativeContainer(_ props: NSDictionary?, resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
|
22
22
|
#if DEBUG
|
|
23
23
|
let formatter = DateFormatter()
|
|
24
24
|
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
|
|
@@ -26,7 +26,12 @@ class FWNavigatorModule: RCTEventEmitter, FWNavigator {
|
|
|
26
26
|
#endif
|
|
27
27
|
|
|
28
28
|
DispatchQueue.main.async {
|
|
29
|
-
guard let
|
|
29
|
+
guard let props = props as? [String: Any] else {
|
|
30
|
+
resolver(false)
|
|
31
|
+
return
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
guard let appComponentName = gAppComponentName else {
|
|
30
35
|
resolver(false)
|
|
31
36
|
return
|
|
32
37
|
}
|
|
@@ -40,12 +45,14 @@ class FWNavigatorModule: RCTEventEmitter, FWNavigator {
|
|
|
40
45
|
self.sendEvent(withName: FWEventName.LogMessage.rawValue, body: ["message": "[iOS] Before creating containerViewController \(formatter.string(from: Date()))"])
|
|
41
46
|
#endif
|
|
42
47
|
|
|
43
|
-
let containerViewController = FWNavigatorContainerViewController(
|
|
48
|
+
let containerViewController = FWNavigatorContainerViewController()
|
|
44
49
|
|
|
45
50
|
#if DEBUG
|
|
46
51
|
self.sendEvent(withName: FWEventName.LogMessage.rawValue, body: ["message": "[iOS] After creating containerViewController \(formatter.string(from: Date()))"])
|
|
47
52
|
#endif
|
|
48
53
|
|
|
54
|
+
containerViewController.moduleName = appComponentName
|
|
55
|
+
containerViewController.properties = props
|
|
49
56
|
containerViewController.modalPresentationStyle = .fullScreen
|
|
50
57
|
|
|
51
58
|
#if DEBUG
|
|
@@ -65,13 +72,16 @@ class FWNavigatorModule: RCTEventEmitter, FWNavigator {
|
|
|
65
72
|
@objc(popNativeContainer:rejecter:)
|
|
66
73
|
func popNativeContainer(resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
|
67
74
|
DispatchQueue.main.async {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
75
|
+
if let presentedVC = RCTPresentedViewController() as? FWNavigatorContainerViewController {
|
|
76
|
+
presentedVC.dismiss(animated: true) {
|
|
77
|
+
resolver(true)
|
|
78
|
+
}
|
|
79
|
+
} else if let cartViewController = gCartViewController {
|
|
80
|
+
cartViewController.navigationController?.popViewController(animated: true)
|
|
81
|
+
gCartViewController = nil
|
|
74
82
|
resolver(true)
|
|
83
|
+
} else {
|
|
84
|
+
resolver(false)
|
|
75
85
|
}
|
|
76
86
|
}
|
|
77
87
|
}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
// FWNavigatorProtocol.swift
|
|
3
3
|
// react-native-firework-sdk
|
|
4
4
|
//
|
|
5
|
-
// Created by
|
|
5
|
+
// Created by Big Bear Xiong on 2022/4/21.
|
|
6
6
|
//
|
|
7
7
|
|
|
8
8
|
import Foundation
|
|
9
9
|
|
|
10
10
|
protocol FWNavigator {
|
|
11
|
-
func pushNativeContainer(_
|
|
11
|
+
func pushNativeContainer(_ props: NSDictionary?, resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock)
|
|
12
12
|
func popNativeContainer(resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock)
|
|
13
13
|
}
|
|
@@ -18,15 +18,23 @@ extension FireworkSDKModule: FireworkVideoCTADelegate {
|
|
|
18
18
|
|
|
19
19
|
sendEvent(withName: FWEventName.CustomCTAClick.rawValue, body: ["url": url.absoluteString])
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
var customCTALinkContentPageEnabled = false
|
|
22
|
+
if let moduleName = gAppComponentName,
|
|
23
|
+
let initialRouteName = customCTALinkContentPageRouteName,
|
|
24
|
+
let presentedVC = RCTPresentedViewController() {
|
|
25
|
+
customCTALinkContentPageEnabled = true
|
|
26
|
+
let containerViewController = FWNavigatorContainerViewController()
|
|
27
|
+
containerViewController.moduleName = moduleName
|
|
28
|
+
containerViewController.properties = [
|
|
29
|
+
"initialRouteName": initialRouteName,
|
|
30
|
+
"initialParams": ["url": url.absoluteString]
|
|
31
|
+
]
|
|
32
|
+
containerViewController.modalPresentationStyle = .fullScreen
|
|
33
|
+
presentedVC.present(containerViewController, animated: true) {
|
|
26
34
|
|
|
27
35
|
}
|
|
28
36
|
}
|
|
29
37
|
|
|
30
|
-
return customCTAClickEnabled ||
|
|
38
|
+
return customCTAClickEnabled || customCTALinkContentPageEnabled
|
|
31
39
|
}
|
|
32
40
|
}
|
|
@@ -13,9 +13,10 @@
|
|
|
13
13
|
_RCT_EXTERN_REMAP_METHOD(init, initializeSDK:(NSString * __nullable)userId, NO)
|
|
14
14
|
RCT_EXTERN_METHOD(openVideoPlayer:(NSString *)url config:(NSDictionary *)config)
|
|
15
15
|
RCT_EXTERN_METHOD(setCustomCTAClickEnabled:(BOOL)enabled)
|
|
16
|
-
RCT_EXTERN_METHOD(
|
|
16
|
+
RCT_EXTERN_METHOD(setCustomCTALinkContentPageRouteName:(NSString *)name resolver: (RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
17
17
|
RCT_EXTERN_METHOD(setShareBaseURL:(NSString *)url resolver: (RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
18
18
|
RCT_EXTERN_METHOD(setVideoPlaybackEventEnabled:(BOOL)enabled)
|
|
19
19
|
RCT_EXTERN_METHOD(setAdBadgeConfiguration:(NSDictionary *)config resolver: (RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
20
|
+
RCT_EXTERN_METHOD(setAppComponentName:(NSString *)name resolver: (RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
20
21
|
|
|
21
22
|
@end
|
|
@@ -11,13 +11,14 @@ import FireworkVideo
|
|
|
11
11
|
|
|
12
12
|
var gShareBaseURL: String?
|
|
13
13
|
var gAdBadgeConfiguration: AdBadgeConfiguration?
|
|
14
|
+
var gAppComponentName: String?
|
|
14
15
|
|
|
15
16
|
@objc(FireworkSDKModule)
|
|
16
17
|
class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
|
|
17
18
|
// var shareBaseURL: String?
|
|
18
19
|
var customCTAClickEnabled: Bool = false
|
|
19
20
|
|
|
20
|
-
var
|
|
21
|
+
var customCTALinkContentPageRouteName: String?
|
|
21
22
|
|
|
22
23
|
/// Decide whether to send video playback event to RN.
|
|
23
24
|
var enableVideoPlayBackEvent: Bool = false
|
|
@@ -73,9 +74,10 @@ class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
|
|
|
73
74
|
customCTAClickEnabled = enabled
|
|
74
75
|
}
|
|
75
76
|
|
|
76
|
-
@objc(
|
|
77
|
-
func
|
|
78
|
-
|
|
77
|
+
@objc(setCustomCTALinkContentPageRouteName:resolver:rejecter:)
|
|
78
|
+
func setCustomCTALinkContentPageRouteName(_ name: String, resolver: RCTPromiseResolveBlock, rejecter: RCTPromiseRejectBlock) {
|
|
79
|
+
customCTALinkContentPageRouteName = name
|
|
80
|
+
resolver([:])
|
|
79
81
|
}
|
|
80
82
|
|
|
81
83
|
@objc(setShareBaseURL:resolver:rejecter:)
|
|
@@ -94,6 +96,12 @@ class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
|
|
|
94
96
|
gAdBadgeConfiguration = RCTConvert.adBadgeConfiguration(config)
|
|
95
97
|
resolver([:])
|
|
96
98
|
}
|
|
99
|
+
|
|
100
|
+
@objc(setAppComponentName:resolver:rejecter:)
|
|
101
|
+
func setAppComponentName(_ name: String, resolver: RCTPromiseResolveBlock, rejecter: RCTPromiseRejectBlock) {
|
|
102
|
+
gAppComponentName = name
|
|
103
|
+
resolver([:])
|
|
104
|
+
}
|
|
97
105
|
|
|
98
106
|
// MARK: - FireworkVideoSDKDelegate
|
|
99
107
|
func fireworkVideoDidLoadSuccessfully() {
|
|
@@ -9,6 +9,7 @@ import UIKit
|
|
|
9
9
|
import FireworkVideo
|
|
10
10
|
|
|
11
11
|
class CartViewController: UIViewController, CartViewRepresentable {
|
|
12
|
+
var properties: [String: Any] = [:]
|
|
12
13
|
var indicator: UIActivityIndicatorView? = nil
|
|
13
14
|
var callbackId: Int!
|
|
14
15
|
var directShowCartPage = false
|
|
@@ -52,6 +53,10 @@ class CartViewController: UIViewController, CartViewRepresentable {
|
|
|
52
53
|
guard let cbId = noti.userInfo?["cbid"] as? Int, callbackId == cbId else {
|
|
53
54
|
return
|
|
54
55
|
}
|
|
56
|
+
|
|
57
|
+
if let properties = noti.userInfo?["properties"] as? [String: Any] {
|
|
58
|
+
self.properties = properties
|
|
59
|
+
}
|
|
55
60
|
|
|
56
61
|
if isViewLoaded {
|
|
57
62
|
directShowCustomCartView()
|
|
@@ -84,7 +89,7 @@ class CartViewController: UIViewController, CartViewRepresentable {
|
|
|
84
89
|
private func directShowCustomCartView() {
|
|
85
90
|
indicator?.stopAnimating()
|
|
86
91
|
|
|
87
|
-
let rctRootView = RCTRootView.init(bridge: RCTBridge.current(), moduleName: "
|
|
92
|
+
let rctRootView = RCTRootView.init(bridge: RCTBridge.current(), moduleName: gAppComponentName ?? "", initialProperties: properties)
|
|
88
93
|
view.addSubview(rctRootView)
|
|
89
94
|
rctRootView.translatesAutoresizingMaskIntoConstraints = false
|
|
90
95
|
|
|
@@ -15,7 +15,6 @@ RCT_EXTERN_METHOD(setCartItemCount:(int)itemCounts)
|
|
|
15
15
|
RCT_EXTERN_METHOD(updateVideoProducts:(NSArray *)products cbId:(nonnull NSNumber *)cbid)
|
|
16
16
|
RCT_EXTERN_METHOD(updateProductViewConfig:(NSDictionary *)config cbId:(nonnull NSNumber *)cbid)
|
|
17
17
|
RCT_EXTERN_METHOD(updateAddToCartStatus:(NSString *)res tips:(nullable NSString *)tips cbId:(nonnull NSNumber *)cbid)
|
|
18
|
-
RCT_EXTERN_METHOD(jumpToCartPage:(nonnull NSNumber *)cbid)
|
|
19
|
-
RCT_EXTERN_METHOD(exitCartPage)
|
|
18
|
+
RCT_EXTERN_METHOD(jumpToCartPage:(nonnull NSNumber *)cbid props:(NSDictionary *)props)
|
|
20
19
|
|
|
21
20
|
@end
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
import Foundation
|
|
9
9
|
import FireworkVideo
|
|
10
10
|
|
|
11
|
+
var gCartViewController: CartViewController?;
|
|
12
|
+
|
|
11
13
|
@objc(ShoppingModule)
|
|
12
14
|
class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate, CartViewControllerProviding {
|
|
13
15
|
|
|
@@ -112,21 +114,17 @@ class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate, CartViewCo
|
|
|
112
114
|
}
|
|
113
115
|
|
|
114
116
|
@objc
|
|
115
|
-
func jumpToCartPage(_ cbId: NSNumber) {
|
|
117
|
+
func jumpToCartPage(_ cbId: NSNumber, props: NSDictionary) {
|
|
116
118
|
DispatchQueue.main.async {
|
|
117
|
-
let
|
|
119
|
+
let properties: [String: Any] = (props as? [String: Any]) ?? [:]
|
|
120
|
+
let noti = Notification(name: Notification.Name(rawValue: "showCustomCartView"), object: nil, userInfo: [
|
|
121
|
+
"cbid": Int(truncating: cbId),
|
|
122
|
+
"properties": properties
|
|
123
|
+
])
|
|
118
124
|
NotificationCenter.default.post(noti)
|
|
119
125
|
}
|
|
120
126
|
}
|
|
121
127
|
|
|
122
|
-
@objc
|
|
123
|
-
func exitCartPage() {
|
|
124
|
-
DispatchQueue.main.async {
|
|
125
|
-
self.cartViewController?.navigationController?.popViewController(animated: true)
|
|
126
|
-
self.cartViewController = nil
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
|
|
130
128
|
// MARK: - FireworkVideoShoppingDelegate
|
|
131
129
|
func fireworkShopping(_ fireworkShopping: FireworkVideoShopping, willDisplayProductInfo productInfoViewConfigurator: ProductInfoViewConfigurable, forVideo video: VideoDetails) {
|
|
132
130
|
let callbackId = ShoppingModule.generateCallbackId()
|
|
@@ -154,8 +152,8 @@ class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate, CartViewCo
|
|
|
154
152
|
let callbackId = ShoppingModule.generateCallbackId()
|
|
155
153
|
sendEvent(withName: ShoppingEventName.ClickCartIcon.rawValue, body: ["callbackId": callbackId])
|
|
156
154
|
|
|
157
|
-
|
|
158
|
-
return
|
|
155
|
+
gCartViewController = CartViewController(callbackId: callbackId)
|
|
156
|
+
return gCartViewController!
|
|
159
157
|
}
|
|
160
158
|
}
|
|
161
159
|
|
|
@@ -32,26 +32,20 @@ class FWNavigator {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
constructor() {
|
|
35
|
-
_defineProperty(this, "_currentCallbackId", 0);
|
|
36
|
-
|
|
37
|
-
_defineProperty(this, "navigatorPages", new Map());
|
|
38
|
-
|
|
39
35
|
_FWNavigatorModule.FWNavigatorModuleEventEmitter.addListener(_FWEventName.FWEventName.LogMessage, () => {});
|
|
40
36
|
}
|
|
41
37
|
/**
|
|
42
|
-
* Push
|
|
43
|
-
*
|
|
44
|
-
* @
|
|
38
|
+
* Push a new native container. We will render your app component in new native container.
|
|
39
|
+
* Please set your app component name through FireworkSDK.getInstance().appComponentName before calling this method
|
|
40
|
+
* @param {FWNativeContainerProps} props We will pass the props to your app component.
|
|
41
|
+
* @returns {Promise<boolean>} The result of pushing RN page from native page.
|
|
45
42
|
*/
|
|
46
43
|
|
|
47
44
|
|
|
48
|
-
pushNativeContainer(
|
|
49
|
-
_FWLoggerUtil.default.log(`Enter
|
|
45
|
+
pushNativeContainer(props) {
|
|
46
|
+
_FWLoggerUtil.default.log(`Enter pushNewNativeContainer`);
|
|
50
47
|
|
|
51
|
-
|
|
52
|
-
const callbackId = `${this._currentCallbackId}`;
|
|
53
|
-
this.navigatorPages.set(callbackId, page);
|
|
54
|
-
return _FWNavigatorModule.default.pushNativeContainer(callbackId);
|
|
48
|
+
return _FWNavigatorModule.default.pushNativeContainer(props);
|
|
55
49
|
}
|
|
56
50
|
/**
|
|
57
51
|
* Pop top-most native container. The native container embed the RN page.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FWNavigator.tsx"],"names":["FWNavigator","getInstance","_instance","constructor","
|
|
1
|
+
{"version":3,"sources":["FWNavigator.tsx"],"names":["FWNavigator","getInstance","_instance","constructor","FWNavigatorModuleEventEmitter","addListener","FWEventName","LogMessage","pushNativeContainer","props","FWLoggerUtil","log","FWNavigatorModule","popNativeContainer"],"mappings":";;;;;;;AAAA;;AACA;;AAGA;;;;;;;;;;AAMA;AACA;AACA;AACA,MAAMA,WAAN,CAAkB;AAGS,SAAXC,WAAW,GAAgB;AACvC,QAAI,CAACD,WAAW,CAACE,SAAjB,EAA4B;AAC1BF,MAAAA,WAAW,CAACE,SAAZ,GAAwB,IAAIF,WAAJ,EAAxB;AACD;;AACD,WAAOA,WAAW,CAACE,SAAnB;AACD;;AAEOC,EAAAA,WAAW,GAAG;AACpBC,qDAA8BC,WAA9B,CAA0CC,yBAAYC,UAAtD,EAAkE,MAAM,CAAE,CAA1E;AACD;AAED;AACF;AACA;AACA;AACA;AACA;;;AACSC,EAAAA,mBAAmB,CAACC,KAAD,EAAkD;AAC1EC,0BAAaC,GAAb,CAAkB,8BAAlB;;AAEA,WAAOC,2BAAkBJ,mBAAlB,CAAsCC,KAAtC,CAAP;AACD;AAED;AACF;AACA;AACA;;;AACSI,EAAAA,kBAAkB,GAAqB;AAC5C,WAAOD,2BAAkBC,kBAAlB,EAAP;AACD;;AAhCe;;gBAAZb,W;;eAmCSA,W","sourcesContent":["import { FWEventName } from './models/FWEventName';\nimport FWNavigatorModule, {\n FWNavigatorModuleEventEmitter,\n} from './modules/FWNavigatorModule';\nimport FWLoggerUtil from './utils/FWLoggerUtil';\n\ntype FWNativeContainerProps = {\n [key: string]: any;\n};\n\n/**\n * You can use this class for pushing RN page from the native page.\n */\nclass FWNavigator {\n private static _instance?: FWNavigator;\n\n public static getInstance(): FWNavigator {\n if (!FWNavigator._instance) {\n FWNavigator._instance = new FWNavigator();\n }\n return FWNavigator._instance!;\n }\n\n private constructor() {\n FWNavigatorModuleEventEmitter.addListener(FWEventName.LogMessage, () => {});\n }\n\n /**\n * Push a new native container. We will render your app component in new native container.\n * Please set your app component name through FireworkSDK.getInstance().appComponentName before calling this method\n * @param {FWNativeContainerProps} props We will pass the props to your app component.\n * @returns {Promise<boolean>} The result of pushing RN page from native page.\n */\n public pushNativeContainer(props: FWNativeContainerProps): Promise<boolean> {\n FWLoggerUtil.log(`Enter pushNewNativeContainer`);\n\n return FWNavigatorModule.pushNativeContainer(props);\n }\n\n /**\n * Pop top-most native container. The native container embed the RN page.\n * @returns {Promise<boolean>} The result of poping top-most native container.\n */\n public popNativeContainer(): Promise<boolean> {\n return FWNavigatorModule.popNativeContainer();\n }\n}\n\nexport default FWNavigator;\n"]}
|
|
@@ -57,19 +57,16 @@ class FireworkSDK {
|
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
/**
|
|
60
|
-
* The custom
|
|
61
|
-
* We will show a native container to display the element returned by the render method.
|
|
60
|
+
* The custom CTA link content page route name.
|
|
62
61
|
*/
|
|
63
|
-
get
|
|
64
|
-
return this.
|
|
62
|
+
get customCTALinkContentPageRouteName() {
|
|
63
|
+
return this._customCTALinkContentPageRouteName;
|
|
65
64
|
}
|
|
66
65
|
|
|
67
|
-
set
|
|
68
|
-
|
|
66
|
+
set customCTALinkContentPageRouteName(value) {
|
|
67
|
+
this._customCTALinkContentPageRouteName = value;
|
|
69
68
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
_FireworkSDKModule.default.setCustomCTALinkContentRenderEnabled(value ? true : false);
|
|
69
|
+
_FireworkSDKModule.default.setCustomCTALinkContentPageRouteName(value !== null && value !== void 0 ? value : '');
|
|
73
70
|
}
|
|
74
71
|
|
|
75
72
|
/**
|
|
@@ -95,7 +92,7 @@ class FireworkSDK {
|
|
|
95
92
|
set shareBaseURL(value) {
|
|
96
93
|
this._shareBaseURL = value;
|
|
97
94
|
|
|
98
|
-
_FireworkSDKModule.default.setShareBaseURL(value).then(() => {
|
|
95
|
+
_FireworkSDKModule.default.setShareBaseURL(value !== null && value !== void 0 ? value : '').then(() => {
|
|
99
96
|
this.eventEmitter.emit(_FWEventName.FWEventName.ShareBaseURLUpdated);
|
|
100
97
|
});
|
|
101
98
|
}
|
|
@@ -110,11 +107,24 @@ class FireworkSDK {
|
|
|
110
107
|
set adBadgeConfiguration(value) {
|
|
111
108
|
this._adBadgeConfiguration = value;
|
|
112
109
|
|
|
113
|
-
_FireworkSDKModule.default.setAdBadgeConfiguration(value).then(() => {
|
|
110
|
+
_FireworkSDKModule.default.setAdBadgeConfiguration(value !== null && value !== void 0 ? value : {}).then(() => {
|
|
114
111
|
this.eventEmitter.emit(_FWEventName.FWEventName.AdBadgeConfigurationUpdated);
|
|
115
112
|
});
|
|
116
113
|
}
|
|
117
114
|
|
|
115
|
+
/**
|
|
116
|
+
* The app component name.
|
|
117
|
+
*/
|
|
118
|
+
get appComponentName() {
|
|
119
|
+
return this._appComponentName;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
set appComponentName(value) {
|
|
123
|
+
this._appComponentName = value;
|
|
124
|
+
|
|
125
|
+
_FireworkSDKModule.default.setAppComponentName(value !== null && value !== void 0 ? value : '');
|
|
126
|
+
}
|
|
127
|
+
|
|
118
128
|
get eventEmitter() {
|
|
119
129
|
return _FireworkSDKModule.FireworkSDKModuleEventEmitter;
|
|
120
130
|
}
|
|
@@ -163,7 +173,7 @@ class FireworkSDK {
|
|
|
163
173
|
|
|
164
174
|
_defineProperty(this, "_onCustomCTAClick", void 0);
|
|
165
175
|
|
|
166
|
-
_defineProperty(this, "
|
|
176
|
+
_defineProperty(this, "_customCTALinkContentPageRouteName", void 0);
|
|
167
177
|
|
|
168
178
|
_defineProperty(this, "_onVideoPlayback", void 0);
|
|
169
179
|
|
|
@@ -171,6 +181,8 @@ class FireworkSDK {
|
|
|
171
181
|
|
|
172
182
|
_defineProperty(this, "_adBadgeConfiguration", void 0);
|
|
173
183
|
|
|
184
|
+
_defineProperty(this, "_appComponentName", void 0);
|
|
185
|
+
|
|
174
186
|
this.eventEmitter.addListener(_FWEventName.FWEventName.SDKInit, event => {
|
|
175
187
|
_FWLoggerUtil.default.log(`Receive SDKInit event ${event === null || event === void 0 ? void 0 : event.error}`);
|
|
176
188
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FireworkSDK.ts"],"names":["FireworkSDK","onCustomCTAClick","_onCustomCTAClick","value","FWLoggerUtil","log","FireworkSDKModule","setCustomCTAClickEnabled","customCTALinkContentRender","_customCTALinkContentRender","setCustomCTALinkContentRenderEnabled","onVideoPlayback","_onVideoPlayback","setVideoPlaybackEventEnabled","shareBaseURL","_shareBaseURL","setShareBaseURL","then","eventEmitter","emit","FWEventName","ShareBaseURLUpdated","adBadgeConfiguration","_adBadgeConfiguration","setAdBadgeConfiguration","AdBadgeConfigurationUpdated","FireworkSDKModuleEventEmitter","shopping","VideoShopping","getInstance","liveStream","LiveStream","navigator","FWNavigator","_instance","constructor","addListener","SDKInit","event","error","onSDKInit","LogMessage","logNativeMessage","message","CustomCTAClick","url","VideoPlayback","eventName","VideoFeedClick","info","id","onVideoFeedClick","init","userId","ShoppingModule","LiveStreamModule","openVideoPlayer","config"],"mappings":"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","sourcesContent":["import type { NativeEventEmitter } from 'react-native';\nimport LiveStream from './LiveStream';\n\nimport type AdBadgeConfiguration from './models/AdBadgeConfiguration';\nimport { FWEventName } from './models/FWEventName';\nimport type {\n CustomCTAClickEvent,\n SDKInitEvent,\n VideoFeedClickEvent,\n VideoPlaybackEvent,\n} from './models/FWEvents';\nimport type VideoPlayerConfiguration from './models/VideoPlayerConfiguration';\nimport FireworkSDKModule, {\n FireworkSDKModuleEventEmitter,\n} from './modules/FireworkSDKModule';\nimport LiveStreamModule from './modules/LiveStreamModule';\nimport ShoppingModule from './modules/ShoppingModule';\nimport VideoShopping from './VideoShopping';\nimport FWNavigator from './FWNavigator';\nimport FWLoggerUtil from './utils/FWLoggerUtil';\n\nexport type SDKInitCallback = (event: SDKInitEvent) => void;\nexport type CustomCTAClickCallback = (event: CustomCTAClickEvent) => void;\nexport type CustomCTALinkContentRender = (\n event: CustomCTAClickEvent\n) => React.ReactNode | null;\nexport type VideoPlaybackCallback = (event: VideoPlaybackEvent) => void;\nexport type VideoFeedClickCallback = (event: VideoFeedClickEvent) => void;\n\n/**\n * Entry class of Firework SDK, which supports the sdk initialization and global configuration.\n */\nclass FireworkSDK {\n private static _instance?: FireworkSDK;\n\n /**\n * The callback of SDK initialization.\n */\n public onSDKInit?: SDKInitCallback;\n\n /**\n * the callback of clicking Video Feed.\n */\n public onVideoFeedClick?: VideoFeedClickCallback;\n\n /**\n * The callback of clicking custom CTA.\n */\n public get onCustomCTAClick(): CustomCTAClickCallback | undefined {\n return this._onCustomCTAClick;\n }\n public set onCustomCTAClick(value: CustomCTAClickCallback | undefined) {\n FWLoggerUtil.log(`Set onCustomCTAClick callback ${!!value}`);\n this._onCustomCTAClick = value;\n FireworkSDKModule.setCustomCTAClickEnabled(value ? true : false);\n }\n private _onCustomCTAClick: CustomCTAClickCallback | undefined;\n\n /**\n * The custom render method of CTA link content.\n * We will show a native container to display the element returned by the render method.\n */\n public get customCTALinkContentRender():\n | CustomCTALinkContentRender\n | undefined {\n return this._customCTALinkContentRender;\n }\n public set customCTALinkContentRender(\n value: CustomCTALinkContentRender | undefined\n ) {\n FWLoggerUtil.log(`Set customCTALinkContentRender ${!!value}`);\n this._customCTALinkContentRender = value;\n FireworkSDKModule.setCustomCTALinkContentRenderEnabled(\n value ? true : false\n );\n }\n private _customCTALinkContentRender: CustomCTALinkContentRender | undefined;\n\n /**\n * The callback of video playback.\n */\n public get onVideoPlayback(): VideoPlaybackCallback | undefined {\n return this._onVideoPlayback;\n }\n public set onVideoPlayback(value: VideoPlaybackCallback | undefined) {\n this._onVideoPlayback = value;\n FireworkSDKModule.setVideoPlaybackEventEnabled(value ? true : false);\n }\n private _onVideoPlayback?: VideoPlaybackCallback | undefined;\n\n /**\n * The share base URL of videos.\n */\n public get shareBaseURL(): string | undefined {\n return this._shareBaseURL;\n }\n public set shareBaseURL(value: string | undefined) {\n this._shareBaseURL = value;\n FireworkSDKModule.setShareBaseURL(value).then(() => {\n this.eventEmitter.emit(FWEventName.ShareBaseURLUpdated);\n });\n }\n private _shareBaseURL: string | undefined;\n\n /**\n * The configuration for ad badges.\n */\n public get adBadgeConfiguration(): AdBadgeConfiguration | undefined {\n return this._adBadgeConfiguration;\n }\n public set adBadgeConfiguration(value: AdBadgeConfiguration | undefined) {\n this._adBadgeConfiguration = value;\n FireworkSDKModule.setAdBadgeConfiguration(value).then(() => {\n this.eventEmitter.emit(FWEventName.AdBadgeConfigurationUpdated);\n });\n }\n private _adBadgeConfiguration?: AdBadgeConfiguration | undefined;\n\n private get eventEmitter(): NativeEventEmitter {\n return FireworkSDKModuleEventEmitter;\n }\n\n /**\n * Get VideoShopping object.\n */\n public get shopping(): VideoShopping {\n return VideoShopping.getInstance();\n }\n\n /**\n * Get LiveStream object.\n */\n public get liveStream(): LiveStream {\n return LiveStream.getInstance();\n }\n\n /**\n * Get FWNavigator object.\n */\n public get navigator(): FWNavigator {\n return FWNavigator.getInstance();\n }\n\n /**\n * Get global single instance of FireworkSDK class.\n * @returns FireworkSDK\n */\n public static getInstance() {\n if (!FireworkSDK._instance) {\n FireworkSDK._instance = new FireworkSDK();\n }\n\n return FireworkSDK._instance!;\n }\n\n private constructor() {\n this.eventEmitter.addListener(FWEventName.SDKInit, (event) => {\n FWLoggerUtil.log(`Receive SDKInit event ${event?.error}`);\n\n if (this.onSDKInit) {\n this.onSDKInit(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.LogMessage, (event) => {\n FWLoggerUtil.logNativeMessage(event.message);\n });\n\n this.eventEmitter.addListener(FWEventName.CustomCTAClick, (event) => {\n FWLoggerUtil.log(`Receive CustomCTAClick url ${event?.url}`);\n\n if (this.onCustomCTAClick) {\n this.onCustomCTAClick(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoPlayback, (event) => {\n FWLoggerUtil.log(`Receive VideoPlayback event ${event?.eventName}`);\n\n if (this.onVideoPlayback) {\n this.onVideoPlayback(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoFeedClick, (event) => {\n FWLoggerUtil.log(`Receive VideoFeedClick event ${event?.info.id}`);\n\n if (this.onVideoFeedClick) {\n this.onVideoFeedClick(event ?? {});\n }\n });\n }\n\n /**\n * Initializes Firework SDK.\n * @param {string?} userId An id to uniquely identify device or user.\n */\n public init(userId?: string) {\n FireworkSDKModule.init(userId);\n ShoppingModule.init();\n LiveStreamModule.init();\n }\n\n /**\n * Open Video URL.\n * @param {string} url\n * @param {VideoPlayerConfiguration} config\n */\n public openVideoPlayer(url: string, config?: VideoPlayerConfiguration) {\n FireworkSDKModule.openVideoPlayer(url, config ?? {});\n }\n}\n\nexport default FireworkSDK;\n"]}
|
|
1
|
+
{"version":3,"sources":["FireworkSDK.ts"],"names":["FireworkSDK","onCustomCTAClick","_onCustomCTAClick","value","FWLoggerUtil","log","FireworkSDKModule","setCustomCTAClickEnabled","customCTALinkContentPageRouteName","_customCTALinkContentPageRouteName","setCustomCTALinkContentPageRouteName","onVideoPlayback","_onVideoPlayback","setVideoPlaybackEventEnabled","shareBaseURL","_shareBaseURL","setShareBaseURL","then","eventEmitter","emit","FWEventName","ShareBaseURLUpdated","adBadgeConfiguration","_adBadgeConfiguration","setAdBadgeConfiguration","AdBadgeConfigurationUpdated","appComponentName","_appComponentName","setAppComponentName","FireworkSDKModuleEventEmitter","shopping","VideoShopping","getInstance","liveStream","LiveStream","navigator","FWNavigator","_instance","constructor","addListener","SDKInit","event","error","onSDKInit","LogMessage","logNativeMessage","message","CustomCTAClick","url","VideoPlayback","eventName","VideoFeedClick","info","id","onVideoFeedClick","init","userId","ShoppingModule","LiveStreamModule","openVideoPlayer","config"],"mappings":"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","sourcesContent":["import type { NativeEventEmitter } from 'react-native';\nimport LiveStream from './LiveStream';\n\nimport type AdBadgeConfiguration from './models/AdBadgeConfiguration';\nimport { FWEventName } from './models/FWEventName';\nimport type {\n CustomCTAClickEvent,\n SDKInitEvent,\n VideoFeedClickEvent,\n VideoPlaybackEvent,\n} from './models/FWEvents';\nimport type VideoPlayerConfiguration from './models/VideoPlayerConfiguration';\nimport FireworkSDKModule, {\n FireworkSDKModuleEventEmitter,\n} from './modules/FireworkSDKModule';\nimport LiveStreamModule from './modules/LiveStreamModule';\nimport ShoppingModule from './modules/ShoppingModule';\nimport VideoShopping from './VideoShopping';\nimport FWNavigator from './FWNavigator';\nimport FWLoggerUtil from './utils/FWLoggerUtil';\n\nexport type SDKInitCallback = (event: SDKInitEvent) => void;\nexport type CustomCTAClickCallback = (event: CustomCTAClickEvent) => void;\nexport type CustomCTALinkContentRender = (\n event: CustomCTAClickEvent\n) => React.ReactNode | null;\nexport type VideoPlaybackCallback = (event: VideoPlaybackEvent) => void;\nexport type VideoFeedClickCallback = (event: VideoFeedClickEvent) => void;\n\n/**\n * Entry class of Firework SDK, which supports the sdk initialization and global configuration.\n */\nclass FireworkSDK {\n private static _instance?: FireworkSDK;\n\n /**\n * The callback of SDK initialization.\n */\n public onSDKInit?: SDKInitCallback;\n\n /**\n * the callback of clicking Video Feed.\n */\n public onVideoFeedClick?: VideoFeedClickCallback;\n\n /**\n * The callback of clicking custom CTA.\n */\n public get onCustomCTAClick(): CustomCTAClickCallback | undefined {\n return this._onCustomCTAClick;\n }\n public set onCustomCTAClick(value: CustomCTAClickCallback | undefined) {\n FWLoggerUtil.log(`Set onCustomCTAClick callback ${!!value}`);\n this._onCustomCTAClick = value;\n FireworkSDKModule.setCustomCTAClickEnabled(value ? true : false);\n }\n private _onCustomCTAClick: CustomCTAClickCallback | undefined;\n\n /**\n * The custom CTA link content page route name.\n */\n public get customCTALinkContentPageRouteName(): string | undefined {\n return this._customCTALinkContentPageRouteName;\n }\n public set customCTALinkContentPageRouteName(value: string | undefined) {\n this._customCTALinkContentPageRouteName = value;\n FireworkSDKModule.setCustomCTALinkContentPageRouteName(value ?? '');\n }\n private _customCTALinkContentPageRouteName: string | undefined;\n\n /**\n * The callback of video playback.\n */\n public get onVideoPlayback(): VideoPlaybackCallback | undefined {\n return this._onVideoPlayback;\n }\n public set onVideoPlayback(value: VideoPlaybackCallback | undefined) {\n this._onVideoPlayback = value;\n FireworkSDKModule.setVideoPlaybackEventEnabled(value ? true : false);\n }\n private _onVideoPlayback?: VideoPlaybackCallback | undefined;\n\n /**\n * The share base URL of videos.\n */\n public get shareBaseURL(): string | undefined {\n return this._shareBaseURL;\n }\n public set shareBaseURL(value: string | undefined) {\n this._shareBaseURL = value;\n FireworkSDKModule.setShareBaseURL(value ?? '').then(() => {\n this.eventEmitter.emit(FWEventName.ShareBaseURLUpdated);\n });\n }\n private _shareBaseURL: string | undefined;\n\n /**\n * The configuration for ad badges.\n */\n public get adBadgeConfiguration(): AdBadgeConfiguration | undefined {\n return this._adBadgeConfiguration;\n }\n public set adBadgeConfiguration(value: AdBadgeConfiguration | undefined) {\n this._adBadgeConfiguration = value;\n FireworkSDKModule.setAdBadgeConfiguration(value ?? {}).then(() => {\n this.eventEmitter.emit(FWEventName.AdBadgeConfigurationUpdated);\n });\n }\n private _adBadgeConfiguration: AdBadgeConfiguration | undefined;\n\n /**\n * The app component name.\n */\n public get appComponentName(): string | undefined {\n return this._appComponentName;\n }\n public set appComponentName(value: string | undefined) {\n this._appComponentName = value;\n FireworkSDKModule.setAppComponentName(value ?? '');\n }\n private _appComponentName: string | undefined;\n\n private get eventEmitter(): NativeEventEmitter {\n return FireworkSDKModuleEventEmitter;\n }\n\n /**\n * Get VideoShopping object.\n */\n public get shopping(): VideoShopping {\n return VideoShopping.getInstance();\n }\n\n /**\n * Get LiveStream object.\n */\n public get liveStream(): LiveStream {\n return LiveStream.getInstance();\n }\n\n /**\n * Get FWNavigator object.\n */\n public get navigator(): FWNavigator {\n return FWNavigator.getInstance();\n }\n\n /**\n * Get global single instance of FireworkSDK class.\n * @returns FireworkSDK\n */\n public static getInstance() {\n if (!FireworkSDK._instance) {\n FireworkSDK._instance = new FireworkSDK();\n }\n\n return FireworkSDK._instance!;\n }\n\n private constructor() {\n this.eventEmitter.addListener(FWEventName.SDKInit, (event) => {\n FWLoggerUtil.log(`Receive SDKInit event ${event?.error}`);\n\n if (this.onSDKInit) {\n this.onSDKInit(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.LogMessage, (event) => {\n FWLoggerUtil.logNativeMessage(event.message);\n });\n\n this.eventEmitter.addListener(FWEventName.CustomCTAClick, (event) => {\n FWLoggerUtil.log(`Receive CustomCTAClick url ${event?.url}`);\n\n if (this.onCustomCTAClick) {\n this.onCustomCTAClick(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoPlayback, (event) => {\n FWLoggerUtil.log(`Receive VideoPlayback event ${event?.eventName}`);\n\n if (this.onVideoPlayback) {\n this.onVideoPlayback(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoFeedClick, (event) => {\n FWLoggerUtil.log(`Receive VideoFeedClick event ${event?.info.id}`);\n\n if (this.onVideoFeedClick) {\n this.onVideoFeedClick(event ?? {});\n }\n });\n }\n\n /**\n * Initializes Firework SDK.\n * @param {string?} userId An id to uniquely identify device or user.\n */\n public init(userId?: string) {\n FireworkSDKModule.init(userId);\n ShoppingModule.init();\n LiveStreamModule.init();\n }\n\n /**\n * Open Video URL.\n * @param {string} url\n * @param {VideoPlayerConfiguration} config\n */\n public openVideoPlayer(url: string, config?: VideoPlayerConfiguration) {\n FireworkSDKModule.openVideoPlayer(url, config ?? {});\n }\n}\n\nexport default FireworkSDK;\n"]}
|
|
@@ -79,8 +79,6 @@ class VideoShopping {
|
|
|
79
79
|
|
|
80
80
|
_defineProperty(this, "_cartIconVisible", true);
|
|
81
81
|
|
|
82
|
-
_defineProperty(this, "currentCartPage", void 0);
|
|
83
|
-
|
|
84
82
|
this.eventEmitter.addListener(_FWEventName.FWEventName.AddToCart, event => {
|
|
85
83
|
this.handleAddToCartEvent(event);
|
|
86
84
|
});
|
|
@@ -94,16 +92,6 @@ class VideoShopping {
|
|
|
94
92
|
this.handleWillDisplayProductEvent(event);
|
|
95
93
|
});
|
|
96
94
|
}
|
|
97
|
-
/**
|
|
98
|
-
* Exit Cart Page.
|
|
99
|
-
*
|
|
100
|
-
* The host app can call this method to exit their cart page.
|
|
101
|
-
*/
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
exitCartPage() {
|
|
105
|
-
_ShoppingModule.default.exitCartPage();
|
|
106
|
-
}
|
|
107
95
|
/**
|
|
108
96
|
*
|
|
109
97
|
* @param {number} count The number of items in the host app cart
|
|
@@ -130,11 +118,10 @@ class VideoShopping {
|
|
|
130
118
|
if (this.onClickCartIcon) {
|
|
131
119
|
const callbackId = event.callbackId;
|
|
132
120
|
delete event.callbackId;
|
|
133
|
-
const
|
|
134
|
-
this.currentCartPage = cartPage;
|
|
121
|
+
const props = await this.onClickCartIcon();
|
|
135
122
|
|
|
136
|
-
if (
|
|
137
|
-
_ShoppingModule.default.jumpToCartPage(callbackId);
|
|
123
|
+
if (callbackId) {
|
|
124
|
+
_ShoppingModule.default.jumpToCartPage(callbackId, props !== null && props !== void 0 ? props : {});
|
|
138
125
|
}
|
|
139
126
|
}
|
|
140
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["VideoShopping.ts"],"names":["VideoShopping","cartIconVisible","_cartIconVisible","value","ShoppingModule","setCartIconVisible","eventEmitter","ShoppingModuleEventEmitter","getInstance","_instance","constructor","addListener","FWEventName","AddToCart","event","handleAddToCartEvent","ClickCartIcon","handleClickCartIconEvent","UpdateProductDetails","handleUpdateProductDetailsEvent","WillDisplayProduct","handleWillDisplayProductEvent","
|
|
1
|
+
{"version":3,"sources":["VideoShopping.ts"],"names":["VideoShopping","cartIconVisible","_cartIconVisible","value","ShoppingModule","setCartIconVisible","eventEmitter","ShoppingModuleEventEmitter","getInstance","_instance","constructor","addListener","FWEventName","AddToCart","event","handleAddToCartEvent","ClickCartIcon","handleClickCartIconEvent","UpdateProductDetails","handleUpdateProductDetailsEvent","WillDisplayProduct","handleWillDisplayProductEvent","setCartItemCount","count","onAddToCart","callbackId","result","updateAddToCartStatus","res","tips","onClickCartIcon","props","jumpToCartPage","onUpdateProductDetails","productList","updateVideoProducts","onWillDisplayProduct","config","updateProductViewConfig"],"mappings":"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","sourcesContent":["import type { NativeEventEmitter } from 'react-native';\n\nimport type AddToCartResult from './models/AddToCartResult';\nimport type {\n AddToCartEvent,\n UpdateProductDetailsEvent,\n WillDisplayProductEvent,\n} from './models/FWEvents';\nimport { FWEventName } from './models/FWEventName';\nimport type Product from './models/Product';\nimport type ProductInfoViewConfiguration from './models/ProductInfoViewConfiguration';\nimport ShoppingModule, {\n ShoppingModuleEventEmitter,\n} from './modules/ShoppingModule';\nimport type { NewNativeContainerProps } from './models/NewNativeContainerProps';\n\nexport type AddToCartCallback = (\n event: AddToCartEvent\n) => Promise<AddToCartResult | undefined | null>;\n\nexport type ClickCartIconCallback = () => Promise<\n NewNativeContainerProps | undefined | null\n>;\n\nexport type UpdateProductDetailsCallback = (\n event: UpdateProductDetailsEvent\n) => Promise<Product[] | undefined | null>;\n\nexport type WillDisplayProductCallback = (\n event: WillDisplayProductEvent\n) => Promise<ProductInfoViewConfiguration | undefined | null>;\n\ntype CallbackInfo = { callbackId?: number | string };\n\n/**\n * The entry class of video shopping.\n */\nclass VideoShopping {\n private static _instance?: VideoShopping;\n\n /**\n * This callback is triggered when the user clicks the \"Add to cart\" button.\n *\n * The host app can return an AddToCartResult object to tell FireworkSDK the result of adding to cart.\n */\n public onAddToCart?: AddToCartCallback;\n\n /**\n * This callback is triggered when the user clicks the shopping cart icon.\n *\n * The host app can return a React.Node to integrate custom cart page to shopping flow.\n */\n public onClickCartIcon?: ClickCartIconCallback;\n\n /**\n * This callback is triggered when the video will be shown.\n *\n * The host app can return a Product list to update the latest product information.\n */\n public onUpdateProductDetails?: UpdateProductDetailsCallback;\n\n /**\n * This callback is triggered when the product will be shown.\n *\n * The host app can return a ProductInfoViewConfiguration object to configure \"Add to cart\" button style and cart icon style.\n */\n public onWillDisplayProduct?: WillDisplayProductCallback;\n\n /**\n * Defaults to true. You can hide the cart icon by setting this property to false.\n */\n public get cartIconVisible(): boolean {\n return this._cartIconVisible;\n }\n public set cartIconVisible(value: boolean) {\n this._cartIconVisible = value;\n ShoppingModule.setCartIconVisible(value);\n }\n private _cartIconVisible: boolean = true;\n\n private get eventEmitter(): NativeEventEmitter {\n return ShoppingModuleEventEmitter;\n }\n\n public static getInstance() {\n if (!VideoShopping._instance) {\n VideoShopping._instance = new VideoShopping();\n }\n\n return VideoShopping._instance!;\n }\n\n private constructor() {\n this.eventEmitter.addListener(FWEventName.AddToCart, (event) => {\n this.handleAddToCartEvent(event);\n });\n\n this.eventEmitter.addListener(FWEventName.ClickCartIcon, (event) => {\n this.handleClickCartIconEvent(event);\n });\n\n this.eventEmitter.addListener(FWEventName.UpdateProductDetails, (event) => {\n this.handleUpdateProductDetailsEvent(event);\n });\n\n this.eventEmitter.addListener(FWEventName.WillDisplayProduct, (event) => {\n this.handleWillDisplayProductEvent(event);\n });\n }\n\n /**\n *\n * @param {number} count The number of items in the host app cart\n */\n public setCartItemCount(count: number) {\n ShoppingModule.setCartItemCount(count);\n }\n\n private async handleAddToCartEvent(event: AddToCartEvent & CallbackInfo) {\n if (this.onAddToCart) {\n const callbackId = event.callbackId;\n delete event.callbackId;\n const result = await this.onAddToCart(event as AddToCartEvent);\n if (result) {\n ShoppingModule.updateAddToCartStatus(\n result.res,\n result.tips,\n callbackId!\n );\n }\n }\n }\n\n private async handleClickCartIconEvent(event: CallbackInfo) {\n if (this.onClickCartIcon) {\n const callbackId = event.callbackId;\n delete event.callbackId;\n const props = await this.onClickCartIcon();\n if (callbackId) {\n ShoppingModule.jumpToCartPage(callbackId, props ?? {});\n }\n }\n }\n\n private async handleUpdateProductDetailsEvent(\n event: UpdateProductDetailsEvent & CallbackInfo\n ) {\n if (this.onUpdateProductDetails) {\n const callbackId = event.callbackId;\n delete event.callbackId;\n const productList = await this.onUpdateProductDetails(\n event as UpdateProductDetailsEvent\n );\n if (productList) {\n ShoppingModule.updateVideoProducts(productList, callbackId!);\n }\n }\n }\n\n private async handleWillDisplayProductEvent(\n event: WillDisplayProductEvent & CallbackInfo\n ) {\n if (this.onWillDisplayProduct) {\n const callbackId = event.callbackId;\n delete event.callbackId;\n const config = await this.onWillDisplayProduct(\n event as WillDisplayProductEvent\n );\n if (config) {\n ShoppingModule.updateProductViewConfig(config, callbackId!);\n }\n }\n }\n}\n\nexport default VideoShopping;\n"]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -47,14 +47,6 @@ Object.defineProperty(exports, "VideoShopping", {
|
|
|
47
47
|
});
|
|
48
48
|
exports.default = void 0;
|
|
49
49
|
|
|
50
|
-
var _reactNative = require("react-native");
|
|
51
|
-
|
|
52
|
-
var _CartContainer = _interopRequireDefault(require("./components/CartContainer"));
|
|
53
|
-
|
|
54
|
-
var _CustomCTALinkContentContainer = _interopRequireDefault(require("./components/CustomCTALinkContentContainer"));
|
|
55
|
-
|
|
56
|
-
var _NavigationContainer = _interopRequireDefault(require("./components/NavigationContainer"));
|
|
57
|
-
|
|
58
50
|
var _VideoFeed = _interopRequireDefault(require("./components/VideoFeed"));
|
|
59
51
|
|
|
60
52
|
var _FireworkSDK = _interopRequireDefault(require("./FireworkSDK"));
|
|
@@ -73,12 +65,6 @@ var _VideoShopping = _interopRequireDefault(require("./VideoShopping"));
|
|
|
73
65
|
|
|
74
66
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
75
67
|
|
|
76
|
-
_reactNative.AppRegistry.registerComponent('FWShoppingCartPage', () => _CartContainer.default);
|
|
77
|
-
|
|
78
|
-
_reactNative.AppRegistry.registerComponent('FWNavigationContainer', () => _NavigationContainer.default);
|
|
79
|
-
|
|
80
|
-
_reactNative.AppRegistry.registerComponent('FWCustomCTALinkContentContainer', () => _CustomCTALinkContentContainer.default);
|
|
81
|
-
|
|
82
68
|
var _default = _FireworkSDK.default;
|
|
83
69
|
exports.default = _default;
|
|
84
70
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":["
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["FireworkSDK"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAQA;;AACA;;AAKA;;AAgBA;;AAEA;;AAiBA;;AAcA;;;;eAEeA,oB","sourcesContent":["import type { IVideoFeedProps, VideoFeedMode } from './components/VideoFeed';\nimport VideoFeed from './components/VideoFeed';\nimport type {\n CustomCTAClickCallback,\n CustomCTALinkContentRender,\n SDKInitCallback,\n VideoFeedClickCallback,\n VideoPlaybackCallback,\n} from './FireworkSDK';\nimport FireworkSDK from './FireworkSDK';\nimport FWNavigator from './FWNavigator';\nimport type {\n onLiveStreamChatEventCallback,\n onLiveStreamEventCallback,\n} from './LiveStream';\nimport LiveStream from './LiveStream';\nimport type AdBadgeConfiguration from './models/AdBadgeConfiguration';\nimport type { AdBadgeTextType } from './models/AdBadgeConfiguration';\nimport type AddToCartResult from './models/AddToCartResult';\nimport type FeedItemDetails from './models/FeedItemDetails';\nimport type FWError from './models/FWError';\nimport type {\n AddToCartEvent,\n CustomCTAClickEvent,\n LiveStreamChatEvent,\n LiveStreamEvent,\n SDKInitEvent,\n UpdateProductDetailsEvent,\n VideoPlaybackEvent,\n WillDisplayProductEvent,\n} from './models/FWEvents';\nimport LiveStreamChatEventName from './models/LiveStreamChatEventName';\nimport type LiveStreamEventDetails from './models/LiveStreamEventDetails';\nimport LiveStreamEventName from './models/LiveStreamEventName';\nimport type LiveStreamMessageDetails from './models/LiveStreamMessageDetails';\nimport type { NewNativeContainerProps } from './models/NewNativeContainerProps';\nimport type Product from './models/Product';\nimport type ProductInfoViewConfiguration from './models/ProductInfoViewConfiguration';\nimport type { AddToCartButtonConfiguration } from './models/ProductInfoViewConfiguration';\nimport type ProductUnit from './models/ProductUnit';\nimport type { ProductPrice } from './models/ProductUnit';\nimport type VideoFeedConfiguration from './models/VideoFeedConfiguration';\nimport type {\n VideoFeedPlayIconConfiguration,\n VideoFeedTitleConfiguration,\n VideoFeedTitlePosition,\n} from './models/VideoFeedConfiguration';\nimport type { VideoFeedSource } from './models/VideoFeedSource';\nimport type VideoPlaybackDetails from './models/VideoPlaybackDetails';\nimport type { VideoPlayerSize } from './models/VideoPlaybackDetails';\nimport VideoPlaybackEventName from './models/VideoPlaybackEventName';\nimport type VideoPlayerConfiguration from './models/VideoPlayerConfiguration';\nimport type {\n VideoLaunchBehavior,\n VideoPlayerCompleteAction,\n VideoPlayerCTAStyle,\n VideoPlayerStyle,\n} from './models/VideoPlayerConfiguration';\nimport type {\n AddToCartCallback,\n ClickCartIconCallback,\n UpdateProductDetailsCallback,\n WillDisplayProductCallback,\n} from './VideoShopping';\nimport VideoShopping from './VideoShopping';\n\nexport default FireworkSDK;\n\nexport {\n AdBadgeConfiguration,\n AdBadgeTextType,\n AddToCartButtonConfiguration,\n AddToCartCallback,\n AddToCartEvent,\n AddToCartResult,\n ClickCartIconCallback,\n CustomCTAClickCallback,\n CustomCTAClickEvent,\n CustomCTALinkContentRender,\n FeedItemDetails,\n FWError,\n FWNavigator,\n IVideoFeedProps,\n LiveStream,\n LiveStreamChatEvent,\n LiveStreamChatEventName,\n LiveStreamEvent,\n LiveStreamEventDetails,\n LiveStreamEventName,\n LiveStreamMessageDetails,\n NewNativeContainerProps,\n onLiveStreamChatEventCallback,\n onLiveStreamEventCallback,\n Product,\n ProductInfoViewConfiguration,\n ProductPrice,\n ProductUnit,\n SDKInitCallback,\n SDKInitEvent,\n UpdateProductDetailsCallback,\n UpdateProductDetailsEvent,\n VideoFeed,\n VideoFeedClickCallback,\n VideoFeedConfiguration,\n VideoFeedMode,\n VideoFeedPlayIconConfiguration,\n VideoFeedSource,\n VideoFeedTitleConfiguration,\n VideoFeedTitlePosition,\n VideoLaunchBehavior,\n VideoPlaybackCallback,\n VideoPlaybackDetails,\n VideoPlaybackEvent,\n VideoPlaybackEventName,\n VideoPlayerCompleteAction,\n VideoPlayerConfiguration,\n VideoPlayerCTAStyle,\n VideoPlayerSize,\n VideoPlayerStyle,\n VideoShopping,\n WillDisplayProductCallback,\n WillDisplayProductEvent,\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FWNavigatorModule.ts"],"names":["FWNavigatorModule","NativeModules","Proxy","get","Error","LINKING_ERROR","FWNavigatorModuleEventEmitter","NativeEventEmitter"],"mappings":";;;;;;;AAAA;;AAEA;;AAEA,MAAMA,iBAAiB,GAAGC,2BAAcD,iBAAd,GACtBC,2BAAcD,iBADQ,GAEtB,IAAIE,KAAJ,CACE,EADF,EAEE;AACEC,EAAAA,GAAG,GAAG;AACJ,UAAM,IAAIC,KAAJ,CAAUC,6BAAV,CAAN;AACD;;AAHH,CAFF,CAFJ;AAeA,MAAMC,6BAA6B,GAAG,IAAIC,+BAAJ,CAAuBP,iBAAvB,CAAtC;;eAEeA,iB","sourcesContent":["import { NativeEventEmitter, NativeModule } from 'react-native';\nimport { NativeModules } from 'react-native';\nimport { LINKING_ERROR } from '../constants/FWErrorMessage';\n\nconst FWNavigatorModule = NativeModules.FWNavigatorModule\n ? NativeModules.FWNavigatorModule\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\ninterface IFWNavigatorModule extends NativeModule {\n pushNativeContainer(
|
|
1
|
+
{"version":3,"sources":["FWNavigatorModule.ts"],"names":["FWNavigatorModule","NativeModules","Proxy","get","Error","LINKING_ERROR","FWNavigatorModuleEventEmitter","NativeEventEmitter"],"mappings":";;;;;;;AAAA;;AAEA;;AAEA,MAAMA,iBAAiB,GAAGC,2BAAcD,iBAAd,GACtBC,2BAAcD,iBADQ,GAEtB,IAAIE,KAAJ,CACE,EADF,EAEE;AACEC,EAAAA,GAAG,GAAG;AACJ,UAAM,IAAIC,KAAJ,CAAUC,6BAAV,CAAN;AACD;;AAHH,CAFF,CAFJ;AAeA,MAAMC,6BAA6B,GAAG,IAAIC,+BAAJ,CAAuBP,iBAAvB,CAAtC;;eAEeA,iB","sourcesContent":["import { NativeEventEmitter, NativeModule } from 'react-native';\nimport { NativeModules } from 'react-native';\nimport { LINKING_ERROR } from '../constants/FWErrorMessage';\n\nconst FWNavigatorModule = NativeModules.FWNavigatorModule\n ? NativeModules.FWNavigatorModule\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\ninterface IFWNavigatorModule extends NativeModule {\n pushNativeContainer(props: { [key: string]: any }): Promise<boolean>;\n popNativeContainer(): Promise<boolean>;\n}\n\nconst FWNavigatorModuleEventEmitter = new NativeEventEmitter(FWNavigatorModule);\nexport { FWNavigatorModuleEventEmitter };\nexport default FWNavigatorModule as IFWNavigatorModule;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FireworkSDKModule.ts"],"names":["FireworkSDKModule","NativeModules","FireworkSDK","Proxy","get","Error","LINKING_ERROR","FireworkSDKModuleEventEmitter","NativeEventEmitter"],"mappings":";;;;;;;AAAA;;AAIA;;AAGA,MAAMA,iBAAiB,GAAGC,2BAAcC,WAAd,GACtBD,2BAAcC,WADQ,GAEtB,IAAIC,KAAJ,CACE,EADF,EAEE;AACEC,EAAAA,GAAG,GAAG;AACJ,UAAM,IAAIC,KAAJ,CAAUC,6BAAV,CAAN;AACD;;AAHH,CAFF,CAFJ;
|
|
1
|
+
{"version":3,"sources":["FireworkSDKModule.ts"],"names":["FireworkSDKModule","NativeModules","FireworkSDK","Proxy","get","Error","LINKING_ERROR","FireworkSDKModuleEventEmitter","NativeEventEmitter"],"mappings":";;;;;;;AAAA;;AAIA;;AAGA,MAAMA,iBAAiB,GAAGC,2BAAcC,WAAd,GACtBD,2BAAcC,WADQ,GAEtB,IAAIC,KAAJ,CACE,EADF,EAEE;AACEC,EAAAA,GAAG,GAAG;AACJ,UAAM,IAAIC,KAAJ,CAAUC,6BAAV,CAAN;AACD;;AAHH,CAFF,CAFJ;AAsBA,MAAMC,6BAA6B,GAAG,IAAIC,+BAAJ,CAAuBR,iBAAvB,CAAtC;;eAEeA,iB","sourcesContent":["import { NativeEventEmitter, NativeModule } from 'react-native';\nimport { NativeModules } from 'react-native';\nimport type AdBadgeConfiguration from '../models/AdBadgeConfiguration';\n\nimport { LINKING_ERROR } from '../constants/FWErrorMessage';\nimport type VideoPlayerConfiguration from '../models/VideoPlayerConfiguration';\n\nconst FireworkSDKModule = NativeModules.FireworkSDK\n ? NativeModules.FireworkSDK\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\ninterface IFireworkSDKModule extends NativeModule {\n init(userId?: string): void;\n openVideoPlayer(url: string, config?: VideoPlayerConfiguration): void;\n setCustomCTAClickEnabled(enabled: boolean): void;\n setCustomCTALinkContentPageRouteName(name?: string): Promise<any>;\n setShareBaseURL(url?: string): Promise<any>;\n setVideoPlaybackEventEnabled(enabled: boolean): void;\n setAdBadgeConfiguration(config?: AdBadgeConfiguration): Promise<any>;\n setAppComponentName(name?: string): Promise<any>;\n}\n\nconst FireworkSDKModuleEventEmitter = new NativeEventEmitter(FireworkSDKModule);\nexport { FireworkSDKModuleEventEmitter };\nexport default FireworkSDKModule as IFireworkSDKModule;\n"]}
|