From 79b4f2f6253908c68e1f42d03783b0171727c189 Mon Sep 17 00:00:00 2001 From: nevainero Date: Wed, 8 Dec 2021 11:38:37 +0300 Subject: [PATCH] feat(ott-1951): add keyboard handling for videoplayer rewind --- src/features/MultiSourcePlayer/hooks/index.tsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/features/MultiSourcePlayer/hooks/index.tsx b/src/features/MultiSourcePlayer/hooks/index.tsx index afe939f5..2dee548c 100644 --- a/src/features/MultiSourcePlayer/hooks/index.tsx +++ b/src/features/MultiSourcePlayer/hooks/index.tsx @@ -12,7 +12,7 @@ import { useFullscreen } from 'features/StreamPlayer/hooks/useFullscreen' import { useVolume } from 'features/VideoPlayer/hooks/useVolume' import { useNoNetworkPopupStore } from 'features/NoNetworkPopup' -import { useObjectState } from 'hooks' +import { useEventListener, useObjectState } from 'hooks' import { useProgressChangeHandler } from './useProgressChangeHandler' import { usePlayingHandlers } from './usePlayingHandlers' @@ -99,6 +99,7 @@ export const useMultiSourcePlayer = ({ if (!videoRef.current) return videoRef.current.currentTime = progressMs / 1000 } + const rewindForward = () => { const chapter = getActiveChapter() const newProgress = playedProgress + REWIND_SECONDS * 1000 @@ -205,6 +206,14 @@ export const useMultiSourcePlayer = ({ playNextChapter, ]) + useEventListener({ + callback: (e: KeyboardEvent) => { + if (e.code === 'ArrowLeft') rewindBackward() + else if (e.code === 'ArrowRight') rewindForward() + }, + event: 'keydown', + }) + const { isOnline } = useNoNetworkPopupStore() useEffect(() => {