From 28dbdaa20dd48e1cb669c3132d9b947a3c1b6fe5 Mon Sep 17 00:00:00 2001 From: Lachezar Lechev Date: Fri, 28 Feb 2025 09:06:04 +0200 Subject: [PATCH] feat: MetaDetails selects appropriate season: - For non-watched series it choses 1st season - For watched series it uses the LibraryItem video to choose the same season Signed-off-by: Lachezar Lechev --- src/routes/MetaDetails/VideosList/VideosList.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/routes/MetaDetails/VideosList/VideosList.js b/src/routes/MetaDetails/VideosList/VideosList.js index 557b3df1f..00ee07924 100644 --- a/src/routes/MetaDetails/VideosList/VideosList.js +++ b/src/routes/MetaDetails/VideosList/VideosList.js @@ -20,6 +20,7 @@ const VideosList = ({ className, metaItem, libraryItem, season, seasonOnSelect, : []; }, [metaItem]); + // Orders season from 1 to X and 0 (special season) at the end const seasons = React.useMemo(() => { return videos .map(({ season }) => season) @@ -36,17 +37,27 @@ const VideosList = ({ className, metaItem, libraryItem, season, seasonOnSelect, return season; } + if (libraryItem?.state.video_id && videos) { + const video = videos?.find((video) => video.id === libraryItem.state.video_id); + + if (video && video.season && seasons.includes(video.season)) { + return video.season; + } + } + const nonSpecialSeasons = seasons.filter((season) => season !== 0); if (nonSpecialSeasons.length > 0) { - return nonSpecialSeasons[nonSpecialSeasons.length - 1]; + // default to 1st season + return nonSpecialSeasons[0]; } if (seasons.length > 0) { - return seasons[seasons.length - 1]; + // default to 1st season + return seasons[0]; } return null; - }, [seasons, season]); + }, [seasons, season, videos, libraryItem]); const videosForSeason = React.useMemo(() => { return videos .filter((video) => {