diff --git a/apps/expo/src/app/videoPlayer.tsx b/apps/expo/src/app/videoPlayer.tsx index 27d816a..95412e9 100644 --- a/apps/expo/src/app/videoPlayer.tsx +++ b/apps/expo/src/app/videoPlayer.tsx @@ -12,6 +12,7 @@ import { import { fetchMediaDetails } from "@movie-web/tmdb"; import type { ItemData } from "~/components/item/item"; +import type { HeaderData } from "~/components/player/Header"; import { Header } from "~/components/player/Header"; import { MiddleControls } from "~/components/player/MiddleButtons"; import { usePlayerStore } from "~/stores/player/store"; @@ -28,16 +29,10 @@ interface VideoPlayerProps { data: ItemData | null; } -interface HeaderInfo { - title: string; - season?: number; - episode?: number; -} - const VideoPlayer: React.FC = ({ data }) => { const [videoSrc, setVideoSrc] = useState(); const [isLoading, setIsLoading] = useState(true); - const [headerInfo, setHeaderInfo] = useState({ title: "" }); + const [headerData, setHeaderData] = useState(); const router = useRouter(); const setVideoRef = usePlayerStore((state) => state.setVideoRef); const setStatus = usePlayerStore((state) => state.setStatus); @@ -73,12 +68,15 @@ const VideoPlayer: React.FC = ({ data }) => { episode, ); - setHeaderInfo({ + setHeaderData({ title: data.title, - ...(scrapeMedia.type === "show" && { - season: scrapeMedia.season.number, - episode: scrapeMedia.episode.number, - }), + year: data.year, + season: + scrapeMedia.type === "show" ? scrapeMedia.season.number : undefined, + episode: + scrapeMedia.type === "show" + ? scrapeMedia.episode.number + : undefined, }); const stream = await getVideoStream({ @@ -160,15 +158,7 @@ const VideoPlayer: React.FC = ({ data }) => { onTouchStart={() => setIsIdle(false)} /> {isLoading && } - {!isLoading && data && ( -
- )} + {!isLoading && data &&
} {!isLoading && } ); diff --git a/apps/expo/src/components/player/Header.tsx b/apps/expo/src/components/player/Header.tsx index c8630aa..8a525a2 100644 --- a/apps/expo/src/components/player/Header.tsx +++ b/apps/expo/src/components/player/Header.tsx @@ -5,15 +5,26 @@ import { Text } from "../ui/Text"; import { BackButton } from "./BackButton"; import { Controls } from "./Controls"; -interface HeaderProps { +export interface HeaderData { title: string; + year: number; + season?: number; + episode?: number; } -export const Header = ({ title }: HeaderProps) => { +interface HeaderProps { + data: HeaderData; +} + +export const Header = ({ data }: HeaderProps) => { return ( - {title} + + {data.season && data.episode + ? `${data.title} (${data.year}) S${data.season.toString().padStart(2, "0")}E${data.episode.toString().padStart(2, "0")}` + : `${data.title} (${data.year})`} + movie-web