diff --git a/components/ItemContent.tv.tsx b/components/ItemContent.tv.tsx index d7f951e2..4f467b9a 100644 --- a/components/ItemContent.tv.tsx +++ b/components/ItemContent.tv.tsx @@ -17,7 +17,7 @@ import React, { useState, } from "react"; import { useTranslation } from "react-i18next"; -import { Dimensions, ScrollView, TVFocusGuideView, View } from "react-native"; +import { Dimensions, ScrollView, View } from "react-native"; import { useSafeAreaInsets } from "react-native-safe-area-context"; import { BITRATES, type Bitrate } from "@/components/BitrateSelector"; import { ItemImage } from "@/components/common/ItemImage"; @@ -84,7 +84,7 @@ export const ItemContentTV: React.FC = React.memo( const _itemColors = useImageColorsReturn({ item }); // State for first episode card ref (used for focus guide) - const [firstEpisodeRef, setFirstEpisodeRef] = useState(null); + const [_firstEpisodeRef, setFirstEpisodeRef] = useState(null); // Fetch season episodes for episodes const { data: seasonEpisodes = [] } = useQuery({ @@ -163,14 +163,13 @@ export const ItemContentTV: React.FC = React.memo( const { showSubtitleModal } = useTVSubtitleModal(); // State for first actor card ref (used for focus guide) - const [firstActorCardRef, setFirstActorCardRef] = useState( + const [_firstActorCardRef, setFirstActorCardRef] = useState( null, ); // State for last option button ref (used for upward focus guide from cast) - const [lastOptionButtonRef, setLastOptionButtonRef] = useState( - null, - ); + const [_lastOptionButtonRef, setLastOptionButtonRef] = + useState(null); // Get available audio tracks const audioTracks = useMemo(() => { @@ -733,14 +732,6 @@ export const ItemContentTV: React.FC = React.memo( )} - {/* Focus guide to direct navigation from options to cast list */} - {fullCast.length > 0 && firstActorCardRef && ( - - )} - {/* Progress bar (if partially watched) */} {hasProgress && item.RunTimeTicks != null && ( = React.memo( {/* Additional info section */} - {/* Cast & Crew (text version) */} - - - {/* Technical details */} - {selectedOptions.mediaSource?.MediaStreams && - selectedOptions.mediaSource.MediaStreams.length > 0 && ( - - )} - - {/* Visual Cast Section - Movies/Series/Episodes with circular actor cards */} - {showVisualCast && ( - - )} - - {/* Focus guide: cast → episodes (downward navigation) */} - {showVisualCast && firstEpisodeRef && ( - - )} - {/* Season Episodes - Episode only */} {item.Type === "Episode" && seasonEpisodes.length > 1 && ( @@ -849,26 +806,6 @@ export const ItemContentTV: React.FC = React.memo( {t("item_card.more_from_this_season")} - {/* Focus guides - stacked together above the list */} - {/* Downward: options → first episode (only when no cast section) */} - {!showVisualCast && firstEpisodeRef && ( - - )} - {/* Upward: episodes → cast (first actor) or options (last button) */} - {(firstActorCardRef || lastOptionButtonRef) && ( - - )} - = React.memo( onSeriesPress={handleSeriesPress} onSeasonPress={handleSeasonPress} /> + + {/* Visual Cast Section - Movies/Series/Episodes with circular actor cards */} + {showVisualCast && ( + + )} + + {/* Cast & Crew (text version - director, etc.) */} + + + {/* Technical details */} + {selectedOptions.mediaSource?.MediaStreams && + selectedOptions.mediaSource.MediaStreams.length > 0 && ( + + )} diff --git a/components/series/TVEpisodeCard.tsx b/components/series/TVEpisodeCard.tsx index c0b923ce..a5739151 100644 --- a/components/series/TVEpisodeCard.tsx +++ b/components/series/TVEpisodeCard.tsx @@ -68,7 +68,7 @@ export const TVEpisodeCard: React.FC = ({ }, [episode.ParentIndexNumber, episode.IndexNumber]); return ( - + = ({ @@ -123,10 +123,10 @@ export const TVEpisodeCard: React.FC = ({ )} {duration && ( <> - + - + {duration}