From 45a61a67ea84e38218e3b357da79a658d064be03 Mon Sep 17 00:00:00 2001
From: Adrian Castro <22133246+castdrian@users.noreply.github.com>
Date: Sun, 18 Feb 2024 15:54:04 +0100
Subject: [PATCH] feat: episode selection
---
apps/expo/src/app/videoPlayer/loading.tsx | 18 ++++++++++++++----
.../player/SeasonEpisodeSelector.tsx | 16 +++++++++++-----
2 files changed, 25 insertions(+), 9 deletions(-)
diff --git a/apps/expo/src/app/videoPlayer/loading.tsx b/apps/expo/src/app/videoPlayer/loading.tsx
index 1ed1cce..734ac5f 100644
--- a/apps/expo/src/app/videoPlayer/loading.tsx
+++ b/apps/expo/src/app/videoPlayer/loading.tsx
@@ -25,15 +25,25 @@ export default function LoadingScreenWrapper() {
const data = params.data
? (JSON.parse(params.data as string) as ItemData)
: null;
- return ;
+ const seasonData = params.seasonData
+ ? (JSON.parse(params.seasonData as string) as {
+ season: number;
+ episode: number;
+ })
+ : null;
+ return (
+
+ );
}
function LoadingScreen({
sourceId,
data,
+ seasonData,
}: {
sourceId: string | undefined;
data: ItemData | null;
+ seasonData: { season: number; episode: number } | null;
}) {
const router = useRouter();
const [eventLog, setEventLog] = useState([]);
@@ -60,8 +70,8 @@ function LoadingScreen({
let episode: number | undefined;
if (type === "tv") {
- // season = ?? undefined;
- // episode = ?? undefined;
+ season = seasonData?.season ?? undefined;
+ episode = seasonData?.episode ?? undefined;
}
const scrapeMedia = transformSearchResultToScrapeMedia(
@@ -100,7 +110,7 @@ function LoadingScreen({
};
void initialize();
- }, [data, router, sourceId]);
+ }, [data, router, seasonData?.episode, seasonData?.season, sourceId]);
return (
{
const data = usePlayerStore((state) => state.interface.data);
const seasonData = usePlayerStore((state) => state.interface.seasonData);
const { isTrue, on, off } = useBoolean();
- const _router = useRouter();
+ const router = useRouter();
return data?.type === "movie" || !seasonData ? null : (
@@ -44,10 +44,16 @@ export const SeasonEpisodeSelector = () => {
title={episode.name}
onPress={() => {
off();
- // router.push({
- // pathname: "/videoPlayer/loading",
- // params: { sourceID: source.id, data: JSON.stringify(data) },
- // });
+ router.push({
+ pathname: "/videoPlayer/loading",
+ params: {
+ data: JSON.stringify(data),
+ seasonData: JSON.stringify({
+ season: seasonData.season_number,
+ episode: episode.episode_number,
+ }),
+ },
+ });
}}
className="max-w-16"
/>