react-native-firework-sdk 2.14.2 → 2.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/gradle.properties +1 -1
- package/android/src/main/java/com/fireworksdk/bridge/components/storyblock/StoryBlockFragment.kt +14 -4
- package/android/src/main/java/com/fireworksdk/bridge/models/FWActionButtonDeserializer.kt +27 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWActionButtonModel.kt +8 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWActionButtonSerializer.kt +21 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWLiveStreamEventDetailsModel.kt +2 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWPlayerButtonConfigurationDeserializer.kt +3 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWPlayerButtonConfigurationModel.kt +1 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWPlayerButtonConfigurationSerializer.kt +2 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWShape.kt +18 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoFeedItemDetailsModel.kt +2 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlaybackDetails.kt +2 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModel.kt +6 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModelDeserializer.kt +23 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlayerConfigModelSerializer.kt +14 -0
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWEventName.kt +3 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/enums/FWLivestreamPlayerVersion.kt +6 -0
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWVideoFeedManager.kt +4 -0
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FireworkSDKInterface.kt +1 -0
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWVideoShoppingModule.kt +3 -3
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FireworkSDKModule.kt +14 -0
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWConfigUtil.kt +156 -3
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWGlobalDataUtil.kt +6 -0
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWModelUtils.kt +32 -0
- package/ios/Components/StoryBlock.swift +10 -2
- package/ios/Components/VideoFeed.swift +12 -29
- package/ios/Components/VideoFeedManager.swift +0 -5
- package/ios/Models/NativeToRN/FireworkEventName.swift +3 -1
- package/ios/Models/RNToNative/RCTConvert+FireworkSDKModule.swift +13 -0
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule+EventTracking.swift +42 -5
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule.m +2 -1
- package/ios/Modules/FireworkSDKModule/FireworkSDKModule.swift +16 -0
- package/ios/Modules/Shopping/ShoppingModule.swift +1 -1
- package/lib/commonjs/FireworkSDK.js +41 -14
- package/lib/commonjs/FireworkSDK.js.map +1 -1
- package/lib/commonjs/components/StoryBlock.js +21 -0
- package/lib/commonjs/components/StoryBlock.js.map +1 -1
- package/lib/commonjs/components/VideoFeed.js +23 -0
- package/lib/commonjs/components/VideoFeed.js.map +1 -1
- package/lib/commonjs/index.js +8 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/FWEventName.js +2 -0
- package/lib/commonjs/models/FWEventName.js.map +1 -1
- package/lib/commonjs/models/LivestreamPlayerDesignVersion.js +16 -0
- package/lib/commonjs/models/LivestreamPlayerDesignVersion.js.map +1 -0
- package/lib/commonjs/modules/FireworkSDKModule.js.map +1 -1
- package/lib/module/FireworkSDK.js +38 -14
- package/lib/module/FireworkSDK.js.map +1 -1
- package/lib/module/components/StoryBlock.js +14 -0
- package/lib/module/components/StoryBlock.js.map +1 -1
- package/lib/module/components/VideoFeed.js +18 -0
- package/lib/module/components/VideoFeed.js.map +1 -1
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/FWEventName.js +2 -0
- package/lib/module/models/FWEventName.js.map +1 -1
- package/lib/module/models/LivestreamPlayerDesignVersion.js +9 -0
- package/lib/module/models/LivestreamPlayerDesignVersion.js.map +1 -0
- package/lib/module/modules/FireworkSDKModule.js.map +1 -1
- package/lib/typescript/FireworkSDK.d.ts +9 -2
- package/lib/typescript/index.d.ts +2 -1
- package/lib/typescript/models/FWEventName.d.ts +3 -1
- package/lib/typescript/models/LivestreamPlayerDesignVersion.d.ts +5 -0
- package/lib/typescript/models/StoryBlockConfiguration.d.ts +2 -7
- package/lib/typescript/modules/FireworkSDKModule.d.ts +3 -1
- package/package.json +1 -1
- package/react-native-firework-sdk.podspec +2 -2
- package/src/FireworkSDK.ts +44 -13
- package/src/components/StoryBlock.tsx +27 -1
- package/src/components/VideoFeed.tsx +29 -1
- package/src/index.ts +2 -0
- package/src/models/FWEventName.ts +2 -0
- package/src/models/LivestreamPlayerDesignVersion.ts +6 -0
- package/src/models/StoryBlockConfiguration.ts +2 -7
- package/src/modules/FireworkSDKModule.ts +5 -1
|
@@ -13,18 +13,20 @@ var _LiveStream = _interopRequireDefault(require("./LiveStream"));
|
|
|
13
13
|
|
|
14
14
|
var _FWEventName = require("./models/FWEventName");
|
|
15
15
|
|
|
16
|
+
var _LivestreamPlayerDesignVersion = _interopRequireDefault(require("./models/LivestreamPlayerDesignVersion"));
|
|
17
|
+
|
|
16
18
|
var _FireworkSDKModule = _interopRequireWildcard(require("./modules/FireworkSDKModule"));
|
|
17
19
|
|
|
18
20
|
var _LiveStreamModule = _interopRequireDefault(require("./modules/LiveStreamModule"));
|
|
19
21
|
|
|
20
22
|
var _ShoppingModule = _interopRequireDefault(require("./modules/ShoppingModule"));
|
|
21
23
|
|
|
24
|
+
var _FWGlobalState = _interopRequireDefault(require("./utils/FWGlobalState"));
|
|
25
|
+
|
|
22
26
|
var _FWLoggerUtil = _interopRequireDefault(require("./utils/FWLoggerUtil"));
|
|
23
27
|
|
|
24
28
|
var _VideoShopping = _interopRequireDefault(require("./VideoShopping"));
|
|
25
29
|
|
|
26
|
-
var _FWGlobalState = _interopRequireDefault(require("./utils/FWGlobalState"));
|
|
27
|
-
|
|
28
30
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
31
|
|
|
30
32
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -94,8 +96,6 @@ class FireworkSDK {
|
|
|
94
96
|
|
|
95
97
|
set shareBaseURL(value) {
|
|
96
98
|
this.updateInternalShareBaseURL(value);
|
|
97
|
-
|
|
98
|
-
_FireworkSDKModule.default.setShareBaseURL(value !== null && value !== void 0 ? value : '');
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
/**
|
|
@@ -111,11 +111,11 @@ class FireworkSDK {
|
|
|
111
111
|
const valueHasChanged = ((_this$_adBadgeConfigu = this._adBadgeConfiguration) === null || _this$_adBadgeConfigu === void 0 ? void 0 : _this$_adBadgeConfigu.badgeTextType) !== (value === null || value === void 0 ? void 0 : value.badgeTextType) || ((_this$_adBadgeConfigu2 = this._adBadgeConfiguration) === null || _this$_adBadgeConfigu2 === void 0 ? void 0 : _this$_adBadgeConfigu2.backgroundColor) !== (value === null || value === void 0 ? void 0 : value.backgroundColor) || ((_this$_adBadgeConfigu3 = this._adBadgeConfiguration) === null || _this$_adBadgeConfigu3 === void 0 ? void 0 : _this$_adBadgeConfigu3.textColor) !== (value === null || value === void 0 ? void 0 : value.textColor) || ((_this$_adBadgeConfigu4 = this._adBadgeConfiguration) === null || _this$_adBadgeConfigu4 === void 0 ? void 0 : (_this$_adBadgeConfigu5 = _this$_adBadgeConfigu4.androidFontInfo) === null || _this$_adBadgeConfigu5 === void 0 ? void 0 : _this$_adBadgeConfigu5.isCustom) !== (value === null || value === void 0 ? void 0 : (_value$androidFontInf = value.androidFontInfo) === null || _value$androidFontInf === void 0 ? void 0 : _value$androidFontInf.isCustom) || ((_this$_adBadgeConfigu6 = this._adBadgeConfiguration) === null || _this$_adBadgeConfigu6 === void 0 ? void 0 : (_this$_adBadgeConfigu7 = _this$_adBadgeConfigu6.androidFontInfo) === null || _this$_adBadgeConfigu7 === void 0 ? void 0 : _this$_adBadgeConfigu7.typefaceName) !== (value === null || value === void 0 ? void 0 : (_value$androidFontInf2 = value.androidFontInfo) === null || _value$androidFontInf2 === void 0 ? void 0 : _value$androidFontInf2.typefaceName);
|
|
112
112
|
this._adBadgeConfiguration = value;
|
|
113
113
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
114
|
+
_FireworkSDKModule.default.setAdBadgeConfiguration(value !== null && value !== void 0 ? value : {}).then(() => {
|
|
115
|
+
if (valueHasChanged) {
|
|
116
|
+
this.eventEmitter.emit(_FWEventName.FWEventName.AdBadgeConfigurationUpdated);
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
get appLanguage() {
|
|
@@ -130,9 +130,14 @@ class FireworkSDK {
|
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
set dataTrackingLevel(value) {
|
|
133
|
+
const valueHasChanged = this._dataTrackingLevel !== value;
|
|
133
134
|
this._dataTrackingLevel = value;
|
|
134
135
|
|
|
135
|
-
_FireworkSDKModule.default.setDataTrackingLevel(value)
|
|
136
|
+
_FireworkSDKModule.default.setDataTrackingLevel(value).then(() => {
|
|
137
|
+
if (valueHasChanged) {
|
|
138
|
+
this.eventEmitter.emit(_FWEventName.FWEventName.DataTrackingLevelUpdated);
|
|
139
|
+
}
|
|
140
|
+
});
|
|
136
141
|
}
|
|
137
142
|
|
|
138
143
|
/**
|
|
@@ -155,6 +160,24 @@ class FireworkSDK {
|
|
|
155
160
|
return this._videoLaunchBehavior;
|
|
156
161
|
}
|
|
157
162
|
|
|
163
|
+
/**
|
|
164
|
+
* The version of the livestream player design.
|
|
165
|
+
*/
|
|
166
|
+
get livestreamPlayerDesignVersion() {
|
|
167
|
+
return this._livestreamPlayerDesignVersion;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
set livestreamPlayerDesignVersion(value) {
|
|
171
|
+
const valueHasChanged = this._livestreamPlayerDesignVersion !== value;
|
|
172
|
+
this._livestreamPlayerDesignVersion = value;
|
|
173
|
+
|
|
174
|
+
_FireworkSDKModule.default.setLivestreamPlayerDesignVersion(value).then(() => {
|
|
175
|
+
if (valueHasChanged) {
|
|
176
|
+
this.eventEmitter.emit(_FWEventName.FWEventName.LivestreamPlayerDesignVersionUpdated);
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
|
|
158
181
|
get eventEmitter() {
|
|
159
182
|
return _FireworkSDKModule.FireworkSDKModuleEventEmitter;
|
|
160
183
|
}
|
|
@@ -212,6 +235,8 @@ class FireworkSDK {
|
|
|
212
235
|
|
|
213
236
|
_defineProperty(this, "_videoLaunchBehavior", void 0);
|
|
214
237
|
|
|
238
|
+
_defineProperty(this, "_livestreamPlayerDesignVersion", _LivestreamPlayerDesignVersion.default.v1);
|
|
239
|
+
|
|
215
240
|
_defineProperty(this, "_shopping", _VideoShopping.default.getInstance());
|
|
216
241
|
|
|
217
242
|
_defineProperty(this, "_liveStream", _LiveStream.default.getInstance());
|
|
@@ -296,12 +321,12 @@ class FireworkSDK {
|
|
|
296
321
|
|
|
297
322
|
const videoLaunchBehaviorUpdated = this._videoLaunchBehavior !== (options === null || options === void 0 ? void 0 : options.videoLaunchBehavior);
|
|
298
323
|
this._videoLaunchBehavior = options === null || options === void 0 ? void 0 : options.videoLaunchBehavior;
|
|
324
|
+
await _FireworkSDKModule.default.init(options);
|
|
299
325
|
|
|
300
326
|
if (videoLaunchBehaviorUpdated) {
|
|
301
327
|
this.eventEmitter.emit(_FWEventName.FWEventName.VideoLaunchBehaviorUpdated);
|
|
302
328
|
}
|
|
303
329
|
|
|
304
|
-
await _FireworkSDKModule.default.init(options);
|
|
305
330
|
await this.completeRemainingInitialization();
|
|
306
331
|
}
|
|
307
332
|
/**
|
|
@@ -409,9 +434,11 @@ class FireworkSDK {
|
|
|
409
434
|
const shareBaseURLChanged = this._shareBaseURL !== shareBaseURL;
|
|
410
435
|
this._shareBaseURL = shareBaseURL;
|
|
411
436
|
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
437
|
+
_FireworkSDKModule.default.setShareBaseURL(shareBaseURL !== null && shareBaseURL !== void 0 ? shareBaseURL : '').then(() => {
|
|
438
|
+
if (shareBaseURLChanged) {
|
|
439
|
+
this.eventEmitter.emit(_FWEventName.FWEventName.ShareBaseURLUpdated);
|
|
440
|
+
}
|
|
441
|
+
});
|
|
415
442
|
}
|
|
416
443
|
|
|
417
444
|
async completeRemainingInitialization() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FireworkSDK.ts"],"names":["FireworkSDK","onVideoFeedClick","_onVideoFeedClick","value","Platform","OS","FireworkSDKModule","setVideoFeedClickCallbackEnabled","onCustomCTAClick","_onCustomCTAClick","FWLoggerUtil","log","setCustomCTAClickEnabled","onVideoPlayback","_onVideoPlayback","setVideoPlaybackEventEnabled","shareBaseURL","_shareBaseURL","updateInternalShareBaseURL","setShareBaseURL","adBadgeConfiguration","_adBadgeConfiguration","valueHasChanged","badgeTextType","backgroundColor","textColor","androidFontInfo","isCustom","typefaceName","eventEmitter","emit","FWEventName","AdBadgeConfigurationUpdated","setAdBadgeConfiguration","appLanguage","_appLanguage","dataTrackingLevel","_dataTrackingLevel","setDataTrackingLevel","debugLogsEnabled","enabled","videoLaunchBehavior","_videoLaunchBehavior","FireworkSDKModuleEventEmitter","shopping","_shopping","liveStream","_liveStream","navigator","_navigator","getInstance","_instance","constructor","VideoShopping","LiveStream","FWNavigator","addListener","SDKInit","event","error","completeRemainingInitialization","hasCalledSDKInitCallback","onSDKInit","LogMessage","logNativeMessage","message","CustomCTAClick","url","callbackId","playerHandler","pause","pausePlayer","resume","resumePlayer","VideoPlayback","eventName","VideoFeedClick","info","id","NativeAppLanguageUpdated","language","updateInternalAppLanguage","init","options","videoLaunchBehaviorUpdated","VideoLaunchBehaviorUpdated","markInitCalled","nativeLazyInit","hasCalledSDKInit","openVideoPlayer","config","FWGlobalState","sdkInitCalled","sdkInitCalledPromise","trackPurchase","parameters","changeAppLanguage","result","languageChanged","stopFloatingPlayer","getComponentType","feedId","componentTypeByFeedIdMap","get","AppLanguageUpdated","shareBaseURLChanged","ShareBaseURLUpdated","resolveSdkInitCalled","ShoppingModule","LiveStreamModule"],"mappings":"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","sourcesContent":["import { NativeEventEmitter, Platform } from 'react-native';\n\nimport FWNavigator from './FWNavigator';\nimport LiveStream from './LiveStream';\nimport type AdBadgeConfiguration from './models/AdBadgeConfiguration';\nimport { FWEventName } from './models/FWEventName';\nimport type {\n CustomCTAClickEvent,\n SDKInitEvent,\n VideoFeedClickEvent,\n VideoPlaybackEvent,\n} from './models/FWEvents';\nimport type SDKInitOptions from './models/SDKInitOptions';\nimport type { VideoLaunchBehavior } from './models/SDKInitOptions';\nimport type TrackPurchaseParameters from './models/TrackPurchaseParameters';\nimport FireworkSDKModule, {\n FireworkSDKModuleEventEmitter,\n} from './modules/FireworkSDKModule';\nimport LiveStreamModule from './modules/LiveStreamModule';\nimport ShoppingModule from './modules/ShoppingModule';\nimport FWLoggerUtil from './utils/FWLoggerUtil';\nimport VideoShopping from './VideoShopping';\nimport FWGlobalState from './utils/FWGlobalState';\nimport type OpenVideoPlayerConfiguration from './models/OpenVideoPlayerConfiguration';\nimport type { DataTrackingLevel } from './models/DataTrackingLevel';\n\nexport type SDKInitCallback = (event: SDKInitEvent) => Promise<void> | void;\nexport type CustomCTAClickCallback = (\n event: CustomCTAClickEvent\n) => Promise<void> | void;\nexport type VideoPlaybackCallback = (\n event: VideoPlaybackEvent\n) => Promise<void> | void;\nexport type VideoFeedClickCallback = (\n event: VideoFeedClickEvent\n) => Promise<void> | void;\n\n/**\n * Firework SDK.\n */\nclass FireworkSDK {\n private static _instance?: FireworkSDK;\n\n /**\n * The callback of SDK initialization.\n */\n public onSDKInit?: SDKInitCallback;\n\n /**\n * the callback of clicking Video Feed.\n */\n public get onVideoFeedClick(): VideoFeedClickCallback | undefined {\n return this._onVideoFeedClick;\n }\n public set onVideoFeedClick(value: VideoFeedClickCallback | undefined) {\n this._onVideoFeedClick = value;\n if (Platform.OS === 'ios') {\n FireworkSDKModule.setVideoFeedClickCallbackEnabled(!!value);\n }\n }\n private _onVideoFeedClick?: VideoFeedClickCallback | undefined;\n\n /**\n * The callback of clicking custom CTA.\n */\n public get onCustomCTAClick(): CustomCTAClickCallback | undefined {\n return this._onCustomCTAClick;\n }\n public set onCustomCTAClick(value: CustomCTAClickCallback | undefined) {\n FWLoggerUtil.log(`Set onCustomCTAClick callback ${!!value}`);\n this._onCustomCTAClick = value;\n FireworkSDKModule.setCustomCTAClickEnabled(value ? true : false);\n }\n private _onCustomCTAClick: CustomCTAClickCallback | undefined;\n\n /**\n * The callback of video playback.\n */\n public get onVideoPlayback(): VideoPlaybackCallback | undefined {\n return this._onVideoPlayback;\n }\n public set onVideoPlayback(value: VideoPlaybackCallback | undefined) {\n this._onVideoPlayback = value;\n FireworkSDKModule.setVideoPlaybackEventEnabled(value ? true : false);\n }\n private _onVideoPlayback?: VideoPlaybackCallback | undefined;\n\n /**\n * The global share base URL of the video.\n * The {@link VideoPlayerConfiguration.shareBaseURL} in {@link VideoPlayerConfiguration} will override this.\n */\n public get shareBaseURL(): string | undefined {\n return this._shareBaseURL;\n }\n public set shareBaseURL(value: string | undefined) {\n this.updateInternalShareBaseURL(value);\n FireworkSDKModule.setShareBaseURL(value ?? '');\n }\n private _shareBaseURL: string | undefined;\n\n /**\n * The configuration for ad badges.\n */\n public get adBadgeConfiguration(): AdBadgeConfiguration | undefined {\n return this._adBadgeConfiguration;\n }\n public set adBadgeConfiguration(value: AdBadgeConfiguration | undefined) {\n const valueHasChanged =\n this._adBadgeConfiguration?.badgeTextType !== value?.badgeTextType ||\n this._adBadgeConfiguration?.backgroundColor !== value?.backgroundColor ||\n this._adBadgeConfiguration?.textColor !== value?.textColor ||\n this._adBadgeConfiguration?.androidFontInfo?.isCustom !==\n value?.androidFontInfo?.isCustom ||\n this._adBadgeConfiguration?.androidFontInfo?.typefaceName !==\n value?.androidFontInfo?.typefaceName;\n this._adBadgeConfiguration = value;\n if (valueHasChanged) {\n this.eventEmitter.emit(FWEventName.AdBadgeConfigurationUpdated);\n }\n FireworkSDKModule.setAdBadgeConfiguration(value ?? {});\n }\n private _adBadgeConfiguration: AdBadgeConfiguration | undefined;\n\n public get appLanguage(): string | undefined | null {\n return this._appLanguage;\n }\n private _appLanguage: string | undefined | null;\n\n /**\n * The configuration for data tracking level.\n */\n public get dataTrackingLevel(): DataTrackingLevel {\n return this._dataTrackingLevel;\n }\n public set dataTrackingLevel(value: DataTrackingLevel) {\n this._dataTrackingLevel = value;\n FireworkSDKModule.setDataTrackingLevel(value);\n }\n private _dataTrackingLevel: DataTrackingLevel = 'all';\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 private hasCalledSDKInitCallback: boolean = false;\n\n /**\n * Get global single instance of FireworkSDK class.\n * @returns FireworkSDK\n */\n public static getInstance() {\n if (!FireworkSDK._instance) {\n FireworkSDK._instance = new FireworkSDK();\n }\n\n return FireworkSDK._instance!;\n }\n\n private constructor() {\n FWLoggerUtil.log('FireworkSDK constructor');\n\n this.eventEmitter.addListener(FWEventName.SDKInit, (event) => {\n FWLoggerUtil.log(`Receive SDKInit event ${event?.error}`);\n\n if (event && !event.error) {\n this.completeRemainingInitialization();\n }\n\n if (!this.hasCalledSDKInitCallback) {\n this.hasCalledSDKInitCallback = true;\n if (this.onSDKInit && event) {\n this.onSDKInit(event);\n }\n }\n });\n\n this.eventEmitter.addListener(FWEventName.LogMessage, (event) => {\n FWLoggerUtil.logNativeMessage(event.message);\n });\n\n this.eventEmitter.addListener(FWEventName.CustomCTAClick, (event) => {\n FWLoggerUtil.log(`Receive CustomCTAClick url: ${event?.url}`);\n FWLoggerUtil.log(\n `Receive CustomCTAClick callbackId: ${event?.callbackId}`\n );\n\n if (this.onCustomCTAClick && event) {\n if (event.callbackId) {\n const callbackId = event.callbackId;\n delete event.callbackId;\n if (Platform.OS === 'ios') {\n event.playerHandler = {\n pause: () => FireworkSDKModule.pausePlayer(callbackId),\n resume: () => FireworkSDKModule.resumePlayer(callbackId),\n };\n }\n }\n this.onCustomCTAClick(event);\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoPlayback, (event) => {\n FWLoggerUtil.log(\n `Receive VideoPlayback event eventName: ${event?.eventName}`\n );\n\n if (this.onVideoPlayback && event) {\n this.onVideoPlayback(event);\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoFeedClick, (event) => {\n FWLoggerUtil.log(`Receive VideoFeedClick event id: ${event?.info.id}`);\n\n if (this.onVideoFeedClick && event) {\n this.onVideoFeedClick(event);\n }\n });\n\n if (Platform.OS === 'ios') {\n this.eventEmitter.addListener(\n FWEventName.NativeAppLanguageUpdated,\n (event) => {\n FWLoggerUtil.log(\n `Receive NativeAppLanguageUpdated event appLanguage: ${event.appLanguage}`\n );\n const language = event.appLanguage;\n this.updateInternalAppLanguage(language);\n }\n );\n }\n }\n\n /**\n * Initializes Firework SDK.\n * @param {SDKInitOptions?} options\n */\n public async init(options?: SDKInitOptions): Promise<void> {\n FWLoggerUtil.log('Call FireworkSDK init method');\n const videoLaunchBehaviorUpdated =\n this._videoLaunchBehavior !== options?.videoLaunchBehavior;\n this._videoLaunchBehavior = options?.videoLaunchBehavior;\n if (videoLaunchBehaviorUpdated) {\n this.eventEmitter.emit(FWEventName.VideoLaunchBehaviorUpdated);\n }\n await FireworkSDKModule.init(options);\n await this.completeRemainingInitialization();\n }\n\n /**\n * You only need to call this method when you call init method in native side instead of JS side.\n */\n /**\n * You need to call this method when you call init method in native side.\n * @param nativeLazyInit\n * Genenally, you should call naitve init in application(:, didFinishLaunchingWithOptions:) -> Bool on iOS\n * and MainApplication.onCreate on Android. If not, you should pass nativeLazyInit as true.\n */\n public async markInitCalled(nativeLazyInit: boolean = false): Promise<void> {\n FWLoggerUtil.log('Call FireworkSDK markInitCalled method');\n if (!nativeLazyInit) {\n await this.completeRemainingInitialization();\n await FireworkSDKModule.markInitCalled();\n } else {\n const hasCalledSDKInit = await FireworkSDKModule.markInitCalled();\n if (hasCalledSDKInit) {\n await this.completeRemainingInitialization();\n }\n }\n }\n\n /**\n * Open Video URL.\n * @param {string} url\n * @param {VideoPlayerConfiguration} config\n */\n public async openVideoPlayer(\n url: string,\n config?: OpenVideoPlayerConfiguration\n ): Promise<void> {\n if (!FWGlobalState.getInstance().sdkInitCalled) {\n await FWGlobalState.getInstance().sdkInitCalledPromise;\n }\n FireworkSDKModule.openVideoPlayer(url, config ?? {});\n }\n\n /**\n * Records the user purchase. Only supported on iOS.\n * @param {TrackPurchaseParameters} parameters\n */\n public async trackPurchase(\n parameters: TrackPurchaseParameters\n ): Promise<void> {\n if (!FWGlobalState.getInstance().sdkInitCalled) {\n await FWGlobalState.getInstance().sdkInitCalledPromise;\n }\n FireworkSDKModule.trackPurchase(parameters);\n }\n\n /**\n * Change App level language.\n * @param {string | undefined | null} language Such as en, ar and en-US. If language is undefined or null or empty string, SDK will use system language.\n * @returns {Promise<boolean>} The result of changing app language.\n */\n public async changeAppLanguage(language?: string | null): Promise<boolean> {\n if (!FWGlobalState.getInstance().sdkInitCalled) {\n await FWGlobalState.getInstance().sdkInitCalledPromise;\n }\n\n const result = await FireworkSDKModule.changeAppLanguage(language);\n\n if (result) {\n const languageChanged = this._appLanguage !== language;\n if (Platform.OS === 'ios' && languageChanged) {\n await this.navigator.stopFloatingPlayer();\n }\n this.updateInternalAppLanguage(language);\n }\n return result;\n }\n\n /**\n * Get the component type based on feedId.\n * @param {string} feedId\n * @returns {string | undefined} The component type based on feedId.\n */\n public getComponentType(feedId: string) {\n return FWGlobalState.getInstance().componentTypeByFeedIdMap.get(feedId);\n }\n\n private updateInternalAppLanguage(language?: string | null) {\n const valueHasChanged = this._appLanguage !== language;\n this._appLanguage = language;\n if (valueHasChanged) {\n this.eventEmitter.emit(FWEventName.AppLanguageUpdated);\n }\n }\n\n private updateInternalShareBaseURL(shareBaseURL?: string) {\n const shareBaseURLChanged = this._shareBaseURL !== shareBaseURL;\n this._shareBaseURL = shareBaseURL;\n if (shareBaseURLChanged) {\n this.eventEmitter.emit(FWEventName.ShareBaseURLUpdated);\n }\n }\n\n private async completeRemainingInitialization(): Promise<void> {\n if (FWGlobalState.getInstance().sdkInitCalled) {\n return;\n }\n\n FWGlobalState.getInstance().resolveSdkInitCalled();\n await ShoppingModule.init();\n await LiveStreamModule.init();\n }\n}\n\nexport default FireworkSDK;\n"]}
|
|
1
|
+
{"version":3,"sources":["FireworkSDK.ts"],"names":["FireworkSDK","onVideoFeedClick","_onVideoFeedClick","value","Platform","OS","FireworkSDKModule","setVideoFeedClickCallbackEnabled","onCustomCTAClick","_onCustomCTAClick","FWLoggerUtil","log","setCustomCTAClickEnabled","onVideoPlayback","_onVideoPlayback","setVideoPlaybackEventEnabled","shareBaseURL","_shareBaseURL","updateInternalShareBaseURL","adBadgeConfiguration","_adBadgeConfiguration","valueHasChanged","badgeTextType","backgroundColor","textColor","androidFontInfo","isCustom","typefaceName","setAdBadgeConfiguration","then","eventEmitter","emit","FWEventName","AdBadgeConfigurationUpdated","appLanguage","_appLanguage","dataTrackingLevel","_dataTrackingLevel","setDataTrackingLevel","DataTrackingLevelUpdated","debugLogsEnabled","enabled","videoLaunchBehavior","_videoLaunchBehavior","livestreamPlayerDesignVersion","_livestreamPlayerDesignVersion","setLivestreamPlayerDesignVersion","LivestreamPlayerDesignVersionUpdated","FireworkSDKModuleEventEmitter","shopping","_shopping","liveStream","_liveStream","navigator","_navigator","getInstance","_instance","constructor","LivestreamPlayerDesignVersion","v1","VideoShopping","LiveStream","FWNavigator","addListener","SDKInit","event","error","completeRemainingInitialization","hasCalledSDKInitCallback","onSDKInit","LogMessage","logNativeMessage","message","CustomCTAClick","url","callbackId","playerHandler","pause","pausePlayer","resume","resumePlayer","VideoPlayback","eventName","VideoFeedClick","info","id","NativeAppLanguageUpdated","language","updateInternalAppLanguage","init","options","videoLaunchBehaviorUpdated","VideoLaunchBehaviorUpdated","markInitCalled","nativeLazyInit","hasCalledSDKInit","openVideoPlayer","config","FWGlobalState","sdkInitCalled","sdkInitCalledPromise","trackPurchase","parameters","changeAppLanguage","result","languageChanged","stopFloatingPlayer","getComponentType","feedId","componentTypeByFeedIdMap","get","AppLanguageUpdated","shareBaseURLChanged","setShareBaseURL","ShareBaseURLUpdated","resolveSdkInitCalled","ShoppingModule","LiveStreamModule"],"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 type { DataTrackingLevel } from './models/DataTrackingLevel';\nimport { FWEventName } from './models/FWEventName';\nimport type {\n CustomCTAClickEvent,\n SDKInitEvent,\n VideoFeedClickEvent,\n VideoPlaybackEvent,\n} from './models/FWEvents';\nimport LivestreamPlayerDesignVersion from './models/LivestreamPlayerDesignVersion';\nimport type OpenVideoPlayerConfiguration from './models/OpenVideoPlayerConfiguration';\nimport type SDKInitOptions from './models/SDKInitOptions';\nimport type { VideoLaunchBehavior } from './models/SDKInitOptions';\nimport type TrackPurchaseParameters from './models/TrackPurchaseParameters';\nimport FireworkSDKModule, {\n FireworkSDKModuleEventEmitter,\n} from './modules/FireworkSDKModule';\nimport LiveStreamModule from './modules/LiveStreamModule';\nimport ShoppingModule from './modules/ShoppingModule';\nimport FWGlobalState from './utils/FWGlobalState';\nimport FWLoggerUtil from './utils/FWLoggerUtil';\nimport VideoShopping from './VideoShopping';\n\nexport type SDKInitCallback = (event: SDKInitEvent) => Promise<void> | void;\nexport type CustomCTAClickCallback = (\n event: CustomCTAClickEvent\n) => Promise<void> | void;\nexport type VideoPlaybackCallback = (\n event: VideoPlaybackEvent\n) => Promise<void> | void;\nexport type VideoFeedClickCallback = (\n event: VideoFeedClickEvent\n) => Promise<void> | void;\n\n/**\n * Firework SDK.\n */\nclass FireworkSDK {\n private static _instance?: FireworkSDK;\n\n /**\n * The callback of SDK initialization.\n */\n public onSDKInit?: SDKInitCallback;\n\n /**\n * the callback of clicking Video Feed.\n */\n public get onVideoFeedClick(): VideoFeedClickCallback | undefined {\n return this._onVideoFeedClick;\n }\n public set onVideoFeedClick(value: VideoFeedClickCallback | undefined) {\n this._onVideoFeedClick = value;\n if (Platform.OS === 'ios') {\n FireworkSDKModule.setVideoFeedClickCallbackEnabled(!!value);\n }\n }\n private _onVideoFeedClick?: VideoFeedClickCallback | undefined;\n\n /**\n * The callback of clicking custom CTA.\n */\n public get onCustomCTAClick(): CustomCTAClickCallback | undefined {\n return this._onCustomCTAClick;\n }\n public set onCustomCTAClick(value: CustomCTAClickCallback | undefined) {\n FWLoggerUtil.log(`Set onCustomCTAClick callback ${!!value}`);\n this._onCustomCTAClick = value;\n FireworkSDKModule.setCustomCTAClickEnabled(value ? true : false);\n }\n private _onCustomCTAClick: CustomCTAClickCallback | undefined;\n\n /**\n * The callback of video playback.\n */\n public get onVideoPlayback(): VideoPlaybackCallback | undefined {\n return this._onVideoPlayback;\n }\n public set onVideoPlayback(value: VideoPlaybackCallback | undefined) {\n this._onVideoPlayback = value;\n FireworkSDKModule.setVideoPlaybackEventEnabled(value ? true : false);\n }\n private _onVideoPlayback?: VideoPlaybackCallback | undefined;\n\n /**\n * The global share base URL of the video.\n * The {@link VideoPlayerConfiguration.shareBaseURL} in {@link VideoPlayerConfiguration} will override this.\n */\n public get shareBaseURL(): string | undefined {\n return this._shareBaseURL;\n }\n public set shareBaseURL(value: string | undefined) {\n this.updateInternalShareBaseURL(value);\n }\n private _shareBaseURL: string | undefined;\n\n /**\n * The configuration for ad badges.\n */\n public get adBadgeConfiguration(): AdBadgeConfiguration | undefined {\n return this._adBadgeConfiguration;\n }\n public set adBadgeConfiguration(value: AdBadgeConfiguration | undefined) {\n const valueHasChanged =\n this._adBadgeConfiguration?.badgeTextType !== value?.badgeTextType ||\n this._adBadgeConfiguration?.backgroundColor !== value?.backgroundColor ||\n this._adBadgeConfiguration?.textColor !== value?.textColor ||\n this._adBadgeConfiguration?.androidFontInfo?.isCustom !==\n value?.androidFontInfo?.isCustom ||\n this._adBadgeConfiguration?.androidFontInfo?.typefaceName !==\n value?.androidFontInfo?.typefaceName;\n this._adBadgeConfiguration = value;\n\n FireworkSDKModule.setAdBadgeConfiguration(value ?? {}).then(() => {\n if (valueHasChanged) {\n this.eventEmitter.emit(FWEventName.AdBadgeConfigurationUpdated);\n }\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 * The configuration for data tracking level.\n */\n public get dataTrackingLevel(): DataTrackingLevel {\n return this._dataTrackingLevel;\n }\n public set dataTrackingLevel(value: DataTrackingLevel) {\n const valueHasChanged = this._dataTrackingLevel !== value;\n this._dataTrackingLevel = value;\n FireworkSDKModule.setDataTrackingLevel(value).then(() => {\n if (valueHasChanged) {\n this.eventEmitter.emit(FWEventName.DataTrackingLevelUpdated);\n }\n });\n }\n private _dataTrackingLevel: DataTrackingLevel = 'all';\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 /**\n * The version of the livestream player design.\n */\n public get livestreamPlayerDesignVersion(): LivestreamPlayerDesignVersion {\n return this._livestreamPlayerDesignVersion;\n }\n public set livestreamPlayerDesignVersion(\n value: LivestreamPlayerDesignVersion\n ) {\n const valueHasChanged = this._livestreamPlayerDesignVersion !== value;\n this._livestreamPlayerDesignVersion = value;\n FireworkSDKModule.setLivestreamPlayerDesignVersion(value).then(() => {\n if (valueHasChanged) {\n this.eventEmitter.emit(\n FWEventName.LivestreamPlayerDesignVersionUpdated\n );\n }\n });\n }\n private _livestreamPlayerDesignVersion: LivestreamPlayerDesignVersion =\n LivestreamPlayerDesignVersion.v1;\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 private hasCalledSDKInitCallback: boolean = false;\n\n /**\n * Get global single instance of FireworkSDK class.\n * @returns FireworkSDK\n */\n public static getInstance() {\n if (!FireworkSDK._instance) {\n FireworkSDK._instance = new FireworkSDK();\n }\n\n return FireworkSDK._instance!;\n }\n\n private constructor() {\n FWLoggerUtil.log('FireworkSDK constructor');\n\n this.eventEmitter.addListener(FWEventName.SDKInit, (event) => {\n FWLoggerUtil.log(`Receive SDKInit event ${event?.error}`);\n\n if (event && !event.error) {\n this.completeRemainingInitialization();\n }\n\n if (!this.hasCalledSDKInitCallback) {\n this.hasCalledSDKInitCallback = true;\n if (this.onSDKInit && event) {\n this.onSDKInit(event);\n }\n }\n });\n\n this.eventEmitter.addListener(FWEventName.LogMessage, (event) => {\n FWLoggerUtil.logNativeMessage(event.message);\n });\n\n this.eventEmitter.addListener(FWEventName.CustomCTAClick, (event) => {\n FWLoggerUtil.log(`Receive CustomCTAClick url: ${event?.url}`);\n FWLoggerUtil.log(\n `Receive CustomCTAClick callbackId: ${event?.callbackId}`\n );\n\n if (this.onCustomCTAClick && event) {\n if (event.callbackId) {\n const callbackId = event.callbackId;\n delete event.callbackId;\n if (Platform.OS === 'ios') {\n event.playerHandler = {\n pause: () => FireworkSDKModule.pausePlayer(callbackId),\n resume: () => FireworkSDKModule.resumePlayer(callbackId),\n };\n }\n }\n this.onCustomCTAClick(event);\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoPlayback, (event) => {\n FWLoggerUtil.log(\n `Receive VideoPlayback event eventName: ${event?.eventName}`\n );\n\n if (this.onVideoPlayback && event) {\n this.onVideoPlayback(event);\n }\n });\n\n this.eventEmitter.addListener(FWEventName.VideoFeedClick, (event) => {\n FWLoggerUtil.log(`Receive VideoFeedClick event id: ${event?.info.id}`);\n\n if (this.onVideoFeedClick && event) {\n this.onVideoFeedClick(event);\n }\n });\n\n if (Platform.OS === 'ios') {\n this.eventEmitter.addListener(\n FWEventName.NativeAppLanguageUpdated,\n (event) => {\n FWLoggerUtil.log(\n `Receive NativeAppLanguageUpdated event appLanguage: ${event.appLanguage}`\n );\n const language = event.appLanguage;\n this.updateInternalAppLanguage(language);\n }\n );\n }\n }\n\n /**\n * Initializes Firework SDK.\n * @param {SDKInitOptions?} options\n */\n public async init(options?: SDKInitOptions): Promise<void> {\n FWLoggerUtil.log('Call FireworkSDK init method');\n const videoLaunchBehaviorUpdated =\n this._videoLaunchBehavior !== options?.videoLaunchBehavior;\n this._videoLaunchBehavior = options?.videoLaunchBehavior;\n await FireworkSDKModule.init(options);\n if (videoLaunchBehaviorUpdated) {\n this.eventEmitter.emit(FWEventName.VideoLaunchBehaviorUpdated);\n }\n await this.completeRemainingInitialization();\n }\n\n /**\n * You only need to call this method when you call init method in native side instead of JS side.\n */\n /**\n * You need to call this method when you call init method in native side.\n * @param nativeLazyInit\n * Genenally, you should call naitve init in application(:, didFinishLaunchingWithOptions:) -> Bool on iOS\n * and MainApplication.onCreate on Android. If not, you should pass nativeLazyInit as true.\n */\n public async markInitCalled(nativeLazyInit: boolean = false): Promise<void> {\n FWLoggerUtil.log('Call FireworkSDK markInitCalled method');\n if (!nativeLazyInit) {\n await this.completeRemainingInitialization();\n await FireworkSDKModule.markInitCalled();\n } else {\n const hasCalledSDKInit = await FireworkSDKModule.markInitCalled();\n if (hasCalledSDKInit) {\n await this.completeRemainingInitialization();\n }\n }\n }\n\n /**\n * Open Video URL.\n * @param {string} url\n * @param {VideoPlayerConfiguration} config\n */\n public async openVideoPlayer(\n url: string,\n config?: OpenVideoPlayerConfiguration\n ): Promise<void> {\n if (!FWGlobalState.getInstance().sdkInitCalled) {\n await FWGlobalState.getInstance().sdkInitCalledPromise;\n }\n FireworkSDKModule.openVideoPlayer(url, config ?? {});\n }\n\n /**\n * Records the user purchase. Only supported on iOS.\n * @param {TrackPurchaseParameters} parameters\n */\n public async trackPurchase(\n parameters: TrackPurchaseParameters\n ): Promise<void> {\n if (!FWGlobalState.getInstance().sdkInitCalled) {\n await FWGlobalState.getInstance().sdkInitCalledPromise;\n }\n FireworkSDKModule.trackPurchase(parameters);\n }\n\n /**\n * Change App level language.\n * @param {string | undefined | null} language Such as en, ar and en-US. If language is undefined or null or empty string, SDK will use system language.\n * @returns {Promise<boolean>} The result of changing app language.\n */\n public async changeAppLanguage(language?: string | null): Promise<boolean> {\n if (!FWGlobalState.getInstance().sdkInitCalled) {\n await FWGlobalState.getInstance().sdkInitCalledPromise;\n }\n\n const result = await FireworkSDKModule.changeAppLanguage(language);\n\n if (result) {\n const languageChanged = this._appLanguage !== language;\n if (Platform.OS === 'ios' && languageChanged) {\n await this.navigator.stopFloatingPlayer();\n }\n this.updateInternalAppLanguage(language);\n }\n return result;\n }\n\n /**\n * Get the component type based on feedId.\n * @param {string} feedId\n * @returns {string | undefined} The component type based on feedId.\n */\n public getComponentType(feedId: string) {\n return FWGlobalState.getInstance().componentTypeByFeedIdMap.get(feedId);\n }\n\n private updateInternalAppLanguage(language?: string | null) {\n const valueHasChanged = this._appLanguage !== language;\n this._appLanguage = language;\n if (valueHasChanged) {\n this.eventEmitter.emit(FWEventName.AppLanguageUpdated);\n }\n }\n\n private updateInternalShareBaseURL(shareBaseURL?: string) {\n const shareBaseURLChanged = this._shareBaseURL !== shareBaseURL;\n this._shareBaseURL = shareBaseURL;\n FireworkSDKModule.setShareBaseURL(shareBaseURL ?? '').then(() => {\n if (shareBaseURLChanged) {\n this.eventEmitter.emit(FWEventName.ShareBaseURLUpdated);\n }\n });\n }\n\n private async completeRemainingInitialization(): Promise<void> {\n if (FWGlobalState.getInstance().sdkInitCalled) {\n return;\n }\n\n FWGlobalState.getInstance().resolveSdkInitCalled();\n await ShoppingModule.init();\n await LiveStreamModule.init();\n }\n}\n\nexport default FireworkSDK;\n"]}
|
|
@@ -257,6 +257,11 @@ const StoryBlock = (props, forwardedRef) => {
|
|
|
257
257
|
const textColorOfAdBadge = adBadgeConfiguration === null || adBadgeConfiguration === void 0 ? void 0 : adBadgeConfiguration.textColor;
|
|
258
258
|
const androidFontIsCustomOfAdBadge = adBadgeConfiguration === null || adBadgeConfiguration === void 0 ? void 0 : (_adBadgeConfiguration = adBadgeConfiguration.androidFontInfo) === null || _adBadgeConfiguration === void 0 ? void 0 : _adBadgeConfiguration.isCustom;
|
|
259
259
|
const androidFontTypefaceNameOfAdBadge = adBadgeConfiguration === null || adBadgeConfiguration === void 0 ? void 0 : (_adBadgeConfiguration2 = adBadgeConfiguration.androidFontInfo) === null || _adBadgeConfiguration2 === void 0 ? void 0 : _adBadgeConfiguration2.typefaceName;
|
|
260
|
+
|
|
261
|
+
const dataTrackingLevel = _FireworkSDK.default.getInstance().dataTrackingLevel;
|
|
262
|
+
|
|
263
|
+
const livestreamPlayerDesignVersion = _FireworkSDK.default.getInstance().livestreamPlayerDesignVersion;
|
|
264
|
+
|
|
260
265
|
const {
|
|
261
266
|
source,
|
|
262
267
|
channel,
|
|
@@ -306,6 +311,8 @@ const StoryBlock = (props, forwardedRef) => {
|
|
|
306
311
|
key += `_androidFontTypefaceNameOfAdBadge${androidFontTypefaceNameOfAdBadge}`;
|
|
307
312
|
}
|
|
308
313
|
|
|
314
|
+
key += `_dataTrackingLevel:${dataTrackingLevel}`;
|
|
315
|
+
key += `_livestreamPlayerDesignVersion:${livestreamPlayerDesignVersion}`;
|
|
309
316
|
key += `_source:${source}`;
|
|
310
317
|
key += `_channel:${channel}`;
|
|
311
318
|
key += `_playlist:${playlist}`;
|
|
@@ -428,12 +435,26 @@ const StoryBlock = (props, forwardedRef) => {
|
|
|
428
435
|
forceUpdate();
|
|
429
436
|
});
|
|
430
437
|
|
|
438
|
+
const subscriptionOfDataTrackingLevelUpdated = _FireworkSDKModule.FireworkSDKModuleEventEmitter.addListener(_FWEventName.FWEventName.DataTrackingLevelUpdated, () => {
|
|
439
|
+
_FWLoggerUtil.default.log('Receive FWEventName.DataTrackingLevelUpdated');
|
|
440
|
+
|
|
441
|
+
forceUpdate();
|
|
442
|
+
});
|
|
443
|
+
|
|
444
|
+
const subscriptionOfLivestreamPlayerDesignVersionUpdated = _FireworkSDKModule.FireworkSDKModuleEventEmitter.addListener(_FWEventName.FWEventName.LivestreamPlayerDesignVersionUpdated, () => {
|
|
445
|
+
_FWLoggerUtil.default.log('Receive FWEventName.LivestreamPlayerDesignVersionUpdated');
|
|
446
|
+
|
|
447
|
+
forceUpdate();
|
|
448
|
+
});
|
|
449
|
+
|
|
431
450
|
return () => {
|
|
432
451
|
subscriptionOfShareBaseURLUpdated.remove();
|
|
433
452
|
subscriptionOfAdBadgeConfigurationUpdated.remove();
|
|
434
453
|
subscriptionOfVideoLaunchBehaviorUpdated.remove();
|
|
435
454
|
subscriptionOfAppLanguageUpdated.remove();
|
|
436
455
|
subscriptionOfProductInfoViewConfigurationUpdated.remove();
|
|
456
|
+
subscriptionOfDataTrackingLevelUpdated.remove();
|
|
457
|
+
subscriptionOfLivestreamPlayerDesignVersionUpdated.remove();
|
|
437
458
|
};
|
|
438
459
|
}, []);
|
|
439
460
|
(0, _react.useEffect)(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["StoryBlock.tsx"],"names":["NativeComponentName","StoryBlock","props","forwardedRef","nativeComponentRef","sdkInitCalled","setSdkInitCalled","FWGlobalState","getInstance","loadedRef","forceUpdate","x","handleStoryBlockLoadFinished","event","FWLoggerUtil","log","nativeEvent","name","onStoryBlockLoadFinished","onStoryBlockEmpty","reason","error","current","handleStoryBlockEmpty","handleStoryBlockDidStartPictureInPicture","JSON","stringify","onStoryBlockDidStartPictureInPicture","handleStoryBlockDidStopPictureInPicture","onStoryBlockDidStopPictureInPicture","handleStoryBlockGetFeedId","onStoryBlockGetFeedId","feedId","componentTypeByFeedIdMap","set","FWComponentType","storyBlock","generateDynamicContentParametersString","dynamicContentParameters","resultString","sortedKeyList","Object","keys","sort","key","value","valueString","join","length","generateVastAttributesString","adConfiguration","vastAttributes","attribute","generateButtonInfoString","buttonInfo","imageName","systemImageName","tintColor","getStoryBlockConfiguration","storyBlockConfiguration","enablePictureInPicture","resultStoryBlockConfiguration","generateKey","gShareBaseURL","FireworkSDK","shareBaseURL","appLanguage","videoLaunchBehavior","adBadgeConfiguration","adBadgeTextType","badgeTextType","backgroundColorOfAdBadge","backgroundColor","textColorOfAdBadge","textColor","androidFontIsCustomOfAdBadge","androidFontInfo","isCustom","androidFontTypefaceNameOfAdBadge","typefaceName","source","channel","playlist","hashtagFilterExpression","productIds","contentId","cornerRadius","dynamicContentParametersString","playerStyle","videoCompleteAction","showShareButton","showPlaybackButton","showMuteButton","showBranding","ctaDelayType","ctaDelay","type","ctaDelayValue","toFixed","ctaHighlightDelayType","ctaHighlightDelay","ctaHighlightDelayValue","buttonConfiguration","videoPlayerLogoConfigurationJsonKey","videoPlayerLogoConfiguration","ctaWidth","showVideoDetailTitle","requiresAds","adsFetchTimeout","vastAttributesString","productInfoViewConfigurationJsonKey","shopping","productInfoViewConfiguration","replayBadgeConfigurationJsonKey","replayBadgeConfiguration","countdownTimerConfigurationJsonKey","countdownTimerConfiguration","Platform","OS","videoDetailButton","closeButton","muteButton","unmuteButton","playButton","pauseButton","console","sendCommand","command","nativeNodeHandle","commandId","UIManager","getViewManagerConfig","Commands","toString","reactTag","dispatchViewManagerCommand","play","pause","openFullscreen","onViewportEntered","onViewportLeft","subscriptionOfShareBaseURLUpdated","FireworkSDKModuleEventEmitter","addListener","FWEventName","ShareBaseURLUpdated","subscriptionOfAdBadgeConfigurationUpdated","AdBadgeConfigurationUpdated","subscriptionOfVideoLaunchBehaviorUpdated","VideoLaunchBehaviorUpdated","subscriptionOfAppLanguageUpdated","AppLanguageUpdated","subscriptionOfProductInfoViewConfigurationUpdated","ProductInfoViewConfigurationUpdated","remove","setTimeout","viewId","create","sdkInitCalledPromise","then","style","otherProps","assign","borderRadius","undefined"],"mappings":"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","sourcesContent":["import type { ForwardRefRenderFunction } from 'react';\nimport React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useReducer,\n useRef,\n useState,\n} from 'react';\n\nimport {\n findNodeHandle,\n NativeSyntheticEvent,\n Platform,\n StyleProp,\n UIManager,\n ViewStyle,\n} from 'react-native';\n\nimport FireworkSDK from '../FireworkSDK';\nimport type AdConfiguration from '../models/AdConfiguration';\nimport type FWError from '../models/FWError';\nimport { FWEventName } from '../models/FWEventName';\nimport type { StoryBlockConfiguration } from '../models/StoryBlockConfiguration';\nimport type StoryBlockNativeConfiguration from '../models/StoryBlockNativeConfiguration';\nimport type { StoryBlockSource } from '../models/StoryBlockSource';\nimport { FireworkSDKModuleEventEmitter } from '../modules/FireworkSDKModule';\nimport FWGlobalState from '../utils/FWGlobalState';\nimport FWLoggerUtil from '../utils/FWLoggerUtil';\nimport FWStoryBlock from './FWStoryBlock';\nimport type ButtonInfo from '../models/ButtonInfo';\nimport gennerateJsonKey from '../utils/FWJsonUtil';\nimport { FWComponentType } from '../models/FWComponentType';\n\nconst NativeComponentName = 'FWStoryBlock';\n\nexport interface IStoryBlockMethods {\n /**\n * Play the story block.\n */\n play: () => void;\n /**\n * Pause the story block.\n */\n pause: () => void;\n /**\n * Open the fullscreen story block.\n * Only supported on Android.\n */\n openFullscreen: () => void;\n /**\n * Triggered when the story block enters the viewport.\n * Only supported on iOS.\n * It is recommended that the host app is triggered when listening for scrolling.\n */\n onViewportEntered: () => void;\n /**\n * Triggered when the story block leaves the viewport.\n * Only supported on iOS.\n * It is recommended that the host app is triggered when listening for scrolling.\n */\n onViewportLeft: () => void;\n}\n\n/**\n * The props type of StoryBlock component.\n */\nexport interface IStoryBlockProps {\n /**\n * Standard React Native View Style.\n */\n style?: StyleProp<ViewStyle>;\n /**\n * One of four available story block sources.\n */\n source: StoryBlockSource;\n /**\n * Channel id of the story block. Required when the source is set as channel or playlist or dynamicContent.\n */\n channel?: string;\n /**\n * Playlist id of the story block. Please note channel id is necessary. Required when the source is set as playlist.\n */\n playlist?: string;\n /**\n * The dynamic content parameters of the story block. Required when the source is set as dynamicContent.\n */\n dynamicContentParameters?: { [key: string]: string[] };\n /**\n * Hashtag filter expression is an s-expression used to provide feeds filtered by hashtags with specified criteria.\n * Queries are specified with boolean predicates on what hashtags are there on the video.\n * For instance, (and sport food) (or sport food) (and sport (or food comedy)) sport are all valid expressions.\n * Non-UTF-8 characters are not allowed. If using boolean predicates, the expression needs to be wrapped with parenthesis.\n */\n hashtagFilterExpression?: string;\n /**\n * Product ids used to generate the sku feed\n */\n productIds?: string[];\n /**\n * The video or live stream id.\n */\n contentId?: string;\n /**\n * Specifies if Picture in Picture is enabled. Only supported on iOS.\n */\n enablePictureInPicture?: boolean;\n /**\n * The corner radius of story block.\n */\n cornerRadius?: number;\n /**\n * Ad configuration of the feed.\n */\n adConfiguration?: AdConfiguration;\n\n /* The configuration of the story block. */\n storyBlockConfiguration?: StoryBlockConfiguration;\n /**\n * The feed loading result callback. It means loading successfully when error equals to undefined.\n */\n onStoryBlockLoadFinished?: (error?: FWError) => void;\n /**\n * The callback is triggered when there are no items in the story block.\n * The callback is triggered in the following cases:\n * 1. Loading successfully but the back end returns an empty list.\n * 2. The load failed and list is empty.\n * onStoryBlockLoadFinished will also be triggered when onStoryBlockEmpty is triggered.\n */\n onStoryBlockEmpty?: (error?: FWError) => void;\n /**\n * Start Picture in Picture callback. Only supported on iOS.\n */\n onStoryBlockDidStartPictureInPicture?: (error?: FWError) => void;\n /**\n * Stop Picture in Picture callback. Only supported on iOS.\n */\n onStoryBlockDidStopPictureInPicture?: (error?: FWError) => void;\n /**\n *\n * The host app could use this callback to get feed id.\n * The feed id can be used for conversion tracking.\n */\n onStoryBlockGetFeedId?: (feedId: string) => void;\n}\n\nconst StoryBlock: ForwardRefRenderFunction<\n IStoryBlockMethods,\n IStoryBlockProps\n> = (props: IStoryBlockProps, forwardedRef) => {\n const nativeComponentRef = useRef(null);\n const [sdkInitCalled, setSdkInitCalled] = useState<boolean>(\n FWGlobalState.getInstance().sdkInitCalled\n );\n const loadedRef = useRef<boolean>(false);\n const [, forceUpdate] = useReducer((x) => x + 1, 0);\n\n const handleStoryBlockLoadFinished = (event: NativeSyntheticEvent<any>) => {\n FWLoggerUtil.log(\n `StoryBlock handleStoryBlockLoadFinished ${event.nativeEvent.name}`\n );\n\n const { onStoryBlockLoadFinished, onStoryBlockEmpty } = props;\n const { name, reason } = event.nativeEvent;\n\n if (onStoryBlockLoadFinished) {\n if (name) {\n let error: FWError = { name };\n if (reason) {\n error.reason = reason;\n }\n\n onStoryBlockLoadFinished(error);\n if (!loadedRef.current) {\n onStoryBlockEmpty?.(error);\n }\n } else {\n onStoryBlockLoadFinished();\n loadedRef.current = true;\n }\n }\n };\n\n const handleStoryBlockEmpty = (event: NativeSyntheticEvent<any>) => {\n FWLoggerUtil.log(`StoryBlock handleStoryBlockEmpty ${event.nativeEvent}`);\n\n const { onStoryBlockEmpty } = props;\n\n if (onStoryBlockEmpty) {\n onStoryBlockEmpty();\n }\n };\n\n const handleStoryBlockDidStartPictureInPicture = (\n event: NativeSyntheticEvent<any>\n ) => {\n FWLoggerUtil.log(\n `StoryBlock handleStoryBlockDidStartPictureInPicture ${JSON.stringify(\n event.nativeEvent\n )}`\n );\n const { onStoryBlockDidStartPictureInPicture } = props;\n\n const { name, reason } = event.nativeEvent;\n\n if (onStoryBlockDidStartPictureInPicture) {\n if (name) {\n if (reason) {\n onStoryBlockDidStartPictureInPicture({ name, reason });\n } else {\n onStoryBlockDidStartPictureInPicture({ name });\n }\n } else {\n onStoryBlockDidStartPictureInPicture();\n }\n }\n };\n\n const handleStoryBlockDidStopPictureInPicture = (\n event: NativeSyntheticEvent<any>\n ) => {\n FWLoggerUtil.log(\n `StoryBlock handleStoryBlockDidStopPictureInPicture ${JSON.stringify(\n event.nativeEvent\n )}`\n );\n const { onStoryBlockDidStopPictureInPicture } = props;\n\n const { name, reason } = event.nativeEvent;\n\n if (onStoryBlockDidStopPictureInPicture) {\n if (name) {\n if (reason) {\n onStoryBlockDidStopPictureInPicture({ name, reason });\n } else {\n onStoryBlockDidStopPictureInPicture({ name });\n }\n } else {\n onStoryBlockDidStopPictureInPicture();\n }\n }\n };\n\n const handleStoryBlockGetFeedId = (event: NativeSyntheticEvent<any>) => {\n FWLoggerUtil.log(\n `StoryBlock handleStoryBlockGetFeedId ${JSON.stringify(\n event.nativeEvent\n )}`\n );\n const { onStoryBlockGetFeedId } = props;\n\n const { feedId } = event.nativeEvent;\n\n if (feedId) {\n FWGlobalState.getInstance().componentTypeByFeedIdMap.set(\n feedId,\n FWComponentType.storyBlock\n );\n }\n\n if (onStoryBlockGetFeedId) {\n onStoryBlockGetFeedId(feedId ?? '');\n }\n };\n\n const generateDynamicContentParametersString = (): string => {\n const { dynamicContentParameters } = props;\n\n if (!dynamicContentParameters) {\n return '';\n }\n\n let resultString = '';\n const sortedKeyList = Object.keys(dynamicContentParameters).sort();\n for (const key of sortedKeyList) {\n const value = dynamicContentParameters[key];\n const valueString = value.join(',');\n if (resultString.length > 0) {\n resultString += '_';\n }\n\n resultString += `${key}:${valueString}`;\n }\n\n return resultString;\n };\n\n const generateVastAttributesString = () => {\n const { adConfiguration } = props;\n const vastAttributes = adConfiguration?.vastAttributes;\n if (!vastAttributes) {\n return '';\n }\n\n let resultString = '';\n for (const attribute of vastAttributes) {\n if (resultString.length > 0) {\n resultString += '_';\n }\n resultString += `${attribute.name ?? ''}:${attribute.value}`;\n }\n\n return resultString;\n };\n\n const generateButtonInfoString = (buttonInfo?: ButtonInfo) => {\n return `imageName:${buttonInfo?.imageName}_systemImageName:${buttonInfo?.systemImageName}_tintColor:${buttonInfo?.tintColor}`;\n };\n\n const getStoryBlockConfiguration: () =>\n | StoryBlockNativeConfiguration\n | undefined = () => {\n const { storyBlockConfiguration, enablePictureInPicture } = props;\n let resultStoryBlockConfiguration:\n | StoryBlockNativeConfiguration\n | undefined = storyBlockConfiguration;\n if (typeof enablePictureInPicture === 'boolean') {\n if (!resultStoryBlockConfiguration) {\n resultStoryBlockConfiguration = {};\n }\n resultStoryBlockConfiguration = {\n ...resultStoryBlockConfiguration,\n enablePictureInPicture,\n };\n }\n return resultStoryBlockConfiguration;\n };\n const storyBlockConfiguration = getStoryBlockConfiguration();\n\n const generateKey = (): string => {\n const gShareBaseURL = FireworkSDK.getInstance().shareBaseURL;\n const appLanguage = FireworkSDK.getInstance().appLanguage;\n const videoLaunchBehavior = FireworkSDK.getInstance().videoLaunchBehavior;\n const adBadgeConfiguration = FireworkSDK.getInstance().adBadgeConfiguration;\n const adBadgeTextType = adBadgeConfiguration?.badgeTextType;\n const backgroundColorOfAdBadge = adBadgeConfiguration?.backgroundColor;\n const textColorOfAdBadge = adBadgeConfiguration?.textColor;\n const androidFontIsCustomOfAdBadge =\n adBadgeConfiguration?.androidFontInfo?.isCustom;\n const androidFontTypefaceNameOfAdBadge =\n adBadgeConfiguration?.androidFontInfo?.typefaceName;\n\n const {\n source,\n channel,\n playlist,\n hashtagFilterExpression,\n productIds,\n contentId,\n enablePictureInPicture,\n cornerRadius,\n adConfiguration,\n } = props;\n const dynamicContentParametersString =\n generateDynamicContentParametersString();\n\n const playerStyle = storyBlockConfiguration?.playerStyle;\n const videoCompleteAction = storyBlockConfiguration?.videoCompleteAction;\n const showShareButton = storyBlockConfiguration?.showShareButton;\n const showPlaybackButton = storyBlockConfiguration?.showPlaybackButton;\n const showMuteButton = storyBlockConfiguration?.showMuteButton;\n const showBranding = storyBlockConfiguration?.showBranding;\n const ctaDelayType = storyBlockConfiguration?.ctaDelay?.type;\n const ctaDelayValue = storyBlockConfiguration?.ctaDelay?.value?.toFixed(5);\n const ctaHighlightDelayType =\n storyBlockConfiguration?.ctaHighlightDelay?.type;\n const ctaHighlightDelayValue =\n storyBlockConfiguration?.ctaHighlightDelay?.value?.toFixed(5);\n const shareBaseURL = storyBlockConfiguration?.shareBaseURL;\n const buttonConfiguration = storyBlockConfiguration?.buttonConfiguration;\n const videoPlayerLogoConfigurationJsonKey = gennerateJsonKey(\n storyBlockConfiguration?.videoPlayerLogoConfiguration\n );\n const ctaWidth = storyBlockConfiguration?.ctaWidth;\n const showVideoDetailTitle = storyBlockConfiguration?.showVideoDetailTitle;\n\n const requiresAds = adConfiguration?.requiresAds;\n const adsFetchTimeout = adConfiguration?.adsFetchTimeout;\n const vastAttributesString = generateVastAttributesString();\n const productInfoViewConfigurationJsonKey = gennerateJsonKey(\n FireworkSDK.getInstance().shopping.productInfoViewConfiguration\n );\n const replayBadgeConfigurationJsonKey = gennerateJsonKey(\n storyBlockConfiguration?.replayBadgeConfiguration\n );\n const countdownTimerConfigurationJsonKey = gennerateJsonKey(\n storyBlockConfiguration?.countdownTimerConfiguration\n );\n\n let key = `gShareBaseURL:${gShareBaseURL}`;\n if (Platform.OS === 'ios') {\n key += `_appLanguage:${appLanguage}`;\n }\n key += `_videoLaunchBehavior:${videoLaunchBehavior}`;\n key += `_adBadgeTextType:${adBadgeTextType}`;\n key += `_backgroundColorOfAdBadge:${backgroundColorOfAdBadge}`;\n key += `_textColorOfAdBadge:${textColorOfAdBadge}`;\n if (Platform.OS === 'android') {\n key += `_androidFontIsCustomOfAdBadge${androidFontIsCustomOfAdBadge}`;\n key += `_androidFontTypefaceNameOfAdBadge${androidFontTypefaceNameOfAdBadge}`;\n }\n\n key += `_source:${source}`;\n key += `_channel:${channel}`;\n key += `_playlist:${playlist}`;\n key += `_dynamicContentParameters:${dynamicContentParametersString}`;\n key += `_hashtagFilterExpression:${hashtagFilterExpression}`;\n key += `productIds:${productIds?.join(',')}`;\n key += `_contentId:${contentId}`;\n key += `_enablePictureInPicture:${enablePictureInPicture}`;\n key += `_cornerRadius:${cornerRadius}`;\n\n key += `_shareBaseURL:${shareBaseURL}`;\n key += `_playerStyle:${playerStyle}`;\n key += `_videoCompleteAction:${videoCompleteAction}`;\n key += `_showShareButton:${showShareButton}`;\n key += `_showPlaybackButton:${showPlaybackButton}`;\n key += `_showMuteButton:${showMuteButton}`;\n key += `_showBranding:${showBranding}`;\n key += `_ctaDelayType:${ctaDelayType}`;\n key += `_ctaDelayValue:${ctaDelayValue}`;\n key += `_ctaHighlightDelayType:${ctaHighlightDelayType}`;\n key += `_ctaHighlightDelayValue:${ctaHighlightDelayValue}`;\n key += `_ctaWidth:${ctaWidth}`;\n key += `_buttonConfiguration.videoDetailButton:${generateButtonInfoString(\n buttonConfiguration?.videoDetailButton\n )}`;\n key += `_buttonConfiguration.closeButton:${generateButtonInfoString(\n buttonConfiguration?.closeButton\n )}`;\n key += `_buttonConfiguration.muteButton:${generateButtonInfoString(\n buttonConfiguration?.muteButton\n )}`;\n key += `_buttonConfiguration.unmuteButton:${generateButtonInfoString(\n buttonConfiguration?.unmuteButton\n )}`;\n key += `_buttonConfiguration.playButton:${generateButtonInfoString(\n buttonConfiguration?.playButton\n )}`;\n key += `_buttonConfiguration.pauseButton:${generateButtonInfoString(\n buttonConfiguration?.pauseButton\n )}`;\n if (Platform.OS === 'android') {\n key += `_videoPlayerLogoConfiguration:${videoPlayerLogoConfigurationJsonKey}`;\n }\n key += `_showVideoDetailTitle:${showVideoDetailTitle}`;\n\n key += `_requiresAds:${requiresAds}`;\n key += `_adsFetchTimeout:${adsFetchTimeout}`;\n key += `_vastAttributes:${vastAttributesString}`;\n key += `_productInfoViewConfiguration:${productInfoViewConfigurationJsonKey}`;\n key += `_replayBadgeConfiguration:${replayBadgeConfigurationJsonKey}`;\n key += `_countdownTimerConfiguration:${countdownTimerConfigurationJsonKey}`;\n\n return key;\n };\n\n const key = generateKey();\n\n console.log('story block key', key);\n\n useImperativeHandle(\n forwardedRef,\n () => {\n const sendCommand = (command: string) => {\n const nativeNodeHandle = findNodeHandle(nativeComponentRef.current);\n\n let commandId: string | number =\n UIManager.getViewManagerConfig(NativeComponentName).Commands[command];\n if (Platform.OS === 'android') {\n commandId = commandId.toString();\n }\n let reactTag: number | null = findNodeHandle(nativeNodeHandle);\n FWLoggerUtil.log(\n `StoryBlock sendCommand: ${command} commandId: ${commandId} nativeNodeHandle: ${nativeNodeHandle} reactTag: ${reactTag}`\n );\n if (!nativeNodeHandle || !reactTag) {\n return;\n }\n UIManager.dispatchViewManagerCommand(reactTag, commandId, []);\n };\n return {\n play: () => {\n sendCommand('play');\n },\n pause: () => {\n sendCommand('pause');\n },\n openFullscreen: () => {\n sendCommand('openFullscreen');\n },\n onViewportEntered: () => {\n if (Platform.OS !== 'ios') {\n return;\n }\n sendCommand('onViewportEntered');\n },\n onViewportLeft: () => {\n if (Platform.OS !== 'ios') {\n return;\n }\n sendCommand('onViewportLeft');\n },\n };\n },\n []\n );\n\n useEffect(() => {\n const subscriptionOfShareBaseURLUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.ShareBaseURLUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.ShareBaseURLUpdated');\n forceUpdate();\n }\n );\n const subscriptionOfAdBadgeConfigurationUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.AdBadgeConfigurationUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.AdBadgeConfigurationUpdated');\n forceUpdate();\n }\n );\n\n const subscriptionOfVideoLaunchBehaviorUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.VideoLaunchBehaviorUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.VideoLaunchBehaviorUpdated');\n forceUpdate();\n }\n );\n\n const subscriptionOfAppLanguageUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.AppLanguageUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.AppLanguageUpdated');\n forceUpdate();\n }\n );\n\n const subscriptionOfProductInfoViewConfigurationUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.ProductInfoViewConfigurationUpdated,\n () => {\n FWLoggerUtil.log(\n 'Receive FWEventName.ProductInfoViewConfigurationUpdated'\n );\n forceUpdate();\n }\n );\n\n return () => {\n subscriptionOfShareBaseURLUpdated.remove();\n subscriptionOfAdBadgeConfigurationUpdated.remove();\n subscriptionOfVideoLaunchBehaviorUpdated.remove();\n subscriptionOfAppLanguageUpdated.remove();\n subscriptionOfProductInfoViewConfigurationUpdated.remove();\n };\n }, []);\n\n useEffect(() => {\n if (Platform.OS === 'android') {\n setTimeout(() => {\n const viewId = findNodeHandle(nativeComponentRef.current);\n FWLoggerUtil.log(`StoryBlock createFragment viewId: ${viewId}`);\n if (!viewId) {\n return;\n }\n UIManager.dispatchViewManagerCommand(\n viewId,\n UIManager.getViewManagerConfig(\n NativeComponentName\n ).Commands.create.toString(),\n [viewId]\n );\n }, 500);\n }\n }, [key]);\n\n useEffect(() => {\n FWGlobalState.getInstance().sdkInitCalledPromise.then(() => {\n setSdkInitCalled(true);\n });\n }, []);\n\n if (!sdkInitCalled) {\n return null;\n }\n const { style, cornerRadius, ...otherProps } = props;\n return (\n <FWStoryBlock\n ref={nativeComponentRef}\n key={key}\n {...otherProps}\n cornerRadius={cornerRadius}\n style={Object.assign({ borderRadius: cornerRadius }, style)}\n storyBlockConfiguration={storyBlockConfiguration}\n enablePictureInPicture={undefined}\n onStoryBlockLoadFinished={handleStoryBlockLoadFinished}\n onStoryBlockEmpty={handleStoryBlockEmpty}\n onStoryBlockDidStartPictureInPicture={\n handleStoryBlockDidStartPictureInPicture\n }\n onStoryBlockDidStopPictureInPicture={\n handleStoryBlockDidStopPictureInPicture\n }\n onStoryBlockGetFeedId={handleStoryBlockGetFeedId}\n />\n );\n};\n\nexport default forwardRef(StoryBlock);\n"]}
|
|
1
|
+
{"version":3,"sources":["StoryBlock.tsx"],"names":["NativeComponentName","StoryBlock","props","forwardedRef","nativeComponentRef","sdkInitCalled","setSdkInitCalled","FWGlobalState","getInstance","loadedRef","forceUpdate","x","handleStoryBlockLoadFinished","event","FWLoggerUtil","log","nativeEvent","name","onStoryBlockLoadFinished","onStoryBlockEmpty","reason","error","current","handleStoryBlockEmpty","handleStoryBlockDidStartPictureInPicture","JSON","stringify","onStoryBlockDidStartPictureInPicture","handleStoryBlockDidStopPictureInPicture","onStoryBlockDidStopPictureInPicture","handleStoryBlockGetFeedId","onStoryBlockGetFeedId","feedId","componentTypeByFeedIdMap","set","FWComponentType","storyBlock","generateDynamicContentParametersString","dynamicContentParameters","resultString","sortedKeyList","Object","keys","sort","key","value","valueString","join","length","generateVastAttributesString","adConfiguration","vastAttributes","attribute","generateButtonInfoString","buttonInfo","imageName","systemImageName","tintColor","getStoryBlockConfiguration","storyBlockConfiguration","enablePictureInPicture","resultStoryBlockConfiguration","generateKey","gShareBaseURL","FireworkSDK","shareBaseURL","appLanguage","videoLaunchBehavior","adBadgeConfiguration","adBadgeTextType","badgeTextType","backgroundColorOfAdBadge","backgroundColor","textColorOfAdBadge","textColor","androidFontIsCustomOfAdBadge","androidFontInfo","isCustom","androidFontTypefaceNameOfAdBadge","typefaceName","dataTrackingLevel","livestreamPlayerDesignVersion","source","channel","playlist","hashtagFilterExpression","productIds","contentId","cornerRadius","dynamicContentParametersString","playerStyle","videoCompleteAction","showShareButton","showPlaybackButton","showMuteButton","showBranding","ctaDelayType","ctaDelay","type","ctaDelayValue","toFixed","ctaHighlightDelayType","ctaHighlightDelay","ctaHighlightDelayValue","buttonConfiguration","videoPlayerLogoConfigurationJsonKey","videoPlayerLogoConfiguration","ctaWidth","showVideoDetailTitle","requiresAds","adsFetchTimeout","vastAttributesString","productInfoViewConfigurationJsonKey","shopping","productInfoViewConfiguration","replayBadgeConfigurationJsonKey","replayBadgeConfiguration","countdownTimerConfigurationJsonKey","countdownTimerConfiguration","Platform","OS","videoDetailButton","closeButton","muteButton","unmuteButton","playButton","pauseButton","console","sendCommand","command","nativeNodeHandle","commandId","UIManager","getViewManagerConfig","Commands","toString","reactTag","dispatchViewManagerCommand","play","pause","openFullscreen","onViewportEntered","onViewportLeft","subscriptionOfShareBaseURLUpdated","FireworkSDKModuleEventEmitter","addListener","FWEventName","ShareBaseURLUpdated","subscriptionOfAdBadgeConfigurationUpdated","AdBadgeConfigurationUpdated","subscriptionOfVideoLaunchBehaviorUpdated","VideoLaunchBehaviorUpdated","subscriptionOfAppLanguageUpdated","AppLanguageUpdated","subscriptionOfProductInfoViewConfigurationUpdated","ProductInfoViewConfigurationUpdated","subscriptionOfDataTrackingLevelUpdated","DataTrackingLevelUpdated","subscriptionOfLivestreamPlayerDesignVersionUpdated","LivestreamPlayerDesignVersionUpdated","remove","setTimeout","viewId","create","sdkInitCalledPromise","then","style","otherProps","assign","borderRadius","undefined"],"mappings":"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","sourcesContent":["import type { ForwardRefRenderFunction } from 'react';\nimport React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useReducer,\n useRef,\n useState,\n} from 'react';\n\nimport {\n findNodeHandle,\n NativeSyntheticEvent,\n Platform,\n StyleProp,\n UIManager,\n ViewStyle,\n} from 'react-native';\n\nimport FireworkSDK from '../FireworkSDK';\nimport type AdConfiguration from '../models/AdConfiguration';\nimport type FWError from '../models/FWError';\nimport { FWEventName } from '../models/FWEventName';\nimport type { StoryBlockConfiguration } from '../models/StoryBlockConfiguration';\nimport type StoryBlockNativeConfiguration from '../models/StoryBlockNativeConfiguration';\nimport type { StoryBlockSource } from '../models/StoryBlockSource';\nimport { FireworkSDKModuleEventEmitter } from '../modules/FireworkSDKModule';\nimport FWGlobalState from '../utils/FWGlobalState';\nimport FWLoggerUtil from '../utils/FWLoggerUtil';\nimport FWStoryBlock from './FWStoryBlock';\nimport type ButtonInfo from '../models/ButtonInfo';\nimport gennerateJsonKey from '../utils/FWJsonUtil';\nimport { FWComponentType } from '../models/FWComponentType';\n\nconst NativeComponentName = 'FWStoryBlock';\n\nexport interface IStoryBlockMethods {\n /**\n * Play the story block.\n */\n play: () => void;\n /**\n * Pause the story block.\n */\n pause: () => void;\n /**\n * Open the fullscreen story block.\n * Only supported on Android.\n */\n openFullscreen: () => void;\n /**\n * Triggered when the story block enters the viewport.\n * Only supported on iOS.\n * It is recommended that the host app is triggered when listening for scrolling.\n */\n onViewportEntered: () => void;\n /**\n * Triggered when the story block leaves the viewport.\n * Only supported on iOS.\n * It is recommended that the host app is triggered when listening for scrolling.\n */\n onViewportLeft: () => void;\n}\n\n/**\n * The props type of StoryBlock component.\n */\nexport interface IStoryBlockProps {\n /**\n * Standard React Native View Style.\n */\n style?: StyleProp<ViewStyle>;\n /**\n * One of four available story block sources.\n */\n source: StoryBlockSource;\n /**\n * Channel id of the story block. Required when the source is set as channel or playlist or dynamicContent.\n */\n channel?: string;\n /**\n * Playlist id of the story block. Please note channel id is necessary. Required when the source is set as playlist.\n */\n playlist?: string;\n /**\n * The dynamic content parameters of the story block. Required when the source is set as dynamicContent.\n */\n dynamicContentParameters?: { [key: string]: string[] };\n /**\n * Hashtag filter expression is an s-expression used to provide feeds filtered by hashtags with specified criteria.\n * Queries are specified with boolean predicates on what hashtags are there on the video.\n * For instance, (and sport food) (or sport food) (and sport (or food comedy)) sport are all valid expressions.\n * Non-UTF-8 characters are not allowed. If using boolean predicates, the expression needs to be wrapped with parenthesis.\n */\n hashtagFilterExpression?: string;\n /**\n * Product ids used to generate the sku feed\n */\n productIds?: string[];\n /**\n * The video or live stream id.\n */\n contentId?: string;\n /**\n * Specifies if Picture in Picture is enabled. Only supported on iOS.\n */\n enablePictureInPicture?: boolean;\n /**\n * The corner radius of story block.\n */\n cornerRadius?: number;\n /**\n * Ad configuration of the feed.\n */\n adConfiguration?: AdConfiguration;\n\n /* The configuration of the story block. */\n storyBlockConfiguration?: StoryBlockConfiguration;\n /**\n * The feed loading result callback. It means loading successfully when error equals to undefined.\n */\n onStoryBlockLoadFinished?: (error?: FWError) => void;\n /**\n * The callback is triggered when there are no items in the story block.\n * The callback is triggered in the following cases:\n * 1. Loading successfully but the back end returns an empty list.\n * 2. The load failed and list is empty.\n * onStoryBlockLoadFinished will also be triggered when onStoryBlockEmpty is triggered.\n */\n onStoryBlockEmpty?: (error?: FWError) => void;\n /**\n * Start Picture in Picture callback. Only supported on iOS.\n */\n onStoryBlockDidStartPictureInPicture?: (error?: FWError) => void;\n /**\n * Stop Picture in Picture callback. Only supported on iOS.\n */\n onStoryBlockDidStopPictureInPicture?: (error?: FWError) => void;\n /**\n *\n * The host app could use this callback to get feed id.\n * The feed id can be used for conversion tracking.\n */\n onStoryBlockGetFeedId?: (feedId: string) => void;\n}\n\nconst StoryBlock: ForwardRefRenderFunction<\n IStoryBlockMethods,\n IStoryBlockProps\n> = (props: IStoryBlockProps, forwardedRef) => {\n const nativeComponentRef = useRef(null);\n const [sdkInitCalled, setSdkInitCalled] = useState<boolean>(\n FWGlobalState.getInstance().sdkInitCalled\n );\n const loadedRef = useRef<boolean>(false);\n const [, forceUpdate] = useReducer((x) => x + 1, 0);\n\n const handleStoryBlockLoadFinished = (event: NativeSyntheticEvent<any>) => {\n FWLoggerUtil.log(\n `StoryBlock handleStoryBlockLoadFinished ${event.nativeEvent.name}`\n );\n\n const { onStoryBlockLoadFinished, onStoryBlockEmpty } = props;\n const { name, reason } = event.nativeEvent;\n\n if (onStoryBlockLoadFinished) {\n if (name) {\n let error: FWError = { name };\n if (reason) {\n error.reason = reason;\n }\n\n onStoryBlockLoadFinished(error);\n if (!loadedRef.current) {\n onStoryBlockEmpty?.(error);\n }\n } else {\n onStoryBlockLoadFinished();\n loadedRef.current = true;\n }\n }\n };\n\n const handleStoryBlockEmpty = (event: NativeSyntheticEvent<any>) => {\n FWLoggerUtil.log(`StoryBlock handleStoryBlockEmpty ${event.nativeEvent}`);\n\n const { onStoryBlockEmpty } = props;\n\n if (onStoryBlockEmpty) {\n onStoryBlockEmpty();\n }\n };\n\n const handleStoryBlockDidStartPictureInPicture = (\n event: NativeSyntheticEvent<any>\n ) => {\n FWLoggerUtil.log(\n `StoryBlock handleStoryBlockDidStartPictureInPicture ${JSON.stringify(\n event.nativeEvent\n )}`\n );\n const { onStoryBlockDidStartPictureInPicture } = props;\n\n const { name, reason } = event.nativeEvent;\n\n if (onStoryBlockDidStartPictureInPicture) {\n if (name) {\n if (reason) {\n onStoryBlockDidStartPictureInPicture({ name, reason });\n } else {\n onStoryBlockDidStartPictureInPicture({ name });\n }\n } else {\n onStoryBlockDidStartPictureInPicture();\n }\n }\n };\n\n const handleStoryBlockDidStopPictureInPicture = (\n event: NativeSyntheticEvent<any>\n ) => {\n FWLoggerUtil.log(\n `StoryBlock handleStoryBlockDidStopPictureInPicture ${JSON.stringify(\n event.nativeEvent\n )}`\n );\n const { onStoryBlockDidStopPictureInPicture } = props;\n\n const { name, reason } = event.nativeEvent;\n\n if (onStoryBlockDidStopPictureInPicture) {\n if (name) {\n if (reason) {\n onStoryBlockDidStopPictureInPicture({ name, reason });\n } else {\n onStoryBlockDidStopPictureInPicture({ name });\n }\n } else {\n onStoryBlockDidStopPictureInPicture();\n }\n }\n };\n\n const handleStoryBlockGetFeedId = (event: NativeSyntheticEvent<any>) => {\n FWLoggerUtil.log(\n `StoryBlock handleStoryBlockGetFeedId ${JSON.stringify(\n event.nativeEvent\n )}`\n );\n const { onStoryBlockGetFeedId } = props;\n\n const { feedId } = event.nativeEvent;\n\n if (feedId) {\n FWGlobalState.getInstance().componentTypeByFeedIdMap.set(\n feedId,\n FWComponentType.storyBlock\n );\n }\n\n if (onStoryBlockGetFeedId) {\n onStoryBlockGetFeedId(feedId ?? '');\n }\n };\n\n const generateDynamicContentParametersString = (): string => {\n const { dynamicContentParameters } = props;\n\n if (!dynamicContentParameters) {\n return '';\n }\n\n let resultString = '';\n const sortedKeyList = Object.keys(dynamicContentParameters).sort();\n for (const key of sortedKeyList) {\n const value = dynamicContentParameters[key];\n const valueString = value.join(',');\n if (resultString.length > 0) {\n resultString += '_';\n }\n\n resultString += `${key}:${valueString}`;\n }\n\n return resultString;\n };\n\n const generateVastAttributesString = () => {\n const { adConfiguration } = props;\n const vastAttributes = adConfiguration?.vastAttributes;\n if (!vastAttributes) {\n return '';\n }\n\n let resultString = '';\n for (const attribute of vastAttributes) {\n if (resultString.length > 0) {\n resultString += '_';\n }\n resultString += `${attribute.name ?? ''}:${attribute.value}`;\n }\n\n return resultString;\n };\n\n const generateButtonInfoString = (buttonInfo?: ButtonInfo) => {\n return `imageName:${buttonInfo?.imageName}_systemImageName:${buttonInfo?.systemImageName}_tintColor:${buttonInfo?.tintColor}`;\n };\n\n const getStoryBlockConfiguration: () =>\n | StoryBlockNativeConfiguration\n | undefined = () => {\n const { storyBlockConfiguration, enablePictureInPicture } = props;\n let resultStoryBlockConfiguration:\n | StoryBlockNativeConfiguration\n | undefined = storyBlockConfiguration;\n if (typeof enablePictureInPicture === 'boolean') {\n if (!resultStoryBlockConfiguration) {\n resultStoryBlockConfiguration = {};\n }\n resultStoryBlockConfiguration = {\n ...resultStoryBlockConfiguration,\n enablePictureInPicture,\n };\n }\n return resultStoryBlockConfiguration;\n };\n const storyBlockConfiguration = getStoryBlockConfiguration();\n\n const generateKey = (): string => {\n const gShareBaseURL = FireworkSDK.getInstance().shareBaseURL;\n const appLanguage = FireworkSDK.getInstance().appLanguage;\n const videoLaunchBehavior = FireworkSDK.getInstance().videoLaunchBehavior;\n const adBadgeConfiguration = FireworkSDK.getInstance().adBadgeConfiguration;\n const adBadgeTextType = adBadgeConfiguration?.badgeTextType;\n const backgroundColorOfAdBadge = adBadgeConfiguration?.backgroundColor;\n const textColorOfAdBadge = adBadgeConfiguration?.textColor;\n const androidFontIsCustomOfAdBadge =\n adBadgeConfiguration?.androidFontInfo?.isCustom;\n const androidFontTypefaceNameOfAdBadge =\n adBadgeConfiguration?.androidFontInfo?.typefaceName;\n const dataTrackingLevel = FireworkSDK.getInstance().dataTrackingLevel;\n const livestreamPlayerDesignVersion =\n FireworkSDK.getInstance().livestreamPlayerDesignVersion;\n\n const {\n source,\n channel,\n playlist,\n hashtagFilterExpression,\n productIds,\n contentId,\n enablePictureInPicture,\n cornerRadius,\n adConfiguration,\n } = props;\n const dynamicContentParametersString =\n generateDynamicContentParametersString();\n\n const playerStyle = storyBlockConfiguration?.playerStyle;\n const videoCompleteAction = storyBlockConfiguration?.videoCompleteAction;\n const showShareButton = storyBlockConfiguration?.showShareButton;\n const showPlaybackButton = storyBlockConfiguration?.showPlaybackButton;\n const showMuteButton = storyBlockConfiguration?.showMuteButton;\n const showBranding = storyBlockConfiguration?.showBranding;\n const ctaDelayType = storyBlockConfiguration?.ctaDelay?.type;\n const ctaDelayValue = storyBlockConfiguration?.ctaDelay?.value?.toFixed(5);\n const ctaHighlightDelayType =\n storyBlockConfiguration?.ctaHighlightDelay?.type;\n const ctaHighlightDelayValue =\n storyBlockConfiguration?.ctaHighlightDelay?.value?.toFixed(5);\n const shareBaseURL = storyBlockConfiguration?.shareBaseURL;\n const buttonConfiguration = storyBlockConfiguration?.buttonConfiguration;\n const videoPlayerLogoConfigurationJsonKey = gennerateJsonKey(\n storyBlockConfiguration?.videoPlayerLogoConfiguration\n );\n const ctaWidth = storyBlockConfiguration?.ctaWidth;\n const showVideoDetailTitle = storyBlockConfiguration?.showVideoDetailTitle;\n\n const requiresAds = adConfiguration?.requiresAds;\n const adsFetchTimeout = adConfiguration?.adsFetchTimeout;\n const vastAttributesString = generateVastAttributesString();\n const productInfoViewConfigurationJsonKey = gennerateJsonKey(\n FireworkSDK.getInstance().shopping.productInfoViewConfiguration\n );\n const replayBadgeConfigurationJsonKey = gennerateJsonKey(\n storyBlockConfiguration?.replayBadgeConfiguration\n );\n const countdownTimerConfigurationJsonKey = gennerateJsonKey(\n storyBlockConfiguration?.countdownTimerConfiguration\n );\n\n let key = `gShareBaseURL:${gShareBaseURL}`;\n if (Platform.OS === 'ios') {\n key += `_appLanguage:${appLanguage}`;\n }\n key += `_videoLaunchBehavior:${videoLaunchBehavior}`;\n key += `_adBadgeTextType:${adBadgeTextType}`;\n key += `_backgroundColorOfAdBadge:${backgroundColorOfAdBadge}`;\n key += `_textColorOfAdBadge:${textColorOfAdBadge}`;\n if (Platform.OS === 'android') {\n key += `_androidFontIsCustomOfAdBadge${androidFontIsCustomOfAdBadge}`;\n key += `_androidFontTypefaceNameOfAdBadge${androidFontTypefaceNameOfAdBadge}`;\n }\n key += `_dataTrackingLevel:${dataTrackingLevel}`;\n key += `_livestreamPlayerDesignVersion:${livestreamPlayerDesignVersion}`;\n key += `_source:${source}`;\n key += `_channel:${channel}`;\n key += `_playlist:${playlist}`;\n key += `_dynamicContentParameters:${dynamicContentParametersString}`;\n key += `_hashtagFilterExpression:${hashtagFilterExpression}`;\n key += `productIds:${productIds?.join(',')}`;\n key += `_contentId:${contentId}`;\n key += `_enablePictureInPicture:${enablePictureInPicture}`;\n key += `_cornerRadius:${cornerRadius}`;\n\n key += `_shareBaseURL:${shareBaseURL}`;\n key += `_playerStyle:${playerStyle}`;\n key += `_videoCompleteAction:${videoCompleteAction}`;\n key += `_showShareButton:${showShareButton}`;\n key += `_showPlaybackButton:${showPlaybackButton}`;\n key += `_showMuteButton:${showMuteButton}`;\n key += `_showBranding:${showBranding}`;\n key += `_ctaDelayType:${ctaDelayType}`;\n key += `_ctaDelayValue:${ctaDelayValue}`;\n key += `_ctaHighlightDelayType:${ctaHighlightDelayType}`;\n key += `_ctaHighlightDelayValue:${ctaHighlightDelayValue}`;\n key += `_ctaWidth:${ctaWidth}`;\n key += `_buttonConfiguration.videoDetailButton:${generateButtonInfoString(\n buttonConfiguration?.videoDetailButton\n )}`;\n key += `_buttonConfiguration.closeButton:${generateButtonInfoString(\n buttonConfiguration?.closeButton\n )}`;\n key += `_buttonConfiguration.muteButton:${generateButtonInfoString(\n buttonConfiguration?.muteButton\n )}`;\n key += `_buttonConfiguration.unmuteButton:${generateButtonInfoString(\n buttonConfiguration?.unmuteButton\n )}`;\n key += `_buttonConfiguration.playButton:${generateButtonInfoString(\n buttonConfiguration?.playButton\n )}`;\n key += `_buttonConfiguration.pauseButton:${generateButtonInfoString(\n buttonConfiguration?.pauseButton\n )}`;\n if (Platform.OS === 'android') {\n key += `_videoPlayerLogoConfiguration:${videoPlayerLogoConfigurationJsonKey}`;\n }\n key += `_showVideoDetailTitle:${showVideoDetailTitle}`;\n\n key += `_requiresAds:${requiresAds}`;\n key += `_adsFetchTimeout:${adsFetchTimeout}`;\n key += `_vastAttributes:${vastAttributesString}`;\n key += `_productInfoViewConfiguration:${productInfoViewConfigurationJsonKey}`;\n key += `_replayBadgeConfiguration:${replayBadgeConfigurationJsonKey}`;\n key += `_countdownTimerConfiguration:${countdownTimerConfigurationJsonKey}`;\n\n return key;\n };\n\n const key = generateKey();\n\n console.log('story block key', key);\n\n useImperativeHandle(\n forwardedRef,\n () => {\n const sendCommand = (command: string) => {\n const nativeNodeHandle = findNodeHandle(nativeComponentRef.current);\n\n let commandId: string | number =\n UIManager.getViewManagerConfig(NativeComponentName).Commands[command];\n if (Platform.OS === 'android') {\n commandId = commandId.toString();\n }\n let reactTag: number | null = findNodeHandle(nativeNodeHandle);\n FWLoggerUtil.log(\n `StoryBlock sendCommand: ${command} commandId: ${commandId} nativeNodeHandle: ${nativeNodeHandle} reactTag: ${reactTag}`\n );\n if (!nativeNodeHandle || !reactTag) {\n return;\n }\n UIManager.dispatchViewManagerCommand(reactTag, commandId, []);\n };\n return {\n play: () => {\n sendCommand('play');\n },\n pause: () => {\n sendCommand('pause');\n },\n openFullscreen: () => {\n sendCommand('openFullscreen');\n },\n onViewportEntered: () => {\n if (Platform.OS !== 'ios') {\n return;\n }\n sendCommand('onViewportEntered');\n },\n onViewportLeft: () => {\n if (Platform.OS !== 'ios') {\n return;\n }\n sendCommand('onViewportLeft');\n },\n };\n },\n []\n );\n\n useEffect(() => {\n const subscriptionOfShareBaseURLUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.ShareBaseURLUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.ShareBaseURLUpdated');\n forceUpdate();\n }\n );\n const subscriptionOfAdBadgeConfigurationUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.AdBadgeConfigurationUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.AdBadgeConfigurationUpdated');\n forceUpdate();\n }\n );\n\n const subscriptionOfVideoLaunchBehaviorUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.VideoLaunchBehaviorUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.VideoLaunchBehaviorUpdated');\n forceUpdate();\n }\n );\n\n const subscriptionOfAppLanguageUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.AppLanguageUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.AppLanguageUpdated');\n forceUpdate();\n }\n );\n\n const subscriptionOfProductInfoViewConfigurationUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.ProductInfoViewConfigurationUpdated,\n () => {\n FWLoggerUtil.log(\n 'Receive FWEventName.ProductInfoViewConfigurationUpdated'\n );\n forceUpdate();\n }\n );\n\n const subscriptionOfDataTrackingLevelUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.DataTrackingLevelUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.DataTrackingLevelUpdated');\n forceUpdate();\n }\n );\n\n const subscriptionOfLivestreamPlayerDesignVersionUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.LivestreamPlayerDesignVersionUpdated,\n () => {\n FWLoggerUtil.log(\n 'Receive FWEventName.LivestreamPlayerDesignVersionUpdated'\n );\n forceUpdate();\n }\n );\n\n return () => {\n subscriptionOfShareBaseURLUpdated.remove();\n subscriptionOfAdBadgeConfigurationUpdated.remove();\n subscriptionOfVideoLaunchBehaviorUpdated.remove();\n subscriptionOfAppLanguageUpdated.remove();\n subscriptionOfProductInfoViewConfigurationUpdated.remove();\n subscriptionOfDataTrackingLevelUpdated.remove();\n subscriptionOfLivestreamPlayerDesignVersionUpdated.remove();\n };\n }, []);\n\n useEffect(() => {\n if (Platform.OS === 'android') {\n setTimeout(() => {\n const viewId = findNodeHandle(nativeComponentRef.current);\n FWLoggerUtil.log(`StoryBlock createFragment viewId: ${viewId}`);\n if (!viewId) {\n return;\n }\n UIManager.dispatchViewManagerCommand(\n viewId,\n UIManager.getViewManagerConfig(\n NativeComponentName\n ).Commands.create.toString(),\n [viewId]\n );\n }, 500);\n }\n }, [key]);\n\n useEffect(() => {\n FWGlobalState.getInstance().sdkInitCalledPromise.then(() => {\n setSdkInitCalled(true);\n });\n }, []);\n\n if (!sdkInitCalled) {\n return null;\n }\n const { style, cornerRadius, ...otherProps } = props;\n return (\n <FWStoryBlock\n ref={nativeComponentRef}\n key={key}\n {...otherProps}\n cornerRadius={cornerRadius}\n style={Object.assign({ borderRadius: cornerRadius }, style)}\n storyBlockConfiguration={storyBlockConfiguration}\n enablePictureInPicture={undefined}\n onStoryBlockLoadFinished={handleStoryBlockLoadFinished}\n onStoryBlockEmpty={handleStoryBlockEmpty}\n onStoryBlockDidStartPictureInPicture={\n handleStoryBlockDidStartPictureInPicture\n }\n onStoryBlockDidStopPictureInPicture={\n handleStoryBlockDidStopPictureInPicture\n }\n onStoryBlockGetFeedId={handleStoryBlockGetFeedId}\n />\n );\n};\n\nexport default forwardRef(StoryBlock);\n"]}
|
|
@@ -262,6 +262,22 @@ class VideoFeed extends _react.default.Component {
|
|
|
262
262
|
});
|
|
263
263
|
|
|
264
264
|
this._subscriptions.push(subscriptionOfAppLanguageUpdated);
|
|
265
|
+
|
|
266
|
+
const subscriptionOfDataTrackingLevelUpdated = _FireworkSDKModule.FireworkSDKModuleEventEmitter.addListener(_FWEventName.FWEventName.DataTrackingLevelUpdated, () => {
|
|
267
|
+
_FWLoggerUtil.default.log('Receive FWEventName.DataTrackingLevelUpdated');
|
|
268
|
+
|
|
269
|
+
this.setState({});
|
|
270
|
+
});
|
|
271
|
+
|
|
272
|
+
this._subscriptions.push(subscriptionOfDataTrackingLevelUpdated);
|
|
273
|
+
|
|
274
|
+
const subscriptionOfLivestreamPlayerDesignVersionUpdated = _FireworkSDKModule.FireworkSDKModuleEventEmitter.addListener(_FWEventName.FWEventName.LivestreamPlayerDesignVersionUpdated, () => {
|
|
275
|
+
_FWLoggerUtil.default.log('Receive FWEventName.LivestreamPlayerDesignVersionUpdated');
|
|
276
|
+
|
|
277
|
+
this.setState({});
|
|
278
|
+
});
|
|
279
|
+
|
|
280
|
+
this._subscriptions.push(subscriptionOfLivestreamPlayerDesignVersionUpdated);
|
|
265
281
|
}
|
|
266
282
|
/**
|
|
267
283
|
* @ignore
|
|
@@ -302,6 +318,11 @@ class VideoFeed extends _react.default.Component {
|
|
|
302
318
|
const textColorOfAdBadge = adBadgeConfiguration === null || adBadgeConfiguration === void 0 ? void 0 : adBadgeConfiguration.textColor;
|
|
303
319
|
const androidFontIsCustomOfAdBadge = adBadgeConfiguration === null || adBadgeConfiguration === void 0 ? void 0 : (_adBadgeConfiguration = adBadgeConfiguration.androidFontInfo) === null || _adBadgeConfiguration === void 0 ? void 0 : (_adBadgeConfiguration2 = _adBadgeConfiguration.isCustom) === null || _adBadgeConfiguration2 === void 0 ? void 0 : _adBadgeConfiguration2.toString();
|
|
304
320
|
const androidFontTypefaceNameOfAdBadge = adBadgeConfiguration === null || adBadgeConfiguration === void 0 ? void 0 : (_adBadgeConfiguration3 = adBadgeConfiguration.androidFontInfo) === null || _adBadgeConfiguration3 === void 0 ? void 0 : _adBadgeConfiguration3.typefaceName;
|
|
321
|
+
|
|
322
|
+
const dataTrackingLevel = _FireworkSDK.default.getInstance().dataTrackingLevel;
|
|
323
|
+
|
|
324
|
+
const livestreamPlayerDesignVersion = _FireworkSDK.default.getInstance().livestreamPlayerDesignVersion;
|
|
325
|
+
|
|
305
326
|
const {
|
|
306
327
|
source,
|
|
307
328
|
channel,
|
|
@@ -376,6 +397,8 @@ class VideoFeed extends _react.default.Component {
|
|
|
376
397
|
key += `_androidFontTypefaceNameOfAdBadge${androidFontTypefaceNameOfAdBadge}`;
|
|
377
398
|
}
|
|
378
399
|
|
|
400
|
+
key += `_dataTrackingLevel:${dataTrackingLevel}`;
|
|
401
|
+
key += `_livestreamPlayerDesignVersion:${livestreamPlayerDesignVersion}`;
|
|
379
402
|
key += `_source:${source}`;
|
|
380
403
|
key += `_channel:${channel}`;
|
|
381
404
|
key += `_playlist:${playlist}`;
|