import { connectToStore } from "@applicaster/zapp-react-native-redux/utils/connectToStore"; import { platformSelect } from "@applicaster/zapp-react-native-utils/reactUtils"; import { styleKeys } from "@applicaster/zapp-react-native-utils/styleKeysUtils"; import { transformColorCode as fixColorHexCode } from "@applicaster/zapp-react-native-utils/transform"; import * as R from "ramda"; import * as React from "react"; import { Text, TextStyle, View, ViewStyle } from "react-native"; import { QBImage as Image } from "@applicaster/zapp-react-native-ui-components/Components/Image"; import { usePlayerContent } from "@applicaster/zapp-react-native-utils/appUtils/playerManager/usePlayerContent"; import * as programStyles from "./styles"; type Props = { logo?: string; isAudioContent: boolean; styles: {}; plugin_configuration: { tv_os_video_player_title_font_family?: string; tv_os_video_player_title_font_size?: number; tv_os_video_player_summary_font_family?: string; tv_os_video_player_summary_font_size?: number; }; videoStyle: {}; }; const defaultColor = "#EFEFEF"; function ProgramInfoComponent({ logo, isAudioContent, styles, plugin_configuration = {}, videoStyle = {}, }: Props) { const { title = "", summary: subtitle = "" } = usePlayerContent(); const platformKey = styleKeys.style_namespace; const colorTitle = R.path(["universal", "player_title_text", "color"], styles) || R.path([platformKey, "player_title_text", "color"], styles); const colorSubtitle = R.path(["universal", "player_info_text", "color"], styles) || R.path([platformKey, "player_info_text", "color"], styles); const colorOverlay = R.path(["universal", "player_overlay_color", "color"], styles) || R.path([platformKey, "player_overlay_color", "color"], styles); const titleFontFamily = platformSelect({ tvos: R.path( ["tv_os_video_player_title_font_family"], plugin_configuration ), }); const titleFontSize = platformSelect({ tvos: R.path(["tv_os_video_player_title_font_size"], plugin_configuration), }); const summaryFontFamily = platformSelect({ tvos: R.path( ["tv_os_video_player_summary_font_family"], plugin_configuration ), }); const summaryFontSize = platformSelect({ tvos: R.path( ["tv_os_video_player_summary_font_size"], plugin_configuration ), }); const container = { ...videoStyle, alignItems: "center", justifyContent: "center", backgroundColor: fixColorHexCode(colorOverlay) || "transparent", } as ViewStyle; const titleText = { fontSize: titleFontSize ? Number(titleFontSize) : 48, fontWeight: "bold", fontStyle: "normal", fontFamily: titleFontFamily || null, color: fixColorHexCode(colorTitle) || defaultColor, textShadowColor: "rgba(0,0,0, 0.8)", textShadowOffset: { width: 1, height: 1 }, textShadowRadius: 5, } as TextStyle; const subtitleText = { fontSize: summaryFontSize ? Number(summaryFontSize) : 24, fontFamily: summaryFontFamily || null, fontWeight: "normal", fontStyle: "normal", color: fixColorHexCode(colorSubtitle) || defaultColor, } as TextStyle; const transportInfo = ( <> {title} {subtitle} ); return ( {logo ? ( ) : null} {!isAudioContent && transportInfo} ); } export const ProgramInfo = R.compose( connectToStore(R.pick(["remoteConfigurations"])) )(ProgramInfoComponent);