import { useEffect, useState } from "react";
export const useContextMenu = (container) => {
const [x, setX] = useState(null);
const [y, setY] = useState(null);
const [visible, setVisible] = useState(false);
const showMenu = (e) => {
e.stopPropagation();
e.preventDefault();
setX(e.clientX);
setY(e.clientY);
setVisible(true);
};
const closeMenu = () => {
setVisible(false);
};
useEffect(() => {
container.addEventListener("contextmenu", showMenu);
window.addEventListener("click", closeMenu, true);
window.addEventListener("contextmenu", closeMenu, true);
return () => {
container.removeEventListener("contextmenu", showMenu);
};
}, [container]);
return {
x,
y,
visible,
};
};