import { useEffect, useRef } from "react";
import { useDispatch } from "react-redux";
import { copy, cut, duplicate, paste } from "../../store/reducers/treeReducer";
export default function useShortcuts() {
const keyPressed = useRef({});
const dispatch = useDispatch();
useEffect(() => {
const handlePress = (e) => {
if (e.target.tabIndex !== 1) return;
if (keyPressed.current["Control"]) {
e.preventDefault();
keyPressed.current = {};
if (e.key === "x") dispatch(cut());
if (e.key === "c") dispatch(copy());
if (e.key === "v") dispatch(paste());
if (e.key === "d") dispatch(duplicate());
}
keyPressed.current[e.key] = true;
};
const handleUp = (e) => {
delete keyPressed.current[e.key];
};
document.addEventListener("keydown", handlePress);
document.addEventListener("keyup", handleUp);
return () => {
document.removeEventListener("keydown", handlePress);
document.removeEventListener("keyup", handleUp);
};
}, []);
}