react-native-firework-sdk 1.0.4 → 1.1.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/LICENSE +202 -0
- package/README.md +2 -40
- package/android/build.gradle +6 -3
- package/android/gradle.properties +2 -1
- package/android/proguard-rules.pro +22 -0
- package/android/publish.gradle +4 -3
- package/android/settings.gradle +1 -0
- package/android/src/main/AndroidManifest.xml +5 -2
- package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/FWVideoFeed.kt +226 -0
- package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge}/constants/FWCommandConstant.kt +1 -1
- package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge}/constants/FWVideoPlayerConstant.kt +13 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/FWAdBadgeConfigModel.kt +9 -0
- package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge}/models/FWEventName.kt +10 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/FWLiveStreamEventDetailsModel.kt +9 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWLiveStreamMessageDetailsModel.kt +11 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedConfigModel.kt +28 -0
- package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge}/models/FWVideoFeedItemDetailsModel.kt +2 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedModel.kt +7 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedPropsModel.kt +18 -0
- package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge}/models/FWVideoFeedSource.kt +2 -1
- package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge}/models/FWVideoFeedTitlePosition.kt +1 -1
- package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge}/models/FWVideoPlaybackDetails.kt +1 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModel.kt +23 -0
- package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge}/models/FWVideoShoppingProduct.kt +1 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/WeakProperty.kt +19 -0
- package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge/reactnative}/FireworkSDKPackage.kt +10 -5
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWVideoFeedManager.kt +175 -0
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FWLiveStreamInterface.kt +5 -0
- package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge/reactnative}/models/FWVideoShoppingInterface.kt +3 -2
- package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge/reactnative}/models/FireworkSDKInterface.kt +4 -2
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWLiveStreamModule.kt +88 -0
- package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge/reactnative}/module/FWVideoShoppingModule.kt +53 -39
- package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge/reactnative}/module/FireworkSDKModule.kt +23 -22
- package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge/reactnative}/pages/FWVideoShoppingCartActivity.kt +4 -4
- package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge/reactnative}/utils/FWEventUtils.kt +61 -7
- package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge}/utils/FWJsonUtils.kt +29 -1
- package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge}/utils/FWLogUtils.kt +2 -2
- package/android/src/main/java/com/{reactnativefireworksdk → fireworksdk/bridge}/utils/FWUrlUtils.kt +1 -1
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWVideoPlayerUtils.kt +94 -0
- package/android/src/main/res/layout/fw_bridge_fragment_playlistfeed.xml +18 -0
- package/android/src/main/res/layout/{fwrn_fragment_shoppingcart.xml → fw_bridge_fragment_shoppingcart.xml} +1 -1
- package/android/src/main/res/layout/{fwrn_fragment_videofeed.xml → fw_bridge_fragment_videofeed.xml} +2 -1
- package/android/src/main/res/values/colors.xml +4 -0
- package/ios/{Component → Components}/VideoFeed.swift +60 -3
- package/ios/{Component → Components}/VideoFeedConfiguration.swift +2 -0
- package/ios/{Component → Components}/VideoFeedManager.m +2 -0
- package/ios/{Component → Components}/VideoFeedManager.swift +0 -0
- package/ios/{Component → Components}/VideoPlayerConfiguration.swift +7 -0
- package/ios/Models/{FireworkJsEvent.swift → NativeToRN/FireworkEventName.swift} +20 -0
- package/ios/Models/{FireworkSDK+JsModel.swift → NativeToRN/FireworkSDK+Json.swift} +33 -3
- package/ios/Models/{RCTConvert+FireworkSDKModule.swift → RNToNative/RCTConvert+FireworkSDKModule.swift} +20 -0
- package/ios/Models/{RCTConvert+Shopping.swift → RNToNative/RCTConvert+Shopping.swift} +15 -0
- package/ios/Models/{RCTConvert+VideoFeed.swift → RNToNative/RCTConvert+VideoFeed.swift} +2 -1
- package/ios/Modules/FireworkSDKModule/AdBadgeConfiguration.swift +18 -0
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule+CTA.swift +1 -1
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule+EventTracking.swift +10 -14
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule.m +2 -1
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule.swift +16 -4
- package/ios/Modules/LiveStream/LiveStreamModule.m +14 -0
- package/ios/Modules/LiveStream/LiveStreamModule.swift +43 -0
- package/ios/Modules/Shopping/ShoppingModule.m +1 -1
- package/ios/Modules/Shopping/ShoppingModule.swift +10 -9
- package/lib/commonjs/FireworkSDK.js +61 -38
- package/lib/commonjs/FireworkSDK.js.map +1 -1
- package/lib/commonjs/LiveStream.js +60 -0
- package/lib/commonjs/LiveStream.js.map +1 -0
- package/lib/commonjs/VideoShopping.js +20 -18
- package/lib/commonjs/VideoShopping.js.map +1 -1
- package/lib/commonjs/components/VideoFeed.js +47 -2
- package/lib/commonjs/components/VideoFeed.js.map +1 -1
- package/lib/commonjs/index.js +24 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/AdBadgeConfiguration.js +2 -0
- package/lib/commonjs/models/{ADConfig.js.map → AdBadgeConfiguration.js.map} +0 -0
- package/lib/commonjs/models/AdConfig.js +2 -0
- package/lib/{module/models/ADConfig.js.map → commonjs/models/AdConfig.js.map} +0 -0
- package/lib/commonjs/models/FWEventName.js +24 -0
- package/lib/commonjs/models/FWEventName.js.map +1 -0
- package/lib/commonjs/models/FWEvents.js +0 -14
- package/lib/commonjs/models/FWEvents.js.map +1 -1
- package/lib/commonjs/models/LiveStreamChatEventName.js +15 -0
- package/lib/commonjs/models/LiveStreamChatEventName.js.map +1 -0
- package/lib/commonjs/models/LiveStreamEventDetails.js +2 -0
- package/lib/commonjs/models/LiveStreamEventDetails.js.map +1 -0
- package/lib/commonjs/models/LiveStreamEventName.js +17 -0
- package/lib/commonjs/models/LiveStreamEventName.js.map +1 -0
- package/lib/commonjs/models/LiveStreamMessageDetails.js +2 -0
- package/lib/commonjs/models/LiveStreamMessageDetails.js.map +1 -0
- package/lib/commonjs/models/VideoFeedSource.js +6 -0
- package/lib/commonjs/models/VideoFeedSource.js.map +1 -0
- package/lib/commonjs/models/VideoPlaybackEventName.js.map +1 -1
- package/lib/commonjs/modules/FireworkSDKModule.js +3 -1
- package/lib/commonjs/modules/FireworkSDKModule.js.map +1 -1
- package/lib/commonjs/modules/LiveStreamModule.js +22 -0
- package/lib/commonjs/modules/LiveStreamModule.js.map +1 -0
- package/lib/commonjs/modules/ShoppingModule.js +3 -1
- package/lib/commonjs/modules/ShoppingModule.js.map +1 -1
- package/lib/module/FireworkSDK.js +50 -34
- package/lib/module/FireworkSDK.js.map +1 -1
- package/lib/module/LiveStream.js +51 -0
- package/lib/module/LiveStream.js.map +1 -0
- package/lib/module/VideoShopping.js +14 -13
- package/lib/module/VideoShopping.js.map +1 -1
- package/lib/module/components/VideoFeed.js +42 -3
- package/lib/module/components/VideoFeed.js.map +1 -1
- package/lib/module/index.js +4 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/AdBadgeConfiguration.js +2 -0
- package/lib/module/models/AdBadgeConfiguration.js.map +1 -0
- package/lib/module/models/AdConfig.js +2 -0
- package/lib/module/models/AdConfig.js.map +1 -0
- package/lib/module/models/FWEventName.js +17 -0
- package/lib/module/models/FWEventName.js.map +1 -0
- package/lib/module/models/FWEvents.js +1 -12
- package/lib/module/models/FWEvents.js.map +1 -1
- package/lib/module/models/LiveStreamChatEventName.js +8 -0
- package/lib/module/models/LiveStreamChatEventName.js.map +1 -0
- package/lib/module/models/LiveStreamEventDetails.js +2 -0
- package/lib/module/models/LiveStreamEventDetails.js.map +1 -0
- package/lib/module/models/LiveStreamEventName.js +10 -0
- package/lib/module/models/LiveStreamEventName.js.map +1 -0
- package/lib/module/models/LiveStreamMessageDetails.js +2 -0
- package/lib/module/models/LiveStreamMessageDetails.js.map +1 -0
- package/lib/module/models/VideoFeedSource.js +2 -0
- package/lib/module/models/VideoFeedSource.js.map +1 -0
- package/lib/module/models/VideoPlaybackEventName.js.map +1 -1
- package/lib/module/modules/FireworkSDKModule.js +3 -0
- package/lib/module/modules/FireworkSDKModule.js.map +1 -1
- package/lib/module/modules/LiveStreamModule.js +12 -0
- package/lib/module/modules/LiveStreamModule.js.map +1 -0
- package/lib/module/modules/ShoppingModule.js +3 -1
- package/lib/module/modules/ShoppingModule.js.map +1 -1
- package/lib/typescript/FireworkSDK.d.ts +26 -24
- package/lib/typescript/LiveStream.d.ts +21 -0
- package/lib/typescript/VideoShopping.d.ts +6 -6
- package/lib/typescript/components/VideoFeed.d.ts +11 -4
- package/lib/typescript/index.d.ts +15 -6
- package/lib/typescript/models/AdBadgeConfiguration.d.ts +15 -0
- package/lib/typescript/models/{ADConfig.d.ts → AdConfig.d.ts} +1 -1
- package/lib/typescript/models/FWEventName.d.ts +14 -0
- package/lib/typescript/models/FWEvents.d.ts +15 -12
- package/lib/typescript/models/FeedItemDetails.d.ts +11 -4
- package/lib/typescript/models/LiveStreamChatEventName.d.ts +7 -0
- package/lib/typescript/models/LiveStreamEventDetails.d.ts +3 -0
- package/lib/typescript/models/LiveStreamEventName.d.ts +15 -0
- package/lib/typescript/models/LiveStreamMessageDetails.d.ts +14 -0
- package/lib/typescript/models/VideoFeedConfiguration.d.ts +7 -3
- package/lib/typescript/models/VideoFeedSource.d.ts +2 -0
- package/lib/typescript/models/VideoPlaybackDetails.d.ts +1 -2
- package/lib/typescript/models/VideoPlaybackEventName.d.ts +1 -1
- package/lib/typescript/models/VideoPlayerConfiguration.d.ts +13 -0
- package/lib/typescript/modules/FireworkSDKModule.d.ts +8 -4
- package/lib/typescript/modules/LiveStreamModule.d.ts +8 -0
- package/lib/typescript/modules/ShoppingModule.d.ts +4 -2
- package/package.json +3 -4
- package/react-native-firework-sdk.podspec +3 -1
- package/src/FireworkSDK.ts +49 -33
- package/src/LiveStream.ts +51 -0
- package/src/VideoShopping.ts +15 -13
- package/src/components/VideoFeed.tsx +69 -7
- package/src/index.tsx +32 -15
- package/src/models/AdBadgeConfiguration.ts +16 -0
- package/src/models/{ADConfig.ts → AdConfig.ts} +1 -1
- package/src/models/FWEventName.ts +14 -0
- package/src/models/FWEvents.ts +17 -13
- package/src/models/FeedItemDetails.ts +12 -4
- package/src/models/LiveStreamChatEventName.ts +8 -0
- package/src/models/LiveStreamEventDetails.ts +4 -0
- package/src/models/LiveStreamEventName.ts +16 -0
- package/src/models/LiveStreamMessageDetails.ts +14 -0
- package/src/models/VideoFeedConfiguration.ts +7 -3
- package/src/models/VideoFeedSource.ts +2 -0
- package/src/models/VideoPlaybackDetails.ts +1 -3
- package/src/models/VideoPlaybackEventName.ts +1 -1
- package/src/models/VideoPlayerConfiguration.ts +14 -0
- package/src/modules/FireworkSDKModule.ts +10 -4
- package/src/modules/LiveStreamModule.ts +26 -0
- package/src/modules/ShoppingModule.ts +14 -7
- package/android/src/main/java/com/reactnativefireworksdk/components/videofeed/FWVideoFeed.kt +0 -124
- package/android/src/main/java/com/reactnativefireworksdk/manager/FWVideoFeedManager.kt +0 -88
- package/android/src/main/java/com/reactnativefireworksdk/models/FWVideoFeedConfigModel.kt +0 -27
- package/android/src/main/java/com/reactnativefireworksdk/models/FWVideoFeedMode.kt +0 -7
- package/android/src/main/java/com/reactnativefireworksdk/models/FWVideoPlayerConfigModel.kt +0 -20
- package/android/src/main/java/com/reactnativefireworksdk/utils/FWVideoPlayerUtils.kt +0 -18
- package/lib/commonjs/models/ADConfig.js +0 -2
- package/lib/module/models/ADConfig.js +0 -2
|
@@ -55,8 +55,38 @@ extension VideoFeedError {
|
|
|
55
55
|
|
|
56
56
|
extension FeedEventDetails {
|
|
57
57
|
var jsObject: [String: Any] {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
var sourceStr: String = ""
|
|
59
|
+
switch(source) {
|
|
60
|
+
case .discover:
|
|
61
|
+
sourceStr = "discover"
|
|
62
|
+
case .channel(channelID: _):
|
|
63
|
+
sourceStr = "channel"
|
|
64
|
+
case .channelPlaylist(channelID: _, playlistID: _):
|
|
65
|
+
sourceStr = "playlist"
|
|
66
|
+
case .playlistGroup(groupID: _):
|
|
67
|
+
sourceStr = "playlistGroup"
|
|
68
|
+
default:
|
|
69
|
+
break
|
|
70
|
+
}
|
|
71
|
+
return [
|
|
72
|
+
"index": index,
|
|
73
|
+
"id": id,
|
|
74
|
+
"duration": duration,
|
|
75
|
+
"source": sourceStr
|
|
76
|
+
]
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
extension LiveStreamEventDetails {
|
|
81
|
+
var jsObject: [String: Any] {
|
|
82
|
+
return ["id": id]
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
extension LiveStreamMessageDetails {
|
|
87
|
+
var jsObject: [String: Any] {
|
|
88
|
+
return ["messageId": messageID,
|
|
89
|
+
"username": username,
|
|
90
|
+
"text": text]
|
|
61
91
|
}
|
|
62
92
|
}
|
|
@@ -88,4 +88,24 @@ extension RCTConvert {
|
|
|
88
88
|
|
|
89
89
|
return result
|
|
90
90
|
}
|
|
91
|
+
|
|
92
|
+
static func adBadgeConfiguration(_ config: [String: AnyObject]?) -> AdBadgeConfiguration? {
|
|
93
|
+
guard let rConfig = config else {
|
|
94
|
+
return nil
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
let jsonData = try? JSONSerialization.data(withJSONObject: rConfig, options: .prettyPrinted)
|
|
98
|
+
guard let rJsonData = jsonData else {
|
|
99
|
+
return nil
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
var result: AdBadgeConfiguration?
|
|
103
|
+
do {
|
|
104
|
+
result = try JSONDecoder().decode(AdBadgeConfiguration.self, from: rJsonData)
|
|
105
|
+
} catch let error {
|
|
106
|
+
print(error.localizedDescription)
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return result
|
|
110
|
+
}
|
|
91
111
|
}
|
|
@@ -8,6 +8,21 @@
|
|
|
8
8
|
import Foundation
|
|
9
9
|
|
|
10
10
|
extension RCTConvert {
|
|
11
|
+
static func buildProducts(_ rawProducts: [AnyObject]?) -> [Product]? {
|
|
12
|
+
guard let rRawProducts = rawProducts else {
|
|
13
|
+
return nil
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
var products = [Product]()
|
|
17
|
+
for rawProduct in rRawProducts {
|
|
18
|
+
let product = buildProduct(rawProduct as? [String : Any])
|
|
19
|
+
if let rProduct = product {
|
|
20
|
+
products.append(rProduct)
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return products
|
|
24
|
+
}
|
|
25
|
+
|
|
11
26
|
static func buildProduct(_ product: [String: Any]?) -> Product? {
|
|
12
27
|
guard let rProduct = product else {
|
|
13
28
|
return nil
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//
|
|
2
|
+
// AdBadgeConfiguration.swift
|
|
3
|
+
// react-native-firework-sdk
|
|
4
|
+
//
|
|
5
|
+
// Created by Jeff Zheng on 2022/3/8.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
struct AdBadgeConfiguration: Codable {
|
|
11
|
+
var badgeTextType: BadgeTextType = .ad
|
|
12
|
+
var backgroundColor: String?
|
|
13
|
+
var textColor: String?
|
|
14
|
+
|
|
15
|
+
enum BadgeTextType: String, Codable {
|
|
16
|
+
case ad, sponsored
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -10,7 +10,7 @@ import FireworkVideo
|
|
|
10
10
|
|
|
11
11
|
extension FireworkSDKModule: FireworkVideoCTADelegate {
|
|
12
12
|
func handleCustomCTAClick(_ viewController: PlayerViewController, url: URL) -> Bool {
|
|
13
|
-
sendEvent(withName: FWEventName.CustomCTAClick.rawValue, body: [url: url])
|
|
13
|
+
sendEvent(withName: FWEventName.CustomCTAClick.rawValue, body: ["url": url.absoluteString])
|
|
14
14
|
|
|
15
15
|
return customCTAClickEnabled
|
|
16
16
|
}
|
|
@@ -19,42 +19,42 @@ extension FireworkSDKModule: FireworkVideoPlaybackDelegate {
|
|
|
19
19
|
|
|
20
20
|
func fireworkVideoDidRecordImpression(_ videoPlayback: VideoPlaybackDetails) {
|
|
21
21
|
guard enableVideoPlayBackEvent else { return }
|
|
22
|
-
sendEvent(withName: FWEventName.VideoPlayback.rawValue, body: [VideoPlaybackSubEventName.Impression.rawValue: videoPlayback.jsObject])
|
|
22
|
+
sendEvent(withName: FWEventName.VideoPlayback.rawValue, body: ["eventName": VideoPlaybackSubEventName.Impression.rawValue, "info": videoPlayback.jsObject])
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
func fireworkVideoDidStartPlaying(_ videoPlayback: VideoPlaybackDetails) {
|
|
26
26
|
guard enableVideoPlayBackEvent else { return }
|
|
27
|
-
sendEvent(withName: FWEventName.VideoPlayback.rawValue, body: [VideoPlaybackSubEventName.Start.rawValue: videoPlayback.jsObject])
|
|
27
|
+
sendEvent(withName: FWEventName.VideoPlayback.rawValue, body: ["eventName":VideoPlaybackSubEventName.Start.rawValue, "info": videoPlayback.jsObject])
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
func fireworkVideoReachedFirstQuartile(_ videoPlayback: VideoPlaybackDetails) {
|
|
31
31
|
guard enableVideoPlayBackEvent else { return }
|
|
32
|
-
sendEvent(withName: FWEventName.VideoPlayback.rawValue, body: [VideoPlaybackSubEventName.FirstQuartile.rawValue: videoPlayback.jsObject])
|
|
32
|
+
sendEvent(withName: FWEventName.VideoPlayback.rawValue, body: ["eventName":VideoPlaybackSubEventName.FirstQuartile.rawValue, "info": videoPlayback.jsObject])
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
func fireworkVideoReachedMidPoint(_ videoPlayback: VideoPlaybackDetails) {
|
|
36
36
|
guard enableVideoPlayBackEvent else { return }
|
|
37
|
-
sendEvent(withName: FWEventName.VideoPlayback.rawValue, body: [VideoPlaybackSubEventName.Midpoint.rawValue: videoPlayback.jsObject])
|
|
37
|
+
sendEvent(withName: FWEventName.VideoPlayback.rawValue, body: ["eventName":VideoPlaybackSubEventName.Midpoint.rawValue, "info": videoPlayback.jsObject])
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
func fireworkVideoReachedThirdQuartile(_ videoPlayback: VideoPlaybackDetails) {
|
|
41
41
|
guard enableVideoPlayBackEvent else { return }
|
|
42
|
-
sendEvent(withName: FWEventName.VideoPlayback.rawValue, body: [VideoPlaybackSubEventName.ThirdQuartile.rawValue: videoPlayback.jsObject])
|
|
42
|
+
sendEvent(withName: FWEventName.VideoPlayback.rawValue, body: ["eventName":VideoPlaybackSubEventName.ThirdQuartile.rawValue, "info": videoPlayback.jsObject])
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
func fireworkVideoDidFinishPlaying(_ videoPlayback: VideoPlaybackDetails) {
|
|
46
46
|
guard enableVideoPlayBackEvent else { return }
|
|
47
|
-
sendEvent(withName: FWEventName.VideoPlayback.rawValue, body: [VideoPlaybackSubEventName.Complete.rawValue: videoPlayback.jsObject])
|
|
47
|
+
sendEvent(withName: FWEventName.VideoPlayback.rawValue, body: ["eventName":VideoPlaybackSubEventName.Complete.rawValue, "info": videoPlayback.jsObject])
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
func fireworkVideoDidTapCTAButton(_ videoPlayback: VideoPlaybackDetails) {
|
|
51
51
|
guard enableVideoPlayBackEvent else { return }
|
|
52
|
-
sendEvent(withName: FWEventName.VideoPlayback.rawValue, body: [VideoPlaybackSubEventName.ClickCTA.rawValue: videoPlayback.jsObject])
|
|
52
|
+
sendEvent(withName: FWEventName.VideoPlayback.rawValue, body: ["eventName":VideoPlaybackSubEventName.ClickCTA.rawValue, "info": videoPlayback.jsObject])
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
func fireworkVideoDidTapShareButton(_ videoPlayback: VideoPlaybackDetails) {
|
|
56
56
|
guard enableVideoPlayBackEvent else { return }
|
|
57
|
-
sendEvent(withName: FWEventName.VideoPlayback.rawValue, body: [VideoPlaybackSubEventName.ClickShare.rawValue: videoPlayback.jsObject])
|
|
57
|
+
sendEvent(withName: FWEventName.VideoPlayback.rawValue, body: ["eventName":VideoPlaybackSubEventName.ClickShare.rawValue, "info": videoPlayback.jsObject])
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
func fireworkVideoDidStartPlayingAd(_ videoPlayback: VideoPlaybackDetails) {
|
|
@@ -63,16 +63,12 @@ extension FireworkSDKModule: FireworkVideoPlaybackDelegate {
|
|
|
63
63
|
|
|
64
64
|
func fireworkVideoDidFinishPlayingAd(_ videoPlayback: VideoPlaybackDetails) {
|
|
65
65
|
guard enableVideoPlayBackEvent else { return }
|
|
66
|
-
sendEvent(withName: FWEventName.VideoPlayback.rawValue, body: [VideoPlaybackSubEventName.AdEnd.rawValue: videoPlayback.jsObject])
|
|
66
|
+
sendEvent(withName: FWEventName.VideoPlayback.rawValue, body: ["eventName":VideoPlaybackSubEventName.AdEnd.rawValue, "info": videoPlayback.jsObject])
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
extension FireworkSDKModule: FireworkVideoFeedDelegate {
|
|
71
71
|
func fireworkVideoDidTapThumbnail(_ eventDetails: FeedEventDetails) {
|
|
72
|
-
sendEvent(withName: FWEventName.VideoFeedClick.rawValue, body: eventDetails.jsObject)
|
|
72
|
+
sendEvent(withName: FWEventName.VideoFeedClick.rawValue, body: ["info": eventDetails.jsObject])
|
|
73
73
|
}
|
|
74
|
-
|
|
75
|
-
// func fireworkVideoDidTapVideoThumbnail(_ eventDetails: FeedEventDetails) {
|
|
76
|
-
// sendEvent(withName: FWEventName.VideoFeedClick.rawValue, body: eventDetails.jsObject)
|
|
77
|
-
// }
|
|
78
74
|
}
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
_RCT_EXTERN_REMAP_METHOD(init, initializeSDK:(NSString * __nullable)userId config:(NSDictionary *__nullable)config, NO)
|
|
14
14
|
RCT_EXTERN_METHOD(openVideoPlayer:(NSString *)url config:(NSDictionary *)config)
|
|
15
15
|
RCT_EXTERN_METHOD(setCustomCTAClickEnabled:(BOOL)enabled)
|
|
16
|
-
RCT_EXTERN_METHOD(setShareBaseURL:(NSString *)url)
|
|
16
|
+
RCT_EXTERN_METHOD(setShareBaseURL:(NSString *)url resolver: (RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
17
17
|
RCT_EXTERN_METHOD(setVideoPlaybackEventEnabled:(BOOL)enabled)
|
|
18
|
+
RCT_EXTERN_METHOD(setAdBadgeConfiguration:(NSDictionary *)config resolver: (RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
18
19
|
|
|
19
20
|
@end
|
|
@@ -17,6 +17,7 @@ import FireworkVideoGIMASupport
|
|
|
17
17
|
#endif
|
|
18
18
|
|
|
19
19
|
var gShareBaseURL: String?
|
|
20
|
+
var gAdBadgeConfiguration: AdBadgeConfiguration?
|
|
20
21
|
|
|
21
22
|
@objc(FireworkSDKModule)
|
|
22
23
|
class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
|
|
@@ -65,6 +66,10 @@ class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
|
|
|
65
66
|
|
|
66
67
|
@objc(openVideoPlayer:config:)
|
|
67
68
|
func openVideoPlayer(_ url: String, config: [String:AnyObject]) {
|
|
69
|
+
guard let urlString = URL.init(string: url) else {
|
|
70
|
+
return
|
|
71
|
+
}
|
|
72
|
+
|
|
68
73
|
var finalConfig = RCTConvert.videoPlayerContentConfiguration(config)
|
|
69
74
|
if let baseUrl = gShareBaseURL {
|
|
70
75
|
finalConfig.shareButton.behavior.baseURL = URL(string: baseUrl)
|
|
@@ -74,7 +79,7 @@ class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
|
|
|
74
79
|
guard let presentedVC = RCTPresentedViewController() else {
|
|
75
80
|
return
|
|
76
81
|
}
|
|
77
|
-
VideoFeedViewController.openVideoPlayer(with:
|
|
82
|
+
VideoFeedViewController.openVideoPlayer(with: urlString, finalConfig, presentedVC) { _ in
|
|
78
83
|
|
|
79
84
|
}
|
|
80
85
|
}
|
|
@@ -85,9 +90,10 @@ class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
|
|
|
85
90
|
customCTAClickEnabled = enabled
|
|
86
91
|
}
|
|
87
92
|
|
|
88
|
-
@objc(setShareBaseURL:)
|
|
89
|
-
func setShareBaseURL(_ url: String) {
|
|
93
|
+
@objc(setShareBaseURL:resolver:rejecter:)
|
|
94
|
+
func setShareBaseURL(_ url: String, resolver: RCTPromiseResolveBlock, rejecter: RCTPromiseRejectBlock) {
|
|
90
95
|
gShareBaseURL = url
|
|
96
|
+
resolver([:])
|
|
91
97
|
}
|
|
92
98
|
|
|
93
99
|
@objc(setVideoPlaybackEventEnabled:)
|
|
@@ -95,12 +101,18 @@ class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
|
|
|
95
101
|
enableVideoPlayBackEvent = enable
|
|
96
102
|
}
|
|
97
103
|
|
|
104
|
+
@objc(setAdBadgeConfiguration:resolver:rejecter:)
|
|
105
|
+
func setAdBadgeConfiguration(_ config: [String: AnyObject]? = nil, resolver: RCTPromiseResolveBlock, rejecter: RCTPromiseRejectBlock) {
|
|
106
|
+
gAdBadgeConfiguration = RCTConvert.adBadgeConfiguration(config)
|
|
107
|
+
resolver([:])
|
|
108
|
+
}
|
|
109
|
+
|
|
98
110
|
// MARK: - FireworkVideoSDKDelegate
|
|
99
111
|
func fireworkVideoDidLoadSuccessfully() {
|
|
100
112
|
sendEvent(withName: FWEventName.SDKInit.rawValue, body: [:])
|
|
101
113
|
}
|
|
102
114
|
|
|
103
115
|
func fireworkVideoDidLoadWith(error: FireworkVideoSDKError) {
|
|
104
|
-
sendEvent(withName: FWEventName.SDKInit.rawValue, body: ["error": [error.jsErrorName: error.recoverySuggestion ?? "default"]])
|
|
116
|
+
sendEvent(withName: FWEventName.SDKInit.rawValue, body: ["error": ["name": error.jsErrorName, "reason": error.recoverySuggestion ?? "default"]])
|
|
105
117
|
}
|
|
106
118
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//
|
|
2
|
+
// LiveStreamModule.m
|
|
3
|
+
// react-native-firework-sdk
|
|
4
|
+
//
|
|
5
|
+
// Created by Jeff Zheng on 2022/2/16.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import <React/RCTBridgeModule.h>
|
|
9
|
+
|
|
10
|
+
@interface RCT_EXTERN_REMAP_MODULE(LiveStreamModule, LiveStreamModule, NSObject)
|
|
11
|
+
|
|
12
|
+
_RCT_EXTERN_REMAP_METHOD(init, initialize, NO)
|
|
13
|
+
|
|
14
|
+
@end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
//
|
|
2
|
+
// LiveStreamModule.swift
|
|
3
|
+
// react-native-firework-sdk
|
|
4
|
+
//
|
|
5
|
+
// Created by Jeff Zheng on 2022/2/16.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
import FireworkVideo
|
|
10
|
+
|
|
11
|
+
@objc(LiveStreamModule)
|
|
12
|
+
class LiveStreamModule: RCTEventEmitter , FireworkLiveStreamEventDelegate {
|
|
13
|
+
|
|
14
|
+
override func supportedEvents() -> [String]! {
|
|
15
|
+
LiveStreamEventName.allCases.map { $0.rawValue }
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
override class func requiresMainQueueSetup() -> Bool {
|
|
19
|
+
return true
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@objc
|
|
23
|
+
func initialize() {
|
|
24
|
+
DispatchQueue.main.async {
|
|
25
|
+
FireworkVideoSDK.eventTracking.liveStreamEventDelegate = self
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
func fireworkLiveStreamUserDidJoin(_ liveStream: LiveStreamEventDetails) {
|
|
29
|
+
sendEvent(withName: LiveStreamEventName.livestream.rawValue, body: ["eventName": LiveStreamSubEventName.UserDidjoin.rawValue, "info": liveStream.jsObject])
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
func fireworkLiveStreamUserDidLeave(_ liveStream: LiveStreamEventDetails) {
|
|
33
|
+
sendEvent(withName: LiveStreamEventName.livestream.rawValue, body: ["eventName": LiveStreamSubEventName.UserDidLeave.rawValue, "info": liveStream.jsObject])
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
func fireworkLiveStreamUserDidSendChat(_ message: LiveStreamMessageDetails, to liveStream: LiveStreamEventDetails) {
|
|
37
|
+
sendEvent(withName: LiveStreamEventName.livestreamChat.rawValue, body: ["eventName": LiveStreamChatSubEventName.UserSendChat.rawValue, "message": message.jsObject, "liveStream": liveStream.jsObject])
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
func fireworkLiveStreamUserDidSendLike(_ liveStream: LiveStreamEventDetails) {
|
|
41
|
+
sendEvent(withName: LiveStreamEventName.livestream.rawValue, body: ["eventName": LiveStreamSubEventName.UserSendLike.rawValue, "info": liveStream.jsObject])
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
_RCT_EXTERN_REMAP_METHOD(init, initialize, NO)
|
|
13
13
|
RCT_EXTERN_METHOD(setCartIconVisible:(BOOL)visible)
|
|
14
14
|
RCT_EXTERN_METHOD(setCartItemCount:(int)itemCounts)
|
|
15
|
-
RCT_EXTERN_METHOD(
|
|
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
18
|
RCT_EXTERN_METHOD(jumpToCartPage:(nonnull NSNumber *)cbid)
|
|
@@ -63,16 +63,19 @@ class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate, CartViewCo
|
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
@objc
|
|
66
|
-
func
|
|
67
|
-
let
|
|
68
|
-
|
|
66
|
+
func updateVideoProducts(_ products: [AnyObject]?, cbId: NSNumber) {
|
|
67
|
+
guard let rProducts = RCTConvert.buildProducts(products),
|
|
68
|
+
let productHydrating = productHydrating,
|
|
69
|
+
productHydrating.0 == Int(truncating: cbId) else {
|
|
69
70
|
return
|
|
70
71
|
}
|
|
71
72
|
|
|
72
73
|
DispatchQueue.main.async {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
for product in rProducts {
|
|
75
|
+
productHydrating.1.hydrateProduct(product.productId, { build in
|
|
76
|
+
return ShoppingModule.hydrateProduct(product, build)
|
|
77
|
+
})
|
|
78
|
+
}
|
|
76
79
|
}
|
|
77
80
|
}
|
|
78
81
|
|
|
@@ -136,9 +139,7 @@ class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate, CartViewCo
|
|
|
136
139
|
let callbackId = ShoppingModule.generateCallbackId()
|
|
137
140
|
self.productHydrating = (callbackId, productHydrator)
|
|
138
141
|
|
|
139
|
-
|
|
140
|
-
sendEvent(withName: ShoppingEventName.UpdateProductDetails.rawValue, body: ["productId": productId, "callbackId": callbackId])
|
|
141
|
-
}
|
|
142
|
+
sendEvent(withName: ShoppingEventName.UpdateProductDetails.rawValue, body: ["productIds": products, "callbackId": callbackId])
|
|
142
143
|
}
|
|
143
144
|
|
|
144
145
|
func fireworkShopping(_ fireworkShopping: FireworkVideoShopping, addProductVariantToCart item: SelectedProductVariant, fromVideo video: VideoDetails, _ addToCartCompletionHandler: @escaping AddToCartHandler) {
|
|
@@ -5,16 +5,22 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _LiveStream = _interopRequireDefault(require("./LiveStream"));
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _FWEventName = require("./models/FWEventName");
|
|
11
11
|
|
|
12
|
-
var _FireworkSDKModule =
|
|
12
|
+
var _FireworkSDKModule = _interopRequireWildcard(require("./modules/FireworkSDKModule"));
|
|
13
|
+
|
|
14
|
+
var _LiveStreamModule = _interopRequireDefault(require("./modules/LiveStreamModule"));
|
|
13
15
|
|
|
14
16
|
var _ShoppingModule = _interopRequireDefault(require("./modules/ShoppingModule"));
|
|
15
17
|
|
|
16
18
|
var _VideoShopping = _interopRequireDefault(require("./VideoShopping"));
|
|
17
19
|
|
|
20
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
|
+
|
|
22
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
|
+
|
|
18
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
25
|
|
|
20
26
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
@@ -24,72 +30,88 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
24
30
|
*/
|
|
25
31
|
class FireworkSDK {
|
|
26
32
|
/**
|
|
27
|
-
*
|
|
33
|
+
* The callback of SDK initialization.
|
|
28
34
|
*/
|
|
29
35
|
|
|
30
36
|
/**
|
|
31
|
-
*
|
|
37
|
+
* the callback of clicking Video Feed.
|
|
32
38
|
*/
|
|
33
39
|
|
|
34
40
|
/**
|
|
35
|
-
*
|
|
41
|
+
* The callback of clicking custom CTA.
|
|
36
42
|
*/
|
|
37
43
|
get onCustomCTAClick() {
|
|
38
44
|
return this._onCustomCTAClick;
|
|
39
45
|
}
|
|
40
|
-
/**
|
|
41
|
-
* Set Custom Clicking CTA callback.
|
|
42
|
-
*/
|
|
43
|
-
|
|
44
46
|
|
|
45
47
|
set onCustomCTAClick(value) {
|
|
46
48
|
this._onCustomCTAClick = value;
|
|
47
49
|
|
|
48
50
|
_FireworkSDKModule.default.setCustomCTAClickEnabled(value ? true : false);
|
|
49
51
|
}
|
|
52
|
+
|
|
50
53
|
/**
|
|
51
|
-
*
|
|
54
|
+
* The callback of video playback.
|
|
52
55
|
*/
|
|
53
|
-
|
|
54
|
-
|
|
55
56
|
get onVideoPlayback() {
|
|
56
57
|
return this._onVideoPlayback;
|
|
57
58
|
}
|
|
58
|
-
/**
|
|
59
|
-
* Set Video Playback callback.
|
|
60
|
-
*/
|
|
61
|
-
|
|
62
59
|
|
|
63
60
|
set onVideoPlayback(value) {
|
|
64
61
|
this._onVideoPlayback = value;
|
|
65
62
|
|
|
66
63
|
_FireworkSDKModule.default.setVideoPlaybackEventEnabled(value ? true : false);
|
|
67
64
|
}
|
|
65
|
+
|
|
68
66
|
/**
|
|
69
|
-
*
|
|
67
|
+
* The share base URL of videos.
|
|
70
68
|
*/
|
|
71
|
-
|
|
72
|
-
|
|
73
69
|
get shareBaseURL() {
|
|
74
70
|
return this._shareBaseURL;
|
|
75
71
|
}
|
|
76
|
-
/**
|
|
77
|
-
* set Share Base URL
|
|
78
|
-
*/
|
|
79
|
-
|
|
80
72
|
|
|
81
73
|
set shareBaseURL(value) {
|
|
82
74
|
this._shareBaseURL = value;
|
|
83
75
|
|
|
84
|
-
_FireworkSDKModule.default.setShareBaseURL(value)
|
|
76
|
+
_FireworkSDKModule.default.setShareBaseURL(value).then(() => {
|
|
77
|
+
this.eventEmitter.emit(_FWEventName.FWEventName.ShareBaseURLUpdated);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* The configuration for ad badges.
|
|
83
|
+
*/
|
|
84
|
+
get adBadgeConfiguration() {
|
|
85
|
+
return this._adBadgeConfiguration;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
set adBadgeConfiguration(value) {
|
|
89
|
+
this._adBadgeConfiguration = value;
|
|
90
|
+
|
|
91
|
+
_FireworkSDKModule.default.setAdBadgeConfiguration(value).then(() => {
|
|
92
|
+
this.eventEmitter.emit(_FWEventName.FWEventName.AdBadgeConfigurationUpdated);
|
|
93
|
+
});
|
|
85
94
|
}
|
|
86
95
|
|
|
96
|
+
get eventEmitter() {
|
|
97
|
+
return _FireworkSDKModule.FireworkSDKModuleEventEmitter;
|
|
98
|
+
}
|
|
87
99
|
/**
|
|
88
100
|
* Get VideoShopping object.
|
|
89
101
|
*/
|
|
102
|
+
|
|
103
|
+
|
|
90
104
|
get shopping() {
|
|
91
105
|
return _VideoShopping.default.getInstance();
|
|
92
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Get LiveStream object.
|
|
109
|
+
*/
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
get liveStream() {
|
|
113
|
+
return _LiveStream.default.getInstance();
|
|
114
|
+
}
|
|
93
115
|
/**
|
|
94
116
|
* Get global single instance of FireworkSDK class.
|
|
95
117
|
* @returns FireworkSDK
|
|
@@ -105,35 +127,34 @@ class FireworkSDK {
|
|
|
105
127
|
}
|
|
106
128
|
|
|
107
129
|
constructor() {
|
|
130
|
+
_defineProperty(this, "onSDKInit", void 0);
|
|
131
|
+
|
|
132
|
+
_defineProperty(this, "onVideoFeedClick", void 0);
|
|
133
|
+
|
|
108
134
|
_defineProperty(this, "_onCustomCTAClick", void 0);
|
|
109
135
|
|
|
110
136
|
_defineProperty(this, "_onVideoPlayback", void 0);
|
|
111
137
|
|
|
112
|
-
_defineProperty(this, "onVideoFeedClick", void 0);
|
|
113
|
-
|
|
114
138
|
_defineProperty(this, "_shareBaseURL", void 0);
|
|
115
139
|
|
|
116
|
-
_defineProperty(this, "
|
|
140
|
+
_defineProperty(this, "_adBadgeConfiguration", void 0);
|
|
117
141
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
this.eventEmitter = new _reactNative.NativeEventEmitter(_FireworkSDKModule.default);
|
|
121
|
-
this.eventEmitter.addListener(_FWEvents.FWEventName.SDKInit, event => {
|
|
142
|
+
this.eventEmitter.addListener(_FWEventName.FWEventName.SDKInit, event => {
|
|
122
143
|
if (this.onSDKInit) {
|
|
123
144
|
this.onSDKInit(event !== null && event !== void 0 ? event : {});
|
|
124
145
|
}
|
|
125
146
|
});
|
|
126
|
-
this.eventEmitter.addListener(
|
|
147
|
+
this.eventEmitter.addListener(_FWEventName.FWEventName.CustomCTAClick, event => {
|
|
127
148
|
if (this.onCustomCTAClick) {
|
|
128
149
|
this.onCustomCTAClick(event !== null && event !== void 0 ? event : {});
|
|
129
150
|
}
|
|
130
151
|
});
|
|
131
|
-
this.eventEmitter.addListener(
|
|
152
|
+
this.eventEmitter.addListener(_FWEventName.FWEventName.VideoPlayback, event => {
|
|
132
153
|
if (this.onVideoPlayback) {
|
|
133
154
|
this.onVideoPlayback(event !== null && event !== void 0 ? event : {});
|
|
134
155
|
}
|
|
135
156
|
});
|
|
136
|
-
this.eventEmitter.addListener(
|
|
157
|
+
this.eventEmitter.addListener(_FWEventName.FWEventName.VideoFeedClick, event => {
|
|
137
158
|
if (this.onVideoFeedClick) {
|
|
138
159
|
this.onVideoFeedClick(event !== null && event !== void 0 ? event : {});
|
|
139
160
|
}
|
|
@@ -142,7 +163,7 @@ class FireworkSDK {
|
|
|
142
163
|
/**
|
|
143
164
|
* Initializes Firework SDK.
|
|
144
165
|
* @param {string?} userId An id to uniquely identify device or user.
|
|
145
|
-
* @param {
|
|
166
|
+
* @param {AdConfig?} adConfig Configuration of Ad.
|
|
146
167
|
*/
|
|
147
168
|
|
|
148
169
|
|
|
@@ -150,11 +171,13 @@ class FireworkSDK {
|
|
|
150
171
|
_FireworkSDKModule.default.init(userId, adConfig);
|
|
151
172
|
|
|
152
173
|
_ShoppingModule.default.init();
|
|
174
|
+
|
|
175
|
+
_LiveStreamModule.default.init();
|
|
153
176
|
}
|
|
154
177
|
/**
|
|
155
178
|
* Open Video URL.
|
|
156
|
-
* @param {string} url
|
|
157
|
-
* @param {VideoPlayerConfiguration} config
|
|
179
|
+
* @param {string} url
|
|
180
|
+
* @param {VideoPlayerConfiguration} config
|
|
158
181
|
*/
|
|
159
182
|
|
|
160
183
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FireworkSDK.ts"],"names":["FireworkSDK","onCustomCTAClick","_onCustomCTAClick","value","FireworkSDKModule","setCustomCTAClickEnabled","onVideoPlayback","_onVideoPlayback","setVideoPlaybackEventEnabled","shareBaseURL","_shareBaseURL","setShareBaseURL","shopping","VideoShopping","getInstance","
|
|
1
|
+
{"version":3,"sources":["FireworkSDK.ts"],"names":["FireworkSDK","onCustomCTAClick","_onCustomCTAClick","value","FireworkSDKModule","setCustomCTAClickEnabled","onVideoPlayback","_onVideoPlayback","setVideoPlaybackEventEnabled","shareBaseURL","_shareBaseURL","setShareBaseURL","then","eventEmitter","emit","FWEventName","ShareBaseURLUpdated","adBadgeConfiguration","_adBadgeConfiguration","setAdBadgeConfiguration","AdBadgeConfigurationUpdated","FireworkSDKModuleEventEmitter","shopping","VideoShopping","getInstance","liveStream","LiveStream","_instance","constructor","addListener","SDKInit","event","onSDKInit","CustomCTAClick","VideoPlayback","VideoFeedClick","onVideoFeedClick","init","userId","adConfig","ShoppingModule","LiveStreamModule","openVideoPlayer","url","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 type AdConfig from './models/AdConfig';\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, { FireworkSDKModuleEventEmitter } from './modules/FireworkSDKModule';\nimport LiveStreamModule from './modules/LiveStreamModule';\nimport ShoppingModule from './modules/ShoppingModule';\nimport VideoShopping from './VideoShopping';\n\nexport type SDKInitCallback = (event: SDKInitEvent) => void;\nexport type CustomCTAClickCallback = (event: CustomCTAClickEvent) => void;\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 this._onCustomCTAClick = value;\n FireworkSDKModule.setCustomCTAClickEnabled(value ? true : false);\n }\n private _onCustomCTAClick: CustomCTAClickCallback | 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 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 if (this.onSDKInit) {\n this.onSDKInit(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.CustomCTAClick, (event) => {\n if (this.onCustomCTAClick) {\n this.onCustomCTAClick(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoPlayback, (event) => {\n if (this.onVideoPlayback) {\n this.onVideoPlayback(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoFeedClick, (event) => {\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 * @param {AdConfig?} adConfig Configuration of Ad.\n */\n public init(userId?: string, adConfig?: AdConfig) {\n FireworkSDKModule.init(userId, adConfig);\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"]}
|