react-native-firework-sdk 2.10.1 → 2.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/gradle.properties +1 -1
- package/android/src/main/java/com/fireworksdk/bridge/components/storyblock/StoryBlockFragment.kt +20 -1
- package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/FWVideoFeed.kt +4 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWCountdownTimerConfigurationModel.kt +8 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWCountdownTimerConfigurationModelDeserializer.kt +22 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWCountdownTimerConfigurationModelSerializer.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWFontInfoModel.kt +2 -2
- package/android/src/main/java/com/fireworksdk/bridge/models/FWSDKInitOptionsModel.kt +0 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/FWSDKInitOptionsModelDeserializer.kt +0 -3
- package/android/src/main/java/com/fireworksdk/bridge/models/FWSDKInitOptionsModelSerializer.kt +0 -2
- package/android/src/main/java/com/fireworksdk/bridge/models/FWSdkInitResultModel.kt +6 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWTrackPurchaseModel.kt +9 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWTrackPurchaseModelDeserializer.kt +45 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWTrackPurchaseModelSerializer.kt +34 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedItemDetailsModel.kt +1 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlaybackDetails.kt +1 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModel.kt +3 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModelDeserializer.kt +7 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModelSerializer.kt +4 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerLogoConfigurationModel.kt +8 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerLogoConfigurationModelDeserializer.kt +23 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerLogoConfigurationModelSerializer.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWAppearanceMode.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWEventName.kt +2 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWVideoPlayerLogoOption.kt +19 -0
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/FWReactNativeSDK.kt +103 -0
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWStoryBlockManager.kt +12 -0
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWVideoFeedManager.kt +8 -0
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FireworkSDKInterface.kt +2 -0
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWVideoShoppingModule.kt +22 -9
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FireworkSDKModule.kt +74 -122
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/utils/FWEventUtils.kt +34 -9
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWConfigUtil.kt +13 -0
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWFragmentUtil.kt +3 -3
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWGlobalDataUtil.kt +5 -2
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWModelUtils.kt +64 -0
- package/ios/Components/CountdownTimerConfiguration.swift +43 -0
- package/ios/Components/ReplayBadgeConfiguration.swift +12 -0
- package/ios/Components/StoryBlock.swift +37 -0
- package/ios/Components/StoryBlockConfiguration.swift +2 -0
- package/ios/Components/StoryBlockManager.m +24 -0
- package/ios/Components/StoryBlockManager.swift +6 -3
- package/ios/Components/VideoFeed.swift +23 -3
- package/ios/Components/VideoFeedConfiguration.swift +1 -0
- package/ios/Components/VideoFeedManager.m +4 -1
- package/ios/Components/VideoFeedManager.swift +6 -3
- package/ios/Components/VideoPlayerConfiguration.swift +2 -0
- package/ios/FWReactNativeSDK.swift +14 -0
- package/ios/FireworkSdk.xcodeproj/project.pbxproj +16 -0
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule+CTA.swift +17 -15
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule+EventTracking.swift +1 -11
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule.m +1 -0
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule.swift +80 -81
- package/ios/Modules/FireworkSDKModule/SDKInitOptions.swift +9 -5
- package/ios/Modules/Shopping/ShoppingModule.swift +10 -74
- package/lib/commonjs/FireworkSDK.js +30 -25
- package/lib/commonjs/FireworkSDK.js.map +1 -1
- package/lib/commonjs/VideoShopping.js +6 -12
- package/lib/commonjs/VideoShopping.js.map +1 -1
- package/lib/commonjs/components/StoryBlock.js +56 -3
- package/lib/commonjs/components/StoryBlock.js.map +1 -1
- package/lib/commonjs/components/VideoFeed.js +48 -4
- package/lib/commonjs/components/VideoFeed.js.map +1 -1
- package/lib/commonjs/index.js +7 -7
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/CountdownTimerConfiguration.js +2 -0
- package/lib/commonjs/models/CountdownTimerConfiguration.js.map +1 -0
- package/lib/commonjs/models/FWNativeErrorAction.js +14 -0
- package/lib/commonjs/models/FWNativeErrorAction.js.map +1 -0
- package/lib/commonjs/models/ReplayBadgeConfiguration.js +2 -0
- package/lib/commonjs/models/ReplayBadgeConfiguration.js.map +1 -0
- package/lib/commonjs/modules/FireworkSDKModule.js.map +1 -1
- package/lib/module/FireworkSDK.js +29 -25
- package/lib/module/FireworkSDK.js.map +1 -1
- package/lib/module/VideoShopping.js +6 -12
- package/lib/module/VideoShopping.js.map +1 -1
- package/lib/module/components/StoryBlock.js +55 -3
- package/lib/module/components/StoryBlock.js.map +1 -1
- package/lib/module/components/VideoFeed.js +44 -4
- package/lib/module/components/VideoFeed.js.map +1 -1
- package/lib/module/index.js +5 -5
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/CountdownTimerConfiguration.js +2 -0
- package/lib/module/models/CountdownTimerConfiguration.js.map +1 -0
- package/lib/module/models/FWNativeErrorAction.js +7 -0
- package/lib/module/models/FWNativeErrorAction.js.map +1 -0
- package/lib/module/models/ReplayBadgeConfiguration.js +2 -0
- package/lib/module/models/ReplayBadgeConfiguration.js.map +1 -0
- package/lib/module/modules/FireworkSDKModule.js.map +1 -1
- package/lib/typescript/VideoShopping.d.ts +2 -2
- package/lib/typescript/components/StoryBlock.d.ts +18 -1
- package/lib/typescript/components/VideoFeed.d.ts +7 -1
- package/lib/typescript/index.d.ts +15 -13
- package/lib/typescript/models/CountdownTimerConfiguration.d.ts +12 -0
- package/lib/typescript/models/FWEvents.d.ts +26 -3
- package/lib/typescript/models/FWNativeErrorAction.d.ts +4 -0
- package/lib/typescript/models/FeedItemDetails.d.ts +6 -1
- package/lib/typescript/models/ReplayBadgeConfiguration.d.ts +7 -0
- package/lib/typescript/models/StoryBlockConfiguration.d.ts +13 -1
- package/lib/typescript/models/VideoFeedConfiguration.d.ts +6 -0
- package/lib/typescript/models/VideoPlayerConfiguration.d.ts +12 -1
- package/lib/typescript/modules/FireworkSDKModule.d.ts +1 -0
- package/package.json +1 -5
- package/react-native-firework-sdk.podspec +3 -5
- package/src/FireworkSDK.ts +27 -24
- package/src/VideoShopping.ts +9 -11
- package/src/components/StoryBlock.tsx +73 -7
- package/src/components/VideoFeed.tsx +61 -12
- package/src/index.ts +36 -30
- package/src/models/CountdownTimerConfiguration.ts +12 -0
- package/src/models/FWEvents.ts +28 -3
- package/src/models/FWNativeErrorAction.ts +4 -0
- package/src/models/FeedItemDetails.ts +7 -1
- package/src/models/ReplayBadgeConfiguration.ts +7 -0
- package/src/models/StoryBlockConfiguration.ts +13 -1
- package/src/models/VideoFeedConfiguration.ts +6 -0
- package/src/models/VideoPlayerConfiguration.ts +12 -1
- package/src/modules/FireworkSDKModule.ts +1 -0
- package/FireworkVideoUI.xcframework/Info.plist +0 -40
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/FireworkVideoUI +0 -0
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Headers/FireworkVideoUI-Swift.h +0 -280
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Headers/FireworkVideoUI.h +0 -18
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Info.plist +0 -0
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios.abi.json +0 -1313
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios.private.swiftinterface +0 -42
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios.swiftinterface +0 -42
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Modules/module.modulemap +0 -11
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/FireworkVideoUI +0 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Headers/FireworkVideoUI-Swift.h +0 -556
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Headers/FireworkVideoUI.h +0 -18
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Info.plist +0 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios-simulator.abi.json +0 -1313
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +0 -42
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios-simulator.swiftinterface +0 -42
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/x86_64-apple-ios-simulator.abi.json +0 -1313
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +0 -42
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +0 -42
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/module.modulemap +0 -11
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/_CodeSignature/CodeResources +0 -245
- package/ios/FireworkVideoUI/FireworkVideoUI/FireworkVideoUI.docc/FireworkVideoUI.md +0 -13
- package/ios/FireworkVideoUI/FireworkVideoUI/FireworkVideoUI.h +0 -18
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/AppLanguageManager.swift +0 -154
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/Foundation/Bundle+AppLanguage.swift +0 -73
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/Foundation/NumberFormatter+AppLanguage.swift +0 -25
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/Foundation/URLSession+AppLanguage.swift +0 -52
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UIImageView+AppLanguage.swift +0 -60
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UILabel+AppLanguage.swift +0 -98
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UITextField+AppLanguage.swift +0 -97
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UITextView+AppLanguage.swift +0 -97
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UIView+AppLanguage.swift +0 -71
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UIViewController+AppLanguage.swift +0 -48
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UIWindow+AppLanguage.swift +0 -26
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/LanguageUtil.swift +0 -43
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/LayoutFlip/Extensions/Foundation/NSObject+LayoutFlip.swift +0 -42
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/LayoutFlip/Extensions/UIKit/CALayer+LayoutFlip.swift +0 -149
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/LayoutFlip/Extensions/UIKit/UILabel+LayoutFlip.swift +0 -35
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/LayoutFlip/Extensions/UIKit/UIView+LayoutFlip.swift +0 -202
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/LayoutFlip/LayoutFlipManager.swift +0 -59
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/Utils/Extensions/Foundation/DispatchQueue+Once.swift +0 -32
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/Utils/Extensions/Foundation/String+Base64.swift +0 -18
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/Utils/Extensions/UIKit/UIView+UIHierarchy.swift +0 -46
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/Utils/Swizzle.swift +0 -37
- package/ios/FireworkVideoUI/FireworkVideoUI.xcodeproj/project.pbxproj +0 -766
- package/ios/FireworkVideoUI/FireworkVideoUI.xcworkspace/contents.xcworkspacedata +0 -10
- package/ios/FireworkVideoUI/FireworkVideoUI.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/ios/FireworkVideoUI/FireworkVideoUITests/FireworkVideoUITests.swift +0 -37
- package/ios/FireworkVideoUI/Podfile +0 -15
- package/ios/FireworkVideoUI/Podfile.lock +0 -16
- package/ios/scripts/react_native_firework_sdk_pods.rb +0 -27
|
@@ -7,16 +7,18 @@
|
|
|
7
7
|
// The FireworkSDKModule Wrap native FireworkVideoSDK class,then expose to JavaScript in Objective-C
|
|
8
8
|
|
|
9
9
|
import FireworkVideo
|
|
10
|
-
#if canImport(FireworkVideoUI)
|
|
11
10
|
import FireworkVideoUI
|
|
12
|
-
#endif
|
|
13
11
|
|
|
14
12
|
var gShareBaseURL: String?
|
|
15
13
|
var gAdBadgeConfiguration: AdBadgeConfiguration?
|
|
16
|
-
var gVideoLaunchBehavior:
|
|
14
|
+
var gVideoLaunchBehavior: FWRVideoLaunchBehavior?
|
|
17
15
|
|
|
18
16
|
@objc(FireworkSDKModule)
|
|
19
17
|
class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
|
|
18
|
+
static var shared: FireworkSDKModule?
|
|
19
|
+
static var cachedSDKInitOptions: SDKInitOptions?
|
|
20
|
+
static var hasCachedSDKInitOptions: Bool = false
|
|
21
|
+
|
|
20
22
|
// var shareBaseURL: String?
|
|
21
23
|
var customCTAClickEnabled: Bool = false
|
|
22
24
|
|
|
@@ -26,8 +28,17 @@ class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
|
|
|
26
28
|
// player view controller
|
|
27
29
|
var playerMap: NSMapTable<NSString, UIViewController> = NSMapTable.strongToWeakObjects()
|
|
28
30
|
|
|
31
|
+
private var hasCalledSDKInitFromNative: Bool = false
|
|
32
|
+
private var argumentsForInitEvent: [String: Any]?
|
|
33
|
+
private var hasListeners = false
|
|
34
|
+
|
|
29
35
|
override init() {
|
|
30
36
|
super.init()
|
|
37
|
+
Self.shared = self
|
|
38
|
+
if Self.hasCachedSDKInitOptions {
|
|
39
|
+
self.initializeSDK(Self.cachedSDKInitOptions, true)
|
|
40
|
+
}
|
|
41
|
+
|
|
31
42
|
_ = AppLanguageManager.shared
|
|
32
43
|
NotificationCenter.default.addObserver(
|
|
33
44
|
self, selector: #selector(Self.onAppLanguageChanged),
|
|
@@ -46,46 +57,62 @@ class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
|
|
|
46
57
|
return DispatchQueue.main
|
|
47
58
|
}
|
|
48
59
|
|
|
60
|
+
static func initializeSDK(_ options: SDKInitOptions?) {
|
|
61
|
+
if let shared = shared {
|
|
62
|
+
shared.initializeSDK(options, true)
|
|
63
|
+
} else {
|
|
64
|
+
hasCachedSDKInitOptions = true
|
|
65
|
+
cachedSDKInitOptions = options
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
49
69
|
@objc(initializeSDK:resolver:rejecter:)
|
|
50
70
|
func initializeSDK(
|
|
51
71
|
_ options: NSDictionary? = nil,
|
|
52
72
|
resolver: RCTPromiseResolveBlock,
|
|
53
73
|
rejecter: RCTPromiseRejectBlock
|
|
54
74
|
) {
|
|
55
|
-
#if DEBUG
|
|
56
|
-
let formatter = DateFormatter()
|
|
57
|
-
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
|
|
58
|
-
let iOSSDKBundle = Bundle(for: FireworkVideoSDK.self)
|
|
59
|
-
|
|
60
|
-
let messageForLocalizations = """
|
|
61
|
-
[iOS] localizations information \(formatter.string(from: Date()))
|
|
62
|
-
AppleLanguages: \((UserDefaults.standard.object(forKey: "AppleLanguages") as? [String]) ?? [])
|
|
63
|
-
Bundle.main.localizations \(Bundle.main.localizations)
|
|
64
|
-
Bundle.main.preferredLocalizations \(Bundle.main.preferredLocalizations)
|
|
65
|
-
iOSSDKBundle.localizations \(iOSSDKBundle.localizations)
|
|
66
|
-
iOSSDKBundle.preferredLocalizations \(iOSSDKBundle.preferredLocalizations)
|
|
67
|
-
"""
|
|
68
|
-
print("[react-native-firework-sdk] [swift] \(messageForLocalizations)")
|
|
69
|
-
sendEvent(withName: FWEventName.logMessage.rawValue, body: ["message": messageForLocalizations])
|
|
70
|
-
|
|
71
|
-
let message = "[iOS] Call initializeSDK \(formatter.string(from: Date()))"
|
|
72
|
-
print("[react-native-firework-sdk] [swift] \(message)")
|
|
73
|
-
|
|
74
|
-
sendEvent(withName: FWEventName.logMessage.rawValue, body: ["message": message])
|
|
75
|
-
#endif
|
|
76
75
|
var sdkInitOptions: SDKInitOptions?
|
|
77
76
|
if let options = options as? [String: Any] {
|
|
78
77
|
sdkInitOptions = RCTConvert.sdkInitOptions(options)
|
|
79
78
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
FireworkVideoSDK.initializeSDK(delegate: self, userID: sdkInitOptions?.userId)
|
|
83
|
-
FireworkVideoSDK.ctaDelegate = self
|
|
84
|
-
FireworkVideoSDK.eventTracking.videoPlaybackDelegate = self
|
|
85
|
-
FireworkVideoSDK.eventTracking.feedDelegate = self
|
|
79
|
+
initializeSDK(sdkInitOptions, false)
|
|
86
80
|
resolver([:])
|
|
87
81
|
}
|
|
88
82
|
|
|
83
|
+
@objc(markInitCalled:rejecter:)
|
|
84
|
+
func markInitCalled(
|
|
85
|
+
_ resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock
|
|
86
|
+
) {
|
|
87
|
+
if hasCalledSDKInitFromNative,
|
|
88
|
+
let argumentsForInitEvent = argumentsForInitEvent {
|
|
89
|
+
// The sdk init event was received before.
|
|
90
|
+
sendEvent(withName: FWEventName.sdkInit.rawValue, body: argumentsForInitEvent)
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
resolver(hasCalledSDKInitFromNative)
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
func initializeSDK(_ options: SDKInitOptions?, _ fromNative: Bool) {
|
|
97
|
+
if hasCalledSDKInitFromNative && !fromNative {
|
|
98
|
+
if let argumentsForInitEvent = argumentsForInitEvent {
|
|
99
|
+
// The sdk init event was received before.
|
|
100
|
+
sendEvent(withName: FWEventName.sdkInit.rawValue, body: argumentsForInitEvent)
|
|
101
|
+
}
|
|
102
|
+
} else {
|
|
103
|
+
gVideoLaunchBehavior = options?.videoLaunchBehavior
|
|
104
|
+
|
|
105
|
+
FireworkVideoSDK.initializeSDK(delegate: self, userID: options?.userId)
|
|
106
|
+
FireworkVideoSDK.ctaDelegate = self
|
|
107
|
+
FireworkVideoSDK.eventTracking.videoPlaybackDelegate = self
|
|
108
|
+
FireworkVideoSDK.eventTracking.feedDelegate = self
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if fromNative {
|
|
112
|
+
hasCalledSDKInitFromNative = true
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
89
116
|
@objc(openVideoPlayer:config:)
|
|
90
117
|
func openVideoPlayer(_ url: String, config: NSDictionary?) {
|
|
91
118
|
guard let urlString = URL.init(string: url) else {
|
|
@@ -166,18 +193,6 @@ class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
|
|
|
166
193
|
}
|
|
167
194
|
|
|
168
195
|
guard let trackPurchaseParameters = RCTConvert.trackPurchaseParameters(parameters) else {
|
|
169
|
-
#if DEBUG
|
|
170
|
-
let formatter = DateFormatter()
|
|
171
|
-
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
|
|
172
|
-
|
|
173
|
-
let message = """
|
|
174
|
-
"[iOS] Fail to parse parameters of trackPurchase \
|
|
175
|
-
method: \(String(describing: parameters)) \(formatter.string(from: Date()))
|
|
176
|
-
"""
|
|
177
|
-
print("[react-native-firework-sdk] [swift] \(message)")
|
|
178
|
-
|
|
179
|
-
sendEvent(withName: FWEventName.logMessage.rawValue, body: ["message": message])
|
|
180
|
-
#endif
|
|
181
196
|
return
|
|
182
197
|
}
|
|
183
198
|
FireworkVideoSDK.trackPurchase(
|
|
@@ -195,58 +210,42 @@ class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
|
|
|
195
210
|
resolver: @escaping RCTPromiseResolveBlock,
|
|
196
211
|
rejecter: @escaping RCTPromiseRejectBlock
|
|
197
212
|
) {
|
|
198
|
-
#if DEBUG
|
|
199
|
-
let formatter = DateFormatter()
|
|
200
|
-
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
|
|
201
|
-
let message = "[iOS] Call changeAppLanguage: \(language ?? "") \(formatter.string(from: Date()))"
|
|
202
|
-
sendEvent(withName: FWEventName.logMessage.rawValue, body: ["message": message])
|
|
203
|
-
#endif
|
|
204
|
-
|
|
205
213
|
let result = AppLanguageManager.shared.changeAppLanguage(language)
|
|
206
214
|
|
|
207
215
|
resolver(result)
|
|
208
216
|
}
|
|
209
217
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
|
|
218
|
+
override func startObserving() {
|
|
219
|
+
super.startObserving()
|
|
220
|
+
hasListeners = true
|
|
221
|
+
}
|
|
215
222
|
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
223
|
+
override func stopObserving() {
|
|
224
|
+
super.stopObserving()
|
|
225
|
+
hasListeners = false
|
|
226
|
+
}
|
|
219
227
|
|
|
220
|
-
|
|
221
|
-
|
|
228
|
+
// MARK: - FireworkVideoSDKDelegate
|
|
229
|
+
func fireworkVideoDidLoadSuccessfully() {
|
|
230
|
+
argumentsForInitEvent = [:]
|
|
222
231
|
|
|
223
|
-
|
|
232
|
+
if hasListeners {
|
|
233
|
+
sendEvent(withName: FWEventName.sdkInit.rawValue, body: argumentsForInitEvent)
|
|
234
|
+
}
|
|
224
235
|
}
|
|
225
236
|
|
|
226
237
|
func fireworkVideoDidLoadWith(error: FireworkVideoSDKError) {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
"[iOS] Send SDK initialization failure event \(formatter.string(from: Date()))"
|
|
233
|
-
print("[react-native-firework-sdk] [swift] \(message)")
|
|
238
|
+
argumentsForInitEvent = [
|
|
239
|
+
"error": [
|
|
240
|
+
"name": error.jsErrorName, "reason": error.recoverySuggestion ?? "default"
|
|
241
|
+
]
|
|
242
|
+
]
|
|
234
243
|
|
|
244
|
+
if hasListeners {
|
|
235
245
|
sendEvent(
|
|
236
|
-
withName: FWEventName.
|
|
237
|
-
body:
|
|
238
|
-
|
|
239
|
-
"[iOS] Send SDK initialization failure event \(formatter.string(from: Date()))"
|
|
240
|
-
])
|
|
241
|
-
#endif
|
|
242
|
-
|
|
243
|
-
sendEvent(
|
|
244
|
-
withName: FWEventName.sdkInit.rawValue,
|
|
245
|
-
body: [
|
|
246
|
-
"error": [
|
|
247
|
-
"name": error.jsErrorName, "reason": error.recoverySuggestion ?? "default"
|
|
248
|
-
]
|
|
249
|
-
])
|
|
246
|
+
withName: FWEventName.sdkInit.rawValue,
|
|
247
|
+
body: argumentsForInitEvent)
|
|
248
|
+
}
|
|
250
249
|
}
|
|
251
250
|
|
|
252
251
|
@objc func onAppLanguageChanged() {
|
|
@@ -7,16 +7,20 @@
|
|
|
7
7
|
import Foundation
|
|
8
8
|
import FireworkVideo
|
|
9
9
|
|
|
10
|
-
struct SDKInitOptions: Codable {
|
|
11
|
-
var userId: String?
|
|
12
|
-
var videoLaunchBehavior:
|
|
10
|
+
public struct SDKInitOptions: Codable {
|
|
11
|
+
public var userId: String?
|
|
12
|
+
public var videoLaunchBehavior: FWRVideoLaunchBehavior?
|
|
13
|
+
public init(userId: String? = nil, videoLaunchBehavior: FWRVideoLaunchBehavior? = nil) {
|
|
14
|
+
self.userId = userId
|
|
15
|
+
self.videoLaunchBehavior = videoLaunchBehavior
|
|
16
|
+
}
|
|
13
17
|
}
|
|
14
18
|
|
|
15
|
-
public enum
|
|
19
|
+
public enum FWRVideoLaunchBehavior: String, Codable {
|
|
16
20
|
case `default`, muteOnFirstLaunch
|
|
17
21
|
}
|
|
18
22
|
|
|
19
|
-
extension
|
|
23
|
+
extension FWRVideoLaunchBehavior {
|
|
20
24
|
func behavior() -> VideoPlayerContentConfiguration.VideoLaunchBehavior {
|
|
21
25
|
switch self {
|
|
22
26
|
case .muteOnFirstLaunch:
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
// Created by Jeff Zheng on 2021/12/30.
|
|
6
6
|
//
|
|
7
7
|
|
|
8
|
-
// swiftlint:disable file_length
|
|
8
|
+
// swiftlint:disable file_length
|
|
9
9
|
import FireworkVideo
|
|
10
10
|
import Foundation
|
|
11
11
|
|
|
@@ -75,55 +75,16 @@ class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate {
|
|
|
75
75
|
|
|
76
76
|
@objc
|
|
77
77
|
func updateVideoProducts(_ products: [AnyObject]?, cbId: NSNumber) {
|
|
78
|
-
#if DEBUG
|
|
79
|
-
let formatter = DateFormatter()
|
|
80
|
-
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
|
|
81
|
-
let message1 = "[iOS] Call updateVideoProducts 1 \(formatter.string(from: Date()))"
|
|
82
|
-
print("[react-native-firework-sdk] [swift] \(message1)")
|
|
83
|
-
|
|
84
|
-
sendEvent(
|
|
85
|
-
withName: FWEventName.logMessage.rawValue,
|
|
86
|
-
body: [
|
|
87
|
-
"message": message1
|
|
88
|
-
])
|
|
89
|
-
#endif
|
|
90
|
-
|
|
91
78
|
guard let productHydrating = productHydratingMap[Int(truncating: cbId)] else {
|
|
92
79
|
return
|
|
93
80
|
}
|
|
94
81
|
|
|
95
82
|
productHydratingMap.removeValue(forKey: Int(truncating: cbId))
|
|
96
83
|
|
|
97
|
-
#if DEBUG
|
|
98
|
-
let message2 = "[iOS] Call updateVideoProducts 2 \(formatter.string(from: Date()))"
|
|
99
|
-
print("[react-native-firework-sdk] [swift] \(message2)")
|
|
100
|
-
|
|
101
|
-
sendEvent(
|
|
102
|
-
withName: FWEventName.logMessage.rawValue,
|
|
103
|
-
body: [
|
|
104
|
-
"message": message2
|
|
105
|
-
])
|
|
106
|
-
#endif
|
|
107
|
-
|
|
108
84
|
guard let rProducts = RCTConvert.buildProducts(products) else {
|
|
109
85
|
return
|
|
110
86
|
}
|
|
111
87
|
|
|
112
|
-
#if DEBUG
|
|
113
|
-
let productIds = rProducts.map({ product in
|
|
114
|
-
return product.productId
|
|
115
|
-
}).joined(separator: ",")
|
|
116
|
-
let message3 =
|
|
117
|
-
"[iOS] Call updateVideoProducts 3 productIds: \(productIds) \(formatter.string(from: Date()))"
|
|
118
|
-
print("[react-native-firework-sdk] [swift] \(message3)")
|
|
119
|
-
|
|
120
|
-
sendEvent(
|
|
121
|
-
withName: FWEventName.logMessage.rawValue,
|
|
122
|
-
body: [
|
|
123
|
-
"message": message3
|
|
124
|
-
])
|
|
125
|
-
#endif
|
|
126
|
-
|
|
127
88
|
for product in rProducts {
|
|
128
89
|
productHydrating.hydrateProduct(
|
|
129
90
|
product.productId, { build in
|
|
@@ -188,10 +149,6 @@ class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate {
|
|
|
188
149
|
return
|
|
189
150
|
}
|
|
190
151
|
|
|
191
|
-
#if DEBUG
|
|
192
|
-
print("ctaResult res \(String(describing: ctaResult.res))")
|
|
193
|
-
#endif
|
|
194
|
-
|
|
195
152
|
guard let handler = shoppingCTAHandlerMap[Int(truncating: cbId)] else {
|
|
196
153
|
return
|
|
197
154
|
}
|
|
@@ -244,19 +201,6 @@ class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate {
|
|
|
244
201
|
if let productInfoViewConfiguration = productInfoViewConfiguration {
|
|
245
202
|
ShoppingModule.hydrateProductViewConfig(productInfoViewConfiguration, productInfoViewConfigurator)
|
|
246
203
|
}
|
|
247
|
-
|
|
248
|
-
#if DEBUG
|
|
249
|
-
let formatter = DateFormatter()
|
|
250
|
-
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
|
|
251
|
-
|
|
252
|
-
let message =
|
|
253
|
-
"[iOS] Send WillDisplayProduct event videoId: \(video.videoID) \(formatter.string(from: Date()))"
|
|
254
|
-
print("[react-native-firework-sdk] [swift] \(message)")
|
|
255
|
-
|
|
256
|
-
sendEvent(
|
|
257
|
-
withName: FWEventName.logMessage.rawValue,
|
|
258
|
-
body: ["message": message])
|
|
259
|
-
#endif
|
|
260
204
|
}
|
|
261
205
|
|
|
262
206
|
func fireworkShopping(
|
|
@@ -266,24 +210,13 @@ class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate {
|
|
|
266
210
|
let callbackId = ShoppingModule.generateCallbackId()
|
|
267
211
|
self.productHydratingMap[callbackId] = productHydrator
|
|
268
212
|
|
|
269
|
-
#if DEBUG
|
|
270
|
-
let formatter = DateFormatter()
|
|
271
|
-
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
|
|
272
|
-
|
|
273
|
-
let message = """
|
|
274
|
-
"[iOS] Send UpdateProductDetails event productIds: \(products) and \
|
|
275
|
-
videoId: \(video.videoID) \(formatter.string(from: Date()))
|
|
276
|
-
"""
|
|
277
|
-
print("[react-native-firework-sdk] [swift] \(message)")
|
|
278
|
-
|
|
279
|
-
sendEvent(
|
|
280
|
-
withName: FWEventName.logMessage.rawValue,
|
|
281
|
-
body: ["message": message])
|
|
282
|
-
#endif
|
|
283
|
-
|
|
284
213
|
sendEvent(
|
|
285
214
|
withName: ShoppingEventName.updateProductDetails.rawValue,
|
|
286
|
-
body: [
|
|
215
|
+
body: [
|
|
216
|
+
"productIds": products,
|
|
217
|
+
"callbackId": callbackId,
|
|
218
|
+
"video": video.jsObject
|
|
219
|
+
])
|
|
287
220
|
}
|
|
288
221
|
|
|
289
222
|
func fireworkShopping(
|
|
@@ -296,6 +229,7 @@ class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate {
|
|
|
296
229
|
self.shoppingCTAHandlerMap[callbackId] = ctaCompletionHandler
|
|
297
230
|
var body = item.jsObject
|
|
298
231
|
body["callbackId"] = callbackId
|
|
232
|
+
body["video"] = video.jsObject
|
|
299
233
|
sendEvent(
|
|
300
234
|
withName: ShoppingEventName.ctaButtonClick.rawValue,
|
|
301
235
|
body: body)
|
|
@@ -319,7 +253,9 @@ class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate {
|
|
|
319
253
|
didTapCartIconForVideo videoDetails: VideoDetails
|
|
320
254
|
) {
|
|
321
255
|
sendEvent(
|
|
322
|
-
withName: ShoppingEventName.clickCartIcon.rawValue, body: [
|
|
256
|
+
withName: ShoppingEventName.clickCartIcon.rawValue, body: [
|
|
257
|
+
"video": videoDetails.jsObject
|
|
258
|
+
])
|
|
323
259
|
}
|
|
324
260
|
|
|
325
261
|
func fireworkShopping(
|
|
@@ -208,8 +208,8 @@ class FireworkSDK {
|
|
|
208
208
|
this.eventEmitter.addListener(_FWEventName.FWEventName.SDKInit, event => {
|
|
209
209
|
_FWLoggerUtil.default.log(`Receive SDKInit event ${event === null || event === void 0 ? void 0 : event.error}`);
|
|
210
210
|
|
|
211
|
-
if (this.onSDKInit) {
|
|
212
|
-
this.onSDKInit(event
|
|
211
|
+
if (this.onSDKInit && event) {
|
|
212
|
+
this.onSDKInit(event);
|
|
213
213
|
}
|
|
214
214
|
});
|
|
215
215
|
this.eventEmitter.addListener(_FWEventName.FWEventName.LogMessage, event => {
|
|
@@ -220,36 +220,34 @@ class FireworkSDK {
|
|
|
220
220
|
|
|
221
221
|
_FWLoggerUtil.default.log(`Receive CustomCTAClick callbackId: ${event === null || event === void 0 ? void 0 : event.callbackId}`);
|
|
222
222
|
|
|
223
|
-
if (this.onCustomCTAClick) {
|
|
224
|
-
if (event) {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
};
|
|
234
|
-
}
|
|
223
|
+
if (this.onCustomCTAClick && event) {
|
|
224
|
+
if (event.callbackId) {
|
|
225
|
+
const callbackId = event.callbackId;
|
|
226
|
+
delete event.callbackId;
|
|
227
|
+
|
|
228
|
+
if (_reactNative.Platform.OS === 'ios') {
|
|
229
|
+
event.playerHandler = {
|
|
230
|
+
pause: () => _FireworkSDKModule.default.pausePlayer(callbackId),
|
|
231
|
+
resume: () => _FireworkSDKModule.default.resumePlayer(callbackId)
|
|
232
|
+
};
|
|
235
233
|
}
|
|
236
234
|
}
|
|
237
235
|
|
|
238
|
-
this.onCustomCTAClick(event
|
|
236
|
+
this.onCustomCTAClick(event);
|
|
239
237
|
}
|
|
240
238
|
});
|
|
241
239
|
this.eventEmitter.addListener(_FWEventName.FWEventName.VideoPlayback, event => {
|
|
242
240
|
_FWLoggerUtil.default.log(`Receive VideoPlayback event eventName: ${event === null || event === void 0 ? void 0 : event.eventName}`);
|
|
243
241
|
|
|
244
|
-
if (this.onVideoPlayback) {
|
|
245
|
-
this.onVideoPlayback(event
|
|
242
|
+
if (this.onVideoPlayback && event) {
|
|
243
|
+
this.onVideoPlayback(event);
|
|
246
244
|
}
|
|
247
245
|
});
|
|
248
246
|
this.eventEmitter.addListener(_FWEventName.FWEventName.VideoFeedClick, event => {
|
|
249
247
|
_FWLoggerUtil.default.log(`Receive VideoFeedClick event id: ${event === null || event === void 0 ? void 0 : event.info.id}`);
|
|
250
248
|
|
|
251
|
-
if (this.onVideoFeedClick) {
|
|
252
|
-
this.onVideoFeedClick(event
|
|
249
|
+
if (this.onVideoFeedClick && event) {
|
|
250
|
+
this.onVideoFeedClick(event);
|
|
253
251
|
}
|
|
254
252
|
});
|
|
255
253
|
|
|
@@ -290,6 +288,15 @@ class FireworkSDK {
|
|
|
290
288
|
|
|
291
289
|
|
|
292
290
|
async markInitCalled() {
|
|
291
|
+
_FWLoggerUtil.default.log('Call FireworkSDK markInitCalled method');
|
|
292
|
+
|
|
293
|
+
const hasCalledSDKInitFromNative = await _FireworkSDKModule.default.markInitCalled();
|
|
294
|
+
|
|
295
|
+
if (hasCalledSDKInitFromNative) {
|
|
296
|
+
await _ShoppingModule.default.init();
|
|
297
|
+
await _LiveStreamModule.default.init();
|
|
298
|
+
}
|
|
299
|
+
|
|
293
300
|
_FWGlobalState.default.getInstance().resolveSdkInitCalled();
|
|
294
301
|
}
|
|
295
302
|
/**
|
|
@@ -313,13 +320,11 @@ class FireworkSDK {
|
|
|
313
320
|
|
|
314
321
|
|
|
315
322
|
async trackPurchase(parameters) {
|
|
316
|
-
if (
|
|
317
|
-
|
|
318
|
-
await _FWGlobalState.default.getInstance().sdkInitCalledPromise;
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
_FireworkSDKModule.default.trackPurchase(parameters);
|
|
323
|
+
if (!_FWGlobalState.default.getInstance().sdkInitCalled) {
|
|
324
|
+
await _FWGlobalState.default.getInstance().sdkInitCalledPromise;
|
|
322
325
|
}
|
|
326
|
+
|
|
327
|
+
_FireworkSDKModule.default.trackPurchase(parameters);
|
|
323
328
|
}
|
|
324
329
|
/**
|
|
325
330
|
* Change App level language.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FireworkSDK.ts"],"names":["FireworkSDK","onVideoFeedClick","_onVideoFeedClick","value","Platform","OS","FireworkSDKModule","setVideoFeedClickCallbackEnabled","onCustomCTAClick","_onCustomCTAClick","FWLoggerUtil","log","setCustomCTAClickEnabled","onVideoPlayback","_onVideoPlayback","setVideoPlaybackEventEnabled","shareBaseURL","_shareBaseURL","updateInternalShareBaseURL","setShareBaseURL","adBadgeConfiguration","_adBadgeConfiguration","valueHasChanged","badgeTextType","backgroundColor","textColor","androidFontInfo","isCustom","typefaceName","eventEmitter","emit","FWEventName","AdBadgeConfigurationUpdated","setAdBadgeConfiguration","appLanguage","_appLanguage","debugLogsEnabled","enabled","videoLaunchBehavior","_videoLaunchBehavior","FireworkSDKModuleEventEmitter","shopping","_shopping","liveStream","_liveStream","navigator","_navigator","getInstance","_instance","constructor","VideoShopping","LiveStream","FWNavigator","addListener","SDKInit","event","error","onSDKInit","LogMessage","logNativeMessage","message","CustomCTAClick","url","callbackId","playerHandler","pause","pausePlayer","resume","resumePlayer","VideoPlayback","eventName","VideoFeedClick","info","id","NativeAppLanguageUpdated","language","updateInternalAppLanguage","init","options","videoLaunchBehaviorUpdated","VideoLaunchBehaviorUpdated","ShoppingModule","LiveStreamModule","FWGlobalState","resolveSdkInitCalled","markInitCalled","openVideoPlayer","config","sdkInitCalled","sdkInitCalledPromise","trackPurchase","parameters","changeAppLanguage","result","languageChanged","stopFloatingPlayer","AppLanguageUpdated","shareBaseURLChanged","ShareBaseURLUpdated"],"mappings":"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","sourcesContent":["import { NativeEventEmitter, Platform } from 'react-native';\n\nimport FWNavigator from './FWNavigator';\nimport LiveStream from './LiveStream';\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 SDKInitOptions from './models/SDKInitOptions';\nimport type { VideoLaunchBehavior } from './models/SDKInitOptions';\nimport type TrackPurchaseParameters from './models/TrackPurchaseParameters';\nimport FireworkSDKModule, {\n FireworkSDKModuleEventEmitter,\n} from './modules/FireworkSDKModule';\nimport LiveStreamModule from './modules/LiveStreamModule';\nimport ShoppingModule from './modules/ShoppingModule';\nimport FWLoggerUtil from './utils/FWLoggerUtil';\nimport VideoShopping from './VideoShopping';\nimport FWGlobalState from './utils/FWGlobalState';\nimport type OpenVideoPlayerConfiguration from './models/OpenVideoPlayerConfiguration';\n\nexport type SDKInitCallback = (event: SDKInitEvent) => Promise<void> | void;\nexport type CustomCTAClickCallback = (\n event: CustomCTAClickEvent\n) => Promise<void> | void;\nexport type VideoPlaybackCallback = (\n event: VideoPlaybackEvent\n) => Promise<void> | void;\nexport type VideoFeedClickCallback = (\n event: VideoFeedClickEvent\n) => Promise<void> | void;\n\n/**\n * Firework SDK.\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 get onVideoFeedClick(): VideoFeedClickCallback | undefined {\n return this._onVideoFeedClick;\n }\n public set onVideoFeedClick(value: VideoFeedClickCallback | undefined) {\n this._onVideoFeedClick = value;\n if (Platform.OS === 'ios') {\n FireworkSDKModule.setVideoFeedClickCallbackEnabled(!!value);\n }\n }\n private _onVideoFeedClick?: VideoFeedClickCallback | undefined;\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 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 global share base URL of the video.\n * The {@link VideoPlayerConfiguration.shareBaseURL} in {@link VideoPlayerConfiguration} will override this.\n */\n public get shareBaseURL(): string | undefined {\n return this._shareBaseURL;\n }\n public set shareBaseURL(value: string | undefined) {\n this.updateInternalShareBaseURL(value);\n FireworkSDKModule.setShareBaseURL(value ?? '');\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 const valueHasChanged =\n this._adBadgeConfiguration?.badgeTextType !== value?.badgeTextType ||\n this._adBadgeConfiguration?.backgroundColor !== value?.backgroundColor ||\n this._adBadgeConfiguration?.textColor !== value?.textColor ||\n this._adBadgeConfiguration?.androidFontInfo?.isCustom !==\n value?.androidFontInfo?.isCustom ||\n this._adBadgeConfiguration?.androidFontInfo?.typefaceName !==\n value?.androidFontInfo?.typefaceName;\n this._adBadgeConfiguration = value;\n if (valueHasChanged) {\n this.eventEmitter.emit(FWEventName.AdBadgeConfigurationUpdated);\n }\n FireworkSDKModule.setAdBadgeConfiguration(value ?? {});\n }\n private _adBadgeConfiguration: AdBadgeConfiguration | undefined;\n\n public get appLanguage(): string | undefined | null {\n return this._appLanguage;\n }\n private _appLanguage: string | undefined | null;\n\n /**\n * Defaults to false.\n * You can enable debug logs by setting this property to true.\n */\n public get debugLogsEnabled(): boolean {\n return FWLoggerUtil.enabled;\n }\n public set debugLogsEnabled(value: boolean) {\n FWLoggerUtil.enabled = value;\n }\n\n /**\n * Get video launch behavior.\n */\n public get videoLaunchBehavior(): VideoLaunchBehavior | undefined {\n return this._videoLaunchBehavior;\n }\n private _videoLaunchBehavior: VideoLaunchBehavior | 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 this._shopping;\n }\n private _shopping: VideoShopping = VideoShopping.getInstance();\n\n /**\n * Get LiveStream object.\n */\n public get liveStream(): LiveStream {\n return this._liveStream;\n }\n private _liveStream: LiveStream = LiveStream.getInstance();\n\n /**\n * Get FWNavigator object.\n */\n public get navigator(): FWNavigator {\n return this._navigator;\n }\n private _navigator: FWNavigator = FWNavigator.getInstance();\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 FWLoggerUtil.log('FireworkSDK constructor');\n\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 FWLoggerUtil.log(\n `Receive CustomCTAClick callbackId: ${event?.callbackId}`\n );\n\n if (this.onCustomCTAClick) {\n if (event) {\n if (event.callbackId) {\n const callbackId = event.callbackId;\n delete event.callbackId;\n if (Platform.OS === 'ios') {\n event.playerHandler = {\n pause: () => FireworkSDKModule.pausePlayer(callbackId),\n resume: () => FireworkSDKModule.resumePlayer(callbackId),\n };\n }\n }\n }\n\n this.onCustomCTAClick(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoPlayback, (event) => {\n FWLoggerUtil.log(\n `Receive VideoPlayback event eventName: ${event?.eventName}`\n );\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 id: ${event?.info.id}`);\n\n if (this.onVideoFeedClick) {\n this.onVideoFeedClick(event ?? {});\n }\n });\n\n if (Platform.OS === 'ios') {\n this.eventEmitter.addListener(\n FWEventName.NativeAppLanguageUpdated,\n (event) => {\n FWLoggerUtil.log(\n `Receive NativeAppLanguageUpdated event appLanguage: ${event.appLanguage}`\n );\n const language = event.appLanguage;\n this.updateInternalAppLanguage(language);\n }\n );\n }\n }\n\n /**\n * Initializes Firework SDK.\n * @param {SDKInitOptions?} options\n */\n public async init(options?: SDKInitOptions): Promise<void> {\n FWLoggerUtil.log('Call FireworkSDK init method');\n const videoLaunchBehaviorUpdated =\n this._videoLaunchBehavior !== options?.videoLaunchBehavior;\n this._videoLaunchBehavior = options?.videoLaunchBehavior;\n if (videoLaunchBehaviorUpdated) {\n this.eventEmitter.emit(FWEventName.VideoLaunchBehaviorUpdated);\n }\n await FireworkSDKModule.init(options);\n await ShoppingModule.init();\n await LiveStreamModule.init();\n\n FWGlobalState.getInstance().resolveSdkInitCalled();\n }\n\n /**\n * You only need to call this method when you call init method in native side instead of JS side.\n */\n public async markInitCalled(): Promise<void> {\n FWGlobalState.getInstance().resolveSdkInitCalled();\n }\n\n /**\n * Open Video URL.\n * @param {string} url\n * @param {VideoPlayerConfiguration} config\n */\n public async openVideoPlayer(\n url: string,\n config?: OpenVideoPlayerConfiguration\n ): Promise<void> {\n if (!FWGlobalState.getInstance().sdkInitCalled) {\n await FWGlobalState.getInstance().sdkInitCalledPromise;\n }\n FireworkSDKModule.openVideoPlayer(url, config ?? {});\n }\n\n /**\n * Records the user purchase. Only supported on iOS.\n * @param {TrackPurchaseParameters} parameters\n */\n public async trackPurchase(\n parameters: TrackPurchaseParameters\n ): Promise<void> {\n if (Platform.OS === 'ios') {\n if (!FWGlobalState.getInstance().sdkInitCalled) {\n await FWGlobalState.getInstance().sdkInitCalledPromise;\n }\n FireworkSDKModule.trackPurchase(parameters);\n }\n }\n\n /**\n * Change App level language.\n * @param {string | undefined | null} language Such as en, ar and en-US. If language is undefined or null or empty string, SDK will use system language.\n * @returns {Promise<boolean>} The result of changing app language.\n */\n public async changeAppLanguage(language?: string | null): Promise<boolean> {\n if (!FWGlobalState.getInstance().sdkInitCalled) {\n await FWGlobalState.getInstance().sdkInitCalledPromise;\n }\n\n const result = await FireworkSDKModule.changeAppLanguage(language);\n\n if (result) {\n const languageChanged = this._appLanguage !== language;\n if (Platform.OS === 'ios' && languageChanged) {\n await this.navigator.stopFloatingPlayer();\n }\n this.updateInternalAppLanguage(language);\n }\n return result;\n }\n\n private updateInternalAppLanguage(language?: string | null) {\n const valueHasChanged = this._appLanguage !== language;\n this._appLanguage = language;\n if (valueHasChanged) {\n this.eventEmitter.emit(FWEventName.AppLanguageUpdated);\n }\n }\n\n private updateInternalShareBaseURL(shareBaseURL?: string) {\n const shareBaseURLChanged = this._shareBaseURL !== shareBaseURL;\n this._shareBaseURL = shareBaseURL;\n if (shareBaseURLChanged) {\n this.eventEmitter.emit(FWEventName.ShareBaseURLUpdated);\n }\n }\n}\n\nexport default FireworkSDK;\n"]}
|
|
1
|
+
{"version":3,"sources":["FireworkSDK.ts"],"names":["FireworkSDK","onVideoFeedClick","_onVideoFeedClick","value","Platform","OS","FireworkSDKModule","setVideoFeedClickCallbackEnabled","onCustomCTAClick","_onCustomCTAClick","FWLoggerUtil","log","setCustomCTAClickEnabled","onVideoPlayback","_onVideoPlayback","setVideoPlaybackEventEnabled","shareBaseURL","_shareBaseURL","updateInternalShareBaseURL","setShareBaseURL","adBadgeConfiguration","_adBadgeConfiguration","valueHasChanged","badgeTextType","backgroundColor","textColor","androidFontInfo","isCustom","typefaceName","eventEmitter","emit","FWEventName","AdBadgeConfigurationUpdated","setAdBadgeConfiguration","appLanguage","_appLanguage","debugLogsEnabled","enabled","videoLaunchBehavior","_videoLaunchBehavior","FireworkSDKModuleEventEmitter","shopping","_shopping","liveStream","_liveStream","navigator","_navigator","getInstance","_instance","constructor","VideoShopping","LiveStream","FWNavigator","addListener","SDKInit","event","error","onSDKInit","LogMessage","logNativeMessage","message","CustomCTAClick","url","callbackId","playerHandler","pause","pausePlayer","resume","resumePlayer","VideoPlayback","eventName","VideoFeedClick","info","id","NativeAppLanguageUpdated","language","updateInternalAppLanguage","init","options","videoLaunchBehaviorUpdated","VideoLaunchBehaviorUpdated","ShoppingModule","LiveStreamModule","FWGlobalState","resolveSdkInitCalled","markInitCalled","hasCalledSDKInitFromNative","openVideoPlayer","config","sdkInitCalled","sdkInitCalledPromise","trackPurchase","parameters","changeAppLanguage","result","languageChanged","stopFloatingPlayer","AppLanguageUpdated","shareBaseURLChanged","ShareBaseURLUpdated"],"mappings":"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","sourcesContent":["import { NativeEventEmitter, Platform } from 'react-native';\n\nimport FWNavigator from './FWNavigator';\nimport LiveStream from './LiveStream';\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 SDKInitOptions from './models/SDKInitOptions';\nimport type { VideoLaunchBehavior } from './models/SDKInitOptions';\nimport type TrackPurchaseParameters from './models/TrackPurchaseParameters';\nimport FireworkSDKModule, {\n FireworkSDKModuleEventEmitter,\n} from './modules/FireworkSDKModule';\nimport LiveStreamModule from './modules/LiveStreamModule';\nimport ShoppingModule from './modules/ShoppingModule';\nimport FWLoggerUtil from './utils/FWLoggerUtil';\nimport VideoShopping from './VideoShopping';\nimport FWGlobalState from './utils/FWGlobalState';\nimport type OpenVideoPlayerConfiguration from './models/OpenVideoPlayerConfiguration';\n\nexport type SDKInitCallback = (event: SDKInitEvent) => Promise<void> | void;\nexport type CustomCTAClickCallback = (\n event: CustomCTAClickEvent\n) => Promise<void> | void;\nexport type VideoPlaybackCallback = (\n event: VideoPlaybackEvent\n) => Promise<void> | void;\nexport type VideoFeedClickCallback = (\n event: VideoFeedClickEvent\n) => Promise<void> | void;\n\n/**\n * Firework SDK.\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 get onVideoFeedClick(): VideoFeedClickCallback | undefined {\n return this._onVideoFeedClick;\n }\n public set onVideoFeedClick(value: VideoFeedClickCallback | undefined) {\n this._onVideoFeedClick = value;\n if (Platform.OS === 'ios') {\n FireworkSDKModule.setVideoFeedClickCallbackEnabled(!!value);\n }\n }\n private _onVideoFeedClick?: VideoFeedClickCallback | undefined;\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 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 global share base URL of the video.\n * The {@link VideoPlayerConfiguration.shareBaseURL} in {@link VideoPlayerConfiguration} will override this.\n */\n public get shareBaseURL(): string | undefined {\n return this._shareBaseURL;\n }\n public set shareBaseURL(value: string | undefined) {\n this.updateInternalShareBaseURL(value);\n FireworkSDKModule.setShareBaseURL(value ?? '');\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 const valueHasChanged =\n this._adBadgeConfiguration?.badgeTextType !== value?.badgeTextType ||\n this._adBadgeConfiguration?.backgroundColor !== value?.backgroundColor ||\n this._adBadgeConfiguration?.textColor !== value?.textColor ||\n this._adBadgeConfiguration?.androidFontInfo?.isCustom !==\n value?.androidFontInfo?.isCustom ||\n this._adBadgeConfiguration?.androidFontInfo?.typefaceName !==\n value?.androidFontInfo?.typefaceName;\n this._adBadgeConfiguration = value;\n if (valueHasChanged) {\n this.eventEmitter.emit(FWEventName.AdBadgeConfigurationUpdated);\n }\n FireworkSDKModule.setAdBadgeConfiguration(value ?? {});\n }\n private _adBadgeConfiguration: AdBadgeConfiguration | undefined;\n\n public get appLanguage(): string | undefined | null {\n return this._appLanguage;\n }\n private _appLanguage: string | undefined | null;\n\n /**\n * Defaults to false.\n * You can enable debug logs by setting this property to true.\n */\n public get debugLogsEnabled(): boolean {\n return FWLoggerUtil.enabled;\n }\n public set debugLogsEnabled(value: boolean) {\n FWLoggerUtil.enabled = value;\n }\n\n /**\n * Get video launch behavior.\n */\n public get videoLaunchBehavior(): VideoLaunchBehavior | undefined {\n return this._videoLaunchBehavior;\n }\n private _videoLaunchBehavior: VideoLaunchBehavior | 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 this._shopping;\n }\n private _shopping: VideoShopping = VideoShopping.getInstance();\n\n /**\n * Get LiveStream object.\n */\n public get liveStream(): LiveStream {\n return this._liveStream;\n }\n private _liveStream: LiveStream = LiveStream.getInstance();\n\n /**\n * Get FWNavigator object.\n */\n public get navigator(): FWNavigator {\n return this._navigator;\n }\n private _navigator: FWNavigator = FWNavigator.getInstance();\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 FWLoggerUtil.log('FireworkSDK constructor');\n\n this.eventEmitter.addListener(FWEventName.SDKInit, (event) => {\n FWLoggerUtil.log(`Receive SDKInit event ${event?.error}`);\n\n if (this.onSDKInit && event) {\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 FWLoggerUtil.log(\n `Receive CustomCTAClick callbackId: ${event?.callbackId}`\n );\n\n if (this.onCustomCTAClick && event) {\n if (event.callbackId) {\n const callbackId = event.callbackId;\n delete event.callbackId;\n if (Platform.OS === 'ios') {\n event.playerHandler = {\n pause: () => FireworkSDKModule.pausePlayer(callbackId),\n resume: () => FireworkSDKModule.resumePlayer(callbackId),\n };\n }\n }\n this.onCustomCTAClick(event);\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoPlayback, (event) => {\n FWLoggerUtil.log(\n `Receive VideoPlayback event eventName: ${event?.eventName}`\n );\n\n if (this.onVideoPlayback && event) {\n this.onVideoPlayback(event);\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoFeedClick, (event) => {\n FWLoggerUtil.log(`Receive VideoFeedClick event id: ${event?.info.id}`);\n\n if (this.onVideoFeedClick && event) {\n this.onVideoFeedClick(event);\n }\n });\n\n if (Platform.OS === 'ios') {\n this.eventEmitter.addListener(\n FWEventName.NativeAppLanguageUpdated,\n (event) => {\n FWLoggerUtil.log(\n `Receive NativeAppLanguageUpdated event appLanguage: ${event.appLanguage}`\n );\n const language = event.appLanguage;\n this.updateInternalAppLanguage(language);\n }\n );\n }\n }\n\n /**\n * Initializes Firework SDK.\n * @param {SDKInitOptions?} options\n */\n public async init(options?: SDKInitOptions): Promise<void> {\n FWLoggerUtil.log('Call FireworkSDK init method');\n const videoLaunchBehaviorUpdated =\n this._videoLaunchBehavior !== options?.videoLaunchBehavior;\n this._videoLaunchBehavior = options?.videoLaunchBehavior;\n if (videoLaunchBehaviorUpdated) {\n this.eventEmitter.emit(FWEventName.VideoLaunchBehaviorUpdated);\n }\n await FireworkSDKModule.init(options);\n await ShoppingModule.init();\n await LiveStreamModule.init();\n\n FWGlobalState.getInstance().resolveSdkInitCalled();\n }\n\n /**\n * You only need to call this method when you call init method in native side instead of JS side.\n */\n public async markInitCalled(): Promise<void> {\n FWLoggerUtil.log('Call FireworkSDK markInitCalled method');\n\n const hasCalledSDKInitFromNative = await FireworkSDKModule.markInitCalled();\n if (hasCalledSDKInitFromNative) {\n await ShoppingModule.init();\n await LiveStreamModule.init();\n }\n\n FWGlobalState.getInstance().resolveSdkInitCalled();\n }\n\n /**\n * Open Video URL.\n * @param {string} url\n * @param {VideoPlayerConfiguration} config\n */\n public async openVideoPlayer(\n url: string,\n config?: OpenVideoPlayerConfiguration\n ): Promise<void> {\n if (!FWGlobalState.getInstance().sdkInitCalled) {\n await FWGlobalState.getInstance().sdkInitCalledPromise;\n }\n FireworkSDKModule.openVideoPlayer(url, config ?? {});\n }\n\n /**\n * Records the user purchase. Only supported on iOS.\n * @param {TrackPurchaseParameters} parameters\n */\n public async trackPurchase(\n parameters: TrackPurchaseParameters\n ): Promise<void> {\n if (!FWGlobalState.getInstance().sdkInitCalled) {\n await FWGlobalState.getInstance().sdkInitCalledPromise;\n }\n FireworkSDKModule.trackPurchase(parameters);\n }\n\n /**\n * Change App level language.\n * @param {string | undefined | null} language Such as en, ar and en-US. If language is undefined or null or empty string, SDK will use system language.\n * @returns {Promise<boolean>} The result of changing app language.\n */\n public async changeAppLanguage(language?: string | null): Promise<boolean> {\n if (!FWGlobalState.getInstance().sdkInitCalled) {\n await FWGlobalState.getInstance().sdkInitCalledPromise;\n }\n\n const result = await FireworkSDKModule.changeAppLanguage(language);\n\n if (result) {\n const languageChanged = this._appLanguage !== language;\n if (Platform.OS === 'ios' && languageChanged) {\n await this.navigator.stopFloatingPlayer();\n }\n this.updateInternalAppLanguage(language);\n }\n return result;\n }\n\n private updateInternalAppLanguage(language?: string | null) {\n const valueHasChanged = this._appLanguage !== language;\n this._appLanguage = language;\n if (valueHasChanged) {\n this.eventEmitter.emit(FWEventName.AppLanguageUpdated);\n }\n }\n\n private updateInternalShareBaseURL(shareBaseURL?: string) {\n const shareBaseURLChanged = this._shareBaseURL !== shareBaseURL;\n this._shareBaseURL = shareBaseURL;\n if (shareBaseURLChanged) {\n this.eventEmitter.emit(FWEventName.ShareBaseURLUpdated);\n }\n }\n}\n\nexport default FireworkSDK;\n"]}
|
|
@@ -163,10 +163,10 @@ class VideoShopping {
|
|
|
163
163
|
|
|
164
164
|
this.handleShoppingCTAEvent(event);
|
|
165
165
|
});
|
|
166
|
-
this.eventEmitter.addListener(_FWEventName.FWEventName.ClickCartIcon,
|
|
166
|
+
this.eventEmitter.addListener(_FWEventName.FWEventName.ClickCartIcon, event => {
|
|
167
167
|
_FWLoggerUtil.default.log('Receive ClickCartIcon event');
|
|
168
168
|
|
|
169
|
-
this.handleClickCartIconEvent();
|
|
169
|
+
this.handleClickCartIconEvent(event);
|
|
170
170
|
});
|
|
171
171
|
this.eventEmitter.addListener(_FWEventName.FWEventName.UpdateProductDetails, event => {
|
|
172
172
|
_FWLoggerUtil.default.log(`Receive UpdateProductDetails event productIds: ${event === null || event === void 0 ? void 0 : event.productIds}`);
|
|
@@ -183,12 +183,6 @@ class VideoShopping {
|
|
|
183
183
|
_FWLoggerUtil.default.log(`Receive CustomProductCardTap event url: ${event === null || event === void 0 ? void 0 : event.url}`);
|
|
184
184
|
|
|
185
185
|
if (event) {
|
|
186
|
-
if (!event.video) {
|
|
187
|
-
event.video = {
|
|
188
|
-
videoId: ''
|
|
189
|
-
};
|
|
190
|
-
}
|
|
191
|
-
|
|
192
186
|
if (event.callbackId) {
|
|
193
187
|
const callbackId = event.callbackId;
|
|
194
188
|
delete event.callbackId;
|
|
@@ -200,9 +194,9 @@ class VideoShopping {
|
|
|
200
194
|
};
|
|
201
195
|
}
|
|
202
196
|
}
|
|
203
|
-
}
|
|
204
197
|
|
|
205
|
-
|
|
198
|
+
this.handleCustomProductCardTapEvent(event);
|
|
199
|
+
}
|
|
206
200
|
});
|
|
207
201
|
}
|
|
208
202
|
/**
|
|
@@ -242,9 +236,9 @@ class VideoShopping {
|
|
|
242
236
|
}
|
|
243
237
|
}
|
|
244
238
|
|
|
245
|
-
async handleClickCartIconEvent() {
|
|
239
|
+
async handleClickCartIconEvent(event) {
|
|
246
240
|
if (this.onCustomClickCartIcon) {
|
|
247
|
-
this.onCustomClickCartIcon();
|
|
241
|
+
this.onCustomClickCartIcon(event);
|
|
248
242
|
}
|
|
249
243
|
}
|
|
250
244
|
|