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);