diff --git a/components/tabs/__tests__/__snapshots__/demo-extend.test.ts.snap b/components/tabs/__tests__/__snapshots__/demo-extend.test.ts.snap index 55694834b88d..d625b1b2f63d 100644 --- a/components/tabs/__tests__/__snapshots__/demo-extend.test.ts.snap +++ b/components/tabs/__tests__/__snapshots__/demo-extend.test.ts.snap @@ -945,39 +945,54 @@ exports[`renders ./components/tabs/demo/custom-tab-bar-node.md extend context co style="transform:translate(0px, 0px)" >
{ + const ref = useRef(); + const [{ isOver, dropClassName }, drop] = useDrop({ + accept: type, + collect: monitor => { + const { index: dragIndex } = monitor.getItem() || {}; + if (dragIndex === index) { + return {}; + } + return { + isOver: monitor.isOver(), + dropClassName: 'dropping', + }; + }, + drop: item => { + moveNode(item.index, index); + }, + }); + const [, drag] = useDrag({ + type, + item: { index }, + collect: monitor => ({ + isDragging: monitor.isDragging(), + }), + }); + drop(drag(ref)); + return ( +
+ {children} +
+ ); }; -const WrapTabNode = DropTarget('DND_NODE', cardTarget, connect => ({ - connectDropTarget: connect.dropTarget(), -}))( - DragSource('DND_NODE', cardSource, (connect, monitor) => ({ - connectDragSource: connect.dragSource(), - isDragging: monitor.isDragging(), - }))(TabNode), -); - class DraggableTabs extends React.Component { state = { order: [], @@ -90,9 +85,9 @@ class DraggableTabs extends React.Component { renderTabBar = (props, DefaultTabBar) => ( {node => ( - + {node} - + )} ); @@ -151,3 +146,10 @@ ReactDOM.render( mountNode, ); ``` + +```css +.dropping { + background: #fefefe; + transition: all 0.3s; +} +``` diff --git a/package.json b/package.json index aaae9dcc452c..32011e5440f1 100644 --- a/package.json +++ b/package.json @@ -247,7 +247,7 @@ "react": "^17.0.1", "react-color": "^2.17.3", "react-copy-to-clipboard": "^5.0.1", - "react-dnd": "^14.0.1", + "react-dnd": "^15.0.0", "react-dnd-html5-backend": "^15.0.0", "react-dom": "^17.0.1", "react-draggable": "^4.4.3",