diff --git a/front/packages/models/src/query.tsx b/front/packages/models/src/query.tsx index 8800d5b7..44c1bfab 100644 --- a/front/packages/models/src/query.tsx +++ b/front/packages/models/src/query.tsx @@ -41,6 +41,7 @@ const queryFn = async ( : typeof window === "undefined" ? process.env.KYOO_URL ?? "http://localhost:5000" : "/api"; + console.log(process.env.PUBLIC_BACK_URL) if (!kyooUrl) console.error("Kyoo's url is not defined."); let resp; diff --git a/front/packages/ui/src/player/index.tsx b/front/packages/ui/src/player/index.tsx index a9ff59ee..ef55a995 100644 --- a/front/packages/ui/src/player/index.tsx +++ b/front/packages/ui/src/player/index.tsx @@ -81,7 +81,7 @@ export const Player: QueryPage<{ slug: string }> = ({ slug }) => { // const { playerRef, videoProps, onVideoClick } = useVideoController(data?.link); // useSubtitleController(playerRef, data?.subtitles, data?.fonts); - // useVideoKeyboard(data?.subtitles, data?.fonts, previous, next); + useVideoKeyboard(data?.subtitles, data?.fonts, previous, next); const router = useRouter(); const [isFullscreen, setFullscreen] = useAtom(fullscreenAtom); diff --git a/front/packages/ui/src/player/keyboard.tsx b/front/packages/ui/src/player/keyboard.tsx index 705dc128..6d3019d8 100644 --- a/front/packages/ui/src/player/keyboard.tsx +++ b/front/packages/ui/src/player/keyboard.tsx @@ -43,6 +43,7 @@ type Action = | { type: "subtitle"; subtitles: Track[]; fonts: Font[] }; export const reducerAtom = atom(null, (get, set, action) => { + const duration = get(durationAtom); switch (action.type) { case "play": set(playAtom, !get(playAtom)); @@ -54,16 +55,17 @@ export const reducerAtom = atom(null, (get, set, action) => { set(fullscreenAtom, !get(fullscreenAtom)); break; case "seek": - set(progressAtom, get(progressAtom) + action.value); + if (duration) + set(progressAtom, Math.max(0, Math.min(get(progressAtom) + action.value, duration))); break; case "seekTo": set(progressAtom, action.value); break; case "seekPercent": - set(progressAtom, (get(durationAtom) * action.value) / 100); + if (duration) set(progressAtom, (duration * action.value) / 100); break; case "volume": - set(volumeAtom, get(volumeAtom) + action.value); + set(volumeAtom, Math.max(0, Math.min(get(volumeAtom) + action.value, 100))); break; case "subtitle": const subtitle = get(subtitleAtom); @@ -108,17 +110,17 @@ export const useVideoKeyboard = ( break; case "ArrowLeft": - reducer({ type: "seek", value: -5 }); + reducer({ type: "seek", value: -5000 }); break; case "ArrowRight": - reducer({ type: "seek", value: +5 }); + reducer({ type: "seek", value: +5000 }); break; case "j": - reducer({ type: "seek", value: -10 }); + reducer({ type: "seek", value: -10_000 }); break; case "l": - reducer({ type: "seek", value: +10 }); + reducer({ type: "seek", value: +10_000 }); break; case "ArrowUp":