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