From 6de5ea0a0c6f06e0321ae41846473118fb85de48 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 20 十月 2022 15:04:24 +0800 Subject: [PATCH] 2022-10-20 --- src/menu/components/tabs/table-tabs/dragabletabs.jsx | 19 ++++++++++++------- 1 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/menu/components/tabs/table-tabs/dragabletabs.jsx b/src/menu/components/tabs/table-tabs/dragabletabs.jsx index fbb97de..fe563ff 100644 --- a/src/menu/components/tabs/table-tabs/dragabletabs.jsx +++ b/src/menu/components/tabs/table-tabs/dragabletabs.jsx @@ -19,6 +19,9 @@ if (dragKey === hoverKey) { return; + } else if (!dragKey) { + monitor.getItem().added = true + props.tabsDrop(hoverKey) } props.moveTabNode(dragKey, hoverKey) @@ -35,10 +38,10 @@ } } -const WrapTabNode = DropTarget('DND_NODE', cardTarget, connect => ({ +const WrapTabNode = DropTarget('menu', cardTarget, connect => ({ connectDropTarget: connect.dropTarget(), }))( - DragSource('DND_NODE', cardSource, (connect, monitor) => ({ + DragSource('menu', cardSource, (connect, monitor) => ({ connectDragSource: connect.dragSource(), isDragging: monitor.isDragging(), }))(TabNode) @@ -62,6 +65,11 @@ const dragIndex = newOrder.indexOf(dragKey) const hoverIndex = newOrder.indexOf(hoverKey) + if (dragIndex === -1) { + this.props.tabsDrop(hoverKey, dragKey) + return + } + newOrder.splice(dragIndex, 1) newOrder.splice(hoverIndex, 0, dragKey) @@ -74,7 +82,7 @@ renderTabBar = (props, DefaultTabBar) => ( <DefaultTabBar {...props}> {node => ( - <WrapTabNode key={node.key} index={node.key} moveTabNode={this.moveTabNode}> + <WrapTabNode key={node.key} index={node.key} moveTabNode={this.moveTabNode} tabsDrop={this.props.tabsDrop}> {node} </WrapTabNode> )} @@ -82,10 +90,7 @@ ) shouldComponentUpdate (nextProps, nextState) { - return !is(fromJS(this.state), fromJS(nextState)) || - !is(fromJS(nextProps.children), fromJS(this.props.children)) || - nextProps.tabPosition !== this.props.tabPosition || - nextProps.type !== this.props.type + return !is(fromJS(this.state), fromJS(nextState)) || !is(fromJS(nextProps.children), fromJS(this.props.children)) } render() { -- Gitblit v1.8.0