+
- {/* Colonna destra: Macchine (placeholder) */}
-
+ {/* Colonna destra: Macchine */}
+
diff --git a/src/components/MovimentoModal.tsx b/src/components/MovimentoModal.tsx
index 6560988..ee4ec4e 100644
--- a/src/components/MovimentoModal.tsx
+++ b/src/components/MovimentoModal.tsx
@@ -62,23 +62,17 @@ export default function MovimentoModal({
useEffect(() => {
function handleKeyDown(e: KeyboardEvent) {
- if (e.key === "Escape") onClose();
- }
-
- function handleClickOutside(e: MouseEvent) {
- if (modalRef.current && !modalRef.current.contains(e.target as Node)) {
+ if (e.key === "Escape" && !showDestinazioneModal) {
onClose();
}
}
document.addEventListener("keydown", handleKeyDown);
- document.addEventListener("mousedown", handleClickOutside);
return () => {
document.removeEventListener("keydown", handleKeyDown);
- document.removeEventListener("mousedown", handleClickOutside);
};
- }, [onClose]);
+ }, [onClose, showDestinazioneModal]);
const filteredMagazzini = selectedStabilimento
? magazzini.filter((m) => m.id_stabilimento === selectedStabilimento)
@@ -156,11 +150,21 @@ export default function MovimentoModal({
}
};
+ const handleBackdropClick = (e: React.MouseEvent) => {
+ if (e.target === e.currentTarget && !showDestinazioneModal) {
+ onClose();
+ }
+ };
+
return (
-
+
e.stopPropagation()}
>
{/* Header */}
) => {
e.preventDefault();
e.stopPropagation();
+ e.dataTransfer.dropEffect = "move";
setIsDragOver(true);
};
const handleDragLeave = (e: DragEvent
) => {
+ const relatedTarget = e.relatedTarget as Node | null;
+ const currentTarget = e.currentTarget as Node;
+
+ if (relatedTarget && currentTarget.contains(relatedTarget)) {
+ return;
+ }
+
e.preventDefault();
e.stopPropagation();
setIsDragOver(false);
};
+ const handleDragEnter = (e: DragEvent) => {
+ e.preventDefault();
+ e.stopPropagation();
+ setIsDragOver(true);
+ };
+
const safeTextColor = getReadableTextColor(node.colore_testo);
const getNodeTypeIcon = () => {
@@ -155,8 +169,9 @@ export default function TreeNode({