react-native-firework-sdk 2.8.2 → 2.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/FireworkVideoUI +0 -0
- package/FireworkVideoUI.xcframework/ios-arm64/FireworkVideoUI.framework/Info.plist +0 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/FireworkVideoUI +0 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/Info.plist +0 -0
- package/FireworkVideoUI.xcframework/ios-arm64_x86_64-simulator/FireworkVideoUI.framework/_CodeSignature/CodeResources +1 -1
- package/android/gradle.properties +1 -1
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/models/FWVideoShoppingInterface.kt +1 -1
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWVideoShoppingModule.kt +3 -1
- package/ios/Models/NativeToRN/FireworkEventName.swift +1 -0
- package/ios/Modules/Shopping/ShoppingModule.m +1 -1
- package/ios/Modules/Shopping/ShoppingModule.swift +5 -1
- package/lib/commonjs/VideoShopping.js +13 -2
- package/lib/commonjs/VideoShopping.js.map +1 -1
- package/lib/commonjs/components/StoryBlock.js +12 -3
- package/lib/commonjs/components/StoryBlock.js.map +1 -1
- package/lib/commonjs/components/VideoFeed.js +6 -10
- package/lib/commonjs/components/VideoFeed.js.map +1 -1
- package/lib/commonjs/models/FWEventName.js +1 -0
- package/lib/commonjs/models/FWEventName.js.map +1 -1
- package/lib/commonjs/modules/ShoppingModule.js.map +1 -1
- package/lib/commonjs/utils/FWJsonUtil.js +35 -0
- package/lib/commonjs/utils/FWJsonUtil.js.map +1 -0
- package/lib/module/VideoShopping.js +12 -2
- package/lib/module/VideoShopping.js.map +1 -1
- package/lib/module/components/StoryBlock.js +9 -4
- package/lib/module/components/StoryBlock.js.map +1 -1
- package/lib/module/components/VideoFeed.js +6 -10
- package/lib/module/components/VideoFeed.js.map +1 -1
- package/lib/module/models/FWEventName.js +1 -0
- package/lib/module/models/FWEventName.js.map +1 -1
- package/lib/module/modules/ShoppingModule.js.map +1 -1
- package/lib/module/utils/FWJsonUtil.js +27 -0
- package/lib/module/utils/FWJsonUtil.js.map +1 -0
- package/lib/typescript/VideoShopping.d.ts +1 -0
- package/lib/typescript/models/FWEventName.d.ts +2 -1
- package/lib/typescript/modules/ShoppingModule.d.ts +1 -1
- package/lib/typescript/utils/FWJsonUtil.d.ts +2 -0
- package/package.json +1 -1
- package/src/VideoShopping.ts +15 -2
- package/src/components/StoryBlock.tsx +18 -3
- package/src/components/VideoFeed.tsx +9 -13
- package/src/models/FWEventName.ts +1 -0
- package/src/modules/ShoppingModule.ts +3 -1
- package/src/utils/FWJsonUtil.ts +26 -0
|
@@ -162,14 +162,12 @@ class VideoFeed extends React.Component {
|
|
|
162
162
|
|
|
163
163
|
this._subscriptions.push(subscriptionOfVideoLaunchBehaviorUpdated);
|
|
164
164
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
});
|
|
165
|
+
const subscriptionOfAppLanguageUpdated = FireworkSDKModuleEventEmitter.addListener(FWEventName.AppLanguageUpdated, () => {
|
|
166
|
+
FWLoggerUtil.log('Receive FWEventName.AppLanguageUpdated');
|
|
167
|
+
this.setState({});
|
|
168
|
+
});
|
|
170
169
|
|
|
171
|
-
|
|
172
|
-
}
|
|
170
|
+
this._subscriptions.push(subscriptionOfAppLanguageUpdated);
|
|
173
171
|
}
|
|
174
172
|
/**
|
|
175
173
|
* @ignore
|
|
@@ -328,9 +326,7 @@ class VideoFeed extends React.Component {
|
|
|
328
326
|
key += `_buttonConfiguration.playButton:${this._generateButtonInfoString(buttonConfiguration === null || buttonConfiguration === void 0 ? void 0 : buttonConfiguration.playButton)}`;
|
|
329
327
|
key += `_buttonConfiguration.pauseButton:${this._generateButtonInfoString(buttonConfiguration === null || buttonConfiguration === void 0 ? void 0 : buttonConfiguration.pauseButton)}`;
|
|
330
328
|
key += `_showVideoDetailTitle:${showVideoDetailTitle}`;
|
|
331
|
-
}
|
|
332
|
-
// key += `_videoPlayerLogoConfiguration.encodeId:${videoPlayerLogoConfigurationEncodeId}`;
|
|
333
|
-
|
|
329
|
+
}
|
|
334
330
|
|
|
335
331
|
key += `_requiresAds:${requiresAds}`;
|
|
336
332
|
key += `_adsFetchTimeout:${adsFetchTimeout}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["VideoFeed.tsx"],"names":["React","findNodeHandle","Platform","UIManager","FireworkSDK","FWEventName","FireworkSDKModuleEventEmitter","FWGlobalState","FWLoggerUtil","FWVideoFeed","NativeComponentName","VideoFeed","Component","constructor","props","createRef","log","JSON","stringify","nativeNodeHandle","_nativeComponentRef","current","commandId","getViewManagerConfig","Commands","refresh","OS","toString","dispatchViewManagerCommand","event","nativeEvent","onVideoFeedLoadFinished","name","reason","onVideoFeedDidStartPictureInPicture","onVideoFeedDidStopPictureInPicture","state","sdkInitCalled","getInstance","componentDidMount","sdkInitCalledPromise","then","setState","subscriptionOfShareBaseURLUpdated","addListener","ShareBaseURLUpdated","_subscriptions","push","subscriptionOfAdBadgeConfigurationUpdated","AdBadgeConfigurationUpdated","subscriptionOfVideoLaunchBehaviorUpdated","VideoLaunchBehaviorUpdated","subscriptionOfAppLanguageUpdated","AppLanguageUpdated","componentWillUnmount","forEach","value","remove","render","gShareBaseURL","shareBaseURL","appLanguage","videoLaunchBehavior","adBadgeConfiguration","adBadgeTextType","badgeTextType","backgroundColorOfAdBadge","backgroundColor","textColorOfAdBadge","textColor","androidFontIsCustomOfAdBadge","androidFontInfo","isCustom","androidFontTypefaceNameOfAdBadge","typefaceName","source","channel","playlist","playlistGroup","hashtagFilterExpression","productIds","contentId","mode","enablePictureInPicture","adConfiguration","dynamicContentParametersString","_generateDynamicContentParametersString","videoFeedConfiguration","_getVideoFeedConfiguration","cornerRadius","toFixed","titleHidden","title","hidden","titleTextColor","titleFontSize","fontSize","titleAndroidFontInfo","titleGradientDrawable","gradientDrawable","titlePosition","playIconHidden","playIcon","playIconWidth","iconWidth","showAdBadge","enableAutoplay","gridColumns","itemSpacing","videoPlayerConfiguration","_getVideoPlayerConfiguration","playerStyle","videoCompleteAction","showShareButton","showPlaybackButton","showMuteButton","showBranding","ctaDelayType","ctaDelay","type","ctaDelayValue","ctaHighlightDelayType","ctaHighlightDelay","ctaHighlightDelayValue","ctaWidth","buttonConfiguration","showVideoDetailTitle","requiresAds","adsFetchTimeout","vastAttributesString","_generateVastAttributesString","key","join","orientation","colors","_generateButtonInfoString","videoDetailButton","closeButton","muteButton","unmuteButton","playButton","pauseButton","undefined","_onVideoFeedLoadFinished","_onVideoFeedDidStartPictureInPicture","_onVideoFeedDidStopPictureInPicture","dynamicContentParameters","resultString","sortedKeyList","Object","keys","sort","valueString","length","vastAttributes","attribute","buttonInfo","imageName","systemImageName","tintColor","resultVideoFeedConfiguration","Math","floor","numberOfLines","resultVideoPlayerConfiguration"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport {\n EmitterSubscription,\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 VideoFeedConfiguration from '../models/VideoFeedConfiguration';\nimport type { VideoFeedSource } from '../models/VideoFeedSource';\nimport type VideoPlayerConfiguration from '../models/VideoPlayerConfiguration';\nimport { FireworkSDKModuleEventEmitter } from '../modules/FireworkSDKModule';\nimport FWGlobalState from '../utils/FWGlobalState';\nimport FWLoggerUtil from '../utils/FWLoggerUtil';\nimport FWVideoFeed from './FWVideoFeed';\nimport type VideoPlayerNativeConfiguration from '../models/VideoPlayerNativeConfiguration';\nimport type ButtonInfo from '../models/ButtonInfo';\n\nexport type VideoFeedMode = 'row' | 'column' | 'grid';\n\n/**\n * The props of VideoFeed component.\n */\nexport interface IVideoFeedProps {\n /**\n * Standard React Native View Style.\n */\n style?: StyleProp<ViewStyle>;\n /**\n * One of five available video feed sources.The playlistGroup is only supported on iOS.\n * Defaults to discover.\n */\n source: VideoFeedSource;\n /**\n * Channel id of the feed. Required when the source is set as channel or playlist or dynamicContent.\n */\n channel?: string;\n /**\n * Playlist id of the feed. Please note channel id is necessary. Required when the source is set as playlist.\n */\n playlist?: string;\n /**\n * PlaylistGroup id of the feed. Required when the source is set as playlistGroup. Only supported on iOS.\n */\n playlistGroup?: string;\n /**\n * The dynamic content parameters of the feed. 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 * Required when the source is set as hashtagPlaylist.\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. Only supported on iOS.\n */\n contentId?: string;\n /**\n * One of three available display modes. Defaults to row.\n */\n mode?: VideoFeedMode;\n /**\n * Specifies if Picture in Picture is enabled.\n */\n enablePictureInPicture?: boolean;\n /**\n * Configuration of the feed.\n */\n videoFeedConfiguration?: VideoFeedConfiguration;\n /**\n * Configuration of the player.\n */\n videoPlayerConfiguration?: VideoPlayerConfiguration;\n /**\n * Ad configuration of the feed. Only supported on iOS.\n */\n adConfiguration?: AdConfiguration;\n /**\n * The feed loading result callback. It means loading successfully when error equals to undefined.\n */\n onVideoFeedLoadFinished?: (error?: FWError) => void;\n /**\n * Start Picture in Picture callback. Only supported on iOS.\n */\n onVideoFeedDidStartPictureInPicture?: (error?: FWError) => void;\n /**\n * Stop Picture in Picture callback. Only supported on iOS.\n */\n onVideoFeedDidStopPictureInPicture?: (error?: FWError) => void;\n}\n\ninterface IVideoFeedState {\n sdkInitCalled: boolean;\n}\n\nconst NativeComponentName = 'FWVideoFeed';\n\n/**\n * VideoFeed component.\n */\nclass VideoFeed extends React.Component<IVideoFeedProps, IVideoFeedState> {\n /**\n * @ignore\n */\n static defaultProps = {\n mode: 'row',\n };\n\n private _nativeComponentRef = React.createRef<any>();\n\n private _subscriptions: EmitterSubscription[] = [];\n\n constructor(props: IVideoFeedProps) {\n super(props);\n this.state = {\n sdkInitCalled: FWGlobalState.getInstance().sdkInitCalled,\n };\n }\n\n public refresh = () => {\n FWLoggerUtil.log(`VideoFeed refresh ${JSON.stringify(this.props)}`);\n\n const nativeNodeHandle = findNodeHandle(this._nativeComponentRef.current);\n\n let commandId: string | number =\n UIManager.getViewManagerConfig(NativeComponentName).Commands.refresh;\n if (Platform.OS === 'android') {\n commandId = commandId.toString();\n }\n\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(nativeNodeHandle),\n commandId,\n []\n );\n };\n\n private _onVideoFeedLoadFinished = (event: NativeSyntheticEvent<any>) => {\n FWLoggerUtil.log(\n `VideoFeed _onVideoFeedLoadFinished ${JSON.stringify(event.nativeEvent)}`\n );\n const { onVideoFeedLoadFinished } = this.props;\n\n const { name, reason } = event.nativeEvent;\n\n if (onVideoFeedLoadFinished) {\n if (name) {\n if (reason) {\n onVideoFeedLoadFinished({ name, reason });\n } else {\n onVideoFeedLoadFinished({ name });\n }\n } else {\n onVideoFeedLoadFinished();\n }\n }\n };\n\n private _onVideoFeedDidStartPictureInPicture = (\n event: NativeSyntheticEvent<any>\n ) => {\n FWLoggerUtil.log(\n `VideoFeed _onVideoFeedDidStartPictureInPicture ${JSON.stringify(\n event.nativeEvent\n )}`\n );\n const { onVideoFeedDidStartPictureInPicture } = this.props;\n\n const { name, reason } = event.nativeEvent;\n\n if (onVideoFeedDidStartPictureInPicture) {\n if (name) {\n if (reason) {\n onVideoFeedDidStartPictureInPicture({ name, reason });\n } else {\n onVideoFeedDidStartPictureInPicture({ name });\n }\n } else {\n onVideoFeedDidStartPictureInPicture();\n }\n }\n };\n\n private _onVideoFeedDidStopPictureInPicture = (\n event: NativeSyntheticEvent<any>\n ) => {\n FWLoggerUtil.log(\n `VideoFeed _onVideoFeedDidStopPictureInPicture ${JSON.stringify(\n event.nativeEvent\n )}`\n );\n const { onVideoFeedDidStopPictureInPicture } = this.props;\n\n const { name, reason } = event.nativeEvent;\n\n if (onVideoFeedDidStopPictureInPicture) {\n if (name) {\n if (reason) {\n onVideoFeedDidStopPictureInPicture({ name, reason });\n } else {\n onVideoFeedDidStopPictureInPicture({ name });\n }\n } else {\n onVideoFeedDidStopPictureInPicture();\n }\n }\n };\n\n /**\n * @ignore\n */\n componentDidMount() {\n FWLoggerUtil.log(\n `VideoFeed componentDidMount ${JSON.stringify(this.props)}`\n );\n\n if (!this.state.sdkInitCalled) {\n FWGlobalState.getInstance().sdkInitCalledPromise.then(() => {\n this.setState({ sdkInitCalled: true });\n });\n }\n\n const subscriptionOfShareBaseURLUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.ShareBaseURLUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.ShareBaseURLUpdated');\n this.setState({});\n }\n );\n this._subscriptions.push(subscriptionOfShareBaseURLUpdated);\n\n const subscriptionOfAdBadgeConfigurationUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.AdBadgeConfigurationUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.AdBadgeConfigurationUpdated');\n this.setState({});\n }\n );\n this._subscriptions.push(subscriptionOfAdBadgeConfigurationUpdated);\n\n const subscriptionOfVideoLaunchBehaviorUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.VideoLaunchBehaviorUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.VideoLaunchBehaviorUpdated');\n this.setState({});\n }\n );\n this._subscriptions.push(subscriptionOfVideoLaunchBehaviorUpdated);\n\n if (Platform.OS === 'ios') {\n const subscriptionOfAppLanguageUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.AppLanguageUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.AppLanguageUpdated');\n this.setState({});\n }\n );\n this._subscriptions.push(subscriptionOfAppLanguageUpdated);\n }\n }\n\n /**\n * @ignore\n */\n componentWillUnmount() {\n FWLoggerUtil.log(\n `VideoFeed componentWillUnmount ${JSON.stringify(this.props)}`\n );\n\n this._subscriptions.forEach((value) => {\n value.remove();\n });\n\n this._subscriptions = [];\n }\n\n /**\n * @ignore\n */\n render() {\n FWLoggerUtil.log(\n `VideoFeed render props ${JSON.stringify(\n this.props\n )} state ${JSON.stringify(this.state)}`\n );\n\n if (!this.state.sdkInitCalled) {\n return null;\n }\n\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?.toString();\n const androidFontTypefaceNameOfAdBadge =\n adBadgeConfiguration?.androidFontInfo?.typefaceName;\n\n const {\n source,\n channel,\n playlist,\n playlistGroup,\n hashtagFilterExpression,\n productIds,\n contentId,\n mode,\n enablePictureInPicture,\n adConfiguration,\n } = this.props;\n const dynamicContentParametersString =\n this._generateDynamicContentParametersString();\n\n const videoFeedConfiguration = this._getVideoFeedConfiguration();\n const cornerRadius = videoFeedConfiguration?.cornerRadius?.toFixed(5);\n\n const titleHidden = videoFeedConfiguration?.title?.hidden?.toString();\n const titleTextColor = videoFeedConfiguration?.title?.textColor;\n const titleFontSize = videoFeedConfiguration?.title?.fontSize?.toFixed(5);\n const titleAndroidFontInfo = videoFeedConfiguration?.title?.androidFontInfo;\n const titleGradientDrawable =\n videoFeedConfiguration?.title?.gradientDrawable;\n const titlePosition = videoFeedConfiguration?.titlePosition;\n const playIconHidden = videoFeedConfiguration?.playIcon?.hidden;\n const playIconWidth =\n videoFeedConfiguration?.playIcon?.iconWidth?.toFixed(5);\n const showAdBadge = videoFeedConfiguration?.showAdBadge?.toString();\n const enableAutoplay = videoFeedConfiguration?.enableAutoplay;\n const gridColumns = videoFeedConfiguration?.gridColumns?.toFixed(5);\n const itemSpacing = videoFeedConfiguration?.itemSpacing?.toFixed(5);\n\n const videoPlayerConfiguration = this._getVideoPlayerConfiguration();\n const playerStyle = videoPlayerConfiguration?.playerStyle;\n const videoCompleteAction = videoPlayerConfiguration?.videoCompleteAction;\n const showShareButton = videoPlayerConfiguration?.showShareButton;\n const showPlaybackButton = videoPlayerConfiguration?.showPlaybackButton;\n const showMuteButton = videoPlayerConfiguration?.showMuteButton;\n const showBranding = videoPlayerConfiguration?.showBranding;\n const ctaDelayType = videoPlayerConfiguration?.ctaDelay?.type;\n const ctaDelayValue = videoPlayerConfiguration?.ctaDelay?.value?.toFixed(5);\n const ctaHighlightDelayType =\n videoPlayerConfiguration?.ctaHighlightDelay?.type;\n const ctaHighlightDelayValue =\n videoPlayerConfiguration?.ctaHighlightDelay?.value?.toFixed(5);\n const shareBaseURL = videoPlayerConfiguration?.shareBaseURL;\n const ctaWidth = videoPlayerConfiguration?.ctaWidth;\n const buttonConfiguration = videoPlayerConfiguration?.buttonConfiguration;\n const showVideoDetailTitle = videoPlayerConfiguration?.showVideoDetailTitle;\n const requiresAds = adConfiguration?.requiresAds;\n const adsFetchTimeout = adConfiguration?.adsFetchTimeout;\n const vastAttributesString = this._generateVastAttributesString();\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 += `_playlistGroup:${playlistGroup}`;\n key += `_dynamicContentParameters:${dynamicContentParametersString}`;\n key += `_hashtagFilterExpression:${hashtagFilterExpression}`;\n key += `_productIds:${productIds?.join(',')}`;\n key += `_contentId:${contentId}`;\n key += `_mode:${mode}`;\n key += `_enablePictureInPicture:${enablePictureInPicture}`;\n\n key += `_titleHidden:${titleHidden}`;\n if (Platform.OS === 'android') {\n key += `_cornerRadius:${cornerRadius}`;\n key += `_titleTextColor:${titleTextColor}`;\n key += `_titleFontSize:${titleFontSize}`;\n key += `_titleAndroidFontInfo.isCustom:${titleAndroidFontInfo?.isCustom}`;\n key += `_titleAndroidFontInfo.typefaceName:${titleAndroidFontInfo?.typefaceName}`;\n key += `_titleGradientDrawable.orientation:${titleGradientDrawable?.orientation}`;\n key += `_titleGradientDrawable.colors:${titleGradientDrawable?.colors?.join(\n ','\n )}`;\n key += `_playIconHidden:${playIconHidden}`;\n key += `_playIconWidth:${playIconWidth}`;\n key += `_showAdBadge:${showAdBadge}`;\n }\n\n key += `_titlePosition:${titlePosition}`;\n key += `_enableAutoplay:${enableAutoplay}`;\n key += `_gridColumns:${gridColumns}`;\n key += `_itemSpacing:${itemSpacing}`;\n\n key += `_shareBaseURL:${shareBaseURL}`;\n if (Platform.OS === 'android') {\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:${this._generateButtonInfoString(\n buttonConfiguration?.videoDetailButton\n )}`;\n key += `_buttonConfiguration.closeButton:${this._generateButtonInfoString(\n buttonConfiguration?.closeButton\n )}`;\n key += `_buttonConfiguration.muteButton:${this._generateButtonInfoString(\n buttonConfiguration?.muteButton\n )}`;\n key += `_buttonConfiguration.unmuteButton:${this._generateButtonInfoString(\n buttonConfiguration?.unmuteButton\n )}`;\n key += `_buttonConfiguration.playButton:${this._generateButtonInfoString(\n buttonConfiguration?.playButton\n )}`;\n key += `_buttonConfiguration.pauseButton:${this._generateButtonInfoString(\n buttonConfiguration?.pauseButton\n )}`;\n key += `_showVideoDetailTitle:${showVideoDetailTitle}`;\n }\n // key += `_videoPlayerLogoConfiguration.option:${videoPlayerLogoConfigurationOption}`;\n // key += `_videoPlayerLogoConfiguration.encodeId:${videoPlayerLogoConfigurationEncodeId}`;\n\n key += `_requiresAds:${requiresAds}`;\n key += `_adsFetchTimeout:${adsFetchTimeout}`;\n key += `_vastAttributes:${vastAttributesString}`;\n\n return (\n <FWVideoFeed\n key={key}\n {...this.props}\n enablePictureInPicture={undefined}\n videoFeedConfiguration={videoFeedConfiguration}\n videoPlayerConfiguration={videoPlayerConfiguration}\n ref={this._nativeComponentRef}\n onVideoFeedLoadFinished={this._onVideoFeedLoadFinished}\n onVideoFeedDidStartPictureInPicture={\n this._onVideoFeedDidStartPictureInPicture\n }\n onVideoFeedDidStopPictureInPicture={\n this._onVideoFeedDidStopPictureInPicture\n }\n mode={mode ?? 'row'}\n />\n );\n }\n\n private _generateDynamicContentParametersString(): string {\n const { dynamicContentParameters } = this.props;\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 private _generateVastAttributesString(): string | undefined {\n const { adConfiguration } = this.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 private _generateButtonInfoString(buttonInfo?: ButtonInfo): string {\n return `imageName:${buttonInfo?.imageName}_systemImageName:${buttonInfo?.systemImageName}_tintColor:${buttonInfo?.tintColor}`;\n }\n\n private _getVideoFeedConfiguration(): VideoFeedConfiguration | undefined {\n const { videoFeedConfiguration } = this.props;\n if (!videoFeedConfiguration) {\n return videoFeedConfiguration;\n }\n\n let resultVideoFeedConfiguration = videoFeedConfiguration;\n\n if (\n resultVideoFeedConfiguration.gridColumns &&\n Math.floor(resultVideoFeedConfiguration.gridColumns) !==\n resultVideoFeedConfiguration.gridColumns\n ) {\n const gridColumns = Math.floor(resultVideoFeedConfiguration.gridColumns);\n resultVideoFeedConfiguration = {\n ...resultVideoFeedConfiguration,\n gridColumns,\n };\n }\n\n if (\n resultVideoFeedConfiguration.title &&\n resultVideoFeedConfiguration.title.numberOfLines &&\n Math.floor(resultVideoFeedConfiguration.title.numberOfLines) !==\n resultVideoFeedConfiguration.title.numberOfLines\n ) {\n const numberOfLines = Math.floor(\n resultVideoFeedConfiguration.title.numberOfLines\n );\n resultVideoFeedConfiguration = {\n ...resultVideoFeedConfiguration,\n title: {\n ...resultVideoFeedConfiguration.title,\n numberOfLines,\n },\n };\n }\n\n return resultVideoFeedConfiguration;\n }\n\n private _getVideoPlayerConfiguration():\n | VideoPlayerNativeConfiguration\n | undefined {\n const { videoPlayerConfiguration, enablePictureInPicture } = this.props;\n\n let resultVideoPlayerConfiguration:\n | VideoPlayerNativeConfiguration\n | undefined = videoPlayerConfiguration;\n if (typeof enablePictureInPicture === 'boolean') {\n if (!resultVideoPlayerConfiguration) {\n resultVideoPlayerConfiguration = {};\n }\n resultVideoPlayerConfiguration = {\n ...resultVideoPlayerConfiguration,\n enablePictureInPicture,\n };\n }\n\n return resultVideoPlayerConfiguration;\n }\n}\n\nexport default VideoFeed;\n"]}
|
|
1
|
+
{"version":3,"sources":["VideoFeed.tsx"],"names":["React","findNodeHandle","Platform","UIManager","FireworkSDK","FWEventName","FireworkSDKModuleEventEmitter","FWGlobalState","FWLoggerUtil","FWVideoFeed","NativeComponentName","VideoFeed","Component","constructor","props","createRef","log","JSON","stringify","nativeNodeHandle","_nativeComponentRef","current","commandId","getViewManagerConfig","Commands","refresh","OS","toString","dispatchViewManagerCommand","event","nativeEvent","onVideoFeedLoadFinished","name","reason","onVideoFeedDidStartPictureInPicture","onVideoFeedDidStopPictureInPicture","state","sdkInitCalled","getInstance","componentDidMount","sdkInitCalledPromise","then","setState","subscriptionOfShareBaseURLUpdated","addListener","ShareBaseURLUpdated","_subscriptions","push","subscriptionOfAdBadgeConfigurationUpdated","AdBadgeConfigurationUpdated","subscriptionOfVideoLaunchBehaviorUpdated","VideoLaunchBehaviorUpdated","subscriptionOfAppLanguageUpdated","AppLanguageUpdated","componentWillUnmount","forEach","value","remove","render","gShareBaseURL","shareBaseURL","appLanguage","videoLaunchBehavior","adBadgeConfiguration","adBadgeTextType","badgeTextType","backgroundColorOfAdBadge","backgroundColor","textColorOfAdBadge","textColor","androidFontIsCustomOfAdBadge","androidFontInfo","isCustom","androidFontTypefaceNameOfAdBadge","typefaceName","source","channel","playlist","playlistGroup","hashtagFilterExpression","productIds","contentId","mode","enablePictureInPicture","adConfiguration","dynamicContentParametersString","_generateDynamicContentParametersString","videoFeedConfiguration","_getVideoFeedConfiguration","cornerRadius","toFixed","titleHidden","title","hidden","titleTextColor","titleFontSize","fontSize","titleAndroidFontInfo","titleGradientDrawable","gradientDrawable","titlePosition","playIconHidden","playIcon","playIconWidth","iconWidth","showAdBadge","enableAutoplay","gridColumns","itemSpacing","videoPlayerConfiguration","_getVideoPlayerConfiguration","playerStyle","videoCompleteAction","showShareButton","showPlaybackButton","showMuteButton","showBranding","ctaDelayType","ctaDelay","type","ctaDelayValue","ctaHighlightDelayType","ctaHighlightDelay","ctaHighlightDelayValue","ctaWidth","buttonConfiguration","showVideoDetailTitle","requiresAds","adsFetchTimeout","vastAttributesString","_generateVastAttributesString","key","join","orientation","colors","_generateButtonInfoString","videoDetailButton","closeButton","muteButton","unmuteButton","playButton","pauseButton","undefined","_onVideoFeedLoadFinished","_onVideoFeedDidStartPictureInPicture","_onVideoFeedDidStopPictureInPicture","dynamicContentParameters","resultString","sortedKeyList","Object","keys","sort","valueString","length","vastAttributes","attribute","buttonInfo","imageName","systemImageName","tintColor","resultVideoFeedConfiguration","Math","floor","numberOfLines","resultVideoPlayerConfiguration"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport {\n EmitterSubscription,\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 VideoFeedConfiguration from '../models/VideoFeedConfiguration';\nimport type { VideoFeedSource } from '../models/VideoFeedSource';\nimport type VideoPlayerConfiguration from '../models/VideoPlayerConfiguration';\nimport { FireworkSDKModuleEventEmitter } from '../modules/FireworkSDKModule';\nimport FWGlobalState from '../utils/FWGlobalState';\nimport FWLoggerUtil from '../utils/FWLoggerUtil';\nimport FWVideoFeed from './FWVideoFeed';\nimport type VideoPlayerNativeConfiguration from '../models/VideoPlayerNativeConfiguration';\nimport type ButtonInfo from '../models/ButtonInfo';\n\nexport type VideoFeedMode = 'row' | 'column' | 'grid';\n\n/**\n * The props of VideoFeed component.\n */\nexport interface IVideoFeedProps {\n /**\n * Standard React Native View Style.\n */\n style?: StyleProp<ViewStyle>;\n /**\n * One of five available video feed sources.The playlistGroup is only supported on iOS.\n * Defaults to discover.\n */\n source: VideoFeedSource;\n /**\n * Channel id of the feed. Required when the source is set as channel or playlist or dynamicContent.\n */\n channel?: string;\n /**\n * Playlist id of the feed. Please note channel id is necessary. Required when the source is set as playlist.\n */\n playlist?: string;\n /**\n * PlaylistGroup id of the feed. Required when the source is set as playlistGroup. Only supported on iOS.\n */\n playlistGroup?: string;\n /**\n * The dynamic content parameters of the feed. 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 * Required when the source is set as hashtagPlaylist.\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. Only supported on iOS.\n */\n contentId?: string;\n /**\n * One of three available display modes. Defaults to row.\n */\n mode?: VideoFeedMode;\n /**\n * Specifies if Picture in Picture is enabled.\n */\n enablePictureInPicture?: boolean;\n /**\n * Configuration of the feed.\n */\n videoFeedConfiguration?: VideoFeedConfiguration;\n /**\n * Configuration of the player.\n */\n videoPlayerConfiguration?: VideoPlayerConfiguration;\n /**\n * Ad configuration of the feed. Only supported on iOS.\n */\n adConfiguration?: AdConfiguration;\n /**\n * The feed loading result callback. It means loading successfully when error equals to undefined.\n */\n onVideoFeedLoadFinished?: (error?: FWError) => void;\n /**\n * Start Picture in Picture callback. Only supported on iOS.\n */\n onVideoFeedDidStartPictureInPicture?: (error?: FWError) => void;\n /**\n * Stop Picture in Picture callback. Only supported on iOS.\n */\n onVideoFeedDidStopPictureInPicture?: (error?: FWError) => void;\n}\n\ninterface IVideoFeedState {\n sdkInitCalled: boolean;\n}\n\nconst NativeComponentName = 'FWVideoFeed';\n\n/**\n * VideoFeed component.\n */\nclass VideoFeed extends React.Component<IVideoFeedProps, IVideoFeedState> {\n /**\n * @ignore\n */\n static defaultProps = {\n mode: 'row',\n };\n\n private _nativeComponentRef = React.createRef<any>();\n\n private _subscriptions: EmitterSubscription[] = [];\n\n constructor(props: IVideoFeedProps) {\n super(props);\n this.state = {\n sdkInitCalled: FWGlobalState.getInstance().sdkInitCalled,\n };\n }\n\n public refresh = () => {\n FWLoggerUtil.log(`VideoFeed refresh ${JSON.stringify(this.props)}`);\n\n const nativeNodeHandle = findNodeHandle(this._nativeComponentRef.current);\n\n let commandId: string | number =\n UIManager.getViewManagerConfig(NativeComponentName).Commands.refresh;\n if (Platform.OS === 'android') {\n commandId = commandId.toString();\n }\n\n UIManager.dispatchViewManagerCommand(\n findNodeHandle(nativeNodeHandle),\n commandId,\n []\n );\n };\n\n private _onVideoFeedLoadFinished = (event: NativeSyntheticEvent<any>) => {\n FWLoggerUtil.log(\n `VideoFeed _onVideoFeedLoadFinished ${JSON.stringify(event.nativeEvent)}`\n );\n const { onVideoFeedLoadFinished } = this.props;\n\n const { name, reason } = event.nativeEvent;\n\n if (onVideoFeedLoadFinished) {\n if (name) {\n if (reason) {\n onVideoFeedLoadFinished({ name, reason });\n } else {\n onVideoFeedLoadFinished({ name });\n }\n } else {\n onVideoFeedLoadFinished();\n }\n }\n };\n\n private _onVideoFeedDidStartPictureInPicture = (\n event: NativeSyntheticEvent<any>\n ) => {\n FWLoggerUtil.log(\n `VideoFeed _onVideoFeedDidStartPictureInPicture ${JSON.stringify(\n event.nativeEvent\n )}`\n );\n const { onVideoFeedDidStartPictureInPicture } = this.props;\n\n const { name, reason } = event.nativeEvent;\n\n if (onVideoFeedDidStartPictureInPicture) {\n if (name) {\n if (reason) {\n onVideoFeedDidStartPictureInPicture({ name, reason });\n } else {\n onVideoFeedDidStartPictureInPicture({ name });\n }\n } else {\n onVideoFeedDidStartPictureInPicture();\n }\n }\n };\n\n private _onVideoFeedDidStopPictureInPicture = (\n event: NativeSyntheticEvent<any>\n ) => {\n FWLoggerUtil.log(\n `VideoFeed _onVideoFeedDidStopPictureInPicture ${JSON.stringify(\n event.nativeEvent\n )}`\n );\n const { onVideoFeedDidStopPictureInPicture } = this.props;\n\n const { name, reason } = event.nativeEvent;\n\n if (onVideoFeedDidStopPictureInPicture) {\n if (name) {\n if (reason) {\n onVideoFeedDidStopPictureInPicture({ name, reason });\n } else {\n onVideoFeedDidStopPictureInPicture({ name });\n }\n } else {\n onVideoFeedDidStopPictureInPicture();\n }\n }\n };\n\n /**\n * @ignore\n */\n componentDidMount() {\n FWLoggerUtil.log(\n `VideoFeed componentDidMount ${JSON.stringify(this.props)}`\n );\n\n if (!this.state.sdkInitCalled) {\n FWGlobalState.getInstance().sdkInitCalledPromise.then(() => {\n this.setState({ sdkInitCalled: true });\n });\n }\n\n const subscriptionOfShareBaseURLUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.ShareBaseURLUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.ShareBaseURLUpdated');\n this.setState({});\n }\n );\n this._subscriptions.push(subscriptionOfShareBaseURLUpdated);\n\n const subscriptionOfAdBadgeConfigurationUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.AdBadgeConfigurationUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.AdBadgeConfigurationUpdated');\n this.setState({});\n }\n );\n this._subscriptions.push(subscriptionOfAdBadgeConfigurationUpdated);\n\n const subscriptionOfVideoLaunchBehaviorUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.VideoLaunchBehaviorUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.VideoLaunchBehaviorUpdated');\n this.setState({});\n }\n );\n this._subscriptions.push(subscriptionOfVideoLaunchBehaviorUpdated);\n\n const subscriptionOfAppLanguageUpdated =\n FireworkSDKModuleEventEmitter.addListener(\n FWEventName.AppLanguageUpdated,\n () => {\n FWLoggerUtil.log('Receive FWEventName.AppLanguageUpdated');\n this.setState({});\n }\n );\n this._subscriptions.push(subscriptionOfAppLanguageUpdated);\n }\n\n /**\n * @ignore\n */\n componentWillUnmount() {\n FWLoggerUtil.log(\n `VideoFeed componentWillUnmount ${JSON.stringify(this.props)}`\n );\n\n this._subscriptions.forEach((value) => {\n value.remove();\n });\n\n this._subscriptions = [];\n }\n\n /**\n * @ignore\n */\n render() {\n FWLoggerUtil.log(\n `VideoFeed render props ${JSON.stringify(\n this.props\n )} state ${JSON.stringify(this.state)}`\n );\n\n if (!this.state.sdkInitCalled) {\n return null;\n }\n\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?.toString();\n const androidFontTypefaceNameOfAdBadge =\n adBadgeConfiguration?.androidFontInfo?.typefaceName;\n\n const {\n source,\n channel,\n playlist,\n playlistGroup,\n hashtagFilterExpression,\n productIds,\n contentId,\n mode,\n enablePictureInPicture,\n adConfiguration,\n } = this.props;\n const dynamicContentParametersString =\n this._generateDynamicContentParametersString();\n\n const videoFeedConfiguration = this._getVideoFeedConfiguration();\n const cornerRadius = videoFeedConfiguration?.cornerRadius?.toFixed(5);\n\n const titleHidden = videoFeedConfiguration?.title?.hidden?.toString();\n const titleTextColor = videoFeedConfiguration?.title?.textColor;\n const titleFontSize = videoFeedConfiguration?.title?.fontSize?.toFixed(5);\n const titleAndroidFontInfo = videoFeedConfiguration?.title?.androidFontInfo;\n const titleGradientDrawable =\n videoFeedConfiguration?.title?.gradientDrawable;\n const titlePosition = videoFeedConfiguration?.titlePosition;\n const playIconHidden = videoFeedConfiguration?.playIcon?.hidden;\n const playIconWidth =\n videoFeedConfiguration?.playIcon?.iconWidth?.toFixed(5);\n const showAdBadge = videoFeedConfiguration?.showAdBadge?.toString();\n const enableAutoplay = videoFeedConfiguration?.enableAutoplay;\n const gridColumns = videoFeedConfiguration?.gridColumns?.toFixed(5);\n const itemSpacing = videoFeedConfiguration?.itemSpacing?.toFixed(5);\n\n const videoPlayerConfiguration = this._getVideoPlayerConfiguration();\n const playerStyle = videoPlayerConfiguration?.playerStyle;\n const videoCompleteAction = videoPlayerConfiguration?.videoCompleteAction;\n const showShareButton = videoPlayerConfiguration?.showShareButton;\n const showPlaybackButton = videoPlayerConfiguration?.showPlaybackButton;\n const showMuteButton = videoPlayerConfiguration?.showMuteButton;\n const showBranding = videoPlayerConfiguration?.showBranding;\n const ctaDelayType = videoPlayerConfiguration?.ctaDelay?.type;\n const ctaDelayValue = videoPlayerConfiguration?.ctaDelay?.value?.toFixed(5);\n const ctaHighlightDelayType =\n videoPlayerConfiguration?.ctaHighlightDelay?.type;\n const ctaHighlightDelayValue =\n videoPlayerConfiguration?.ctaHighlightDelay?.value?.toFixed(5);\n const shareBaseURL = videoPlayerConfiguration?.shareBaseURL;\n const ctaWidth = videoPlayerConfiguration?.ctaWidth;\n const buttonConfiguration = videoPlayerConfiguration?.buttonConfiguration;\n const showVideoDetailTitle = videoPlayerConfiguration?.showVideoDetailTitle;\n const requiresAds = adConfiguration?.requiresAds;\n const adsFetchTimeout = adConfiguration?.adsFetchTimeout;\n const vastAttributesString = this._generateVastAttributesString();\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 += `_playlistGroup:${playlistGroup}`;\n key += `_dynamicContentParameters:${dynamicContentParametersString}`;\n key += `_hashtagFilterExpression:${hashtagFilterExpression}`;\n key += `_productIds:${productIds?.join(',')}`;\n key += `_contentId:${contentId}`;\n key += `_mode:${mode}`;\n key += `_enablePictureInPicture:${enablePictureInPicture}`;\n\n key += `_titleHidden:${titleHidden}`;\n if (Platform.OS === 'android') {\n key += `_cornerRadius:${cornerRadius}`;\n key += `_titleTextColor:${titleTextColor}`;\n key += `_titleFontSize:${titleFontSize}`;\n key += `_titleAndroidFontInfo.isCustom:${titleAndroidFontInfo?.isCustom}`;\n key += `_titleAndroidFontInfo.typefaceName:${titleAndroidFontInfo?.typefaceName}`;\n key += `_titleGradientDrawable.orientation:${titleGradientDrawable?.orientation}`;\n key += `_titleGradientDrawable.colors:${titleGradientDrawable?.colors?.join(\n ','\n )}`;\n key += `_playIconHidden:${playIconHidden}`;\n key += `_playIconWidth:${playIconWidth}`;\n key += `_showAdBadge:${showAdBadge}`;\n }\n\n key += `_titlePosition:${titlePosition}`;\n key += `_enableAutoplay:${enableAutoplay}`;\n key += `_gridColumns:${gridColumns}`;\n key += `_itemSpacing:${itemSpacing}`;\n\n key += `_shareBaseURL:${shareBaseURL}`;\n if (Platform.OS === 'android') {\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:${this._generateButtonInfoString(\n buttonConfiguration?.videoDetailButton\n )}`;\n key += `_buttonConfiguration.closeButton:${this._generateButtonInfoString(\n buttonConfiguration?.closeButton\n )}`;\n key += `_buttonConfiguration.muteButton:${this._generateButtonInfoString(\n buttonConfiguration?.muteButton\n )}`;\n key += `_buttonConfiguration.unmuteButton:${this._generateButtonInfoString(\n buttonConfiguration?.unmuteButton\n )}`;\n key += `_buttonConfiguration.playButton:${this._generateButtonInfoString(\n buttonConfiguration?.playButton\n )}`;\n key += `_buttonConfiguration.pauseButton:${this._generateButtonInfoString(\n buttonConfiguration?.pauseButton\n )}`;\n key += `_showVideoDetailTitle:${showVideoDetailTitle}`;\n }\n\n key += `_requiresAds:${requiresAds}`;\n key += `_adsFetchTimeout:${adsFetchTimeout}`;\n key += `_vastAttributes:${vastAttributesString}`;\n\n return (\n <FWVideoFeed\n key={key}\n {...this.props}\n enablePictureInPicture={undefined}\n videoFeedConfiguration={videoFeedConfiguration}\n videoPlayerConfiguration={videoPlayerConfiguration}\n ref={this._nativeComponentRef}\n onVideoFeedLoadFinished={this._onVideoFeedLoadFinished}\n onVideoFeedDidStartPictureInPicture={\n this._onVideoFeedDidStartPictureInPicture\n }\n onVideoFeedDidStopPictureInPicture={\n this._onVideoFeedDidStopPictureInPicture\n }\n mode={mode ?? 'row'}\n />\n );\n }\n\n private _generateDynamicContentParametersString(): string {\n const { dynamicContentParameters } = this.props;\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 private _generateVastAttributesString(): string | undefined {\n const { adConfiguration } = this.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 private _generateButtonInfoString(buttonInfo?: ButtonInfo): string {\n return `imageName:${buttonInfo?.imageName}_systemImageName:${buttonInfo?.systemImageName}_tintColor:${buttonInfo?.tintColor}`;\n }\n\n private _getVideoFeedConfiguration(): VideoFeedConfiguration | undefined {\n const { videoFeedConfiguration } = this.props;\n if (!videoFeedConfiguration) {\n return videoFeedConfiguration;\n }\n\n let resultVideoFeedConfiguration = videoFeedConfiguration;\n\n if (\n resultVideoFeedConfiguration.gridColumns &&\n Math.floor(resultVideoFeedConfiguration.gridColumns) !==\n resultVideoFeedConfiguration.gridColumns\n ) {\n const gridColumns = Math.floor(resultVideoFeedConfiguration.gridColumns);\n resultVideoFeedConfiguration = {\n ...resultVideoFeedConfiguration,\n gridColumns,\n };\n }\n\n if (\n resultVideoFeedConfiguration.title &&\n resultVideoFeedConfiguration.title.numberOfLines &&\n Math.floor(resultVideoFeedConfiguration.title.numberOfLines) !==\n resultVideoFeedConfiguration.title.numberOfLines\n ) {\n const numberOfLines = Math.floor(\n resultVideoFeedConfiguration.title.numberOfLines\n );\n resultVideoFeedConfiguration = {\n ...resultVideoFeedConfiguration,\n title: {\n ...resultVideoFeedConfiguration.title,\n numberOfLines,\n },\n };\n }\n\n return resultVideoFeedConfiguration;\n }\n\n private _getVideoPlayerConfiguration():\n | VideoPlayerNativeConfiguration\n | undefined {\n const { videoPlayerConfiguration, enablePictureInPicture } = this.props;\n\n let resultVideoPlayerConfiguration:\n | VideoPlayerNativeConfiguration\n | undefined = videoPlayerConfiguration;\n if (typeof enablePictureInPicture === 'boolean') {\n if (!resultVideoPlayerConfiguration) {\n resultVideoPlayerConfiguration = {};\n }\n resultVideoPlayerConfiguration = {\n ...resultVideoPlayerConfiguration,\n enablePictureInPicture,\n };\n }\n\n return resultVideoPlayerConfiguration;\n }\n}\n\nexport default VideoFeed;\n"]}
|
|
@@ -19,5 +19,6 @@ export let FWEventName;
|
|
|
19
19
|
FWEventName["LogMessage"] = "fw:log-message";
|
|
20
20
|
FWEventName["CustomLinkButtonClick"] = "fw:shopping:custom-link-button-click";
|
|
21
21
|
FWEventName["CustomProductCardTap"] = "fw:shopping:custom-product-card-tap";
|
|
22
|
+
FWEventName["ProductInfoViewConfigurationUpdated"] = "fw:product-info-view-configuration-updated";
|
|
22
23
|
})(FWEventName || (FWEventName = {}));
|
|
23
24
|
//# sourceMappingURL=FWEventName.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FWEventName.ts"],"names":["FWEventName"],"mappings":"AAAA,WAAYA,WAAZ;;WAAYA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,KAAAA,W","sourcesContent":["export enum FWEventName {\n SDKInit = 'fw:sdk-init',\n CustomCTAClick = 'fw:custom-cta-click',\n VideoPlayback = 'fw:video-playback',\n VideoFeedClick = 'fw:video-feed-click',\n AddToCart = 'fw:shopping:add-to-cart',\n ShoppingCTAButtonClick = 'fw:shopping:cta-button-click',\n ClickCartIcon = 'fw:shopping:click-cart-icon',\n UpdateProductDetails = 'fw:shopping:update-product-details',\n LiveStream = 'fw:livestream',\n LiveStreamChat = 'fw:livestream-chat',\n ShareBaseURLUpdated = 'fw:share-base-url-updated',\n VideoLaunchBehaviorUpdated = 'fw:video-launch-behavior-updated',\n AdBadgeConfigurationUpdated = 'fw:ad-badge-configuration-updated',\n AppLanguageUpdated = 'fw:app-language-updated',\n NativeAppLanguageUpdated = 'fw:native-app-language-updated',\n LogMessage = 'fw:log-message',\n CustomLinkButtonClick = 'fw:shopping:custom-link-button-click',\n CustomProductCardTap = 'fw:shopping:custom-product-card-tap',\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["FWEventName.ts"],"names":["FWEventName"],"mappings":"AAAA,WAAYA,WAAZ;;WAAYA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,KAAAA,W","sourcesContent":["export enum FWEventName {\n SDKInit = 'fw:sdk-init',\n CustomCTAClick = 'fw:custom-cta-click',\n VideoPlayback = 'fw:video-playback',\n VideoFeedClick = 'fw:video-feed-click',\n AddToCart = 'fw:shopping:add-to-cart',\n ShoppingCTAButtonClick = 'fw:shopping:cta-button-click',\n ClickCartIcon = 'fw:shopping:click-cart-icon',\n UpdateProductDetails = 'fw:shopping:update-product-details',\n LiveStream = 'fw:livestream',\n LiveStreamChat = 'fw:livestream-chat',\n ShareBaseURLUpdated = 'fw:share-base-url-updated',\n VideoLaunchBehaviorUpdated = 'fw:video-launch-behavior-updated',\n AdBadgeConfigurationUpdated = 'fw:ad-badge-configuration-updated',\n AppLanguageUpdated = 'fw:app-language-updated',\n NativeAppLanguageUpdated = 'fw:native-app-language-updated',\n LogMessage = 'fw:log-message',\n CustomLinkButtonClick = 'fw:shopping:custom-link-button-click',\n CustomProductCardTap = 'fw:shopping:custom-product-card-tap',\n ProductInfoViewConfigurationUpdated = 'fw:product-info-view-configuration-updated',\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ShoppingModule.ts"],"names":["NativeEventEmitter","NativeModules","LINKING_ERROR","ShoppingModule","Proxy","get","Error","ShoppingModuleEventEmitter"],"mappings":"AAAA,SAASA,kBAAT,EAA2CC,aAA3C,QAAgE,cAAhE;AAEA,SAASC,aAAT,QAA8B,6BAA9B;AAKA,MAAMC,cAAc,GAAGF,aAAa,CAACE,cAAd,GACnBF,aAAa,CAACE,cADK,GAEnB,IAAIC,KAAJ,CACE,EADF,EAEE;AACEC,EAAAA,GAAG,GAAG;AACJ,UAAM,IAAIC,KAAJ,CAAUJ,aAAV,CAAN;AACD;;AAHH,CAFF,CAFJ;
|
|
1
|
+
{"version":3,"sources":["ShoppingModule.ts"],"names":["NativeEventEmitter","NativeModules","LINKING_ERROR","ShoppingModule","Proxy","get","Error","ShoppingModuleEventEmitter"],"mappings":"AAAA,SAASA,kBAAT,EAA2CC,aAA3C,QAAgE,cAAhE;AAEA,SAASC,aAAT,QAA8B,6BAA9B;AAKA,MAAMC,cAAc,GAAGF,aAAa,CAACE,cAAd,GACnBF,aAAa,CAACE,cADK,GAEnB,IAAIC,KAAJ,CACE,EADF,EAEE;AACEC,EAAAA,GAAG,GAAG;AACJ,UAAM,IAAIC,KAAJ,CAAUJ,aAAV,CAAN;AACD;;AAHH,CAFF,CAFJ;AA8BA,MAAMK,0BAA0B,GAAG,IAAIP,kBAAJ,CAAuBG,cAAvB,CAAnC;AACA,SAASI,0BAAT;AAEA,eAAeJ,cAAf","sourcesContent":["import { NativeEventEmitter, NativeModule, NativeModules } from 'react-native';\n\nimport { LINKING_ERROR } from '../constants/FWErrorMessage';\nimport type Product from '../models/Product';\nimport type ProductInfoViewConfiguration from '../models/ProductInfoViewConfiguration';\nimport type ShoppingCTAResult from '../models/ShoppingCTAResult';\n\nconst ShoppingModule = NativeModules.ShoppingModule\n ? NativeModules.ShoppingModule\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\ninterface IShoppingModule extends NativeModule {\n init(): Promise<any>;\n updateVideoProducts(products: Product[], callbackId: number | string): void;\n updateShoppingCTAResult(\n result: ShoppingCTAResult,\n callbackId: number | string\n ): void;\n setCartIconVisible(visible: boolean): void;\n setCartItemCount(count: number): void;\n clearCallbackId(callbackId: number | string, eventName: string): void; // Only supported on iOS\n setProductInfoViewConfiguration(\n config: ProductInfoViewConfiguration\n ): Promise<boolean>;\n setCustomClickLinkButtonEnabled(enabled: boolean): Promise<any>;\n setCustomTapProductCardEnabled(enabled: boolean): Promise<any>; // Only supported on iOS\n pausePlayer(callbackId: number | string): void; // Only supported on iOS\n resumePlayer(callbackId: number | string): void; // Only supported on iOS\n}\n\nconst ShoppingModuleEventEmitter = new NativeEventEmitter(ShoppingModule);\nexport { ShoppingModuleEventEmitter };\n\nexport default ShoppingModule as IShoppingModule;\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
function gennerateJsonKey(obj) {
|
|
2
|
+
if (obj === null || typeof obj !== 'object') {
|
|
3
|
+
return JSON.stringify(obj);
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
if (Array.isArray(obj)) {
|
|
7
|
+
const arrayValues = obj.map(item => gennerateJsonKey(item));
|
|
8
|
+
return `[${arrayValues.join(',')}]`;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const sortedKeys = Object.keys(obj).sort();
|
|
12
|
+
let result = '{';
|
|
13
|
+
|
|
14
|
+
for (const key of sortedKeys) {
|
|
15
|
+
if (result.length > 1) {
|
|
16
|
+
result += ',';
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
result += `"${key}":${gennerateJsonKey(obj[key])}`;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
result += '}';
|
|
23
|
+
return result;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export default gennerateJsonKey;
|
|
27
|
+
//# sourceMappingURL=FWJsonUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["FWJsonUtil.ts"],"names":["gennerateJsonKey","obj","JSON","stringify","Array","isArray","arrayValues","map","item","join","sortedKeys","Object","keys","sort","result","key","length"],"mappings":"AAAA,SAASA,gBAAT,CAA0BC,GAA1B,EAAwD;AACtD,MAAIA,GAAG,KAAK,IAAR,IAAgB,OAAOA,GAAP,KAAe,QAAnC,EAA6C;AAC3C,WAAOC,IAAI,CAACC,SAAL,CAAeF,GAAf,CAAP;AACD;;AAED,MAAIG,KAAK,CAACC,OAAN,CAAcJ,GAAd,CAAJ,EAAwB;AACtB,UAAMK,WAAW,GAAGL,GAAG,CAACM,GAAJ,CAASC,IAAD,IAAUR,gBAAgB,CAACQ,IAAD,CAAlC,CAApB;AACA,WAAQ,IAAGF,WAAW,CAACG,IAAZ,CAAiB,GAAjB,CAAsB,GAAjC;AACD;;AAED,QAAMC,UAAU,GAAGC,MAAM,CAACC,IAAP,CAAYX,GAAZ,EAAiBY,IAAjB,EAAnB;AACA,MAAIC,MAAM,GAAG,GAAb;;AAEA,OAAK,MAAMC,GAAX,IAAkBL,UAAlB,EAA8B;AAC5B,QAAII,MAAM,CAACE,MAAP,GAAgB,CAApB,EAAuB;AACrBF,MAAAA,MAAM,IAAI,GAAV;AACD;;AAEDA,IAAAA,MAAM,IAAK,IAAGC,GAAI,KAAIf,gBAAgB,CAACC,GAAG,CAACc,GAAD,CAAJ,CAAW,EAAjD;AACD;;AAEDD,EAAAA,MAAM,IAAI,GAAV;AACA,SAAOA,MAAP;AACD;;AAED,eAAed,gBAAf","sourcesContent":["function gennerateJsonKey(obj: any): string | undefined {\n if (obj === null || typeof obj !== 'object') {\n return JSON.stringify(obj);\n }\n\n if (Array.isArray(obj)) {\n const arrayValues = obj.map((item) => gennerateJsonKey(item));\n return `[${arrayValues.join(',')}]`;\n }\n\n const sortedKeys = Object.keys(obj).sort();\n let result = '{';\n\n for (const key of sortedKeys) {\n if (result.length > 1) {\n result += ',';\n }\n\n result += `\"${key}\":${gennerateJsonKey(obj[key])}`;\n }\n\n result += '}';\n return result;\n}\n\nexport default gennerateJsonKey;\n"]}
|
|
@@ -64,6 +64,7 @@ declare class VideoShopping {
|
|
|
64
64
|
*/
|
|
65
65
|
get productInfoViewConfiguration(): ProductInfoViewConfiguration | undefined;
|
|
66
66
|
set productInfoViewConfiguration(value: ProductInfoViewConfiguration | undefined);
|
|
67
|
+
private updateNativeProductInfoViewConfiguration;
|
|
67
68
|
private _productInfoViewConfiguration?;
|
|
68
69
|
private get eventEmitter();
|
|
69
70
|
static getInstance(): VideoShopping;
|
|
@@ -16,5 +16,6 @@ export declare enum FWEventName {
|
|
|
16
16
|
NativeAppLanguageUpdated = "fw:native-app-language-updated",
|
|
17
17
|
LogMessage = "fw:log-message",
|
|
18
18
|
CustomLinkButtonClick = "fw:shopping:custom-link-button-click",
|
|
19
|
-
CustomProductCardTap = "fw:shopping:custom-product-card-tap"
|
|
19
|
+
CustomProductCardTap = "fw:shopping:custom-product-card-tap",
|
|
20
|
+
ProductInfoViewConfigurationUpdated = "fw:product-info-view-configuration-updated"
|
|
20
21
|
}
|
|
@@ -9,7 +9,7 @@ interface IShoppingModule extends NativeModule {
|
|
|
9
9
|
setCartIconVisible(visible: boolean): void;
|
|
10
10
|
setCartItemCount(count: number): void;
|
|
11
11
|
clearCallbackId(callbackId: number | string, eventName: string): void;
|
|
12
|
-
setProductInfoViewConfiguration(config: ProductInfoViewConfiguration):
|
|
12
|
+
setProductInfoViewConfiguration(config: ProductInfoViewConfiguration): Promise<boolean>;
|
|
13
13
|
setCustomClickLinkButtonEnabled(enabled: boolean): Promise<any>;
|
|
14
14
|
setCustomTapProductCardEnabled(enabled: boolean): Promise<any>;
|
|
15
15
|
pausePlayer(callbackId: number | string): void;
|
package/package.json
CHANGED
package/src/VideoShopping.ts
CHANGED
|
@@ -138,16 +138,29 @@ class VideoShopping {
|
|
|
138
138
|
public set productInfoViewConfiguration(
|
|
139
139
|
value: ProductInfoViewConfiguration | undefined
|
|
140
140
|
) {
|
|
141
|
+
const valueHasChanged = this._productInfoViewConfiguration !== value;
|
|
141
142
|
this._productInfoViewConfiguration = value;
|
|
142
143
|
if (FWGlobalState.getInstance().sdkInitCalled) {
|
|
143
|
-
|
|
144
|
+
this.updateNativeProductInfoViewConfiguration(value, valueHasChanged);
|
|
144
145
|
} else {
|
|
145
146
|
FWGlobalState.getInstance().sdkInitCalledPromise.then(() => {
|
|
146
|
-
|
|
147
|
+
this.updateNativeProductInfoViewConfiguration(value, valueHasChanged);
|
|
147
148
|
});
|
|
148
149
|
}
|
|
149
150
|
}
|
|
150
151
|
|
|
152
|
+
private updateNativeProductInfoViewConfiguration(
|
|
153
|
+
value: ProductInfoViewConfiguration | undefined,
|
|
154
|
+
valueHasChanged: Boolean
|
|
155
|
+
) {
|
|
156
|
+
ShoppingModule.setProductInfoViewConfiguration(value ?? {}).then(() => {
|
|
157
|
+
if (valueHasChanged) {
|
|
158
|
+
this.eventEmitter.emit(FWEventName.ProductInfoViewConfigurationUpdated);
|
|
159
|
+
FWLoggerUtil.log('eventEmitter ProductInfoViewConfigurationUpdated');
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
|
|
151
164
|
private _productInfoViewConfiguration?:
|
|
152
165
|
| ProductInfoViewConfiguration
|
|
153
166
|
| undefined;
|
|
@@ -30,6 +30,7 @@ import FWGlobalState from '../utils/FWGlobalState';
|
|
|
30
30
|
import FWLoggerUtil from '../utils/FWLoggerUtil';
|
|
31
31
|
import FWStoryBlock from './FWStoryBlock';
|
|
32
32
|
import type ButtonInfo from '../models/ButtonInfo';
|
|
33
|
+
import gennerateJsonKey from '../utils/FWJsonUtil';
|
|
33
34
|
|
|
34
35
|
const NativeComponentName = 'FWStoryBlock';
|
|
35
36
|
|
|
@@ -317,6 +318,9 @@ const StoryBlock: ForwardRefRenderFunction<
|
|
|
317
318
|
const requiresAds = adConfiguration?.requiresAds;
|
|
318
319
|
const adsFetchTimeout = adConfiguration?.adsFetchTimeout;
|
|
319
320
|
const vastAttributesString = generateVastAttributesString();
|
|
321
|
+
const productInfoViewConfigurationJsonKey = gennerateJsonKey(
|
|
322
|
+
FireworkSDK.getInstance().shopping.productInfoViewConfiguration
|
|
323
|
+
);
|
|
320
324
|
|
|
321
325
|
let key = `gShareBaseURL:${gShareBaseURL}`;
|
|
322
326
|
if (Platform.OS === 'ios') {
|
|
@@ -376,6 +380,7 @@ const StoryBlock: ForwardRefRenderFunction<
|
|
|
376
380
|
key += `_requiresAds:${requiresAds}`;
|
|
377
381
|
key += `_adsFetchTimeout:${adsFetchTimeout}`;
|
|
378
382
|
key += `_vastAttributes:${vastAttributesString}`;
|
|
383
|
+
key += `_productInfoViewConfigurationJsonKey:${productInfoViewConfigurationJsonKey}`;
|
|
379
384
|
|
|
380
385
|
return key;
|
|
381
386
|
};
|
|
@@ -444,9 +449,18 @@ const StoryBlock: ForwardRefRenderFunction<
|
|
|
444
449
|
FWEventName.AppLanguageUpdated,
|
|
445
450
|
() => {
|
|
446
451
|
FWLoggerUtil.log('Receive FWEventName.AppLanguageUpdated');
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
452
|
+
forceUpdate();
|
|
453
|
+
}
|
|
454
|
+
);
|
|
455
|
+
|
|
456
|
+
const subscriptionOfProductInfoViewConfigurationUpdated =
|
|
457
|
+
FireworkSDKModuleEventEmitter.addListener(
|
|
458
|
+
FWEventName.ProductInfoViewConfigurationUpdated,
|
|
459
|
+
() => {
|
|
460
|
+
FWLoggerUtil.log(
|
|
461
|
+
'Receive FWEventName.ProductInfoViewConfigurationUpdated'
|
|
462
|
+
);
|
|
463
|
+
forceUpdate();
|
|
450
464
|
}
|
|
451
465
|
);
|
|
452
466
|
|
|
@@ -455,6 +469,7 @@ const StoryBlock: ForwardRefRenderFunction<
|
|
|
455
469
|
subscriptionOfAdBadgeConfigurationUpdated.remove();
|
|
456
470
|
subscriptionOfVideoLaunchBehaviorUpdated.remove();
|
|
457
471
|
subscriptionOfAppLanguageUpdated.remove();
|
|
472
|
+
subscriptionOfProductInfoViewConfigurationUpdated.remove();
|
|
458
473
|
};
|
|
459
474
|
}, []);
|
|
460
475
|
|
|
@@ -266,17 +266,15 @@ class VideoFeed extends React.Component<IVideoFeedProps, IVideoFeedState> {
|
|
|
266
266
|
);
|
|
267
267
|
this._subscriptions.push(subscriptionOfVideoLaunchBehaviorUpdated);
|
|
268
268
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
()
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
this._subscriptions.push(subscriptionOfAppLanguageUpdated);
|
|
279
|
-
}
|
|
269
|
+
const subscriptionOfAppLanguageUpdated =
|
|
270
|
+
FireworkSDKModuleEventEmitter.addListener(
|
|
271
|
+
FWEventName.AppLanguageUpdated,
|
|
272
|
+
() => {
|
|
273
|
+
FWLoggerUtil.log('Receive FWEventName.AppLanguageUpdated');
|
|
274
|
+
this.setState({});
|
|
275
|
+
}
|
|
276
|
+
);
|
|
277
|
+
this._subscriptions.push(subscriptionOfAppLanguageUpdated);
|
|
280
278
|
}
|
|
281
279
|
|
|
282
280
|
/**
|
|
@@ -452,8 +450,6 @@ class VideoFeed extends React.Component<IVideoFeedProps, IVideoFeedState> {
|
|
|
452
450
|
)}`;
|
|
453
451
|
key += `_showVideoDetailTitle:${showVideoDetailTitle}`;
|
|
454
452
|
}
|
|
455
|
-
// key += `_videoPlayerLogoConfiguration.option:${videoPlayerLogoConfigurationOption}`;
|
|
456
|
-
// key += `_videoPlayerLogoConfiguration.encodeId:${videoPlayerLogoConfigurationEncodeId}`;
|
|
457
453
|
|
|
458
454
|
key += `_requiresAds:${requiresAds}`;
|
|
459
455
|
key += `_adsFetchTimeout:${adsFetchTimeout}`;
|
|
@@ -17,4 +17,5 @@ export enum FWEventName {
|
|
|
17
17
|
LogMessage = 'fw:log-message',
|
|
18
18
|
CustomLinkButtonClick = 'fw:shopping:custom-link-button-click',
|
|
19
19
|
CustomProductCardTap = 'fw:shopping:custom-product-card-tap',
|
|
20
|
+
ProductInfoViewConfigurationUpdated = 'fw:product-info-view-configuration-updated',
|
|
20
21
|
}
|
|
@@ -26,7 +26,9 @@ interface IShoppingModule extends NativeModule {
|
|
|
26
26
|
setCartIconVisible(visible: boolean): void;
|
|
27
27
|
setCartItemCount(count: number): void;
|
|
28
28
|
clearCallbackId(callbackId: number | string, eventName: string): void; // Only supported on iOS
|
|
29
|
-
setProductInfoViewConfiguration(
|
|
29
|
+
setProductInfoViewConfiguration(
|
|
30
|
+
config: ProductInfoViewConfiguration
|
|
31
|
+
): Promise<boolean>;
|
|
30
32
|
setCustomClickLinkButtonEnabled(enabled: boolean): Promise<any>;
|
|
31
33
|
setCustomTapProductCardEnabled(enabled: boolean): Promise<any>; // Only supported on iOS
|
|
32
34
|
pausePlayer(callbackId: number | string): void; // Only supported on iOS
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
function gennerateJsonKey(obj: any): string | undefined {
|
|
2
|
+
if (obj === null || typeof obj !== 'object') {
|
|
3
|
+
return JSON.stringify(obj);
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
if (Array.isArray(obj)) {
|
|
7
|
+
const arrayValues = obj.map((item) => gennerateJsonKey(item));
|
|
8
|
+
return `[${arrayValues.join(',')}]`;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const sortedKeys = Object.keys(obj).sort();
|
|
12
|
+
let result = '{';
|
|
13
|
+
|
|
14
|
+
for (const key of sortedKeys) {
|
|
15
|
+
if (result.length > 1) {
|
|
16
|
+
result += ',';
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
result += `"${key}":${gennerateJsonKey(obj[key])}`;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
result += '}';
|
|
23
|
+
return result;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export default gennerateJsonKey;
|