import {SiteSectionHeading} from '@app/titles/site-section-heading'; import {Trans} from '@common/i18n/trans'; import {VideoGridItem, VideoGridItemSkeleton} from '@app/titles/video-grid'; import React, {ReactNode} from 'react'; import {useWatchPageVideo} from '@app/videos/requests/use-watch-page-video'; import {AnimatePresence, m} from 'framer-motion'; import {opacityAnimation} from '@common/ui/animation/opacity-animation'; import {useIsStreamingMode} from '@app/videos/use-is-streaming-mode'; import {Video} from '@app/titles/models/video'; import {CompactSeasonEpisode} from '@app/episodes/compact-season-episode'; import clsx from 'clsx'; export function WatchPageAside() { const {data} = useWatchPageVideo(); const content = !data ? ( ) : ( {data.related_videos.map(video => ( ))} ); return ( ); } interface HeaderProps { video?: Video; } function Header({video}: HeaderProps) { const isStreamingMode = useIsStreamingMode(); if (!video) { return
; } return isStreamingMode ? ( ) : ( ); } interface RelatedVideoProps { video: Video; activeVideo: Video; } function RelatedVideo({video, activeVideo}: RelatedVideoProps) { const isStreamingMode = useIsStreamingMode(); let name: ReactNode = video.name; if (isStreamingMode) { if (video.episode) { name = ( {video.episode.name} ( ) ); } else { name = video.title!.name; } } return ( ); }