diff --git a/package.json b/package.json index fc55a56d..821f40f6 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "babel-eslint": "^10.0.1", "babel-jest": "^23.6.0", "babel-loader": "^8.0.4", - "codesandbox": "^1.2.10", + "codesandbox": "~1.2.10", "coveralls": "^3.0.1", "cross-env": "^5.1.6", "enzyme": "^3.3.0", diff --git a/src/utils/dnd-manager.js b/src/utils/dnd-manager.js index 64d74337..07da4971 100644 --- a/src/utils/dnd-manager.js +++ b/src/utils/dnd-manager.js @@ -241,11 +241,15 @@ export default class DndManager { return; } - this.dragHover({ - node: draggedNode, - path: monitor.getItem().path, - minimumTreeIndex: dropTargetProps.listIndex, - depth: targetDepth, + // throttle `dragHover` work to available animation frames + cancelAnimationFrame(this.rafId); + this.rafId = requestAnimationFrame(() => { + this.dragHover({ + node: draggedNode, + path: monitor.getItem().path, + minimumTreeIndex: dropTargetProps.listIndex, + depth: targetDepth, + }); }); },