aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.tsx
diff options
context:
space:
mode:
authorSam Wilkins <abdullah_ahmed@brown.edu>2019-04-13 19:14:42 -0400
committerSam Wilkins <abdullah_ahmed@brown.edu>2019-04-13 19:14:42 -0400
commit7a1a028d1d3f5602d39f559cb1614abda658a371 (patch)
tree5de71b963a2e2e370818591f6e99fba868503ee0 /src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.tsx
parent35f09470b2939a6640b85c94a9a4ea2551a6ea42 (diff)
parentb7252aeacbbd73120bc6f80d551f4505646a883b (diff)
resolved merge conflicts with master
Diffstat (limited to 'src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.tsx')
-rw-r--r--src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.tsx22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.tsx
index cf058090d..647c83d4d 100644
--- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.tsx
+++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormLinksView.tsx
@@ -1,4 +1,4 @@
-import { computed, reaction } from "mobx";
+import { computed, reaction, trace, IReactionDisposer } from "mobx";
import { observer } from "mobx-react";
import { Document } from "../../../../fields/Document";
import { FieldWaiting } from "../../../../fields/Field";
@@ -15,18 +15,15 @@ import React = require("react");
@observer
export class CollectionFreeFormLinksView extends React.Component<CollectionViewProps> {
- HackToAvoidReactionFiringUnnecessarily?: Document = undefined;
+ _brushReactionDisposer?: IReactionDisposer;
componentDidMount() {
- this.HackToAvoidReactionFiringUnnecessarily = this.props.Document;
- reaction(() =>
- DocumentManager.Instance.getAllDocumentViews(this.HackToAvoidReactionFiringUnnecessarily!).
- map(dv => dv.props.Document.GetNumber(KeyStore.X, 0)),
+ this._brushReactionDisposer = reaction(() => this.props.Document.GetList<Document>(this.props.fieldKey, []).map(doc => doc.GetNumber(KeyStore.X, 0)),
() => {
- let views = DocumentManager.Instance.getAllDocumentViews(this.props.Document);
+ let views = this.props.Document.GetList<Document>(this.props.fieldKey, []);
for (let i = 0; i < views.length; i++) {
for (let j = 0; j < views.length; j++) {
- let srcDoc = views[j].props.Document;
- let dstDoc = views[i].props.Document;
+ let srcDoc = views[j];
+ let dstDoc = views[i];
let x1 = srcDoc.GetNumber(KeyStore.X, 0);
let x1w = srcDoc.GetNumber(KeyStore.Width, -1);
let x2 = dstDoc.GetNumber(KeyStore.X, 0);
@@ -53,7 +50,7 @@ export class CollectionFreeFormLinksView extends React.Component<CollectionViewP
linkDoc.SetText(KeyStore.LinkDescription, "Brush between " + srcTarg.Title + " and " + dstTarg.Title);
linkDoc.SetData(KeyStore.BrushingDocs, [dstTarg, srcTarg], ListField);
- brushAction = brushAction = (field: ListField<Document>) => {
+ brushAction = (field: ListField<Document>) => {
if (findBrush(field) === -1) {
console.log("ADD BRUSH " + srcTarg.Title + " " + dstTarg.Title);
(findBrush(field) === -1) && field.Data.push(linkDoc);
@@ -67,6 +64,11 @@ export class CollectionFreeFormLinksView extends React.Component<CollectionViewP
}
});
}
+ componentWillUnmount() {
+ if (this._brushReactionDisposer) {
+ this._brushReactionDisposer();
+ }
+ }
documentAnchors(view: DocumentView) {
let equalViews = [view];
let containerDoc = view.props.Document.GetT(KeyStore.AnnotationOn, Document);