From f450c8760c0563cdadd414f169902faeace585ec Mon Sep 17 00:00:00 2001
From: vkalev <victor_kalev@brown.edu>
Date: Tue, 9 Nov 2021 16:08:01 -0500
Subject: working on undo/redo

---
 .../collections/collectionFreeForm/CollectionFreeFormView.tsx     | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

(limited to 'src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx')

diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
index f60af6355..018f4f79a 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx
@@ -29,7 +29,7 @@ import { SearchUtil } from "../../../util/SearchUtil";
 import { SelectionManager } from "../../../util/SelectionManager";
 import { SnappingManager } from "../../../util/SnappingManager";
 import { Transform } from "../../../util/Transform";
-import { undoBatch } from "../../../util/UndoManager";
+import { undoBatch, UndoManager } from "../../../util/UndoManager";
 import { COLLECTION_BORDER_WIDTH } from "../../../views/global/globalCssVariables.scss";
 import { Timeline } from "../../animationtimeline/Timeline";
 import { ContextMenu } from "../../ContextMenu";
@@ -99,6 +99,7 @@ export class CollectionFreeFormView extends CollectionSubView<PanZoomDocument, P
     private _layoutSizeData = observable.map<string, { width?: number, height?: number }>();
     private _cachedPool: Map<string, PoolData> = new Map();
     private _lastTap = 0;
+    private _batch: UndoManager.Batch | undefined = undefined;
 
     private get isAnnotationOverlay() { return this.props.isAnnotationOverlay; }
     private get scaleFieldKey() { return this.props.scaleField || "_viewScale"; }
@@ -449,6 +450,7 @@ export class CollectionFreeFormView extends CollectionSubView<PanZoomDocument, P
             document.addEventListener("pointerup", this.onPointerUp);
             // if not using a pen and in no ink mode
             if (CurrentUserUtils.SelectedTool === InkTool.None) {
+                this._batch = UndoManager.StartBatch("collectionErase");
                 this._downX = this._lastX = e.pageX;
                 this._downY = this._lastY = e.pageY;
             }
@@ -598,6 +600,8 @@ export class CollectionFreeFormView extends CollectionSubView<PanZoomDocument, P
         }
     }
 
+    // @undoBatch
+    @action
     onPointerUp = (e: PointerEvent): void => {
         if (!InteractionUtils.IsType(e, InteractionUtils.TOUCHTYPE)) {
             document.removeEventListener("pointermove", this.onPointerMove);
@@ -607,11 +611,13 @@ export class CollectionFreeFormView extends CollectionSubView<PanZoomDocument, P
             if (CurrentUserUtils.SelectedTool !== InkTool.None) {
                 if (this._deleteList.length > 0) {
                     this._deleteList.forEach(ink => {
+                        ink.Document.opacity = 1;
                         ink.props.removeDocument?.(ink.props.Document);
                     });
                 }
                 this._prevPoint = this._currPoint = { X: -1, Y: -1 };
                 this._deleteList = [];
+                this._batch?.end();
             }
         }
     }
-- 
cgit v1.2.3-70-g09d2

