From 4d21b79bfb87bb5fe81950a432a031f42b99f707 Mon Sep 17 00:00:00 2001
From: bobzel <zzzman@gmail.com>
Date: Thu, 6 Oct 2022 10:19:31 -0400
Subject: don't allow golden layout to be created if there's no dockingConfig.

---
 .../views/collections/CollectionDockingView.tsx    | 57 ++++++++++++----------
 1 file changed, 30 insertions(+), 27 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 40a5876e0..37a2d5e5d 100644
--- a/src/client/views/collections/CollectionDockingView.tsx
+++ b/src/client/views/collections/CollectionDockingView.tsx
@@ -282,35 +282,38 @@ export class CollectionDockingView extends CollectionSubView() {
         return true;
     }
     setupGoldenLayout = async () => {
-        const config = StrCast(this.props.Document.dockingConfig, JSON.stringify(DashboardView.resetDashboard(this.props.Document)));
-        const matches = config.match(/\"documentId\":\"[a-z0-9-]+\"/g);
-        const docids = matches?.map(m => m.replace('"documentId":"', '').replace('"', '')) ?? [];
-
-        await Promise.all(docids.map(id => DocServer.GetRefField(id)));
-
-        if (this._goldenLayout) {
-            if (config === JSON.stringify(this._goldenLayout.toConfig())) {
-                return;
-            } else {
-                try {
-                    this._goldenLayout.unbind('tabCreated', this.tabCreated);
-                    this._goldenLayout.unbind('tabDestroyed', this.tabDestroyed);
-                    this._goldenLayout.unbind('stackCreated', this.stackCreated);
-                } catch (e) {}
+        //const config = StrCast(this.props.Document.dockingConfig, JSON.stringify(DashboardView.resetDashboard(this.props.Document)));
+        const config = StrCast(this.props.Document.dockingConfig);
+        if (config) {
+            const matches = config.match(/\"documentId\":\"[a-z0-9-]+\"/g);
+            const docids = matches?.map(m => m.replace('"documentId":"', '').replace('"', '')) ?? [];
+
+            await Promise.all(docids.map(id => DocServer.GetRefField(id)));
+
+            if (this._goldenLayout) {
+                if (config === JSON.stringify(this._goldenLayout.toConfig())) {
+                    return;
+                } else {
+                    try {
+                        this._goldenLayout.unbind('tabCreated', this.tabCreated);
+                        this._goldenLayout.unbind('tabDestroyed', this.tabDestroyed);
+                        this._goldenLayout.unbind('stackCreated', this.stackCreated);
+                    } catch (e) {}
+                }
+                this.tabMap.clear();
+                this._goldenLayout.destroy();
             }
-            this.tabMap.clear();
-            this._goldenLayout.destroy();
+            const glay = (this._goldenLayout = new GoldenLayout(JSON.parse(config)));
+            glay.on('tabCreated', this.tabCreated);
+            glay.on('tabDestroyed', this.tabDestroyed);
+            glay.on('stackCreated', this.stackCreated);
+            glay.registerComponent('DocumentFrameRenderer', TabDocView);
+            glay.container = this._containerRef.current;
+            glay.init();
+            glay.root.layoutManager.on('itemDropped', this.tabItemDropped);
+            glay.root.layoutManager.on('dragStart', this.tabDragStart);
+            glay.root.layoutManager.on('activeContentItemChanged', this.stateChanged);
         }
-        const glay = (this._goldenLayout = new GoldenLayout(JSON.parse(config)));
-        glay.on('tabCreated', this.tabCreated);
-        glay.on('tabDestroyed', this.tabDestroyed);
-        glay.on('stackCreated', this.stackCreated);
-        glay.registerComponent('DocumentFrameRenderer', TabDocView);
-        glay.container = this._containerRef.current;
-        glay.init();
-        glay.root.layoutManager.on('itemDropped', this.tabItemDropped);
-        glay.root.layoutManager.on('dragStart', this.tabDragStart);
-        glay.root.layoutManager.on('activeContentItemChanged', this.stateChanged);
     };
 
     componentDidMount: () => void = () => {
-- 
cgit v1.2.3-70-g09d2

