aboutsummaryrefslogtreecommitdiff
path: root/src/client/util/SnappingManager.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/util/SnappingManager.ts')
-rw-r--r--src/client/util/SnappingManager.ts80
1 files changed, 40 insertions, 40 deletions
diff --git a/src/client/util/SnappingManager.ts b/src/client/util/SnappingManager.ts
index 3cb41ab4d..40c3f76fb 100644
--- a/src/client/util/SnappingManager.ts
+++ b/src/client/util/SnappingManager.ts
@@ -1,47 +1,47 @@
-import { observable, action, runInAction } from 'mobx';
-import { Doc } from '../../fields/Doc';
+import { observable, action, runInAction, reaction, makeObservable } from 'mobx';
+import { Doc, Opt } from '../../fields/Doc';
-export namespace SnappingManager {
- class Manager {
- @observable IsDragging: boolean = false;
- @observable IsResizing: Doc | undefined;
- @observable public horizSnapLines: number[] = [];
- @observable public vertSnapLines: number[] = [];
- @action public clearSnapLines() {
- this.vertSnapLines = [];
- this.horizSnapLines = [];
- }
- @action public addSnapLines(horizLines: number[], vertLines: number[]) {
- this.horizSnapLines.push(...horizLines);
- this.vertSnapLines.push(...vertLines);
- }
+export class SnappingManager {
+ private static _manager: SnappingManager;
+ private static get Instance() {
+ return SnappingManager._manager ?? new SnappingManager();
}
- const manager = new Manager();
+ @observable _shiftKey = false;
+ @observable _ctrlKey = false;
+ @observable _isLinkFollowing = false;
+ @observable _isDragging: boolean = false;
+ @observable _isResizing: Doc | undefined = undefined;
+ @observable _canEmbed: boolean = false;
+ @observable _horizSnapLines: number[] = [];
+ @observable _vertSnapLines: number[] = [];
+ @observable _exploreMode = false;
- export function clearSnapLines() {
- manager.clearSnapLines();
- }
- export function addSnapLines(horizLines: number[], vertLines: number[]) {
- manager.addSnapLines(horizLines, vertLines);
- }
- export function horizSnapLines() {
- return manager.horizSnapLines;
- }
- export function vertSnapLines() {
- return manager.vertSnapLines;
+ private constructor() {
+ SnappingManager._manager = this;
+ makeObservable(this);
}
- export function SetIsDragging(dragging: boolean) {
- runInAction(() => (manager.IsDragging = dragging));
- }
- export function SetIsResizing(doc: Doc | undefined) {
- runInAction(() => (manager.IsResizing = doc));
- }
- export function GetIsDragging() {
- return manager.IsDragging;
- }
- export function GetIsResizing() {
- return manager.IsResizing;
- }
+ @action public static clearSnapLines = () => (this.Instance._vertSnapLines.length = this.Instance._horizSnapLines.length = 0);
+ @action public static addSnapLines = (horizLines: number[], vertLines: number[]) => {
+ this.Instance._horizSnapLines.push(...horizLines);
+ this.Instance._vertSnapLines.push(...vertLines);
+ };
+
+ public static get HorizSnapLines() { return this.Instance._horizSnapLines; } // prettier-ignore
+ public static get VertSnapLines() { return this.Instance._vertSnapLines; } // prettier-ignore
+ public static get ShiftKey() { return this.Instance._shiftKey; } // prettier-ignore
+ public static get CtrlKey() { return this.Instance._ctrlKey; } // prettier-ignore
+ public static get IsLinkFollowing(){ return this.Instance._isLinkFollowing; } // prettier-ignore
+ public static get IsDragging() { return this.Instance._isDragging; } // prettier-ignore
+ public static get IsResizing() { return this.Instance._isResizing; } // prettier-ignore
+ public static get CanEmbed() { return this.Instance._canEmbed; } // prettier-ignore
+ public static get ExploreMode() { return this.Instance._exploreMode; } // prettier-ignore
+ public static SetShiftKey = (down: boolean) => runInAction(() => (this.Instance._shiftKey = down)); // prettier-ignore
+ public static SetCtrlKey = (down: boolean) => runInAction(() => (this.Instance._ctrlKey = down)); // prettier-ignore
+ public static SetIsLinkFollowing= (follow: boolean) => runInAction(() => (this.Instance._isLinkFollowing = follow)); // prettier-ignore
+ public static SetIsDragging = (drag: boolean) => runInAction(() => (this.Instance._isDragging = drag)); // prettier-ignore
+ public static SetIsResizing = (doc: Opt<Doc>) => runInAction(() => (this.Instance._isResizing = doc)); // prettier-ignore
+ public static SetCanEmbed = (embed:boolean) => runInAction(() => (this.Instance._canEmbed = embed)); // prettier-ignore
+ public static SetExploreMode = (state:boolean) => runInAction(() => (this.Instance._exploreMode = state)); // prettier-ignore
}