react-native-firework-sdk 2.2.4 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/FireworkVideoUI +0 -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 +2 -9
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/FireworkVideoUI +0 -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 +2 -9
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Modules/FireworkVideoUI.swiftmodule/x86_64-apple-ios-simulator.abi.json +2 -9
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/_CodeSignature/CodeResources +9 -9
- package/android/build.gradle +9 -39
- package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/android/gradle.properties +7 -5
- package/android/proguard-rules.pro +5 -26
- package/android/src/main/AndroidManifest.xml +0 -3
- package/android/src/main/java/com/fireworksdk/bridge/FireworkSDKPackage.kt +1 -1
- package/android/src/main/java/com/fireworksdk/bridge/components/base/FWBaseFragment.kt +10 -0
- package/android/src/main/java/com/fireworksdk/bridge/components/storyblock/StoryBlockFragment.kt +157 -0
- package/android/src/main/java/com/fireworksdk/bridge/components/storyblock/StoryBlockFrameLayout.kt +19 -0
- package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/FWVideoFeed.kt +15 -5
- package/android/src/main/java/com/fireworksdk/bridge/models/FWAdBadgeConfigModel.kt +6 -7
- package/android/src/main/java/com/fireworksdk/bridge/models/FWAdBadgeConfigModelDeserializer.kt +5 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/FWAdBadgeConfigModelSerializer.kt +22 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWFontInfoModel.kt +3 -5
- package/android/src/main/java/com/fireworksdk/bridge/models/FWFontInfoModelDeserializer.kt +2 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/FWFontInfoModelSerializer.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWGradientDrawableModel.kt +8 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWGradientDrawableModelDeserializer.kt +35 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWGradientDrawableModelSerializer.kt +27 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWLiveStreamEventDetailsModel.kt +1 -5
- package/android/src/main/java/com/fireworksdk/bridge/models/FWLiveStreamMessageDetailsModel.kt +1 -5
- package/android/src/main/java/com/fireworksdk/bridge/models/FWProductInfoViewConfiguration.kt +5 -15
- package/android/src/main/java/com/fireworksdk/bridge/models/FWProductInfoViewConfigurationDeserializer.kt +2 -9
- package/android/src/main/java/com/fireworksdk/bridge/models/FWProductInfoViewConfigurationSerializer.kt +42 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWSDKInitOptionsModel.kt +3 -5
- package/android/src/main/java/com/fireworksdk/bridge/models/FWSDKInitOptionsModelDeserializer.kt +2 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/FWSDKInitOptionsModelSerializer.kt +20 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWShoppingCtaResult.kt +3 -12
- package/android/src/main/java/com/fireworksdk/bridge/models/FWShoppingCtaResultDeserializer.kt +2 -13
- package/android/src/main/java/com/fireworksdk/bridge/models/FWShoppingCtaResultSerializer.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedConfigModel.kt +8 -9
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedConfigModelDeserializer.kt +17 -6
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedConfigModelSerializer.kt +59 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedItemDetailsModel.kt +1 -5
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedPropsModel.kt +14 -15
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedPropsModelDeserializer.kt +14 -4
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedPropsModelSerializer.kt +56 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlaybackDetails.kt +11 -8
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModel.kt +11 -12
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModelDeserializer.kt +11 -7
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModelSerializer.kt +63 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoShoppingProduct.kt +4 -11
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoShoppingProductSerializer.kt +82 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWBadgeTextType.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWCtaButtonTextValue.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWCtaDelayType.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/{FWEventName.kt → enums/FWEventName.kt} +1 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWGradientDrawableOrientation.kt +24 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWPlayerLaunchBehavior.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWPlayerStyle.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWShoppingCtaResultRes.kt +19 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWSystemTypeface.kt +21 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWVideoCompleteAction.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWVideoFeedMode.kt +19 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWVideoFeedSource.kt +22 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWVideoFeedTitlePosition.kt +19 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWVideoPlayerCTAWidth.kt +19 -0
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/FWReactNativeSDK.kt +22 -0
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWStoryBlockManager.kt +61 -32
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWVideoFeedManager.kt +3 -2
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FWNavigatorInterface.kt +0 -1
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FWVideoShoppingInterface.kt +0 -1
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FireworkSDKInterface.kt +0 -2
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWLiveStreamModule.kt +2 -2
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWNavigatorModule.kt +0 -6
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWVideoShoppingModule.kt +25 -32
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FireworkSDKModule.kt +24 -47
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/utils/FWEventUtils.kt +17 -44
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWBundleUtils.kt +46 -21
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWConfigUtil.kt +165 -86
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWFragmentUtil.kt +51 -0
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWGlobalDataUtil.kt +1 -5
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWLanguageUtil.kt +77 -80
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWLiveStreamUtil.kt +17 -0
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWSingletonHolder.kt +25 -0
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWStatusBarUtil.kt +28 -0
- package/android/src/main/res/layout/fw_bridge_story_block.xml +5 -12
- package/ios/Components/VideoFeed.swift +39 -19
- package/ios/Components/VideoFeedConfiguration.swift +4 -5
- package/ios/Components/VideoFeedManager.swift +1 -1
- package/ios/Components/VideoPlayerConfiguration.swift +17 -0
- package/ios/FireworkSdk.xcodeproj/project.pbxproj +197 -205
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/Foundation/Bundle+AppLanguage.swift +23 -8
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/Foundation/URLSession+AppLanguage.swift +1 -18
- package/ios/FireworkVideoUI/FireworkVideoUI/Sources/AppLanguage/Extensions/UIKit/UIImageView+AppLanguage.swift +4 -1
- package/ios/Models/NativeToRN/FireworkEventName.swift +0 -1
- package/ios/Models/NativeToRN/FireworkSDK+Json.swift +1 -1
- package/ios/Modules/FWNavigatorModule/FWNavigatorModule.swift +6 -157
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule+CTA.swift +1 -21
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule.m +1 -2
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule.swift +1 -12
- package/ios/Modules/LiveStream/LiveStreamModule.m +1 -1
- package/ios/Modules/LiveStream/LiveStreamModule.swift +4 -2
- package/ios/Modules/Shopping/FWCartViewController.swift +0 -75
- package/ios/Modules/Shopping/ShoppingModule.m +1 -3
- package/ios/Modules/Shopping/ShoppingModule.swift +12 -47
- package/ios/Utils/Extensions/Swizzle/UINavigationController+FWSwizzle.swift +1 -1
- package/lib/commonjs/FireworkSDK.js +31 -15
- package/lib/commonjs/FireworkSDK.js.map +1 -1
- package/lib/commonjs/LiveStream.js.map +1 -1
- package/lib/commonjs/VideoShopping.js +43 -30
- package/lib/commonjs/VideoShopping.js.map +1 -1
- package/lib/commonjs/components/StoryBlock.js +124 -82
- package/lib/commonjs/components/StoryBlock.js.map +1 -1
- package/lib/commonjs/components/VideoFeed.js +112 -24
- package/lib/commonjs/components/VideoFeed.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/GradientDrawable.js +2 -0
- package/lib/commonjs/models/GradientDrawable.js.map +1 -0
- package/lib/commonjs/models/StoryBlockConfiguration.js +6 -0
- package/lib/commonjs/models/StoryBlockConfiguration.js.map +1 -0
- package/lib/commonjs/models/VideoPlayerCTADelay.js +2 -0
- package/lib/commonjs/models/VideoPlayerCTADelay.js.map +1 -0
- package/lib/commonjs/models/VideoPlayerCTAStyle.js +6 -0
- package/lib/commonjs/models/VideoPlayerCTAStyle.js.map +1 -0
- package/lib/commonjs/models/VideoPlayerCTAWidth.js +2 -0
- package/lib/commonjs/models/VideoPlayerCTAWidth.js.map +1 -0
- package/lib/commonjs/models/VideoPlayerCompleteAction.js +2 -0
- package/lib/commonjs/models/VideoPlayerCompleteAction.js.map +1 -0
- package/lib/commonjs/models/VideoPlayerStyle.js +2 -0
- package/lib/commonjs/models/VideoPlayerStyle.js.map +1 -0
- package/lib/commonjs/modules/LiveStreamModule.js.map +1 -1
- package/lib/commonjs/modules/ShoppingModule.js.map +1 -1
- package/lib/commonjs/utils/FWGlobalState.js +47 -0
- package/lib/commonjs/utils/FWGlobalState.js.map +1 -0
- package/lib/module/FireworkSDK.js +30 -14
- package/lib/module/FireworkSDK.js.map +1 -1
- package/lib/module/LiveStream.js.map +1 -1
- package/lib/module/VideoShopping.js +43 -29
- package/lib/module/VideoShopping.js.map +1 -1
- package/lib/module/components/StoryBlock.js +113 -73
- package/lib/module/components/StoryBlock.js.map +1 -1
- package/lib/module/components/VideoFeed.js +113 -24
- package/lib/module/components/VideoFeed.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/GradientDrawable.js +2 -0
- package/lib/module/models/GradientDrawable.js.map +1 -0
- package/lib/module/models/StoryBlockConfiguration.js +2 -0
- package/lib/module/models/StoryBlockConfiguration.js.map +1 -0
- package/lib/module/models/VideoPlayerCTADelay.js +2 -0
- package/lib/module/models/VideoPlayerCTADelay.js.map +1 -0
- package/lib/module/models/VideoPlayerCTAStyle.js +2 -0
- package/lib/module/models/VideoPlayerCTAStyle.js.map +1 -0
- package/lib/module/models/VideoPlayerCTAWidth.js +2 -0
- package/lib/module/models/VideoPlayerCTAWidth.js.map +1 -0
- package/lib/module/models/VideoPlayerCompleteAction.js +2 -0
- package/lib/module/models/VideoPlayerCompleteAction.js.map +1 -0
- package/lib/module/models/VideoPlayerStyle.js +2 -0
- package/lib/module/models/VideoPlayerStyle.js.map +1 -0
- package/lib/module/modules/LiveStreamModule.js.map +1 -1
- package/lib/module/modules/ShoppingModule.js.map +1 -1
- package/lib/module/utils/FWGlobalState.js +39 -0
- package/lib/module/utils/FWGlobalState.js.map +1 -0
- package/lib/typescript/FireworkSDK.d.ts +7 -7
- package/lib/typescript/LiveStream.d.ts +2 -2
- package/lib/typescript/VideoShopping.d.ts +17 -18
- package/lib/typescript/components/StoryBlock.d.ts +2 -0
- package/lib/typescript/components/VideoFeed.d.ts +7 -3
- package/lib/typescript/index.d.ts +10 -3
- package/lib/typescript/models/AdBadgeConfiguration.d.ts +9 -2
- package/lib/typescript/models/FWEvents.d.ts +9 -9
- package/lib/typescript/models/GradientDrawable.d.ts +5 -0
- package/lib/typescript/models/IOSFontInfo.d.ts +2 -0
- package/lib/typescript/models/ProductInfoViewConfiguration.d.ts +1 -1
- package/lib/typescript/models/StoryBlockConfiguration.d.ts +37 -0
- package/lib/typescript/models/VideoFeedConfiguration.d.ts +25 -4
- package/lib/typescript/models/VideoPlaybackDetails.d.ts +1 -0
- package/lib/typescript/models/VideoPlayerCTADelay.d.ts +11 -0
- package/lib/typescript/models/VideoPlayerCTAStyle.d.ts +21 -0
- package/lib/typescript/models/VideoPlayerCTAWidth.d.ts +1 -0
- package/lib/typescript/models/VideoPlayerCompleteAction.d.ts +1 -0
- package/lib/typescript/models/VideoPlayerConfiguration.d.ts +9 -34
- package/lib/typescript/models/VideoPlayerStyle.d.ts +1 -0
- package/lib/typescript/modules/LiveStreamModule.d.ts +1 -1
- package/lib/typescript/modules/ShoppingModule.d.ts +2 -3
- package/lib/typescript/utils/FWGlobalState.d.ts +10 -0
- package/package.json +5 -3
- package/react-native-firework-sdk.podspec +2 -1
- package/src/FireworkSDK.ts +47 -19
- package/src/LiveStream.ts +4 -2
- package/src/VideoShopping.ts +47 -39
- package/src/components/StoryBlock.tsx +161 -98
- package/src/components/VideoFeed.tsx +147 -23
- package/src/index.ts +14 -6
- package/src/models/AdBadgeConfiguration.ts +10 -2
- package/src/models/FWEvents.ts +11 -11
- package/src/models/GradientDrawable.ts +14 -0
- package/src/models/IOSFontInfo.ts +2 -0
- package/src/models/ProductInfoViewConfiguration.ts +1 -1
- package/src/models/StoryBlockConfiguration.ts +38 -0
- package/src/models/VideoFeedConfiguration.ts +25 -4
- package/src/models/VideoPlaybackDetails.ts +1 -0
- package/src/models/VideoPlayerCTADelay.ts +11 -0
- package/src/models/VideoPlayerCTAStyle.ts +22 -0
- package/src/models/VideoPlayerCTAWidth.ts +1 -0
- package/src/models/VideoPlayerCompleteAction.ts +1 -0
- package/src/models/VideoPlayerConfiguration.ts +9 -36
- package/src/models/VideoPlayerStyle.ts +1 -0
- package/src/modules/LiveStreamModule.ts +1 -1
- package/src/modules/ShoppingModule.ts +2 -3
- package/src/utils/FWGlobalState.ts +31 -0
- package/android/publish.gradle +0 -66
- package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/StoryBlockFragment.kt +0 -129
- package/android/src/main/java/com/fireworksdk/bridge/components/videofeed/StoryBlockFrameLayout.kt +0 -90
- package/android/src/main/java/com/fireworksdk/bridge/constants/FWVideoPlayerConstant.kt +0 -39
- package/android/src/main/java/com/fireworksdk/bridge/models/FWSystemTypeface.kt +0 -9
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedModel.kt +0 -7
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedSource.kt +0 -10
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedTitlePosition.kt +0 -7
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/pages/FWContainerActivity.kt +0 -53
- package/android/src/main/res/layout/fw_bridge_fragment_container.xml +0 -8
- package/ios/Modules/FWNavigatorModule/FWNavigatorContainerViewController.swift +0 -33
- package/ios/Modules/FWNavigatorModule/FWNavigatorProtocol.swift +0 -18
|
@@ -6,11 +6,6 @@
|
|
|
6
6
|
|
|
7
7
|
import Foundation
|
|
8
8
|
|
|
9
|
-
private var FWHostList: [String] = [
|
|
10
|
-
"api.firework.tv",
|
|
11
|
-
"p2.fwpixel.com"
|
|
12
|
-
]
|
|
13
|
-
|
|
14
9
|
extension URLSession {
|
|
15
10
|
static func swizzleURLSessionMethodsForAppLanguage() {
|
|
16
11
|
// swiftlint:disable:next line_length
|
|
@@ -41,20 +36,8 @@ extension URLSession {
|
|
|
41
36
|
}
|
|
42
37
|
|
|
43
38
|
private func swizzleRequest(_ request: URLRequest) -> URLRequest {
|
|
44
|
-
var host = ""
|
|
45
|
-
#if compiler(>=5.7)
|
|
46
|
-
if #available(iOS 16, *) {
|
|
47
|
-
host = request.url?.host() ?? ""
|
|
48
|
-
} else {
|
|
49
|
-
host = request.url?.host ?? ""
|
|
50
|
-
}
|
|
51
|
-
#else
|
|
52
|
-
host = request.url?.host ?? ""
|
|
53
|
-
#endif
|
|
54
|
-
|
|
55
39
|
if let language = AppLanguageManager.shared.appLanguage,
|
|
56
|
-
let languageCode = AppLanguageManager.shared.appLanguageCode
|
|
57
|
-
FWHostList.contains(host) {
|
|
40
|
+
let languageCode = AppLanguageManager.shared.appLanguageCode {
|
|
58
41
|
var mutableRequest = request
|
|
59
42
|
if language != languageCode {
|
|
60
43
|
mutableRequest.setValue("\(language),\(languageCode);q=0.9", forHTTPHeaderField: "Accept-Language")
|
|
@@ -39,7 +39,6 @@ enum VideoPlaybackSubEventName: String {
|
|
|
39
39
|
/// Shopping event
|
|
40
40
|
enum ShoppingEventName: String, CaseIterable {
|
|
41
41
|
case updateProductDetails = "fw:shopping:update-product-details"
|
|
42
|
-
case willDisplayProduct = "fw:shopping:will-display-product"
|
|
43
42
|
case ctaButtonClick = "fw:shopping:cta-button-click"
|
|
44
43
|
case clickCartIcon = "fw:shopping:click-cart-icon"
|
|
45
44
|
case logMessage = "fw:log-message"
|
|
@@ -7,19 +7,6 @@
|
|
|
7
7
|
|
|
8
8
|
import FireworkVideo
|
|
9
9
|
|
|
10
|
-
private let FWExitButtonImageNames: [String] = [
|
|
11
|
-
"closeX",
|
|
12
|
-
"down-arrow-light"
|
|
13
|
-
]
|
|
14
|
-
|
|
15
|
-
private struct PlayerInfo {
|
|
16
|
-
enum PlayerMode: Int {
|
|
17
|
-
case fullscreen, floating
|
|
18
|
-
}
|
|
19
|
-
var playerVC: PlayerViewController
|
|
20
|
-
var mode: PlayerMode
|
|
21
|
-
}
|
|
22
|
-
|
|
23
10
|
private struct PlayerExitButtonInfo {
|
|
24
11
|
enum ExitButtonType: Int {
|
|
25
12
|
case close, floating
|
|
@@ -29,7 +16,7 @@ private struct PlayerExitButtonInfo {
|
|
|
29
16
|
}
|
|
30
17
|
|
|
31
18
|
@objc(FWNavigatorModule)
|
|
32
|
-
class FWNavigatorModule: RCTEventEmitter
|
|
19
|
+
class FWNavigatorModule: RCTEventEmitter {
|
|
33
20
|
override func supportedEvents() -> [String]! {
|
|
34
21
|
return [FWEventName.logMessage.rawValue]
|
|
35
22
|
}
|
|
@@ -42,112 +29,15 @@ class FWNavigatorModule: RCTEventEmitter, FWNavigator {
|
|
|
42
29
|
return DispatchQueue.main
|
|
43
30
|
}
|
|
44
31
|
|
|
45
|
-
// swiftlint:disable function_body_length
|
|
46
|
-
|
|
47
|
-
@objc(pushNativeContainer:resolver:rejecter:)
|
|
48
|
-
func pushNativeContainer(
|
|
49
|
-
_ props: NSDictionary?, resolver: @escaping RCTPromiseResolveBlock,
|
|
50
|
-
rejecter: @escaping RCTPromiseRejectBlock
|
|
51
|
-
) {
|
|
52
|
-
#if DEBUG
|
|
53
|
-
let formatter = DateFormatter()
|
|
54
|
-
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
|
|
55
|
-
sendEvent(
|
|
56
|
-
withName: FWEventName.logMessage.rawValue,
|
|
57
|
-
body: [
|
|
58
|
-
"message": "[iOS] Enter pushNativeContainer \(formatter.string(from: Date()))"
|
|
59
|
-
])
|
|
60
|
-
#endif
|
|
61
|
-
|
|
62
|
-
guard let props = props as? [String: Any] else {
|
|
63
|
-
resolver(false)
|
|
64
|
-
return
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
guard let appComponentName = gAppComponentName, appComponentName.count > 0 else {
|
|
68
|
-
resolver(false)
|
|
69
|
-
return
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
guard let presentedVC = RCTPresentedViewController() else {
|
|
73
|
-
resolver(false)
|
|
74
|
-
return
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
#if DEBUG
|
|
78
|
-
self.sendEvent(
|
|
79
|
-
withName: FWEventName.logMessage.rawValue,
|
|
80
|
-
body: [
|
|
81
|
-
"message":
|
|
82
|
-
"[iOS] Before creating containerViewController \(formatter.string(from: Date()))"
|
|
83
|
-
])
|
|
84
|
-
#endif
|
|
85
|
-
|
|
86
|
-
let containerViewController = FWNavigatorContainerViewController()
|
|
87
|
-
|
|
88
|
-
#if DEBUG
|
|
89
|
-
self.sendEvent(
|
|
90
|
-
withName: FWEventName.logMessage.rawValue,
|
|
91
|
-
body: [
|
|
92
|
-
"message":
|
|
93
|
-
"[iOS] After creating containerViewController \(formatter.string(from: Date()))"
|
|
94
|
-
])
|
|
95
|
-
#endif
|
|
96
|
-
|
|
97
|
-
containerViewController.moduleName = appComponentName
|
|
98
|
-
containerViewController.properties = props
|
|
99
|
-
containerViewController.modalPresentationStyle = .fullScreen
|
|
100
|
-
if presentedVC.modalPresentationStyle == .custom,
|
|
101
|
-
let presentingVC = presentedVC.presentingViewController,
|
|
102
|
-
presentingVC is FireworkVideo.PlayerViewController
|
|
103
|
-
{
|
|
104
|
-
containerViewController.modalPresentationStyle = .overFullScreen
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
#if DEBUG
|
|
108
|
-
self.sendEvent(
|
|
109
|
-
withName: FWEventName.logMessage.rawValue,
|
|
110
|
-
body: [
|
|
111
|
-
"message":
|
|
112
|
-
"[iOS] Present containerViewController \(formatter.string(from: Date()))"
|
|
113
|
-
])
|
|
114
|
-
#endif
|
|
115
|
-
|
|
116
|
-
presentedVC.present(containerViewController, animated: true) {
|
|
117
|
-
#if DEBUG
|
|
118
|
-
self.sendEvent(
|
|
119
|
-
withName: FWEventName.logMessage.rawValue,
|
|
120
|
-
body: [
|
|
121
|
-
"message":
|
|
122
|
-
"[iOS] Finish presenting containerViewController \(formatter.string(from: Date()))"
|
|
123
|
-
])
|
|
124
|
-
#endif
|
|
125
|
-
|
|
126
|
-
resolver(true)
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
// swiftlint:enable function_body_length
|
|
131
|
-
|
|
132
32
|
@objc(popNativeContainer:rejecter:)
|
|
133
33
|
func popNativeContainer(
|
|
134
34
|
_ resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock
|
|
135
35
|
) {
|
|
136
|
-
if let
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
}
|
|
142
|
-
} else if let cartViewController = gCartViewController {
|
|
143
|
-
cartViewController.navigationController?.popViewController(animated: true)
|
|
144
|
-
gCartViewController = nil
|
|
145
|
-
resolver(true)
|
|
146
|
-
} else if let presentedVC = RCTPresentedViewController(),
|
|
147
|
-
FWNavigatorModule.isIOSSDKViewController(presentedVC),
|
|
148
|
-
let presentingVC = presentedVC.presentingViewController,
|
|
149
|
-
presentingVC.presentingViewController == RCTKeyWindow()?.rootViewController,
|
|
150
|
-
FWNavigatorModule.isIOSSDKViewController(presentingVC) {
|
|
36
|
+
if let presentedVC = RCTPresentedViewController(),
|
|
37
|
+
FWNavigatorModule.isIOSSDKViewController(presentedVC),
|
|
38
|
+
let presentingVC = presentedVC.presentingViewController,
|
|
39
|
+
presentingVC.presentingViewController == RCTKeyWindow()?.rootViewController,
|
|
40
|
+
FWNavigatorModule.isIOSSDKViewController(presentingVC) {
|
|
151
41
|
presentedVC.dismiss(animated: false) {
|
|
152
42
|
DispatchQueue.main.asyncAfter(wallDeadline: .now() + 0.1) {
|
|
153
43
|
if let buttonInfo = FWNavigatorModule.getPlayerExitButtonInfo(view: presentingVC.view) {
|
|
@@ -184,47 +74,6 @@ class FWNavigatorModule: RCTEventEmitter, FWNavigator {
|
|
|
184
74
|
}
|
|
185
75
|
}
|
|
186
76
|
|
|
187
|
-
@objc(canPopNativeContainer:rejecter:)
|
|
188
|
-
func canPopNativeContainer(
|
|
189
|
-
_ resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock
|
|
190
|
-
) {
|
|
191
|
-
if let navigatorContainerVC = RCTPresentedViewController()
|
|
192
|
-
as? FWNavigatorContainerViewController,
|
|
193
|
-
navigatorContainerVC.presentingViewController != nil {
|
|
194
|
-
resolver(true)
|
|
195
|
-
} else if gCartViewController != nil {
|
|
196
|
-
resolver(true)
|
|
197
|
-
} else if let presentedVC = RCTPresentedViewController(),
|
|
198
|
-
FWNavigatorModule.isIOSSDKViewController(presentedVC),
|
|
199
|
-
let presentingVC = presentedVC.presentingViewController,
|
|
200
|
-
presentingVC.presentingViewController == RCTKeyWindow()?.rootViewController,
|
|
201
|
-
FWNavigatorModule.isIOSSDKViewController(presentingVC) {
|
|
202
|
-
if let buttonInfo = FWNavigatorModule.getPlayerExitButtonInfo(view: presentingVC.view) {
|
|
203
|
-
if buttonInfo.type == .close {
|
|
204
|
-
resolver(true)
|
|
205
|
-
} else {
|
|
206
|
-
resolver(false)
|
|
207
|
-
}
|
|
208
|
-
} else {
|
|
209
|
-
resolver(true)
|
|
210
|
-
}
|
|
211
|
-
} else if let rootVC = RCTKeyWindow()?.rootViewController,
|
|
212
|
-
let presentedVC = rootVC.presentedViewController,
|
|
213
|
-
FWNavigatorModule.isIOSSDKViewController(presentedVC) {
|
|
214
|
-
if let buttonInfo = FWNavigatorModule.getPlayerExitButtonInfo(view: presentedVC.view) {
|
|
215
|
-
if buttonInfo.type == .close {
|
|
216
|
-
resolver(true)
|
|
217
|
-
} else {
|
|
218
|
-
resolver(false)
|
|
219
|
-
}
|
|
220
|
-
} else {
|
|
221
|
-
resolver(true)
|
|
222
|
-
}
|
|
223
|
-
} else {
|
|
224
|
-
resolver(false)
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
77
|
@objc(startFloatingPlayer:rejecter:)
|
|
229
78
|
func startFloatingPlayer(
|
|
230
79
|
_ resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock
|
|
@@ -23,26 +23,6 @@ extension FireworkSDKModule: FireworkVideoCTADelegate {
|
|
|
23
23
|
|
|
24
24
|
sendEvent(withName: FWEventName.customCTAClick.rawValue, body: ["url": url.absoluteString])
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
if let moduleName = gAppComponentName,
|
|
28
|
-
moduleName.count > 0,
|
|
29
|
-
let initialRouteName = customCTALinkContentPageRouteName,
|
|
30
|
-
initialRouteName.count > 0,
|
|
31
|
-
let presentedVC = RCTPresentedViewController()
|
|
32
|
-
{
|
|
33
|
-
customCTALinkContentPageEnabled = true
|
|
34
|
-
let containerViewController = FWNavigatorContainerViewController()
|
|
35
|
-
containerViewController.moduleName = moduleName
|
|
36
|
-
containerViewController.properties = [
|
|
37
|
-
"initialRouteName": initialRouteName,
|
|
38
|
-
"initialParams": ["url": url.absoluteString]
|
|
39
|
-
]
|
|
40
|
-
containerViewController.modalPresentationStyle = .fullScreen
|
|
41
|
-
presentedVC.present(containerViewController, animated: true) {
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
return customCTAClickEnabled || customCTALinkContentPageEnabled
|
|
26
|
+
return customCTAClickEnabled
|
|
47
27
|
}
|
|
48
28
|
}
|
|
@@ -10,14 +10,13 @@
|
|
|
10
10
|
|
|
11
11
|
@interface RCT_EXTERN_REMAP_MODULE(FireworkSDK, FireworkSDKModule, NSObject)
|
|
12
12
|
|
|
13
|
-
_RCT_EXTERN_REMAP_METHOD(init, initializeSDK:(NSDictionary * __nullable)options resolver:
|
|
13
|
+
_RCT_EXTERN_REMAP_METHOD(init, initializeSDK:(NSDictionary * __nullable)options resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter, NO)
|
|
14
14
|
RCT_EXTERN_METHOD(openVideoPlayer:(NSString *)url config:(NSDictionary *)config)
|
|
15
15
|
RCT_EXTERN_METHOD(setCustomCTAClickEnabled:(BOOL)enabled)
|
|
16
16
|
RCT_EXTERN_METHOD(setCustomCTALinkContentPageRouteName:(NSString *)name resolver: (RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
17
17
|
RCT_EXTERN_METHOD(setShareBaseURL:(NSString *)url resolver: (RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
18
18
|
RCT_EXTERN_METHOD(setVideoPlaybackEventEnabled:(BOOL)enabled)
|
|
19
19
|
RCT_EXTERN_METHOD(setAdBadgeConfiguration:(NSDictionary *)config resolver: (RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
20
|
-
RCT_EXTERN_METHOD(setAppComponentName:(NSString *)name resolver: (RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
21
20
|
RCT_EXTERN_METHOD(trackPurchase:(NSDictionary *)parameters)
|
|
22
21
|
RCT_EXTERN_METHOD(changeAppLanguage:(NSString * __nullable)language resolver: (RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
23
22
|
|
|
@@ -13,7 +13,6 @@ import FireworkVideoUI
|
|
|
13
13
|
|
|
14
14
|
var gShareBaseURL: String?
|
|
15
15
|
var gAdBadgeConfiguration: AdBadgeConfiguration?
|
|
16
|
-
var gAppComponentName: String?
|
|
17
16
|
var gVideoLaunchBehavior: VideoLaunchBehavior?
|
|
18
17
|
|
|
19
18
|
@objc(FireworkSDKModule)
|
|
@@ -30,7 +29,7 @@ class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
|
|
|
30
29
|
super.init()
|
|
31
30
|
_ = AppLanguageManager.shared
|
|
32
31
|
NotificationCenter.default.addObserver(
|
|
33
|
-
self, selector: #selector(
|
|
32
|
+
self, selector: #selector(Self.onAppLanguageChanged),
|
|
34
33
|
name: AppLanguageManager.NotificationName.AppLanguageChanged, object: nil)
|
|
35
34
|
}
|
|
36
35
|
|
|
@@ -104,8 +103,6 @@ class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
|
|
|
104
103
|
return
|
|
105
104
|
}
|
|
106
105
|
|
|
107
|
-
_ = AppLanguageManager.shared
|
|
108
|
-
|
|
109
106
|
VideoFeedViewController.openVideoPlayer(with: urlString, feedContentConfig, presentedVC) { _ in
|
|
110
107
|
|
|
111
108
|
}
|
|
@@ -146,14 +143,6 @@ class FireworkSDKModule: RCTEventEmitter, FireworkVideoSDKDelegate {
|
|
|
146
143
|
resolver([:])
|
|
147
144
|
}
|
|
148
145
|
|
|
149
|
-
@objc(setAppComponentName:resolver:rejecter:)
|
|
150
|
-
func setAppComponentName(
|
|
151
|
-
_ name: String, resolver: RCTPromiseResolveBlock, rejecter: RCTPromiseRejectBlock
|
|
152
|
-
) {
|
|
153
|
-
gAppComponentName = name
|
|
154
|
-
resolver([:])
|
|
155
|
-
}
|
|
156
|
-
|
|
157
146
|
@objc(trackPurchase:)
|
|
158
147
|
func trackPurchase(_ parameters: [String: AnyObject]?) {
|
|
159
148
|
guard let trackPurchaseParameters = RCTConvert.trackPurchaseParameters(parameters) else {
|
|
@@ -9,6 +9,6 @@
|
|
|
9
9
|
|
|
10
10
|
@interface RCT_EXTERN_REMAP_MODULE(LiveStreamModule, LiveStreamModule, NSObject)
|
|
11
11
|
|
|
12
|
-
_RCT_EXTERN_REMAP_METHOD(init, initializeSDK, NO)
|
|
12
|
+
_RCT_EXTERN_REMAP_METHOD(init, initializeSDK:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter, NO)
|
|
13
13
|
|
|
14
14
|
@end
|
|
@@ -23,9 +23,11 @@ class LiveStreamModule: RCTEventEmitter, FireworkLiveStreamEventDelegate {
|
|
|
23
23
|
return DispatchQueue.main
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
@objc
|
|
27
|
-
func initializeSDK(
|
|
26
|
+
@objc(initializeSDK:rejecter:)
|
|
27
|
+
func initializeSDK(_ resolver: RCTPromiseResolveBlock,
|
|
28
|
+
rejecter: RCTPromiseRejectBlock) {
|
|
28
29
|
FireworkVideoSDK.eventTracking.liveStreamEventDelegate = self
|
|
30
|
+
resolver([:])
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
func fireworkLiveStreamUserDidJoin(_ liveStream: LiveStreamEventDetails) {
|
|
@@ -10,80 +10,5 @@ import UIKit
|
|
|
10
10
|
|
|
11
11
|
@objc(FWCartViewController)
|
|
12
12
|
public class FWCartViewController: UIViewController, CartViewRepresentable {
|
|
13
|
-
var callbackId: Int!
|
|
14
|
-
@objc public var enableShowCustomCartView: Bool = true
|
|
15
|
-
private var properties: [String: Any] = [:]
|
|
16
|
-
private var directShowCartPage = false
|
|
17
13
|
|
|
18
|
-
init(callbackId: Int, enableShowCustomCartView: Bool) {
|
|
19
|
-
self.callbackId = callbackId
|
|
20
|
-
self.enableShowCustomCartView = enableShowCustomCartView
|
|
21
|
-
super.init(nibName: nil, bundle: nil)
|
|
22
|
-
if enableShowCustomCartView {
|
|
23
|
-
NotificationCenter.default.addObserver(
|
|
24
|
-
self, selector: #selector(showCustomCartView(_:)),
|
|
25
|
-
name: Notification.Name(rawValue: "showCustomCartView"), object: nil)
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
required init?(coder: NSCoder) {
|
|
30
|
-
super.init(coder: coder)
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
public override func viewWillAppear(_ animated: Bool) {
|
|
34
|
-
super.viewWillAppear(animated)
|
|
35
|
-
if enableShowCustomCartView {
|
|
36
|
-
self.navigationController?.setNavigationBarHidden(true, animated: true)
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
public override func viewDidLoad() {
|
|
41
|
-
super.viewDidLoad()
|
|
42
|
-
|
|
43
|
-
if directShowCartPage && enableShowCustomCartView {
|
|
44
|
-
directShowCustomCartView()
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
public override func viewWillDisappear(_ animated: Bool) {
|
|
49
|
-
super.viewWillDisappear(animated)
|
|
50
|
-
if enableShowCustomCartView {
|
|
51
|
-
self.navigationController?.setNavigationBarHidden(false, animated: true)
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
@objc func showCustomCartView(_ noti: NSNotification) {
|
|
56
|
-
guard let cbId = noti.userInfo?["cbId"] as? Int, callbackId == cbId else {
|
|
57
|
-
return
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
if let properties = noti.userInfo?["properties"] as? [String: Any] {
|
|
61
|
-
self.properties = properties
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
if isViewLoaded {
|
|
65
|
-
directShowCustomCartView()
|
|
66
|
-
} else {
|
|
67
|
-
directShowCartPage = true
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
private func directShowCustomCartView() {
|
|
72
|
-
guard let appComponentName = gAppComponentName, appComponentName.count > 0 else {
|
|
73
|
-
return
|
|
74
|
-
}
|
|
75
|
-
let rctRootView = RCTRootView.init(
|
|
76
|
-
bridge: RCTBridge.current(),
|
|
77
|
-
moduleName: appComponentName,
|
|
78
|
-
initialProperties: properties)
|
|
79
|
-
view.addSubview(rctRootView)
|
|
80
|
-
rctRootView.translatesAutoresizingMaskIntoConstraints = false
|
|
81
|
-
|
|
82
|
-
NSLayoutConstraint.activate([
|
|
83
|
-
rctRootView.leftAnchor.constraint(equalTo: view.leftAnchor),
|
|
84
|
-
rctRootView.topAnchor.constraint(equalTo: view.topAnchor),
|
|
85
|
-
rctRootView.rightAnchor.constraint(equalTo: view.rightAnchor),
|
|
86
|
-
rctRootView.bottomAnchor.constraint(equalTo: view.bottomAnchor)
|
|
87
|
-
])
|
|
88
|
-
}
|
|
89
14
|
}
|
|
@@ -9,12 +9,10 @@
|
|
|
9
9
|
|
|
10
10
|
@interface RCT_EXTERN_REMAP_MODULE(ShoppingModule, ShoppingModule, NSObject)
|
|
11
11
|
|
|
12
|
-
_RCT_EXTERN_REMAP_METHOD(init, initializeSDK, NO)
|
|
12
|
+
_RCT_EXTERN_REMAP_METHOD(init, initializeSDK:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter, NO)
|
|
13
13
|
RCT_EXTERN_METHOD(setCartIconVisible:(BOOL)visible)
|
|
14
14
|
RCT_EXTERN_METHOD(setCartItemCount:(int)itemCounts)
|
|
15
15
|
RCT_EXTERN_METHOD(updateVideoProducts:(NSArray *)products cbId:(nonnull NSNumber *)cbId)
|
|
16
|
-
RCT_EXTERN_METHOD(jumpToCartPage:(nonnull NSNumber *)cbId props:(NSDictionary *)props)
|
|
17
|
-
RCT_EXTERN_METHOD(setCustomClickCartIconEnabled:(BOOL)enabled resolver: (RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
18
16
|
RCT_EXTERN_METHOD(setProductInfoViewConfiguration:(NSDictionary *)config)
|
|
19
17
|
RCT_EXTERN_METHOD(clearCallbackId:(nonnull NSNumber *)cbId eventName:(nonnull NSString *)name)
|
|
20
18
|
RCT_EXTERN_METHOD(setCustomClickLinkButtonEnabled:(BOOL)enabled resolver: (RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
@@ -5,13 +5,11 @@
|
|
|
5
5
|
// Created by Jeff Zheng on 2021/12/30.
|
|
6
6
|
//
|
|
7
7
|
|
|
8
|
+
// swiftlint:disable file_length
|
|
9
|
+
|
|
8
10
|
import FireworkVideo
|
|
9
11
|
import Foundation
|
|
10
12
|
|
|
11
|
-
weak var gCartViewController: FWCartViewController?
|
|
12
|
-
|
|
13
|
-
// swiftlint:disable file_length type_body_length
|
|
14
|
-
|
|
15
13
|
@objc(ShoppingModule)
|
|
16
14
|
class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate, CartViewControllerProviding {
|
|
17
15
|
|
|
@@ -19,10 +17,8 @@ class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate, CartViewCo
|
|
|
19
17
|
private var shoppingCTAHandlerMap: [Int: ShoppingCTAHandler] = [:]
|
|
20
18
|
private var productHydratingMap: [Int: ProductHydrating] = [:]
|
|
21
19
|
|
|
22
|
-
private var
|
|
23
|
-
private var cartIconVisible = true
|
|
20
|
+
private var cartIconVisible: Bool?
|
|
24
21
|
private var itemCounts = 0
|
|
25
|
-
private var customClickCartIconEnabled = false
|
|
26
22
|
private var productInfoViewConfiguration: ProductInfoViewConfiguration?
|
|
27
23
|
private var customClickLinkButtonEnabled = false
|
|
28
24
|
|
|
@@ -47,10 +43,12 @@ class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate, CartViewCo
|
|
|
47
43
|
return CBIdIncreasingFactor.callbackId
|
|
48
44
|
}
|
|
49
45
|
|
|
50
|
-
@objc
|
|
51
|
-
func initializeSDK(
|
|
46
|
+
@objc(initializeSDK:rejecter:)
|
|
47
|
+
func initializeSDK(_ resolver: RCTPromiseResolveBlock,
|
|
48
|
+
rejecter: RCTPromiseRejectBlock) {
|
|
52
49
|
FireworkVideoSDK.shopping.shoppingDelegate = self
|
|
53
50
|
FireworkVideoSDK.shopping.cartViewControllerProvider = self
|
|
51
|
+
resolver([:])
|
|
54
52
|
}
|
|
55
53
|
|
|
56
54
|
@objc
|
|
@@ -133,27 +131,6 @@ class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate, CartViewCo
|
|
|
133
131
|
}
|
|
134
132
|
}
|
|
135
133
|
|
|
136
|
-
@objc
|
|
137
|
-
func jumpToCartPage(_ cbId: NSNumber, props: NSDictionary) {
|
|
138
|
-
let properties: [String: Any] = (props as? [String: Any]) ?? [:]
|
|
139
|
-
let noti = Notification(
|
|
140
|
-
name: Notification.Name(rawValue: "showCustomCartView"), object: nil,
|
|
141
|
-
userInfo: [
|
|
142
|
-
"cbId": Int(truncating: cbId),
|
|
143
|
-
"properties": properties
|
|
144
|
-
])
|
|
145
|
-
NotificationCenter.default.post(noti)
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
@objc
|
|
149
|
-
func setCustomClickCartIconEnabled(
|
|
150
|
-
_ enabled: Bool, resolver: @escaping RCTPromiseResolveBlock,
|
|
151
|
-
rejecter: @escaping RCTPromiseRejectBlock
|
|
152
|
-
) {
|
|
153
|
-
customClickCartIconEnabled = enabled
|
|
154
|
-
resolver([:])
|
|
155
|
-
}
|
|
156
|
-
|
|
157
134
|
@objc
|
|
158
135
|
func setProductInfoViewConfiguration(_ config: [String: Any]?) {
|
|
159
136
|
let config = RCTConvert.buildProductInfoViewConfiguration(config)
|
|
@@ -229,7 +206,9 @@ class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate, CartViewCo
|
|
|
229
206
|
) {
|
|
230
207
|
let callbackId = ShoppingModule.generateCallbackId()
|
|
231
208
|
self.productInfoViewConfigurator = (callbackId, productInfoViewConfigurator)
|
|
232
|
-
|
|
209
|
+
if let cartIconVisible = self.cartIconVisible {
|
|
210
|
+
productInfoViewConfigurator.shoppingCartIconConfiguration.isHidden = !cartIconVisible
|
|
211
|
+
}
|
|
233
212
|
productInfoViewConfigurator.shoppingCartIconConfiguration.indicator.isHidden = itemCounts == 0
|
|
234
213
|
|
|
235
214
|
if let productInfoViewConfiguration = productInfoViewConfiguration {
|
|
@@ -248,10 +227,6 @@ class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate, CartViewCo
|
|
|
248
227
|
withName: FWEventName.logMessage.rawValue,
|
|
249
228
|
body: ["message": message])
|
|
250
229
|
#endif
|
|
251
|
-
|
|
252
|
-
sendEvent(
|
|
253
|
-
withName: ShoppingEventName.willDisplayProduct.rawValue,
|
|
254
|
-
body: ["videoId": video.videoID, "callbackId": callbackId])
|
|
255
230
|
}
|
|
256
231
|
|
|
257
232
|
func fireworkShopping(
|
|
@@ -318,19 +293,9 @@ class ShoppingModule: RCTEventEmitter, FireworkVideoShoppingDelegate, CartViewCo
|
|
|
318
293
|
|
|
319
294
|
// MARK: - CartViewControllerProviding
|
|
320
295
|
func cartViewController(for video: VideoDetails) -> FireworkVideo.CartViewController {
|
|
321
|
-
let callbackId = ShoppingModule.generateCallbackId()
|
|
322
296
|
sendEvent(
|
|
323
|
-
withName: ShoppingEventName.clickCartIcon.rawValue, body: [
|
|
324
|
-
|
|
325
|
-
let cartVC = FWCartViewController(
|
|
326
|
-
callbackId: callbackId,
|
|
327
|
-
enableShowCustomCartView: !customClickCartIconEnabled)
|
|
328
|
-
if !customClickCartIconEnabled {
|
|
329
|
-
gCartViewController = cartVC
|
|
330
|
-
} else {
|
|
331
|
-
gCartViewController = nil
|
|
332
|
-
}
|
|
333
|
-
return cartVC
|
|
297
|
+
withName: ShoppingEventName.clickCartIcon.rawValue, body: [:])
|
|
298
|
+
return FWCartViewController()
|
|
334
299
|
}
|
|
335
300
|
}
|
|
336
301
|
|