From 1f16271354ae2be3d9784d40208c0a9d830288f4 Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Mon, 1 Apr 2024 20:53:53 +0200 Subject: [PATCH] Use duration from /info endpoint instead of player's duration --- front/packages/ui/src/player/index.tsx | 7 ++++++- front/packages/ui/src/player/state.tsx | 4 ---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/front/packages/ui/src/player/index.tsx b/front/packages/ui/src/player/index.tsx index 506cdb09..e42f00bc 100644 --- a/front/packages/ui/src/player/index.tsx +++ b/front/packages/ui/src/player/index.tsx @@ -36,7 +36,7 @@ import { useRouter } from "solito/router"; import { useSetAtom } from "jotai"; import { useYoshiki } from "yoshiki/native"; import { Back, Hover, LoadingIndicator } from "./components/hover"; -import { fullscreenAtom, Video } from "./state"; +import { durationAtom, fullscreenAtom, Video } from "./state"; import { episodeDisplayNumber } from "../details/episode"; import { useVideoKeyboard } from "./keyboard"; import { MediaSessionManager } from "./media-session"; @@ -104,6 +104,11 @@ export const Player = ({ }; }, [setFullscreen]); + const setDuration = useSetAtom(durationAtom); + useEffect(() => { + setDuration(info?.durationSeconds); + }, [info, setDuration]); + if (error || infoError || playbackError) return ( <> diff --git a/front/packages/ui/src/player/state.tsx b/front/packages/ui/src/player/state.tsx index ea9781e5..ee1aa337 100644 --- a/front/packages/ui/src/player/state.tsx +++ b/front/packages/ui/src/player/state.tsx @@ -119,7 +119,6 @@ export const Video = memo(function Video({ const setPrivateProgress = useSetAtom(privateProgressAtom); const setPublicProgress = useSetAtom(publicProgressAtom); const setBuffered = useSetAtom(bufferedAtom); - const setDuration = useSetAtom(durationAtom); useEffect(() => { ref.current?.seek(publicProgress); }, [publicProgress]); @@ -217,9 +216,6 @@ export const Video = memo(function Video({ setPrivateProgress(progress.currentTime); setBuffered(progress.playableDuration); }} - onLoad={(info) => { - setDuration(info.duration); - }} onPlaybackStateChanged={(state) => setPlay(state.isPlaying)} fonts={fonts} subtitles={subtitles}