react-native-firework-sdk 2.0.0 → 2.2.0-beta.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/FireworkVideoUI.xcframework/Info.plist +40 -0
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/FireworkVideoUI +0 -0
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Headers/FireworkVideoUI-Swift.h +280 -0
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Headers/FireworkVideoUI.h +18 -0
- 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 +1327 -0
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios.private.swiftinterface +41 -0
- 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 +41 -0
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Modules/module.modulemap +11 -0
- 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 +556 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Headers/FireworkVideoUI.h +18 -0
- 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 +1327 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +41 -0
- 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 +41 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/x86_64-apple-ios-simulator.abi.json +1327 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +41 -0
- 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 +41 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/module.modulemap +11 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/_CodeSignature/CodeResources +245 -0
- package/README.md +1 -1
- package/android/build.gradle +5 -4
- package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/FWVideoFeed.kt +6 -0
- package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/StoryBlockFragment.kt +129 -0
- package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/StoryBlockFrameLayout.kt +90 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWAdBadgeConfigModelDeserializer.kt +3 -3
- package/android/src/main/java/com/fireworksdk/bridge/models/FWEventName.kt +5 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/FWFontInfoModelDeserializer.kt +1 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/FWProductInfoViewConfiguration.kt +18 -5
- package/android/src/main/java/com/fireworksdk/bridge/models/FWProductInfoViewConfigurationDeserializer.kt +36 -8
- package/android/src/main/java/com/fireworksdk/bridge/models/FWSDKInitOptionsModelDeserializer.kt +3 -3
- package/android/src/main/java/com/fireworksdk/bridge/models/FWShoppingCtaResult.kt +17 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWShoppingCtaResultDeserializer.kt +33 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedConfigModelDeserializer.kt +14 -12
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedPropsModel.kt +1 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedPropsModelDeserializer.kt +11 -7
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedSource.kt +1 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlaybackDetails.kt +8 -8
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModel.kt +1 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModelDeserializer.kt +19 -12
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoShoppingProductDeserializer.kt +11 -11
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWStoryBlockManager.kt +131 -45
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWVideoFeedManager.kt +11 -3
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FWVideoShoppingInterface.kt +2 -2
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWLiveStreamModule.kt +45 -4
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWNavigatorModule.kt +9 -1
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWVideoShoppingModule.kt +83 -50
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FireworkSDKModule.kt +112 -36
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/utils/FWEventUtils.kt +16 -6
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWConfigUtil.kt +26 -32
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWGlobalDataUtil.kt +10 -0
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWLanguageUtil.kt +48 -16
- package/android/src/main/res/layout/fw_bridge_story_block.xml +24 -0
- package/ios/Components/StoryBlock.swift +32 -2
- package/ios/Components/StoryBlockManager.m +33 -0
- package/ios/Components/StoryBlockManager.swift +4 -0
- package/ios/Components/VideoFeed.swift +16 -32
- package/ios/Components/VideoFeedManager.m +12 -6
- package/ios/Components/VideoFeedManager.swift +4 -0
- package/ios/Components/VideoPlayerConfiguration.swift +1 -0
- package/ios/FireworkSdk.xcodeproj/project.pbxproj +276 -212
- package/ios/FireworkVideoUI/FireworkVideoUI/FireworkVideoUI.docc/FireworkVideoUI.md +13 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/FireworkVideoUI.h +18 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/AppLanguageManager.swift +147 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/Foundation/Bundle+AppLanguage.swift +58 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/Foundation/NumberFormatter+AppLanguage.swift +25 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/Foundation/URLSession+AppLanguage.swift +69 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UIImageView+AppLanguage.swift +91 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UILabel+AppLanguage.swift +98 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UITextField+AppLanguage.swift +97 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UITextView+AppLanguage.swift +97 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UIView+AppLanguage.swift +38 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UIViewController+AppLanguage.swift +46 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UIWindow+AppLanguage.swift +26 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/LanguageUtil.swift +43 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/LayoutFlip/Extensions/Foundation/NSObject+LayoutFlip.swift +42 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/LayoutFlip/Extensions/UIKit/CALayer+LayoutFlip.swift +160 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/LayoutFlip/Extensions/UIKit/UILabel+LayoutFlip.swift +35 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/LayoutFlip/Extensions/UIKit/UIView+LayoutFlip.swift +199 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/LayoutFlip/LayoutFlipManager.swift +59 -0
- package/ios/{Utils/DispatchQueue+FWOnce.swift → FireworkVideoUI/FireworkVideoUI/Sources/Utils/Extensions/Foundation/DispatchQueue+Once.swift} +5 -5
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/Utils/Extensions/Foundation/String+Base64.swift +18 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/Utils/Extensions/UIKit/UIView+UIHierarchy.swift +46 -0
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/Utils/Swizzle.swift +37 -0
- package/ios/FireworkVideoUI/FireworkVideoUI.xcodeproj/project.pbxproj +766 -0
- package/ios/FireworkVideoUI/FireworkVideoUI.xcworkspace/contents.xcworkspacedata +10 -0
- package/ios/FireworkVideoUI/FireworkVideoUI.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/ios/FireworkVideoUI/FireworkVideoUITests/FireworkVideoUITests.swift +37 -0
- package/ios/FireworkVideoUI/Podfile +15 -0
- package/ios/FireworkVideoUI/Podfile.lock +16 -0
- package/ios/Models/NativeToRN/FireworkEventName.swift +7 -1
- package/ios/Models/NativeToRN/FireworkSDK+Json.swift +5 -1
- package/ios/Models/RNToNative/RCTConvert+Shopping.swift +21 -0
- package/ios/Models/RNToNative/RCTConvert+StoryBlock.swift +2 -1
- package/ios/Models/RNToNative/RCTConvert+VideoFeed.swift +29 -1
- package/ios/Modules/FWNavigatorModule/FWNavigatorModule.swift +13 -101
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule+EventTracking.swift +34 -16
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule.m +1 -0
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule.swift +48 -2
- package/ios/Modules/FireworkSDKModule/SDKInitOptions.swift +0 -1
- package/ios/Modules/LiveStream/LiveStreamModule.swift +1 -0
- package/ios/Modules/Shopping/ProductInfoViewConfiguration.swift +7 -2
- package/ios/Modules/Shopping/ShoppingCTAResult.swift +16 -0
- package/ios/Modules/Shopping/ShoppingModule.m +2 -1
- package/ios/Modules/Shopping/ShoppingModule.swift +92 -34
- package/ios/Support/MultiHostStreaming/FWMultiHostStreaming.podspec +22 -0
- package/ios/Support/MultiHostStreaming/Sources/MultiHostStreamingSDK.swift +17 -0
- package/ios/Utils/{UINavigationController+FWSwizzle.swift → Extensions/Swizzle/UINavigationController+FWSwizzle.swift} +9 -8
- package/ios/Utils/FWSwizzleLoader.m +6 -1
- package/ios/Utils/FWSwizzleLoader.swift +13 -0
- package/ios/react_native_firework_sdk.h +1 -0
- package/ios/scripts/react_native_firework_sdk_pods.rb +27 -0
- package/lib/commonjs/FireworkSDK.js +55 -15
- package/lib/commonjs/FireworkSDK.js.map +1 -1
- package/lib/commonjs/LiveStream.js +2 -2
- package/lib/commonjs/LiveStream.js.map +1 -1
- package/lib/commonjs/VideoShopping.js +21 -38
- package/lib/commonjs/VideoShopping.js.map +1 -1
- package/lib/commonjs/components/StoryBlock.js +193 -128
- package/lib/commonjs/components/StoryBlock.js.map +1 -1
- package/lib/commonjs/components/VideoFeed.js +17 -5
- package/lib/commonjs/components/VideoFeed.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/FWEventName.js +3 -0
- package/lib/commonjs/models/FWEventName.js.map +1 -1
- package/lib/commonjs/models/ShoppingCTAResult.js +2 -0
- package/lib/commonjs/models/VideoPlaybackEventName.js +3 -0
- package/lib/commonjs/models/VideoPlaybackEventName.js.map +1 -1
- package/lib/commonjs/modules/FireworkSDKModule.js.map +1 -1
- package/lib/commonjs/modules/ShoppingModule.js.map +1 -1
- package/lib/module/FireworkSDK.js +54 -15
- package/lib/module/FireworkSDK.js.map +1 -1
- package/lib/module/LiveStream.js +2 -2
- package/lib/module/LiveStream.js.map +1 -1
- package/lib/module/VideoShopping.js +21 -40
- package/lib/module/VideoShopping.js.map +1 -1
- package/lib/module/components/StoryBlock.js +183 -133
- package/lib/module/components/StoryBlock.js.map +1 -1
- package/lib/module/components/VideoFeed.js +16 -5
- package/lib/module/components/VideoFeed.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/FWEventName.js +3 -0
- package/lib/module/models/FWEventName.js.map +1 -1
- package/lib/module/models/ShoppingCTAResult.js +2 -0
- package/lib/module/models/VideoPlaybackEventName.js +3 -0
- package/lib/module/models/VideoPlaybackEventName.js.map +1 -1
- package/lib/module/modules/FireworkSDKModule.js.map +1 -1
- package/lib/module/modules/ShoppingModule.js.map +1 -1
- package/lib/typescript/FireworkSDK.d.ts +15 -8
- package/lib/typescript/LiveStream.d.ts +2 -2
- package/lib/typescript/VideoShopping.d.ts +10 -12
- package/lib/typescript/components/StoryBlock.d.ts +25 -24
- package/lib/typescript/components/VideoFeed.d.ts +7 -0
- package/lib/typescript/index.d.ts +6 -6
- package/lib/typescript/models/FWEventName.d.ts +3 -0
- package/lib/typescript/models/FWEvents.d.ts +14 -1
- package/lib/typescript/models/ProductInfoViewConfiguration.d.ts +12 -8
- package/lib/typescript/models/SDKInitOptions.d.ts +6 -1
- package/lib/typescript/models/ShoppingCTAResult.d.ts +11 -0
- package/lib/typescript/models/StoryBlockSource.d.ts +1 -1
- package/lib/typescript/models/VideoFeedSource.d.ts +1 -1
- package/lib/typescript/models/VideoPlaybackDetails.d.ts +16 -0
- package/lib/typescript/models/VideoPlaybackEventName.d.ts +13 -1
- package/lib/typescript/models/VideoPlayerConfiguration.d.ts +4 -0
- package/lib/typescript/modules/FireworkSDKModule.d.ts +1 -2
- package/lib/typescript/modules/ShoppingModule.d.ts +2 -1
- package/package.json +8 -3
- package/react-native-firework-sdk.podspec +31 -24
- package/src/FireworkSDK.ts +54 -15
- package/src/LiveStream.ts +2 -2
- package/src/VideoShopping.ts +41 -54
- package/src/components/StoryBlock.tsx +210 -98
- package/src/components/VideoFeed.tsx +23 -4
- package/src/index.ts +15 -9
- package/src/models/FWEventName.ts +3 -0
- package/src/models/FWEvents.ts +14 -1
- package/src/models/ProductInfoViewConfiguration.ts +13 -8
- package/src/models/SDKInitOptions.ts +6 -1
- package/src/models/ShoppingCTAResult.ts +11 -0
- package/src/models/StoryBlockSource.ts +2 -1
- package/src/models/VideoFeedSource.ts +2 -1
- package/src/models/VideoPlaybackDetails.ts +16 -0
- package/src/models/VideoPlaybackEventName.ts +13 -1
- package/src/models/VideoPlayerConfiguration.ts +4 -0
- package/src/modules/FireworkSDKModule.ts +1 -2
- package/src/modules/ShoppingModule.ts +5 -5
- package/android/src/main/java/com/fireworksdk/bridge/constants/FWCommandConstant.kt +0 -6
- package/ios/Utils/FWSwizzleUtil.swift +0 -29
- package/ios/Utils/UIView+ParentViewController.swift +0 -21
- package/lib/commonjs/models/AddToCartResult.js +0 -2
- package/lib/module/models/AddToCartResult.js +0 -2
- package/lib/typescript/models/AddToCartResult.d.ts +0 -10
- package/src/models/AddToCartResult.ts +0 -10
- /package/ios/Utils/{String+Color.swift → Extensions/String+Color.swift} +0 -0
- /package/ios/Utils/{UIView+Constraints.swift → Extensions/UIView+Constraints.swift} +0 -0
- /package/ios/Utils/{UIViewController+AttachChild.swift → Extensions/UIViewController+AttachChild.swift} +0 -0
- /package/lib/commonjs/models/{AddToCartResult.js.map → ShoppingCTAResult.js.map} +0 -0
- /package/lib/module/models/{AddToCartResult.js.map → ShoppingCTAResult.js.map} +0 -0
|
@@ -10,11 +10,13 @@ import Foundation
|
|
|
10
10
|
|
|
11
11
|
weak var gCartViewController: FWCartViewController?
|
|
12
12
|
|
|
13
|
+
// swiftlint:disable file_length type_body_length
|
|
14
|
+
|
|
13
15
|
@objc(ShoppingModule)
|
|
14
16
|
class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate, CartViewControllerProviding {
|
|
15
17
|
|
|
16
18
|
private var productInfoViewConfigurator: (Int, ProductInfoViewConfigurable)?
|
|
17
|
-
private var
|
|
19
|
+
private var shoppingCTAHandlerMap: [Int: ShoppingCTAHandler] = [:]
|
|
18
20
|
private var productHydratingMap: [Int: ProductHydrating] = [:]
|
|
19
21
|
|
|
20
22
|
private var cartViewController: FWCartViewController?
|
|
@@ -22,6 +24,7 @@ class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate, CartViewCo
|
|
|
22
24
|
private var itemCounts = 0
|
|
23
25
|
private var customClickCartIconEnabled = false
|
|
24
26
|
private var productInfoViewConfiguration: ProductInfoViewConfiguration?
|
|
27
|
+
private var customClickLinkButtonEnabled = false
|
|
25
28
|
|
|
26
29
|
override func supportedEvents() -> [String]! {
|
|
27
30
|
ShoppingEventName.allCases.map { $0.rawValue }
|
|
@@ -130,21 +133,6 @@ class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate, CartViewCo
|
|
|
130
133
|
}
|
|
131
134
|
}
|
|
132
135
|
|
|
133
|
-
@objc
|
|
134
|
-
func updateAddToCartStatus(_ res: String, tips: String?, cbId: NSNumber) {
|
|
135
|
-
guard let handler = addToCartHandlerMap[Int(truncating: cbId)] else {
|
|
136
|
-
return
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
addToCartHandlerMap.removeValue(forKey: Int(truncating: cbId))
|
|
140
|
-
|
|
141
|
-
if res == "success" {
|
|
142
|
-
handler(.feedbackOnly(.success(message: tips ?? "success")))
|
|
143
|
-
} else {
|
|
144
|
-
handler(.feedbackOnly(.failure(message: tips ?? "failure")))
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
136
|
@objc
|
|
149
137
|
func jumpToCartPage(_ cbId: NSNumber, props: NSDictionary) {
|
|
150
138
|
let properties: [String: Any] = (props as? [String: Any]) ?? [:]
|
|
@@ -186,9 +174,51 @@ class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate, CartViewCo
|
|
|
186
174
|
func clearCallbackId(_ cbId: NSNumber, eventName: String) {
|
|
187
175
|
if eventName == ShoppingEventName.updateProductDetails.rawValue {
|
|
188
176
|
productHydratingMap.removeValue(forKey: Int(truncating: cbId))
|
|
189
|
-
} else if eventName == ShoppingEventName.
|
|
190
|
-
|
|
177
|
+
} else if eventName == ShoppingEventName.ctaButtonClick.rawValue {
|
|
178
|
+
if let handler = shoppingCTAHandlerMap[Int(truncating: cbId)] {
|
|
179
|
+
handler(.none)
|
|
180
|
+
}
|
|
181
|
+
shoppingCTAHandlerMap.removeValue(forKey: Int(truncating: cbId))
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
@objc
|
|
186
|
+
func setCustomClickLinkButtonEnabled(
|
|
187
|
+
_ enabled: Bool, resolver: @escaping RCTPromiseResolveBlock,
|
|
188
|
+
rejecter: @escaping RCTPromiseRejectBlock
|
|
189
|
+
) {
|
|
190
|
+
customClickLinkButtonEnabled = enabled
|
|
191
|
+
resolver([:])
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
@objc
|
|
195
|
+
func updateShoppingCTAResult(_ result: [String: Any]?, cbId: NSNumber) {
|
|
196
|
+
guard let ctaResult = RCTConvert.buildShoppingCTAResult(result) else {
|
|
197
|
+
return
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
#if DEBUG
|
|
201
|
+
print("ctaResult res \(String(describing: ctaResult.res))")
|
|
202
|
+
#endif
|
|
203
|
+
|
|
204
|
+
guard let handler = shoppingCTAHandlerMap[Int(truncating: cbId)] else {
|
|
205
|
+
return
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
if let res = ctaResult.res,
|
|
209
|
+
let tips = ctaResult.tips,
|
|
210
|
+
tips.count > 0 {
|
|
211
|
+
switch res {
|
|
212
|
+
case .success:
|
|
213
|
+
handler(.feedbackOnly(.success(message: tips)))
|
|
214
|
+
case .fail:
|
|
215
|
+
handler(.feedbackOnly(.failure(message: tips)))
|
|
216
|
+
}
|
|
217
|
+
} else {
|
|
218
|
+
handler(.none)
|
|
191
219
|
}
|
|
220
|
+
|
|
221
|
+
shoppingCTAHandlerMap.removeValue(forKey: Int(truncating: cbId))
|
|
192
222
|
}
|
|
193
223
|
|
|
194
224
|
// MARK: - FireworkVideoShoppingDelegate
|
|
@@ -253,15 +283,37 @@ class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate, CartViewCo
|
|
|
253
283
|
|
|
254
284
|
func fireworkShopping(
|
|
255
285
|
_ fireworkShopping: FireworkVideoShopping,
|
|
256
|
-
|
|
257
|
-
|
|
286
|
+
productVariantCTASelected item: SelectedProductVariant,
|
|
287
|
+
fromVideo video: VideoDetails,
|
|
288
|
+
ctaCompletionHandler: @escaping ShoppingCTAHandler
|
|
258
289
|
) {
|
|
259
290
|
let callbackId = ShoppingModule.generateCallbackId()
|
|
260
|
-
self.
|
|
261
|
-
|
|
291
|
+
self.shoppingCTAHandlerMap[callbackId] = ctaCompletionHandler
|
|
262
292
|
sendEvent(
|
|
263
|
-
withName: ShoppingEventName.
|
|
264
|
-
body: [
|
|
293
|
+
withName: ShoppingEventName.ctaButtonClick.rawValue,
|
|
294
|
+
body: [
|
|
295
|
+
"url": item.url?.absoluteString ?? "",
|
|
296
|
+
"productId": item.productID,
|
|
297
|
+
"unitId": item.unitID,
|
|
298
|
+
"callbackId": callbackId
|
|
299
|
+
])
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
func fireworkShopping(
|
|
303
|
+
_ fireworkShopping: FireworkVideoShopping,
|
|
304
|
+
didTapLinkButtonAt item: SelectedProductVariant,
|
|
305
|
+
withURL itemURL: String
|
|
306
|
+
) -> Bool {
|
|
307
|
+
if customClickLinkButtonEnabled {
|
|
308
|
+
sendEvent(
|
|
309
|
+
withName: ShoppingEventName.customLinkButtonClick.rawValue,
|
|
310
|
+
body: [
|
|
311
|
+
"url": itemURL,
|
|
312
|
+
"productId": item.productID,
|
|
313
|
+
"unitId": item.unitID
|
|
314
|
+
])
|
|
315
|
+
}
|
|
316
|
+
return customClickLinkButtonEnabled
|
|
265
317
|
}
|
|
266
318
|
|
|
267
319
|
// MARK: - CartViewControllerProviding
|
|
@@ -283,27 +335,34 @@ class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate, CartViewCo
|
|
|
283
335
|
}
|
|
284
336
|
|
|
285
337
|
extension ShoppingModule {
|
|
286
|
-
|
|
287
338
|
fileprivate static func hydrateProductViewConfig(
|
|
288
339
|
_ config: ProductInfoViewConfiguration,
|
|
289
340
|
_ productInfoViewConfigurator: ProductInfoViewConfigurable
|
|
290
341
|
) {
|
|
291
342
|
var productDetailsConfiguration = productInfoViewConfigurator.productDetailsConfiguration
|
|
292
343
|
|
|
293
|
-
if let
|
|
294
|
-
if let
|
|
344
|
+
if let ctaButtonConfiguration = config.ctaButton {
|
|
345
|
+
if let text = ctaButtonConfiguration.text {
|
|
346
|
+
switch text {
|
|
347
|
+
case .addToCart:
|
|
348
|
+
productDetailsConfiguration.ctaButton.text = .addToCart
|
|
349
|
+
case .shopNow:
|
|
350
|
+
productDetailsConfiguration.ctaButton.text = .shopNow
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
if let backgroundColor = ctaButtonConfiguration.backgroundColor,
|
|
295
354
|
backgroundColor.count > 0 {
|
|
296
|
-
productDetailsConfiguration.
|
|
355
|
+
productDetailsConfiguration.ctaButton.buttonConfiguration.backgroundColor = backgroundColor.uicolor()
|
|
297
356
|
}
|
|
298
357
|
|
|
299
|
-
if let textColor =
|
|
358
|
+
if let textColor = ctaButtonConfiguration.textColor,
|
|
300
359
|
textColor.count > 0 {
|
|
301
|
-
productDetailsConfiguration.
|
|
360
|
+
productDetailsConfiguration.ctaButton.buttonConfiguration.textColor = textColor.uicolor()
|
|
302
361
|
}
|
|
303
362
|
|
|
304
|
-
if let fontSize =
|
|
305
|
-
let iOSFontInfo =
|
|
306
|
-
productDetailsConfiguration.
|
|
363
|
+
if let fontSize = ctaButtonConfiguration.fontSize {
|
|
364
|
+
let iOSFontInfo = ctaButtonConfiguration.iOSFontInfo ?? FontInfo()
|
|
365
|
+
productDetailsConfiguration.ctaButton.buttonConfiguration.font = iOSFontInfo.getFont(fontSize)
|
|
307
366
|
}
|
|
308
367
|
}
|
|
309
368
|
|
|
@@ -381,5 +440,4 @@ extension ShoppingModule {
|
|
|
381
440
|
}
|
|
382
441
|
return result
|
|
383
442
|
}
|
|
384
|
-
|
|
385
443
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require 'json'
|
|
2
|
+
|
|
3
|
+
packageJsonPath = File.expand_path("#{__dir__}/../../../package.json")
|
|
4
|
+
package = JSON.parse(File.read(packageJsonPath))
|
|
5
|
+
|
|
6
|
+
Pod::Spec.new do |s|
|
|
7
|
+
s.name = 'FWMultiHostStreaming'
|
|
8
|
+
s.version = '0.1.0'
|
|
9
|
+
s.summary = 'Firework Multi Host Streaming'
|
|
10
|
+
s.homepage = package['homepage']
|
|
11
|
+
s.license = 'Apache License, Version 2.0'
|
|
12
|
+
s.authors = package['author']
|
|
13
|
+
|
|
14
|
+
s.platforms = { ios: '12.0' }
|
|
15
|
+
s.source = { git: 'https://github.com/loopsocial/bogano.git', tag: "#{s.version}" }
|
|
16
|
+
|
|
17
|
+
s.swift_version = '5.0'
|
|
18
|
+
s.source_files = 'Sources/*.{h,m,mm,swift}', 'Sources/**/*.{h,m,mm,swift}'
|
|
19
|
+
|
|
20
|
+
s.dependency 'FireworkVideoAgoraSupport'
|
|
21
|
+
s.dependency 'FireworkVideo'
|
|
22
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//
|
|
2
|
+
// FireworkMultiHostStreaming.swift
|
|
3
|
+
//
|
|
4
|
+
// Created by linjie jiang on 3/31/23.
|
|
5
|
+
//
|
|
6
|
+
|
|
7
|
+
import Foundation
|
|
8
|
+
|
|
9
|
+
import FireworkVideo
|
|
10
|
+
import FireworkVideoAgoraSupport
|
|
11
|
+
|
|
12
|
+
@objc
|
|
13
|
+
public class MultiHostStreamingSDK: NSObject {
|
|
14
|
+
@objc public static func enableMultiHostStreaming() {
|
|
15
|
+
FireworkVideoSDK.enableMultiHostPlayback()
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -5,16 +5,17 @@
|
|
|
5
5
|
//
|
|
6
6
|
|
|
7
7
|
import UIKit
|
|
8
|
+
#if canImport(FireworkVideoUI)
|
|
9
|
+
import FireworkVideoUI
|
|
10
|
+
#endif
|
|
8
11
|
|
|
9
12
|
extension UINavigationController {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
)
|
|
17
|
-
}
|
|
13
|
+
static func swizzleMethodsForNavigationController() {
|
|
14
|
+
Swizzle.swizzleSelector(
|
|
15
|
+
cls: self,
|
|
16
|
+
originalSelector: #selector(UINavigationController.pushViewController(_:animated:)),
|
|
17
|
+
customSelector: #selector(UINavigationController.fw_pushViewController(_:animated:))
|
|
18
|
+
)
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
@objc func fw_pushViewController(
|
|
@@ -5,12 +5,17 @@
|
|
|
5
5
|
//
|
|
6
6
|
|
|
7
7
|
#import "FWSwizzleLoader.h"
|
|
8
|
+
|
|
9
|
+
#if __has_include(<react_native_firework_sdk/react_native_firework_sdk-Swift.h>)
|
|
10
|
+
#import <react_native_firework_sdk/react_native_firework_sdk-Swift.h>
|
|
11
|
+
#else
|
|
8
12
|
#import "react_native_firework_sdk-Swift.h"
|
|
13
|
+
#endif
|
|
9
14
|
|
|
10
15
|
@implementation FWSwizzleLoader
|
|
11
16
|
|
|
12
17
|
+ (void)load {
|
|
13
|
-
[
|
|
18
|
+
[self swizzelMethods];
|
|
14
19
|
}
|
|
15
20
|
|
|
16
21
|
@end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//
|
|
2
|
+
// FWSwizzleLoader.swift
|
|
3
|
+
//
|
|
4
|
+
// Created by linjie jiang on 2023/2/9.
|
|
5
|
+
//
|
|
6
|
+
|
|
7
|
+
import Foundation
|
|
8
|
+
|
|
9
|
+
extension FWSwizzleLoader {
|
|
10
|
+
@objc public static func swizzelMethods() {
|
|
11
|
+
UINavigationController.swizzleMethodsForNavigationController()
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# set up react native firework sdk
|
|
2
|
+
def set_up_react_native_firework_sdk!(options = {})
|
|
3
|
+
# puts "set_up_react_native_firework_sdk #{options}"
|
|
4
|
+
|
|
5
|
+
# multi_host_streaming_enabled = options[:multi_host_streaming_enabled] ||= false
|
|
6
|
+
# puts "multi_host_streaming_enabled #{multi_host_streaming_enabled}"
|
|
7
|
+
|
|
8
|
+
enable_app_level_language_setting!
|
|
9
|
+
|
|
10
|
+
# if multi_host_streaming_enabled
|
|
11
|
+
# enable_multi_host_streaming!
|
|
12
|
+
# end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# enable multi host streaming
|
|
16
|
+
# def enable_multi_host_streaming!
|
|
17
|
+
# multi_host_streaming_dir = File.expand_path("#{__dir__}/../Support/MultiHostStreaming")
|
|
18
|
+
# # puts "multiHostStreamingDir: #{multi_host_streaming_dir}"
|
|
19
|
+
# pod 'FWMultiHostStreaming', path: multi_host_streaming_dir, :modular_headers => true
|
|
20
|
+
# end
|
|
21
|
+
|
|
22
|
+
# enable multi host streaming
|
|
23
|
+
def enable_app_level_language_setting!
|
|
24
|
+
firework_video_ui_dir = File.expand_path("#{__dir__}/../Support/FireworkVideoUI")
|
|
25
|
+
# puts "firework_video_ui_dir: #{firework_video_ui_dir}"
|
|
26
|
+
pod 'FireworkVideoUI', path: firework_video_ui_dir
|
|
27
|
+
end
|
|
@@ -59,7 +59,7 @@ class FireworkSDK {
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
/**
|
|
62
|
-
* The callback of video playback.
|
|
62
|
+
* The callback of video playback.
|
|
63
63
|
*/
|
|
64
64
|
get onVideoPlayback() {
|
|
65
65
|
return this._onVideoPlayback;
|
|
@@ -72,12 +72,19 @@ class FireworkSDK {
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
/**
|
|
75
|
-
*
|
|
75
|
+
* The global share base URL of the video.
|
|
76
|
+
* The {@link VideoPlayerConfiguration.shareBaseURL} in {@link VideoPlayerConfiguration} will override this.
|
|
76
77
|
*/
|
|
77
|
-
|
|
78
|
+
get shareBaseURL() {
|
|
78
79
|
return this._shareBaseURL;
|
|
79
80
|
}
|
|
80
81
|
|
|
82
|
+
set shareBaseURL(value) {
|
|
83
|
+
_FireworkSDKModule.default.setShareBaseURL(value !== null && value !== void 0 ? value : '').then(() => {
|
|
84
|
+
this.updateInternalShareBaseURL(value);
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
|
|
81
88
|
/**
|
|
82
89
|
* Get the configuration for ad badges. Only supported on iOS.
|
|
83
90
|
*/
|
|
@@ -101,6 +108,10 @@ class FireworkSDK {
|
|
|
101
108
|
}
|
|
102
109
|
}
|
|
103
110
|
|
|
111
|
+
get appLanguage() {
|
|
112
|
+
return this._appLanguage;
|
|
113
|
+
}
|
|
114
|
+
|
|
104
115
|
/**
|
|
105
116
|
* Defaults to false.
|
|
106
117
|
* You can enable debug logs by setting this property to true.
|
|
@@ -117,7 +128,7 @@ class FireworkSDK {
|
|
|
117
128
|
*/
|
|
118
129
|
|
|
119
130
|
|
|
120
|
-
|
|
131
|
+
get videoLaunchBehavior() {
|
|
121
132
|
return this._videoLaunchBehavior;
|
|
122
133
|
}
|
|
123
134
|
|
|
@@ -172,6 +183,8 @@ class FireworkSDK {
|
|
|
172
183
|
|
|
173
184
|
_defineProperty(this, "_adBadgeConfiguration", void 0);
|
|
174
185
|
|
|
186
|
+
_defineProperty(this, "_appLanguage", void 0);
|
|
187
|
+
|
|
175
188
|
_defineProperty(this, "_videoLaunchBehavior", void 0);
|
|
176
189
|
|
|
177
190
|
_defineProperty(this, "_shopping", _VideoShopping.default.getInstance());
|
|
@@ -213,6 +226,15 @@ class FireworkSDK {
|
|
|
213
226
|
this.onVideoFeedClick(event !== null && event !== void 0 ? event : {});
|
|
214
227
|
}
|
|
215
228
|
});
|
|
229
|
+
|
|
230
|
+
if (_reactNative.Platform.OS === 'ios') {
|
|
231
|
+
this.eventEmitter.addListener(_FWEventName.FWEventName.NativeAppLanguageUpdated, event => {
|
|
232
|
+
_FWLoggerUtil.default.log(`Receive NativeAppLanguageUpdated event appLanguage: ${event.appLanguage}`);
|
|
233
|
+
|
|
234
|
+
const language = event.appLanguage;
|
|
235
|
+
this.updateInternalAppLanguage(language);
|
|
236
|
+
});
|
|
237
|
+
}
|
|
216
238
|
}
|
|
217
239
|
/**
|
|
218
240
|
* Initializes Firework SDK.
|
|
@@ -224,13 +246,6 @@ class FireworkSDK {
|
|
|
224
246
|
_FWLoggerUtil.default.log('Call FireworkSDK init method');
|
|
225
247
|
|
|
226
248
|
_FireworkSDKModule.default.init(options).then(() => {
|
|
227
|
-
const shareBaseURLChanged = this._shareBaseURL !== (options === null || options === void 0 ? void 0 : options.shareBaseURL);
|
|
228
|
-
this._shareBaseURL = options === null || options === void 0 ? void 0 : options.shareBaseURL;
|
|
229
|
-
|
|
230
|
-
if (shareBaseURLChanged) {
|
|
231
|
-
this.eventEmitter.emit(_FWEventName.FWEventName.ShareBaseURLUpdated);
|
|
232
|
-
}
|
|
233
|
-
|
|
234
249
|
const videoLaunchBehaviorUpdated = this._videoLaunchBehavior !== (options === null || options === void 0 ? void 0 : options.videoLaunchBehavior);
|
|
235
250
|
this._videoLaunchBehavior = options === null || options === void 0 ? void 0 : options.videoLaunchBehavior;
|
|
236
251
|
|
|
@@ -265,21 +280,46 @@ class FireworkSDK {
|
|
|
265
280
|
}
|
|
266
281
|
}
|
|
267
282
|
/**
|
|
268
|
-
* Change App level language. Only supported on
|
|
269
|
-
* @param {string} language Such as en, ar and en-US
|
|
270
|
-
*
|
|
283
|
+
* Change App level language. Only supported on iOS.
|
|
284
|
+
* @param {string | undefined | null} language Such as en, ar and en-US
|
|
285
|
+
* If language is null or undefined or empty string, SDK will use system language.
|
|
286
|
+
* @returns {Promise<boolean>} The result of changing app language.
|
|
271
287
|
*/
|
|
272
288
|
|
|
273
289
|
|
|
274
290
|
async changeAppLanguage(language) {
|
|
275
|
-
if (_reactNative.Platform.OS === '
|
|
291
|
+
if (_reactNative.Platform.OS === 'ios') {
|
|
276
292
|
const result = await _FireworkSDKModule.default.changeAppLanguage(language);
|
|
293
|
+
|
|
294
|
+
if (result) {
|
|
295
|
+
this.updateInternalAppLanguage(language);
|
|
296
|
+
}
|
|
297
|
+
|
|
277
298
|
return result;
|
|
278
299
|
}
|
|
279
300
|
|
|
280
301
|
return false;
|
|
281
302
|
}
|
|
282
303
|
|
|
304
|
+
updateInternalAppLanguage(language) {
|
|
305
|
+
const valueHasChanged = this._appLanguage !== language;
|
|
306
|
+
this._appLanguage = language;
|
|
307
|
+
|
|
308
|
+
if (valueHasChanged) {
|
|
309
|
+
this.eventEmitter.emit(_FWEventName.FWEventName.AppLanguageUpdated);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
updateInternalShareBaseURL(shareBaseURL) {
|
|
314
|
+
const shareBaseURLChanged = this._shareBaseURL !== shareBaseURL;
|
|
315
|
+
console.log('updateInternalShareBaseURL shareBaseURL', shareBaseURL);
|
|
316
|
+
this._shareBaseURL = shareBaseURL;
|
|
317
|
+
|
|
318
|
+
if (shareBaseURLChanged) {
|
|
319
|
+
this.eventEmitter.emit(_FWEventName.FWEventName.ShareBaseURLUpdated);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
|
|
283
323
|
}
|
|
284
324
|
|
|
285
325
|
_defineProperty(FireworkSDK, "_instance", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FireworkSDK.ts"],"names":["FireworkSDK","onCustomCTAClick","_onCustomCTAClick","value","FWLoggerUtil","log","FireworkSDKModule","setCustomCTAClickEnabled","onVideoPlayback","_onVideoPlayback","setVideoPlaybackEventEnabled","getShareBaseURL","_shareBaseURL","getAdBadgeConfiguration","_adBadgeConfiguration","setAdBadgeConfiguration","valueHasChanged","badgeTextType","backgroundColor","textColor","eventEmitter","emit","FWEventName","AdBadgeConfigurationUpdated","debugLogsEnabled","enabled","getVideoLaunchBehavior","_videoLaunchBehavior","FireworkSDKModuleEventEmitter","shopping","_shopping","liveStream","_liveStream","navigator","_navigator","getInstance","_instance","constructor","VideoShopping","LiveStream","FWNavigator","addListener","SDKInit","event","error","onSDKInit","LogMessage","logNativeMessage","message","CustomCTAClick","url","VideoPlayback","eventName","VideoFeedClick","info","id","onVideoFeedClick","init","options","then","shareBaseURLChanged","shareBaseURL","ShareBaseURLUpdated","videoLaunchBehaviorUpdated","videoLaunchBehavior","VideoLaunchBehaviorUpdated","ShoppingModule","LiveStreamModule","openVideoPlayer","config","trackPurchase","parameters","Platform","OS","changeAppLanguage","language","result"],"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 type VideoPlayerConfiguration from './models/VideoPlayerConfiguration';\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';\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 * 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 onVideoFeedClick?: VideoFeedClickCallback;\n\n /**\n * The callback of clicking custom CTA.\n */\n public get onCustomCTAClick(): CustomCTAClickCallback | undefined {\n return this._onCustomCTAClick;\n }\n public set onCustomCTAClick(value: CustomCTAClickCallback | undefined) {\n FWLoggerUtil.log(`Set onCustomCTAClick callback ${!!value}`);\n this._onCustomCTAClick = value;\n FireworkSDKModule.setCustomCTAClickEnabled(value ? true : false);\n }\n private _onCustomCTAClick: CustomCTAClickCallback | undefined;\n\n /**\n * The callback of video playback. Only supported on iOS.\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 * Get share base URL.\n */\n public getShareBaseURL(): string | undefined {\n return this._shareBaseURL;\n }\n private _shareBaseURL: string | undefined;\n\n /**\n * Get the configuration for ad badges. Only supported on iOS.\n */\n public getAdBadgeConfiguration(): AdBadgeConfiguration | undefined {\n return this._adBadgeConfiguration;\n }\n /**\n * Set the configuration for ad badges. Only supported on iOS.\n */\n public async setAdBadgeConfiguration(\n value: AdBadgeConfiguration | undefined\n ): Promise<void> {\n await FireworkSDKModule.setAdBadgeConfiguration(value ?? {});\n const valueHasChanged =\n this._adBadgeConfiguration?.badgeTextType !== value?.badgeTextType ||\n this._adBadgeConfiguration?.backgroundColor !== value?.backgroundColor ||\n this._adBadgeConfiguration?.textColor !== value?.textColor;\n this._adBadgeConfiguration = value;\n if (valueHasChanged) {\n this.eventEmitter.emit(FWEventName.AdBadgeConfigurationUpdated);\n }\n }\n private _adBadgeConfiguration: AdBadgeConfiguration | undefined;\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 getVideoLaunchBehavior(): 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 this.eventEmitter.addListener(FWEventName.SDKInit, (event) => {\n FWLoggerUtil.log(`Receive SDKInit event ${event?.error}`);\n\n if (this.onSDKInit) {\n this.onSDKInit(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.LogMessage, (event) => {\n FWLoggerUtil.logNativeMessage(event.message);\n });\n\n this.eventEmitter.addListener(FWEventName.CustomCTAClick, (event) => {\n FWLoggerUtil.log(`Receive CustomCTAClick url: ${event?.url}`);\n\n if (this.onCustomCTAClick) {\n this.onCustomCTAClick(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoPlayback, (event) => {\n FWLoggerUtil.log(\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\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\n FireworkSDKModule.init(options).then(() => {\n const shareBaseURLChanged = this._shareBaseURL !== options?.shareBaseURL;\n this._shareBaseURL = options?.shareBaseURL;\n if (shareBaseURLChanged) {\n this.eventEmitter.emit(FWEventName.ShareBaseURLUpdated);\n }\n\n const videoLaunchBehaviorUpdated =\n this._videoLaunchBehavior !== options?.videoLaunchBehavior;\n this._videoLaunchBehavior = options?.videoLaunchBehavior;\n if (videoLaunchBehaviorUpdated) {\n this.eventEmitter.emit(FWEventName.VideoLaunchBehaviorUpdated);\n }\n });\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 /**\n * Records the user purchase. Only supported on iOS.\n * @param {TrackPurchaseParameters} parameters\n */\n public trackPurchase(parameters: TrackPurchaseParameters) {\n if (Platform.OS === 'ios') {\n FireworkSDKModule.trackPurchase(parameters);\n }\n }\n\n /**\n * Change App level language. Only supported on Android.\n * @param {string} language Such as en, ar and en-US\n * @returns {Promise<boolean>}\n */\n public async changeAppLanguage(language: string): Promise<boolean> {\n if (Platform.OS === 'android') {\n const result = await FireworkSDKModule.changeAppLanguage(language);\n return result;\n }\n\n return false;\n }\n}\n\nexport default FireworkSDK;\n"]}
|
|
1
|
+
{"version":3,"sources":["FireworkSDK.ts"],"names":["FireworkSDK","onCustomCTAClick","_onCustomCTAClick","value","FWLoggerUtil","log","FireworkSDKModule","setCustomCTAClickEnabled","onVideoPlayback","_onVideoPlayback","setVideoPlaybackEventEnabled","shareBaseURL","_shareBaseURL","setShareBaseURL","then","updateInternalShareBaseURL","getAdBadgeConfiguration","_adBadgeConfiguration","setAdBadgeConfiguration","valueHasChanged","badgeTextType","backgroundColor","textColor","eventEmitter","emit","FWEventName","AdBadgeConfigurationUpdated","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","VideoPlayback","eventName","VideoFeedClick","info","id","onVideoFeedClick","Platform","OS","NativeAppLanguageUpdated","language","updateInternalAppLanguage","init","options","videoLaunchBehaviorUpdated","VideoLaunchBehaviorUpdated","ShoppingModule","LiveStreamModule","openVideoPlayer","config","trackPurchase","parameters","changeAppLanguage","result","AppLanguageUpdated","shareBaseURLChanged","console","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 type VideoPlayerConfiguration from './models/VideoPlayerConfiguration';\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';\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 * 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 onVideoFeedClick?: VideoFeedClickCallback;\n\n /**\n * The callback of clicking custom CTA.\n */\n public get onCustomCTAClick(): CustomCTAClickCallback | undefined {\n return this._onCustomCTAClick;\n }\n public set onCustomCTAClick(value: CustomCTAClickCallback | undefined) {\n FWLoggerUtil.log(`Set onCustomCTAClick callback ${!!value}`);\n this._onCustomCTAClick = value;\n FireworkSDKModule.setCustomCTAClickEnabled(value ? true : false);\n }\n private _onCustomCTAClick: CustomCTAClickCallback | undefined;\n\n /**\n * The 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 FireworkSDKModule.setShareBaseURL(value ?? '').then(() => {\n this.updateInternalShareBaseURL(value);\n });\n }\n private _shareBaseURL: string | undefined;\n\n /**\n * Get the configuration for ad badges. Only supported on iOS.\n */\n public getAdBadgeConfiguration(): AdBadgeConfiguration | undefined {\n return this._adBadgeConfiguration;\n }\n /**\n * Set the configuration for ad badges. Only supported on iOS.\n */\n public async setAdBadgeConfiguration(\n value: AdBadgeConfiguration | undefined\n ): Promise<void> {\n await FireworkSDKModule.setAdBadgeConfiguration(value ?? {});\n const valueHasChanged =\n this._adBadgeConfiguration?.badgeTextType !== value?.badgeTextType ||\n this._adBadgeConfiguration?.backgroundColor !== value?.backgroundColor ||\n this._adBadgeConfiguration?.textColor !== value?.textColor;\n this._adBadgeConfiguration = value;\n if (valueHasChanged) {\n this.eventEmitter.emit(FWEventName.AdBadgeConfigurationUpdated);\n }\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 this.eventEmitter.addListener(FWEventName.SDKInit, (event) => {\n FWLoggerUtil.log(`Receive SDKInit event ${event?.error}`);\n\n if (this.onSDKInit) {\n this.onSDKInit(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.LogMessage, (event) => {\n FWLoggerUtil.logNativeMessage(event.message);\n });\n\n this.eventEmitter.addListener(FWEventName.CustomCTAClick, (event) => {\n FWLoggerUtil.log(`Receive CustomCTAClick url: ${event?.url}`);\n\n if (this.onCustomCTAClick) {\n this.onCustomCTAClick(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoPlayback, (event) => {\n FWLoggerUtil.log(\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\n FireworkSDKModule.init(options).then(() => {\n const videoLaunchBehaviorUpdated =\n this._videoLaunchBehavior !== options?.videoLaunchBehavior;\n this._videoLaunchBehavior = options?.videoLaunchBehavior;\n if (videoLaunchBehaviorUpdated) {\n this.eventEmitter.emit(FWEventName.VideoLaunchBehaviorUpdated);\n }\n });\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 /**\n * Records the user purchase. Only supported on iOS.\n * @param {TrackPurchaseParameters} parameters\n */\n public trackPurchase(parameters: TrackPurchaseParameters) {\n if (Platform.OS === 'ios') {\n FireworkSDKModule.trackPurchase(parameters);\n }\n }\n\n /**\n * Change App level language. Only supported on iOS.\n * @param {string | undefined | null} language Such as en, ar and en-US\n * If language is null or undefined 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 (Platform.OS === 'ios') {\n const result = await FireworkSDKModule.changeAppLanguage(language);\n if (result) {\n this.updateInternalAppLanguage(language);\n }\n return result;\n }\n\n return false;\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 console.log('updateInternalShareBaseURL shareBaseURL', shareBaseURL);\n this._shareBaseURL = shareBaseURL;\n if (shareBaseURLChanged) {\n this.eventEmitter.emit(FWEventName.ShareBaseURLUpdated);\n }\n }\n}\n\nexport default FireworkSDK;\n"]}
|
|
@@ -20,11 +20,11 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
20
20
|
*/
|
|
21
21
|
class LiveStream {
|
|
22
22
|
/**
|
|
23
|
-
* The callback of live stream event.
|
|
23
|
+
* The callback of live stream event.
|
|
24
24
|
*/
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
|
-
* The callback of live stream chat event.
|
|
27
|
+
* The callback of live stream chat event.
|
|
28
28
|
*/
|
|
29
29
|
get eventEmitter() {
|
|
30
30
|
return _LiveStreamModule.LiveStreamModuleEventEmitter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["LiveStream.ts"],"names":["LiveStream","eventEmitter","LiveStreamModuleEventEmitter","getInstance","_instance","constructor","FWLoggerUtil","log","addListener","FWEventName","event","onLiveStreamEvent","LiveStreamChat","onLiveStreamChatEvent"],"mappings":";;;;;;;AACA;;AAEA;;AACA;;;;;;AAOA;AACA;AACA;AACA,MAAMA,UAAN,CAAiB;AAGf;AACF;AACA;;AAEE;AACF;AACA;AAG0B,MAAZC,YAAY,GAAuB;AAC7C,WAAOC,8CAAP;AACD;;AAEwB,SAAXC,WAAW,GAAG;AAC1B,QAAI,CAACH,UAAU,CAACI,SAAhB,EAA2B;AACzBJ,MAAAA,UAAU,CAACI,SAAX,GAAuB,IAAIJ,UAAJ,EAAvB;AACD;;AAED,WAAOA,UAAU,CAACI,SAAlB;AACD;;AAEOC,EAAAA,WAAW,GAAG;AAAA;;AAAA;;AACpBC,0BAAaC,GAAb,CAAiB,wBAAjB;;AACA,SAAKN,YAAL,CAAkBO,WAAlB,CAA8BC,yBAAYT,UAA1C,EAAuDU,KAAD,IAAW;AAC/D,UAAI,KAAKC,iBAAT,EAA4B;AAC1B,aAAKA,iBAAL,CAAuBD,KAAvB,aAAuBA,KAAvB,cAAuBA,KAAvB,GAAgC,EAAhC;AACD;AACF,KAJD;AAMA,SAAKT,YAAL,CAAkBO,WAAlB,CAA8BC,yBAAYG,cAA1C,EAA2DF,KAAD,IAAW;AACnE,UAAI,KAAKG,qBAAT,EAAgC;AAC9B,aAAKA,qBAAL,CAA2BH,KAA3B,aAA2BA,KAA3B,cAA2BA,KAA3B,GAAoC,EAApC;AACD;AACF,KAJD;AAKD;;AArCc;;gBAAXV,U;;eAwCSA,U","sourcesContent":["import type { NativeEventEmitter } from 'react-native';\nimport { FWEventName } from './models/FWEventName';\nimport type { LiveStreamChatEvent, LiveStreamEvent } from './models/FWEvents';\nimport { LiveStreamModuleEventEmitter } from './modules/LiveStreamModule';\nimport FWLoggerUtil from './utils/FWLoggerUtil';\n\nexport type onLiveStreamEventCallback = (event: LiveStreamEvent) => void;\nexport type onLiveStreamChatEventCallback = (\n event: LiveStreamChatEvent\n) => void;\n\n/**\n * The entry class of live stream.\n */\nclass LiveStream {\n private static _instance?: LiveStream;\n\n /**\n * The callback of live stream event
|
|
1
|
+
{"version":3,"sources":["LiveStream.ts"],"names":["LiveStream","eventEmitter","LiveStreamModuleEventEmitter","getInstance","_instance","constructor","FWLoggerUtil","log","addListener","FWEventName","event","onLiveStreamEvent","LiveStreamChat","onLiveStreamChatEvent"],"mappings":";;;;;;;AACA;;AAEA;;AACA;;;;;;AAOA;AACA;AACA;AACA,MAAMA,UAAN,CAAiB;AAGf;AACF;AACA;;AAEE;AACF;AACA;AAG0B,MAAZC,YAAY,GAAuB;AAC7C,WAAOC,8CAAP;AACD;;AAEwB,SAAXC,WAAW,GAAG;AAC1B,QAAI,CAACH,UAAU,CAACI,SAAhB,EAA2B;AACzBJ,MAAAA,UAAU,CAACI,SAAX,GAAuB,IAAIJ,UAAJ,EAAvB;AACD;;AAED,WAAOA,UAAU,CAACI,SAAlB;AACD;;AAEOC,EAAAA,WAAW,GAAG;AAAA;;AAAA;;AACpBC,0BAAaC,GAAb,CAAiB,wBAAjB;;AACA,SAAKN,YAAL,CAAkBO,WAAlB,CAA8BC,yBAAYT,UAA1C,EAAuDU,KAAD,IAAW;AAC/D,UAAI,KAAKC,iBAAT,EAA4B;AAC1B,aAAKA,iBAAL,CAAuBD,KAAvB,aAAuBA,KAAvB,cAAuBA,KAAvB,GAAgC,EAAhC;AACD;AACF,KAJD;AAMA,SAAKT,YAAL,CAAkBO,WAAlB,CAA8BC,yBAAYG,cAA1C,EAA2DF,KAAD,IAAW;AACnE,UAAI,KAAKG,qBAAT,EAAgC;AAC9B,aAAKA,qBAAL,CAA2BH,KAA3B,aAA2BA,KAA3B,cAA2BA,KAA3B,GAAoC,EAApC;AACD;AACF,KAJD;AAKD;;AArCc;;gBAAXV,U;;eAwCSA,U","sourcesContent":["import type { NativeEventEmitter } from 'react-native';\nimport { FWEventName } from './models/FWEventName';\nimport type { LiveStreamChatEvent, LiveStreamEvent } from './models/FWEvents';\nimport { LiveStreamModuleEventEmitter } from './modules/LiveStreamModule';\nimport FWLoggerUtil from './utils/FWLoggerUtil';\n\nexport type onLiveStreamEventCallback = (event: LiveStreamEvent) => void;\nexport type onLiveStreamChatEventCallback = (\n event: LiveStreamChatEvent\n) => void;\n\n/**\n * The entry class of live stream.\n */\nclass LiveStream {\n private static _instance?: LiveStream;\n\n /**\n * The callback of live stream event.\n */\n public onLiveStreamEvent?: onLiveStreamEventCallback;\n /**\n * The callback of live stream chat event.\n */\n public onLiveStreamChatEvent?: onLiveStreamChatEventCallback;\n\n private get eventEmitter(): NativeEventEmitter {\n return LiveStreamModuleEventEmitter;\n }\n\n public static getInstance() {\n if (!LiveStream._instance) {\n LiveStream._instance = new LiveStream();\n }\n\n return LiveStream._instance!;\n }\n\n private constructor() {\n FWLoggerUtil.log('LiveStream constructor');\n this.eventEmitter.addListener(FWEventName.LiveStream, (event) => {\n if (this.onLiveStreamEvent) {\n this.onLiveStreamEvent(event ?? {});\n }\n });\n\n this.eventEmitter.addListener(FWEventName.LiveStreamChat, (event) => {\n if (this.onLiveStreamChatEvent) {\n this.onLiveStreamChatEvent(event ?? {});\n }\n });\n }\n}\n\nexport default LiveStream;\n"]}
|