import type { MediaStream } from "@jellyfin/sdk/lib/generated-client/models"; import React from "react"; import { useTranslation } from "react-i18next"; import { View } from "react-native"; import { Text } from "@/components/common/Text"; import { useScaledTVTypography } from "@/constants/TVTypography"; export interface TVTechnicalDetailsProps { mediaStreams: MediaStream[]; } export const TVTechnicalDetails: React.FC = React.memo( ({ mediaStreams }) => { const typography = useScaledTVTypography(); const { t } = useTranslation(); const videoStream = mediaStreams.find((s) => s.Type === "Video"); const audioStream = mediaStreams.find((s) => s.Type === "Audio"); if (!videoStream && !audioStream) { return null; } return ( {t("item_card.technical_details")} {videoStream && ( {t("common.video")} {videoStream.DisplayTitle || `${videoStream.Codec?.toUpperCase()} ${videoStream.Width}x${videoStream.Height}`} )} {audioStream && ( {t("common.audio")} {audioStream.DisplayTitle || `${audioStream.Codec?.toUpperCase()} ${audioStream.Channels}ch`} )} ); }, );