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}