aboutsummaryrefslogtreecommitdiff
path: root/src/client/util/SelectionManager.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/util/SelectionManager.ts')
-rw-r--r--src/client/util/SelectionManager.ts22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/client/util/SelectionManager.ts b/src/client/util/SelectionManager.ts
index 7cf0d62d0..4bd6647c0 100644
--- a/src/client/util/SelectionManager.ts
+++ b/src/client/util/SelectionManager.ts
@@ -1,4 +1,4 @@
-import { action, makeObservable, observable } from 'mobx';
+import { action, makeObservable, observable, runInAction } from 'mobx';
import { Doc, Opt } from '../../fields/Doc';
import { DocViews } from '../../fields/DocSymbols';
import { List } from '../../fields/List';
@@ -26,13 +26,13 @@ export class SelectionManager {
}
@action
- public static SelectSchemaViewDoc(doc: Opt<Doc>, deselectAllFirst?: boolean) {
+ public static SelectSchemaViewDoc = (doc: Opt<Doc>, deselectAllFirst?: boolean) => {
if (deselectAllFirst) this.DeselectAll();
this.Instance.SelectedSchemaDocument = doc;
- }
+ };
@action
- public static SelectView(docView: DocumentView, extendSelection: boolean): void {
+ public static SelectView = (docView: DocumentView | undefined, extendSelection: boolean): void => {
if (!docView) this.DeselectAll();
else if (!docView.SELECTED) {
if (!extendSelection) this.DeselectAll();
@@ -40,29 +40,29 @@ export class SelectionManager {
docView.SELECTED = true;
docView._props.whenChildContentsActiveChanged(true);
}
- }
+ };
@action
- public static DeselectView(docView?: DocumentView): void {
+ public static DeselectView = (docView?: DocumentView): void => {
if (docView && this.Instance.SelectedViews.includes(docView)) {
docView.SELECTED = false;
this.Instance.SelectedViews.splice(this.Instance.SelectedViews.indexOf(docView), 1);
docView._props.whenChildContentsActiveChanged(false);
}
- }
- @action
- public static DeselectAll(except?: Doc): void {
+ };
+
+ public static DeselectAll = (except?: Doc): void => {
const found = this.Instance.SelectedViews.find(dv => dv.Document === except);
LinkManager.currentLink = undefined;
LinkManager.currentLinkAnchor = undefined;
- this.Instance.SelectedSchemaDocument = undefined;
+ runInAction(() => (this.Instance.SelectedSchemaDocument = undefined));
this.Instance.SelectedViews.forEach(dv => {
dv.SELECTED = false;
dv._props.whenChildContentsActiveChanged(false);
});
this.Instance.SelectedViews.length = 0;
if (found) this.SelectView(found, false);
- }
+ };
public static IsSelected = (doc?: Doc) => Array.from(doc?.[DocViews] ?? []).some(dv => dv?.SELECTED);
public static get Views() { return this.Instance.SelectedViews; } // prettier-ignore