Files
mtdb_movie/common/resources/client/player/handle-player-keybinds.ts
maher 703f50a09d
Some checks failed
Build / run (push) Has been cancelled
first commit
2025-10-29 11:42:25 +01:00

42 lines
912 B
TypeScript
Executable File

import {PlayerState} from '@common/player/state/player-state';
import {isCtrlOrShiftPressed} from '@common/utils/keybinds/is-ctrl-or-shift-pressed';
export function handlePlayerKeybinds(
e: KeyboardEvent,
state: () => PlayerState,
) {
if (
['input', 'textarea'].includes(
(e.target as HTMLElement)?.tagName.toLowerCase(),
)
)
return;
if (e.key === ' ' || e.key === 'k') {
e.preventDefault();
if (state().isPlaying) {
state().pause();
} else {
state().play();
}
}
if (e.key === 'ArrowLeft') {
e.preventDefault();
if (isCtrlOrShiftPressed(e)) {
state().playPrevious();
} else {
state().seek(state().getCurrentTime() - 10);
}
}
if (e.key === 'ArrowRight') {
e.preventDefault();
if (isCtrlOrShiftPressed(e)) {
state().playNext();
} else {
state().seek(state().getCurrentTime() + 10);
}
}
}