Вот мой текущий блок:
Код: Выделить всё
const gridData = usePopulateGrid();
const [isModalOpen, setIsModalOpen] = useState(false);
const [focusItem, setFocusItem] = useState(null);
const [detail, setDetail] = useState([]);
const modalRef = useRef();
//
useEffect(() => {
if (isModalOpen){
if (focusItem.hasDetail){
setDetail(focusItem.detailPicture.split(";"));
console.log("this part does: " + detail);
}
}
},[isModalOpen])
const handleOpen = (item) => {
setIsModalOpen(true);
setFocusItem(item);
};
const handleClose = () => {
setIsModalOpen(false);
setFocusItem(null);
setDetail([]);
};
useEffect(() => {
function handleClickOutside(event) {
if (
modalRef.current &&
!modalRef.current.contains(event.target) &&
modalRef.current.id == "open"
) {
handleClose();
}
}
document.addEventListener("mousedown", handleClickOutside);
return () => {
document.removeEventListener("mousedown", handleClickOutside);
};
}, []);
п>
Подробнее здесь: https://stackoverflow.com/questions/783 ... modal-clos