mirror of
https://github.com/Monadical-SAS/reflector.git
synced 2025-12-20 20:29:06 +00:00
fix: ignore player hotkeys for text inputs (#646)
* Ignore player hotkeys for text inputs * Fix event listener effect
This commit is contained in:
@@ -33,17 +33,27 @@ export default function Player(props: PlayerProps) {
|
|||||||
const topicsRef = useRef(props.topics);
|
const topicsRef = useRef(props.topics);
|
||||||
const [firstRender, setFirstRender] = useState<boolean>(true);
|
const [firstRender, setFirstRender] = useState<boolean>(true);
|
||||||
|
|
||||||
const keyHandler = (e) => {
|
const shouldIgnoreHotkeys = (target: EventTarget | null) => {
|
||||||
if (e.key == " ") {
|
return (
|
||||||
|
target instanceof HTMLInputElement ||
|
||||||
|
target instanceof HTMLTextAreaElement
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
const keyHandler = (e: KeyboardEvent) => {
|
||||||
|
if (e.key === " ") {
|
||||||
|
if (e.repeat) return;
|
||||||
|
if (shouldIgnoreHotkeys(e.target)) return;
|
||||||
|
e.preventDefault();
|
||||||
wavesurfer?.playPause();
|
wavesurfer?.playPause();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
document.addEventListener("keyup", keyHandler);
|
document.addEventListener("keydown", keyHandler);
|
||||||
return () => {
|
return () => {
|
||||||
document.removeEventListener("keyup", keyHandler);
|
document.removeEventListener("keydown", keyHandler);
|
||||||
};
|
};
|
||||||
});
|
}, [wavesurfer]);
|
||||||
|
|
||||||
// Waveform setup
|
// Waveform setup
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
Reference in New Issue
Block a user