From 25ed15269b72073bd2c7e1e8580574f8a16d986d Mon Sep 17 00:00:00 2001
From: mehekj <mehek.jethani@gmail.com>
Date: Mon, 20 Mar 2023 17:48:08 -0400
Subject: drag and drop to swap columns

---
 .../collections/collectionSchema/CollectionSchemaView.tsx   | 13 +++++++++++++
 1 file changed, 13 insertions(+)

(limited to 'src/client/views/collections/collectionSchema/CollectionSchemaView.tsx')

diff --git a/src/client/views/collections/collectionSchema/CollectionSchemaView.tsx b/src/client/views/collections/collectionSchema/CollectionSchemaView.tsx
index b0114a226..0b68fd31e 100644
--- a/src/client/views/collections/collectionSchema/CollectionSchemaView.tsx
+++ b/src/client/views/collections/collectionSchema/CollectionSchemaView.tsx
@@ -392,6 +392,19 @@ export class CollectionSchemaView extends CollectionSubView() {
 
     @action
     onInternalDrop = (e: Event, de: DragManager.DropEvent) => {
+        if (de.complete.columnDragData) {
+            e.stopPropagation();
+            const mouseX = this.props.ScreenToLocalTransform().transformPoint(de.x, de.y)[0];
+            let i = de.complete.columnDragData.colIndex;
+            this.displayColumnWidths.reduce((total, curr, index) => {
+                if (total <= mouseX && total + curr >= mouseX) {
+                    i = index;
+                }
+                return total + curr;
+            }, CollectionSchemaView._rowMenuWidth);
+            this.swapColumns(de.complete.columnDragData.colIndex, i);
+            return true;
+        }
         if (super.onInternalDrop(e, de)) {
             this._isDragging = false;
             const pushedDocs: Doc[] = this.childDocs.filter((doc: Doc, index: number) => index >= this._closestDropIndex && !this._selectedDocs.has(doc));
-- 
cgit v1.2.3-70-g09d2

