From 611992db3635123da39c64a98ff656a5d2f38f7a Mon Sep 17 00:00:00 2001
From: bobzel <zzzman@gmail.com>
Date: Mon, 28 Aug 2023 14:12:05 -0400
Subject: fixed runtime error in sharing manager when sharing the dashboard

---
 src/client/util/SharingManager.tsx | 28 +++++++++++++++-------------
 1 file changed, 15 insertions(+), 13 deletions(-)

(limited to 'src/client/util/SharingManager.tsx')

diff --git a/src/client/util/SharingManager.tsx b/src/client/util/SharingManager.tsx
index 9a9097bf7..8d59426ec 100644
--- a/src/client/util/SharingManager.tsx
+++ b/src/client/util/SharingManager.tsx
@@ -378,15 +378,17 @@ export class SharingManager extends React.Component<{}> {
                     }
                 });
 
-                const { left, width, top, height } = this.shareDocumentButtonRef.current!.getBoundingClientRect();
-                TaskCompletionBox.popupX = left - 1.5 * width;
-                TaskCompletionBox.popupY = top - 1.5 * height;
-                TaskCompletionBox.textDisplayed = 'Document shared!';
-                TaskCompletionBox.taskCompleted = true;
-                setTimeout(
-                    action(() => (TaskCompletionBox.taskCompleted = false)),
-                    2000
-                );
+                if (this.shareDocumentButtonRef.current) {
+                    const { left, width, top, height } = this.shareDocumentButtonRef.current.getBoundingClientRect();
+                    TaskCompletionBox.popupX = left - 1.5 * width;
+                    TaskCompletionBox.popupY = top - 1.5 * height;
+                    TaskCompletionBox.textDisplayed = 'Document shared!';
+                    TaskCompletionBox.taskCompleted = true;
+                    setTimeout(
+                        action(() => (TaskCompletionBox.taskCompleted = false)),
+                        2000
+                    );
+                }
 
                 this.layoutDocAcls = false;
                 this.selectedUsers = null;
@@ -555,7 +557,7 @@ export class SharingManager extends React.Component<{}> {
                         background: SettingsManager.userBackgroundColor,
                         color: StrCast(Doc.UserDoc().userColor),
                     }}>
-                    <p className="share-title" style={{ color: StrCast(Doc.UserDoc().userColor) }}>
+                    <p className="share-title" style={{ color: SettingsManager.userColor }}>
                         <div className="share-info" onClick={() => window.open('https://brown-dash.github.io/Dash-Documentation/features/collaboration/', '_blank')}>
                             <FontAwesomeIcon icon={'question-circle'} size={'sm'} onClick={() => window.open('https://brown-dash.github.io/Dash-Documentation/features/collaboration/', '_blank')} />
                         </div>
@@ -563,10 +565,10 @@ export class SharingManager extends React.Component<{}> {
                         {this.focusOn(docs.length < 2 ? StrCast(targetDoc?.title, 'this document') : '-multiple-')}
                     </p>
                     <div className="share-copy-link">
-                        <Button type={Type.TERT} color={StrCast(Doc.UserDoc().userColor)} icon={<FontAwesomeIcon icon={'copy'} size="sm" />} iconPlacement={'left'} text={'Copy Guest URL'} onClick={this.copyURL} />
+                        <Button type={Type.TERT} color={SettingsManager.userColor} icon={<FontAwesomeIcon icon={'copy'} size="sm" />} iconPlacement={'left'} text={'Copy Guest URL'} onClick={this.copyURL} />
                     </div>
                     <div className="close-button">
-                        <Button icon={<FontAwesomeIcon icon={'times'} size={'lg'} />} onClick={this.close} color={StrCast(Doc.UserDoc().userColor)} />
+                        <Button icon={<FontAwesomeIcon icon={'times'} size={'lg'} />} onClick={this.close} color={SettingsManager.userColor} />
                     </div>
                     {admin ? (
                         <div className="share-container">
@@ -608,7 +610,7 @@ export class SharingManager extends React.Component<{}> {
                                     </select>
                                 </div>
                                 <div className="share-button">
-                                    <Button text={'SHARE'} type={Type.TERT} color={StrCast(Doc.UserDoc().userColor)} onClick={this.share} />
+                                    <Button text={'SHARE'} type={Type.TERT} color={SettingsManager.userColor} onClick={this.share} />
                                 </div>
                             </div>
                             <div className="sort-checkboxes">
-- 
cgit v1.2.3-70-g09d2

