diff --git a/apps/expo/src/app/videoPlayer/index.tsx b/apps/expo/src/app/videoPlayer/index.tsx index 6bda58b..c2e5dad 100644 --- a/apps/expo/src/app/videoPlayer/index.tsx +++ b/apps/expo/src/app/videoPlayer/index.tsx @@ -19,6 +19,7 @@ import { extractTracksFromHLS, findHighestQuality, } from "@movie-web/provider-utils"; +import { fetchSeasonDetails } from "@movie-web/tmdb"; import type { ItemData } from "~/components/item/item"; import type { HeaderData } from "~/components/player/Header"; @@ -78,6 +79,7 @@ const VideoPlayer: React.FC = ({ data }) => { const setIsIdle = usePlayerStore((state) => state.setIsIdle); const _setSourceId = usePlayerStore((state) => state.setSourceId); const setData = usePlayerStore((state) => state.setData); + const setSeasonData = usePlayerStore((state) => state.setSeasonData); const presentFullscreenPlayer = usePlayerStore( (state) => state.presentFullscreenPlayer, ); @@ -165,6 +167,16 @@ const VideoPlayer: React.FC = ({ data }) => { const { item, stream, media } = data; + if (media.type === "show") { + const seasonData = await fetchSeasonDetails( + media.tmdbId, + media.season.number, + ); + if (seasonData) { + setSeasonData(seasonData); + } + } + setStream(stream); setHeaderData({ @@ -219,6 +231,7 @@ const VideoPlayer: React.FC = ({ data }) => { presentFullscreenPlayer, router, setData, + setSeasonData, setStream, ]); diff --git a/apps/expo/src/components/player/SeasonEpisodeSelector.tsx b/apps/expo/src/components/player/SeasonEpisodeSelector.tsx index 0cdaf05..b6a95e1 100644 --- a/apps/expo/src/components/player/SeasonEpisodeSelector.tsx +++ b/apps/expo/src/components/player/SeasonEpisodeSelector.tsx @@ -12,10 +12,11 @@ import { Text } from "../ui/Text"; export const SeasonEpisodeSelector = () => { const data = usePlayerStore((state) => state.interface.data); + const seasonData = usePlayerStore((state) => state.interface.seasonData); const { isTrue, on, off } = useBoolean(); const _router = useRouter(); - return data?.type === "movie" ? null : ( + return data?.type === "movie" || !seasonData ? null : (