aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/DashboardView.tsx
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2023-09-06 12:11:23 -0400
committerbobzel <zzzman@gmail.com>2023-09-06 12:11:23 -0400
commit530294ae0b4721f07ddbfdd584ed91ff07cdc5e3 (patch)
tree1e822db593a9340e83f7cd3fda62cebc9eea723e /src/client/views/DashboardView.tsx
parent0717311c89ad1dc98233623f223bf784f362115a (diff)
added undo for removing dashboards and add to recently closed. fixed link menu to open up link editor more direclty
Diffstat (limited to 'src/client/views/DashboardView.tsx')
-rw-r--r--src/client/views/DashboardView.tsx12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/client/views/DashboardView.tsx b/src/client/views/DashboardView.tsx
index 3ef6c0814..34c752eec 100644
--- a/src/client/views/DashboardView.tsx
+++ b/src/client/views/DashboardView.tsx
@@ -18,7 +18,7 @@ import { CollectionViewType } from '../documents/DocumentTypes';
import { HistoryUtil } from '../util/History';
import { ScriptingGlobals } from '../util/ScriptingGlobals';
import { SharingManager } from '../util/SharingManager';
-import { undoBatch, UndoManager } from '../util/UndoManager';
+import { undoable, undoBatch, UndoManager } from '../util/UndoManager';
import { CollectionDockingView } from './collections/CollectionDockingView';
import { CollectionView } from './collections/CollectionView';
import { ContextMenu } from './ContextMenu';
@@ -270,6 +270,7 @@ export class DashboardView extends React.Component {
public static openDashboard = (doc: Doc | undefined, fromHistory = false) => {
if (!doc) return false;
Doc.AddDocToList(Doc.MyDashboards, 'data', doc);
+ Doc.RemoveDocFromList(Doc.MyRecentlyClosed, 'data', doc);
// this has the side-effect of setting the main container since we're assigning the active/guest dashboard
Doc.UserDoc() ? (Doc.ActiveDashboard = doc) : (Doc.GuestDashboard = doc);
@@ -307,9 +308,12 @@ export class DashboardView extends React.Component {
public static removeDashboard = async (dashboard: Doc) => {
const dashboards = await DocListCastAsync(Doc.MyDashboards.data);
if (dashboards?.length) {
- if (dashboard === Doc.ActiveDashboard) DashboardView.openDashboard(dashboards.find(doc => doc !== dashboard));
- Doc.RemoveDocFromList(Doc.MyDashboards, 'data', dashboard);
- if (!dashboards.length) Doc.ActivePage = 'home';
+ undoable(() => {
+ if (dashboard === Doc.ActiveDashboard) DashboardView.openDashboard(dashboards.find(doc => doc !== dashboard));
+ Doc.RemoveDocFromList(Doc.MyDashboards, 'data', dashboard);
+ Doc.AddDocToList(Doc.MyRecentlyClosed, 'data', dashboard, undefined, true, true);
+ if (!dashboards.length) Doc.ActivePage = 'home';
+ }, 'remove dashboard')();
}
};