| ... | ... | @@ -14,9 +14,11 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react"; |
| 14 | 14 | import { |
| 15 | 15 | DndContext, |
| 16 | 16 | type DragCancelEvent, |
| 17 | type CollisionDetection, |
| 17 | 18 | PointerSensor, |
| 18 | 19 | type DragStartEvent, |
| 19 | | closestCenter, |
| 20 | closestCorners, |
| 21 | pointerWithin, |
| 20 | 22 | useSensor, |
| 21 | 23 | useSensors, |
| 22 | 24 | type DragEndEvent, |
| ... | ... | @@ -841,6 +843,14 @@ export default function Sidebar() { |
| 841 | 843 | activationConstraint: { distance: 6 }, |
| 842 | 844 | }), |
| 843 | 845 | ); |
| 846 | const projectCollisionDetection = useCallback<CollisionDetection>((args) => { |
| 847 | const pointerCollisions = pointerWithin(args); |
| 848 | if (pointerCollisions.length > 0) { |
| 849 | return pointerCollisions; |
| 850 | } |
| 851 | |
| 852 | return closestCorners(args); |
| 853 | }, []); |
| 844 | 854 | |
| 845 | 855 | const handleProjectDragEnd = useCallback( |
| 846 | 856 | (event: DragEndEvent) => { |
| ... | ... | @@ -1241,7 +1251,7 @@ export default function Sidebar() { |
| 1241 | 1251 | |
| 1242 | 1252 | <DndContext |
| 1243 | 1253 | sensors={projectDnDSensors} |
| 1244 | | collisionDetection={closestCenter} |
| 1254 | collisionDetection={projectCollisionDetection} |
| 1245 | 1255 | modifiers={[restrictToVerticalAxis, restrictToParentElement]} |
| 1246 | 1256 | onDragStart={handleProjectDragStart} |
| 1247 | 1257 | onDragEnd={handleProjectDragEnd} |