1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
jellyfin-web/src/components/mediainfo/SecondaryMediaInfo.tsx

56 lines
1.5 KiB
TypeScript
Raw Normal View History

2024-08-22 01:01:59 +03:00
import React, { type FC } from 'react';
import classNames from 'classnames';
import Box from '@mui/material/Box';
import useSecondaryMediaInfo from './useSecondaryMediaInfo';
import useIndicator from 'components/indicators/useIndicator';
import MediaInfoItem from './MediaInfoItem';
import type { ItemDto } from 'types/base/models/item-dto';
import { MiscInfo } from 'types/mediaInfoItem';
import type { SecondaryInfoOpts } from './type';
interface SecondaryMediaInfoProps extends SecondaryInfoOpts {
className?: string;
infoclass?: string;
item: ItemDto;
showTimerIndicatorInfo?: boolean;
}
const SecondaryMediaInfo: FC<SecondaryMediaInfoProps> = ({
className,
infoclass,
item,
showProgramTimeInfo,
showStartDateInfo,
showChannelNumberInfo,
showChannelInfo,
channelInteractive,
showTimerIndicatorInfo = false
}) => {
const miscInfo = useSecondaryMediaInfo({
item,
showProgramTimeInfo,
showStartDateInfo,
showChannelNumberInfo,
showChannelInfo,
channelInteractive
});
const indicator = useIndicator(item);
const cssClass = classNames(className);
const renderMediaInfo = (info: MiscInfo, index: number) => (
<MediaInfoItem key={index} className={infoclass} miscInfo={info} />
);
return (
<Box className={cssClass}>
{miscInfo.map((info, index) => renderMediaInfo(info, index))}
{showTimerIndicatorInfo !== false && indicator.getTimerIndicator()}
</Box>
);
};
export default SecondaryMediaInfo;