mirror of
https://github.com/movie-web/native-app.git
synced 2025-09-13 18:13:25 +00:00
feat: show season and episode in header if available
This commit is contained in:
@@ -28,9 +28,16 @@ interface VideoPlayerProps {
|
|||||||
data: ItemData | null;
|
data: ItemData | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface HeaderInfo {
|
||||||
|
title: string;
|
||||||
|
season?: number;
|
||||||
|
episode?: number;
|
||||||
|
}
|
||||||
|
|
||||||
const VideoPlayer: React.FC<VideoPlayerProps> = ({ data }) => {
|
const VideoPlayer: React.FC<VideoPlayerProps> = ({ data }) => {
|
||||||
const [videoSrc, setVideoSrc] = useState<AVPlaybackSource>();
|
const [videoSrc, setVideoSrc] = useState<AVPlaybackSource>();
|
||||||
const [isLoading, setIsLoading] = useState(true);
|
const [isLoading, setIsLoading] = useState(true);
|
||||||
|
const [headerInfo, setHeaderInfo] = useState<HeaderInfo>({ title: "" });
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const setVideoRef = usePlayerStore((state) => state.setVideoRef);
|
const setVideoRef = usePlayerStore((state) => state.setVideoRef);
|
||||||
const setStatus = usePlayerStore((state) => state.setStatus);
|
const setStatus = usePlayerStore((state) => state.setStatus);
|
||||||
@@ -66,6 +73,14 @@ const VideoPlayer: React.FC<VideoPlayerProps> = ({ data }) => {
|
|||||||
episode,
|
episode,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
setHeaderInfo({
|
||||||
|
title: data.title,
|
||||||
|
...(scrapeMedia.type === "show" && {
|
||||||
|
season: scrapeMedia.season.number,
|
||||||
|
episode: scrapeMedia.episode.number,
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
|
||||||
const stream = await getVideoStream({
|
const stream = await getVideoStream({
|
||||||
media: scrapeMedia,
|
media: scrapeMedia,
|
||||||
forceVTT: true,
|
forceVTT: true,
|
||||||
@@ -145,7 +160,15 @@ const VideoPlayer: React.FC<VideoPlayerProps> = ({ data }) => {
|
|||||||
onTouchStart={() => setIsIdle(false)}
|
onTouchStart={() => setIsIdle(false)}
|
||||||
/>
|
/>
|
||||||
{isLoading && <ActivityIndicator size="large" color="#0000ff" />}
|
{isLoading && <ActivityIndicator size="large" color="#0000ff" />}
|
||||||
{!isLoading && data && <Header title={data.title} />}
|
{!isLoading && data && (
|
||||||
|
<Header
|
||||||
|
title={
|
||||||
|
headerInfo.season && headerInfo.episode
|
||||||
|
? `${headerInfo.title} S${headerInfo.season.toString().padStart(2, '0')}E${headerInfo.episode.toString().padStart(2, '0')}`
|
||||||
|
: headerInfo.title
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
{!isLoading && <MiddleControls />}
|
{!isLoading && <MiddleControls />}
|
||||||
</View>
|
</View>
|
||||||
);
|
);
|
||||||
|
Reference in New Issue
Block a user