From b84bdc5a629dfa6310b24dd5eedee2843558b73a Mon Sep 17 00:00:00 2001
From: bobzel <zzzman@gmail.com>
Date: Mon, 12 Aug 2024 21:38:22 -0400
Subject: more any -> type fixes

---
 .../collections/collectionMulticolumn/CollectionMultirowView.tsx    | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

(limited to 'src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx')

diff --git a/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx b/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx
index 3fe3d5343..2833ff2f8 100644
--- a/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx
+++ b/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx
@@ -8,7 +8,7 @@ import { dropActionType } from '../../../util/DropActionTypes';
 import { Transform } from '../../../util/Transform';
 import { undoBatch } from '../../../util/UndoManager';
 import { DocumentView } from '../../nodes/DocumentView';
-import { CollectionSubView } from '../CollectionSubView';
+import { CollectionSubView, SubCollectionViewProps } from '../CollectionSubView';
 import './CollectionMultirowView.scss';
 import HeightLabel from './MultirowHeightLabel';
 import ResizeBar from './MultirowResizer';
@@ -33,7 +33,7 @@ const resizerHeight = 8;
 
 @observer
 export class CollectionMultirowView extends CollectionSubView() {
-    constructor(props: any) {
+    constructor(props: SubCollectionViewProps) {
         super(props);
         makeObservable(this);
     }
@@ -284,7 +284,7 @@ export class CollectionMultirowView extends CollectionSubView() {
                 whenChildContentsActiveChanged={this._props.whenChildContentsActiveChanged}
                 addDocTab={this._props.addDocTab}
                 pinToPres={this._props.pinToPres}
-                dontCenter={StrCast(this.layoutDoc.layout_dontCenter) as any} // 'y', 'x', 'xy'
+                dontCenter={StrCast(this.layoutDoc.layout_dontCenter) as 'y' | 'x' | 'xy'}
             />
         );
     };
-- 
cgit v1.2.3-70-g09d2


From 325aa35c4bd5f57240ead2ec5f22ea9c4f19d522 Mon Sep 17 00:00:00 2001
From: bobzel <zzzman@gmail.com>
Date: Thu, 15 Aug 2024 23:16:09 -0400
Subject: fixed dropping on multi col/row collections with margins

---
 .../CollectionMulticolumnView.scss                 | 69 +++++++++-------
 .../CollectionMulticolumnView.tsx                  | 94 +++++++++++-----------
 .../CollectionMultirowView.scss                    | 49 ++++++-----
 .../CollectionMultirowView.tsx                     | 31 +++----
 src/client/views/nodes/trails/PresBox.tsx          | 22 ++---
 5 files changed, 143 insertions(+), 122 deletions(-)

(limited to 'src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx')

diff --git a/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.scss b/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.scss
index f983fd815..06d78c39e 100644
--- a/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.scss
+++ b/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.scss
@@ -1,43 +1,50 @@
-.collectionMulticolumnView_contents {
-    display: flex;
-    //overflow: hidden;  // bcz: turned of to allow highlighting to appear when there is no border (e.g, for a component of the slide template)
-    width: 100%;
+.collectionMulticolumnView_drop {
     height: 100%;
+    top: 0;
+    left: 0;
+    position: absolute;
 
-    .document-wrapper {
+    .collectionMulticolumnView_contents {
         display: flex;
-        flex-direction: column;
+        //overflow: hidden;  // bcz: turned of to allow highlighting to appear when there is no border (e.g, for a component of the slide template)
         width: 100%;
-        align-items: center;
-        position: relative;
-        > .iconButton-container {
-            top: 0;
-            left: 0;
-            position: absolute;
-        }
-
-        .contentFittingDocumentView {
-            margin: auto;
-        }
+        height: 100%;
 
-        .label-wrapper {
+        .document-wrapper {
             display: flex;
-            flex-direction: row;
-            justify-content: center;
-            height: 20px;
+            flex-direction: column;
+            width: 100%;
+            align-items: center;
+            position: relative;
+            > .iconButton-container {
+                top: 0;
+                left: 0;
+                position: absolute;
+            }
+
+            .contentFittingDocumentView {
+                margin: auto;
+            }
+
+            .label-wrapper {
+                display: flex;
+                flex-direction: row;
+                justify-content: center;
+                height: 20px;
+            }
         }
-    }
 
-    .multiColumnResizer {
-        cursor: ew-resize;
-        transition: 0.5s opacity ease;
-        display: flex;
-        flex-direction: column;
+        .multiColumnResizer {
+            cursor: ew-resize;
+            transition: 0.5s opacity ease;
+            display: flex;
+            flex-direction: column;
 
-        .multiColumnResizer-hdl {
-            width: 100%;
-            height: 100%;
-            transition: 0.5s background-color ease;
+            .multiColumnResizer-hdl {
+                width: 100%;
+                height: 100%;
+                transition: 0.5s background-color ease;
+            }
         }
     }
 }
diff --git a/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx b/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx
index 5125bdb6c..c6884d866 100644
--- a/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx
+++ b/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx
@@ -17,6 +17,7 @@ import './CollectionMulticolumnView.scss';
 import ResizeBar from './MulticolumnResizer';
 import WidthLabel from './MulticolumnWidthLabel';
 import { dropActionType } from '../../../util/DropActionTypes';
+import { SnappingManager } from '../../../util/SnappingManager';
 
 interface WidthSpecifier {
     magnitude: number;
@@ -211,15 +212,14 @@ export class CollectionMulticolumnView extends CollectionSubView() {
         return Transform.Identity();
     };
 
-    @undoBatch
     onInternalDrop = (e: Event, de: DragManager.DropEvent) => {
         let dropInd = -1;
-        if (de.complete.docDragData && this._mainCont) {
+        if (de.complete.docDragData && this._contRef.current) {
             let curInd = -1;
             de.complete.docDragData?.droppedDocuments.forEach(d => {
                 curInd = this.childDocs.indexOf(d);
             });
-            Array.from(this._mainCont.children).forEach((child, index) => {
+            Array.from(this._contRef.current.children).forEach((child, index) => {
                 const brect = child.getBoundingClientRect();
                 if (brect.x < de.x && brect.x + brect.width > de.x) {
                     if (curInd !== -1 && curInd === Math.floor(index / 2)) {
@@ -317,11 +317,11 @@ export class CollectionMulticolumnView extends CollectionSubView() {
         this.childLayouts.forEach((layout, i) => {
             collector.push(
                 // eslint-disable-next-line react/no-array-index-key
-                <Tooltip title={'Tab: ' + StrCast(layout.title)} key={'wrapper' + i}>
+                <Tooltip title={'Doc: ' + StrCast(layout.title)} key={'wrapper' + i}>
                     <div className="document-wrapper" style={{ flexDirection: 'column', width: this.lookupPixels(layout) }}>
                         {this.getDisplayDoc(layout)}
                         {this.layoutDoc._chromeHidden ? null : (
-                            <Button tooltip="Remove document from header bar" icon={<FontAwesomeIcon icon="times" size="lg" />} onClick={undoable(() => this._props.removeDocument?.(layout), 'close doc')} color={SettingsManager.userColor} />
+                            <Button tooltip="Remove document" icon={<FontAwesomeIcon icon="times" size="lg" />} onClick={undoable(() => this._props.removeDocument?.(layout), 'close doc')} color={SettingsManager.userColor} />
                         )}
                         <WidthLabel layout={layout} collectionDoc={this.Document} />
                     </div>
@@ -343,49 +343,53 @@ export class CollectionMulticolumnView extends CollectionSubView() {
         return collector;
     }
 
+    _contRef = React.createRef<HTMLDivElement>();
     render() {
         return (
-            <div
-                className="collectionMulticolumnView_contents"
-                ref={this.createDashEventsTarget}
-                style={{
-                    width: `calc(100% - ${2 * NumCast(this.Document._xMargin)}px)`,
-                    height: `calc(100% - ${2 * NumCast(this.Document._yMargin)}px)`,
-                    marginLeft: NumCast(this.Document._xMargin),
-                    marginRight: NumCast(this.Document._xMargin),
-                    marginTop: NumCast(this.Document._yMargin),
-                    marginBottom: NumCast(this.Document._yMargin),
-                }}>
-                {this.contents}
-                {!this._startIndex ? null : (
-                    <Tooltip title="scroll back">
-                        <div
-                            style={{ position: 'absolute', bottom: 0, left: 0, background: SettingsManager.userVariantColor }}
-                            onClick={action(() => {
-                                this._startIndex = Math.min(this.childLayoutPairs.length - 1, this._startIndex + this.maxShown);
-                            })}>
-                            <Button
-                                tooltip="Scroll back"
-                                icon={<FontAwesomeIcon icon="chevron-left" size="lg" />}
+            <div className="collectionMulticolumnView_drop" ref={this.createDashEventsTarget}>
+                <div
+                    className="collectionMulticolumnView_contents"
+                    ref={this._contRef}
+                    style={{
+                        pointerEvents: this._props.isContentActive() && SnappingManager.IsDragging ? 'all' : this._props.pointerEvents?.(),
+                        width: `calc(100% - ${2 * NumCast(this.Document._xMargin)}px)`,
+                        height: `calc(100% - ${2 * NumCast(this.Document._yMargin)}px)`,
+                        marginLeft: NumCast(this.Document._xMargin),
+                        marginRight: NumCast(this.Document._xMargin),
+                        marginTop: NumCast(this.Document._yMargin),
+                        marginBottom: NumCast(this.Document._yMargin),
+                    }}>
+                    {this.contents}
+                    {!this._startIndex ? null : (
+                        <Tooltip title="scroll back">
+                            <div
+                                style={{ position: 'absolute', bottom: 0, left: 0, background: SettingsManager.userVariantColor }}
                                 onClick={action(() => {
-                                    this._startIndex = Math.max(0, this._startIndex - this.maxShown);
-                                })}
-                                color={SettingsManager.userColor}
-                            />
-                        </div>
-                    </Tooltip>
-                )}
-                {this._startIndex > this.childLayoutPairs.length - 1 || !this.maxShown ? null : (
-                    <Tooltip title="scroll forward">
-                        <div
-                            style={{ position: 'absolute', bottom: 0, right: 0, background: SettingsManager.userVariantColor }}
-                            onClick={action(() => {
-                                this._startIndex = Math.min(this.childLayoutPairs.length - 1, this._startIndex + this.maxShown);
-                            })}>
-                            <IconButton icon={<FaChevronRight />} color={SettingsManager.userColor} />
-                        </div>
-                    </Tooltip>
-                )}
+                                    this._startIndex = Math.min(this.childLayoutPairs.length - 1, this._startIndex + this.maxShown);
+                                })}>
+                                <Button
+                                    tooltip="Scroll back"
+                                    icon={<FontAwesomeIcon icon="chevron-left" size="lg" />}
+                                    onClick={action(() => {
+                                        this._startIndex = Math.max(0, this._startIndex - this.maxShown);
+                                    })}
+                                    color={SettingsManager.userColor}
+                                />
+                            </div>
+                        </Tooltip>
+                    )}
+                    {this._startIndex > this.childLayoutPairs.length - 1 || !this.maxShown ? null : (
+                        <Tooltip title="scroll forward">
+                            <div
+                                style={{ position: 'absolute', bottom: 0, right: 0, background: SettingsManager.userVariantColor }}
+                                onClick={action(() => {
+                                    this._startIndex = Math.min(this.childLayoutPairs.length - 1, this._startIndex + this.maxShown);
+                                })}>
+                                <IconButton icon={<FaChevronRight />} color={SettingsManager.userColor} />
+                            </div>
+                        </Tooltip>
+                    )}
+                </div>
             </div>
         );
     }
diff --git a/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.scss b/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.scss
index f44eacb2a..0d49fabaa 100644
--- a/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.scss
+++ b/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.scss
@@ -1,34 +1,41 @@
-.collectionMultirowView_contents {
-    display: flex;
-    //overflow: hidden; // bcz: turned of to allow highlighting to appear when there is no border (e.g, for a component of the slide template)
-    width: 100%;
+.collectionMultirowView_drop {
     height: 100%;
-    flex-direction: column;
+    top: 0;
+    left: 0;
+    position: absolute;
 
-    .document-wrapper {
+    .collectionMultirowView_contents {
         display: flex;
-        flex-direction: row;
+        //overflow: hidden; // bcz: turned of to allow highlighting to appear when there is no border (e.g, for a component of the slide template)
+        width: 100%;
         height: 100%;
-        align-items: center;
+        flex-direction: column;
 
-        .label-wrapper {
+        .document-wrapper {
             display: flex;
             flex-direction: row;
-            justify-content: center;
-            height: 20px;
+            height: 100%;
+            align-items: center;
+
+            .label-wrapper {
+                display: flex;
+                flex-direction: row;
+                justify-content: center;
+                height: 20px;
+            }
         }
-    }
 
-    .multiRowResizer {
-        cursor: ns-resize;
-        transition: 0.5s opacity ease;
-        display: flex;
-        flex-direction: row;
+        .multiRowResizer {
+            cursor: ns-resize;
+            transition: 0.5s opacity ease;
+            display: flex;
+            flex-direction: row;
 
-        .multiRowResizer-hdl {
-            width: 100%;
-            height: 100%;
-            transition: 0.5s background-color ease;
+            .multiRowResizer-hdl {
+                width: 100%;
+                height: 100%;
+                transition: 0.5s background-color ease;
+            }
         }
     }
 }
diff --git a/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx b/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx
index 2833ff2f8..04b85e182 100644
--- a/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx
+++ b/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx
@@ -196,12 +196,12 @@ export class CollectionMultirowView extends CollectionSubView() {
     @undoBatch
     onInternalDrop = (e: Event, de: DragManager.DropEvent) => {
         let dropInd = -1;
-        if (de.complete.docDragData && this._mainCont) {
+        if (de.complete.docDragData && this._contRef.current) {
             let curInd = -1;
             de.complete.docDragData?.droppedDocuments.forEach(d => {
                 curInd = this.childDocs.indexOf(d);
             });
-            Array.from(this._mainCont.children).forEach((child, index) => {
+            Array.from(this._contRef.current.children).forEach((child, index) => {
                 const brect = child.getBoundingClientRect();
                 if (brect.y < de.y && brect.y + brect.height > de.y) {
                     if (curInd !== -1 && curInd === Math.floor(index / 2)) {
@@ -318,20 +318,23 @@ export class CollectionMultirowView extends CollectionSubView() {
         return collector;
     }
 
+    _contRef = React.createRef<HTMLDivElement>();
     render() {
         return (
-            <div
-                className="collectionMultirowView_contents"
-                style={{
-                    width: `calc(100% - ${2 * NumCast(this.Document._xMargin)}px)`,
-                    height: `calc(100% - ${2 * NumCast(this.Document._yMargin)}px)`,
-                    marginLeft: NumCast(this.Document._xMargin),
-                    marginRight: NumCast(this.Document._xMargin),
-                    marginTop: NumCast(this.Document._yMargin),
-                    marginBottom: NumCast(this.Document._yMargin),
-                }}
-                ref={this.createDashEventsTarget}>
-                {this.contents}
+            <div className="collectionMultirowView_drop" ref={this.createDashEventsTarget}>
+                <div
+                    ref={this._contRef}
+                    className="collectionMultirowView_contents"
+                    style={{
+                        width: `calc(100% - ${2 * NumCast(this.Document._xMargin)}px)`,
+                        height: `calc(100% - ${2 * NumCast(this.Document._yMargin)}px)`,
+                        marginLeft: NumCast(this.Document._xMargin),
+                        marginRight: NumCast(this.Document._xMargin),
+                        marginTop: NumCast(this.Document._yMargin),
+                        marginBottom: NumCast(this.Document._yMargin),
+                    }}>
+                    {this.contents}
+                </div>
             </div>
         );
     }
diff --git a/src/client/views/nodes/trails/PresBox.tsx b/src/client/views/nodes/trails/PresBox.tsx
index cf32a0196..7448fa898 100644
--- a/src/client/views/nodes/trails/PresBox.tsx
+++ b/src/client/views/nodes/trails/PresBox.tsx
@@ -2,7 +2,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
 import { Tooltip } from '@mui/material';
 import Slider from '@mui/material/Slider';
 import { Button, Dropdown, DropdownType, IconButton, Toggle, ToggleType, Type } from 'browndash-components';
-import { action, computed, IReactionDisposer, makeObservable, observable, ObservableSet, reaction, runInAction } from 'mobx';
+import { IReactionDisposer, ObservableSet, action, computed, makeObservable, observable, reaction, runInAction } from 'mobx';
 import { observer } from 'mobx-react';
 import * as React from 'react';
 import { AiOutlineSend } from 'react-icons/ai';
@@ -10,7 +10,8 @@ import { BiMicrophone } from 'react-icons/bi';
 import { FaArrowDown, FaArrowLeft, FaArrowRight, FaArrowUp } from 'react-icons/fa';
 import ReactLoading from 'react-loading';
 import ReactTextareaAutosize from 'react-textarea-autosize';
-import { lightOrDark, returnFalse, returnOne, setupMoveUpEvents, StopEvent } from '../../../../ClientUtils';
+import { StopEvent, lightOrDark, returnFalse, returnOne, setupMoveUpEvents } from '../../../../ClientUtils';
+import { emptyFunction, stringHash } from '../../../../Utils';
 import { Doc, DocListCast, Field, FieldResult, FieldType, NumListCast, Opt, StrListCast } from '../../../../fields/Doc';
 import { Animation, DocData, TransitionTimer } from '../../../../fields/DocSymbols';
 import { Copy } from '../../../../fields/FieldSymbols';
@@ -20,24 +21,23 @@ import { ObjectField } from '../../../../fields/ObjectField';
 import { listSpec } from '../../../../fields/Schema';
 import { ComputedField, ScriptField } from '../../../../fields/ScriptField';
 import { BoolCast, Cast, DocCast, NumCast, StrCast, toList } from '../../../../fields/Types';
-import { emptyFunction, stringHash } from '../../../../Utils';
-import { getSlideTransitionSuggestions, gptSlideProperties, gptTrailSlideCustomization } from '../../../apis/gpt/PresCustomization';
 import { DocServer } from '../../../DocServer';
-import { Docs } from '../../../documents/Documents';
+import { getSlideTransitionSuggestions, gptSlideProperties, gptTrailSlideCustomization } from '../../../apis/gpt/PresCustomization';
 import { CollectionViewType, DocumentType } from '../../../documents/DocumentTypes';
+import { Docs } from '../../../documents/Documents';
 import { DictationManager } from '../../../util/DictationManager';
 import { dropActionType } from '../../../util/DropActionTypes';
 import { ScriptingGlobals } from '../../../util/ScriptingGlobals';
 import { SerializationHelper } from '../../../util/SerializationHelper';
 import { SnappingManager } from '../../../util/SnappingManager';
-import { undoable, undoBatch, UndoManager } from '../../../util/UndoManager';
-import { CollectionFreeFormView } from '../../collections/collectionFreeForm';
-import { CollectionFreeFormPannableContents } from '../../collections/collectionFreeForm/CollectionFreeFormPannableContents';
+import { UndoManager, undoBatch, undoable } from '../../../util/UndoManager';
+import { ViewBoxBaseComponent } from '../../DocComponent';
+import { pinDataTypes as dataTypes } from '../../PinFuncs';
 import { CollectionView } from '../../collections/CollectionView';
 import { TreeView } from '../../collections/TreeView';
-import { ViewBoxBaseComponent } from '../../DocComponent';
+import { CollectionFreeFormView } from '../../collections/collectionFreeForm';
+import { CollectionFreeFormPannableContents } from '../../collections/collectionFreeForm/CollectionFreeFormPannableContents';
 import { Colors } from '../../global/globalEnums';
-import { pinDataTypes as dataTypes } from '../../PinFuncs';
 import { DocumentView } from '../DocumentView';
 import { FieldView, FieldViewProps } from '../FieldView';
 import { FocusViewOptions } from '../FocusViewOptions';
@@ -47,7 +47,7 @@ import CubicBezierEditor, { EaseFuncToPoints, TIMING_DEFAULT_MAPPINGS } from './
 import './PresBox.scss';
 import { PresEffect, PresEffectDirection, PresMovement, PresStatus } from './PresEnums';
 import SlideEffect from './SlideEffect';
-import { AnimationSettings, easeItems, effectItems, effectTimings, movementItems, presEffectDefaultTimings, springMappings, springPreviewColors, SpringSettings, SpringType } from './SpringUtils';
+import { AnimationSettings, SpringSettings, SpringType, easeItems, effectItems, effectTimings, movementItems, presEffectDefaultTimings, springMappings, springPreviewColors } from './SpringUtils';
 
 @observer
 export class PresBox extends ViewBoxBaseComponent<FieldViewProps>() {
-- 
cgit v1.2.3-70-g09d2


From d0c072b36ae6b9a65f993592bc7a27719126fda9 Mon Sep 17 00:00:00 2001
From: bobzel <zzzman@gmail.com>
Date: Thu, 15 Aug 2024 23:18:38 -0400
Subject: from last

---
 .../collections/collectionMulticolumn/CollectionMulticolumnView.tsx     | 2 +-
 .../views/collections/collectionMulticolumn/CollectionMultirowView.tsx  | 2 --
 2 files changed, 1 insertion(+), 3 deletions(-)

(limited to 'src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx')

diff --git a/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx b/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx
index c6884d866..c4c025ded 100644
--- a/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx
+++ b/src/client/views/collections/collectionMulticolumn/CollectionMulticolumnView.tsx
@@ -10,7 +10,7 @@ import { BoolCast, NumCast, ScriptCast, StrCast } from '../../../../fields/Types
 import { DragManager } from '../../../util/DragManager';
 import { SettingsManager } from '../../../util/SettingsManager';
 import { Transform } from '../../../util/Transform';
-import { undoBatch, undoable } from '../../../util/UndoManager';
+import { undoable } from '../../../util/UndoManager';
 import { DocumentView } from '../../nodes/DocumentView';
 import { CollectionSubView, SubCollectionViewProps } from '../CollectionSubView';
 import './CollectionMulticolumnView.scss';
diff --git a/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx b/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx
index 04b85e182..bda8e91ac 100644
--- a/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx
+++ b/src/client/views/collections/collectionMulticolumn/CollectionMultirowView.tsx
@@ -6,7 +6,6 @@ import { BoolCast, NumCast, ScriptCast, StrCast } from '../../../../fields/Types
 import { DragManager } from '../../../util/DragManager';
 import { dropActionType } from '../../../util/DropActionTypes';
 import { Transform } from '../../../util/Transform';
-import { undoBatch } from '../../../util/UndoManager';
 import { DocumentView } from '../../nodes/DocumentView';
 import { CollectionSubView, SubCollectionViewProps } from '../CollectionSubView';
 import './CollectionMultirowView.scss';
@@ -193,7 +192,6 @@ export class CollectionMultirowView extends CollectionSubView() {
         return Transform.Identity(); // type coersion, this case should never be hit
     };
 
-    @undoBatch
     onInternalDrop = (e: Event, de: DragManager.DropEvent) => {
         let dropInd = -1;
         if (de.complete.docDragData && this._contRef.current) {
-- 
cgit v1.2.3-70-g09d2

