fix(react/dialogs): listener leak in modal

This commit is contained in:
Elian Doran 2025-08-04 19:54:59 +03:00
parent cb650b70cb
commit 83fb62d4df
No known key found for this signature in database

View File

@ -28,14 +28,23 @@ export default function Modal({ children, className, size, title, footer, onShow
if (onShown || onHidden) {
useEffect(() => {
const modalElement = modalRef.current;
if (modalElement) {
if (!modalElement) {
return;
}
if (onShown) {
modalElement.addEventListener("shown.bs.modal", onShown);
}
if (onHidden) {
modalElement.addEventListener("hidden.bs.modal", onHidden);
}
return () => {
if (onShown) {
modalElement.addEventListener("shown.bs.modal", onShown);
modalElement.removeEventListener("shown.bs.modal", onShown);
}
if (onHidden) {
modalElement.addEventListener("hidden.bs.modal", onHidden);
modalElement.removeEventListener("hidden.bs.modal", onHidden);
}
}
};
});
}