From ba3b3f6f261074bd3f35012bde8730f5d4a36905 Mon Sep 17 00:00:00 2001
From: bobzel <zzzman@gmail.com>
Date: Wed, 29 Nov 2023 10:02:34 -0500
Subject: numerous changes to fix bugs and to fix/remove old or hacky code. 
 fixed doc dec resizing.  moving this.rootDoc => this.Document .  fixing
 template artifacts.

---
 .../views/collections/CollectionDockingView.tsx    | 53 ++++++++++++----------
 1 file changed, 28 insertions(+), 25 deletions(-)

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

diff --git a/src/client/views/collections/CollectionDockingView.tsx b/src/client/views/collections/CollectionDockingView.tsx
index f155e64b5..2e8047309 100644
--- a/src/client/views/collections/CollectionDockingView.tsx
+++ b/src/client/views/collections/CollectionDockingView.tsx
@@ -19,7 +19,7 @@ import { DragManager } from '../../util/DragManager';
 import { InteractionUtils } from '../../util/InteractionUtils';
 import { ScriptingGlobals } from '../../util/ScriptingGlobals';
 import { SelectionManager } from '../../util/SelectionManager';
-import { undoBatch, UndoManager } from '../../util/UndoManager';
+import { undoable, undoBatch, UndoManager } from '../../util/UndoManager';
 import { DashboardView } from '../DashboardView';
 import { LightboxView } from '../LightboxView';
 import { OpenWhere, OpenWhereMod } from '../nodes/DocumentView';
@@ -69,7 +69,7 @@ export class CollectionDockingView extends CollectionSubView() {
         (window as any).React = React;
         (window as any).ReactDOM = ReactDOM;
         DragManager.StartWindowDrag = this.StartOtherDrag;
-        this.rootDoc.myTrails; // this is equivalent to having a prefetchProxy for myTrails which is needed for the My Trails button in the UI which assumes that Doc.ActiveDashboard.myTrails is legit...
+        this.Document.myTrails; // this is equivalent to having a prefetchProxy for myTrails which is needed for the My Trails button in the UI which assumes that Doc.ActiveDashboard.myTrails is legit...
     }
 
     /**
@@ -381,8 +381,8 @@ export class CollectionDockingView extends CollectionSubView() {
                 this.layoutDoc.dockingConfig = json;
                 this.layoutDoc.data = new List<Doc>(docs);
             } else {
-                Doc.SetInPlace(this.rootDoc, 'dockingConfig', json, true);
-                Doc.SetInPlace(this.rootDoc, 'data', new List<Doc>(docs), true);
+                Doc.SetInPlace(this.Document, 'dockingConfig', json, true);
+                Doc.SetInPlace(this.Document, 'data', new List<Doc>(docs), true);
             }
         }
         this._flush?.end();
@@ -479,9 +479,9 @@ export class CollectionDockingView extends CollectionSubView() {
     tabDestroyed = (tab: any) => {
         this._flush = this._flush ?? UndoManager.StartBatch('tab movement');
         if (tab.DashDoc && ![DocumentType.PRES].includes(tab.DashDoc?.type) && !tab.contentItem.config.props.keyValue) {
-            Doc.AddDocToList(Doc.MyHeaderBar, 'data', tab.DashDoc);
+            Doc.AddDocToList(Doc.MyHeaderBar, 'data', tab.DashDoc, undefined, undefined, true);
             // if you close a tab that is not embedded somewhere else (an embedded Doc can be opened simultaneously in a tab), then add the tab to recently closed
-            if (tab.DashDoc.embedContainer === this.rootDoc) tab.DashDoc.embedContainer = undefined;
+            if (tab.DashDoc.embedContainer === this.Document) tab.DashDoc.embedContainer = undefined;
             if (!tab.DashDoc.embedContainer) Doc.AddDocToList(Doc.MyRecentlyClosed, 'data', tab.DashDoc, undefined, true, true);
             Doc.RemoveDocFromList(Doc.GetProto(tab.DashDoc), 'proto_embeddings', tab.DashDoc);
         }
@@ -512,28 +512,31 @@ export class CollectionDockingView extends CollectionSubView() {
                     _layout_fitWidth: true,
                     title: `Untitled Tab ${NumCast(dashboard['pane-count'])}`,
                 });
-                Doc.AddDocToList(Doc.MyHeaderBar, 'data', docToAdd);
-                inheritParentAcls(this.rootDoc, docToAdd, false);
+                Doc.AddDocToList(Doc.MyHeaderBar, 'data', docToAdd, undefined, undefined, true);
+                inheritParentAcls(this.Document, docToAdd, false);
                 CollectionDockingView.AddSplit(docToAdd, OpenWhereMod.none, stack);
             }
         });
 
-        let addNewDoc = action(() => {
-            const dashboard = Doc.ActiveDashboard;
-            if (dashboard) {
-                dashboard['pane-count'] = NumCast(dashboard['pane-count']) + 1;
-                const docToAdd = Docs.Create.FreeformDocument([], {
-                    _width: this.props.PanelWidth(),
-                    _height: this.props.PanelHeight(),
-                    _layout_fitWidth: true,
-                    _freeform_backgroundGrid: true,
-                    title: `Untitled Tab ${NumCast(dashboard['pane-count'])}`,
-                });
-                Doc.AddDocToList(Doc.MyHeaderBar, 'data', docToAdd);
-                inheritParentAcls(this.dataDoc, docToAdd, false);
-                CollectionDockingView.AddSplit(docToAdd, OpenWhereMod.none, stack);
-            }
-        });
+        let addNewDoc = undoable(
+            action(() => {
+                const dashboard = Doc.ActiveDashboard;
+                if (dashboard) {
+                    dashboard['pane-count'] = NumCast(dashboard['pane-count']) + 1;
+                    const docToAdd = Docs.Create.FreeformDocument([], {
+                        _width: this.props.PanelWidth(),
+                        _height: this.props.PanelHeight(),
+                        _layout_fitWidth: true,
+                        _freeform_backgroundGrid: true,
+                        title: `Untitled Tab ${NumCast(dashboard['pane-count'])}`,
+                    });
+                    Doc.AddDocToList(Doc.MyHeaderBar, 'data', docToAdd, undefined, undefined, true);
+                    inheritParentAcls(this.dataDoc, docToAdd, false);
+                    CollectionDockingView.AddSplit(docToAdd, OpenWhereMod.none, stack);
+                }
+            }),
+            'add new tab'
+        );
 
         stack.header?.controlsContainer
             .find('.lm_close') //get the close icon
@@ -569,7 +572,7 @@ export class CollectionDockingView extends CollectionSubView() {
     };
 
     render() {
-        const href = ImageCast(this.rootDoc.thumb)?.url?.href;
+        const href = ImageCast(this.Document.thumb)?.url?.href;
         return this.props.renderDepth > -1 ? (
             <div>
                 {href ? (
-- 
cgit v1.2.3-70-g09d2

