aboutsummaryrefslogtreecommitdiff
path: root/src/client/util/SelectionManager.ts
diff options
context:
space:
mode:
authorSam Wilkins <samwilkins333@gmail.com>2019-07-02 15:17:52 -0400
committerSam Wilkins <samwilkins333@gmail.com>2019-07-02 15:17:52 -0400
commit9b6a8b6685e1bb98960f650997663e5bb8501c4a (patch)
treef232b800764281dff26850d0dfd0fc59bd8fb927 /src/client/util/SelectionManager.ts
parent49cf949250fb9b01a8457c2c3dee60b19f60c036 (diff)
made color selection undoable and display color updates based on first item in selected documents
Diffstat (limited to 'src/client/util/SelectionManager.ts')
-rw-r--r--src/client/util/SelectionManager.ts14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/client/util/SelectionManager.ts b/src/client/util/SelectionManager.ts
index 3bc71ad42..41e6ec786 100644
--- a/src/client/util/SelectionManager.ts
+++ b/src/client/util/SelectionManager.ts
@@ -1,8 +1,9 @@
import { observable, action, runInAction, IReactionDisposer, reaction, autorun } from "mobx";
-import { Doc } from "../../new_fields/Doc";
+import { Doc, Opt } from "../../new_fields/Doc";
import { DocumentView } from "../views/nodes/DocumentView";
import { FormattedTextBox } from "../views/nodes/FormattedTextBox";
-import { NumCast } from "../../new_fields/Types";
+import { NumCast, StrCast } from "../../new_fields/Types";
+import { InkingControl } from "../views/InkingControl";
export namespace SelectionManager {
@@ -11,6 +12,7 @@ export namespace SelectionManager {
@observable IsDragging: boolean = false;
@observable SelectedDocuments: Array<DocumentView> = [];
+
@action
SelectDoc(docView: DocumentView, ctrlPressed: boolean): void {
// if doc is not in SelectedDocuments, add it
@@ -41,6 +43,14 @@ export namespace SelectionManager {
}
const manager = new Manager();
+ reaction(() => manager.SelectedDocuments, sel => {
+ let firstView = sel[0];
+ let doc = firstView.props.Document;
+ let targetDoc = doc.isTemplate ? doc : Doc.GetProto(doc);
+ let targetColor = StrCast(targetDoc.backgroundColor);
+ targetColor = targetColor.length === 0 ? "#FFFFFFFF" : targetColor;
+ InkingControl.Instance.updateSelectedColor(targetColor);
+ });
export function DeselectDoc(docView: DocumentView): void {
manager.DeselectDoc(docView);