aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/client/views/nodes/PDFBox.tsx1
-rw-r--r--src/client/views/nodes/Timeline.tsx33
2 files changed, 22 insertions, 12 deletions
diff --git a/src/client/views/nodes/PDFBox.tsx b/src/client/views/nodes/PDFBox.tsx
index 81ceb37f6..c73ee4f21 100644
--- a/src/client/views/nodes/PDFBox.tsx
+++ b/src/client/views/nodes/PDFBox.tsx
@@ -108,6 +108,7 @@ export class PDFBox extends React.Component<FieldViewProps> {
componentWillUnmount() {
if (this._reactionDisposer) {
this._reactionDisposer();
+ this._reactionDisposer = undefined;
}
}
diff --git a/src/client/views/nodes/Timeline.tsx b/src/client/views/nodes/Timeline.tsx
index 634a16573..711b6c3bc 100644
--- a/src/client/views/nodes/Timeline.tsx
+++ b/src/client/views/nodes/Timeline.tsx
@@ -1,11 +1,12 @@
import * as React from "react";
import * as ReactDOM from "react-dom";
import { observer } from "mobx-react";
-import { observable, reaction, action } from "mobx";
+import { observable, reaction, action, IReactionDisposer } from "mobx";
import "./Timeline.scss";
import { KeyStore } from "../../../fields/KeyStore";
import { Document } from "../../../fields/Document";
import { KeyFrame } from "./KeyFrame";
+import { Opt } from '../../../fields/Field';
@observer
export class Timeline extends React.Component {
@@ -13,6 +14,7 @@ export class Timeline extends React.Component {
@observable private _isRecording: Boolean = false;
@observable private _currentBar: any = null;
@observable private _newBar: any = null;
+ private _reactionDisposer: Opt<IReactionDisposer>;
@action
onRecord = (e: React.MouseEvent) => {
@@ -65,17 +67,24 @@ export class Timeline extends React.Component {
componentDidMount() {
this.createBar(5);
- // let doc: Document;
- // let keyFrame = new KeyFrame();
- // this._keyFrames.push(keyFrame);
- // let keys = [KeyStore.X, KeyStore.Y];
- // reaction(() => {
- // return keys.map(key => doc.GetNumber(key, 0));
- // }, data => {
- // keys.forEach((key, index) => {
- // keyFrame.document().SetNumber(key, data[index]);
- // });
- // });
+ let doc: Document;
+ let keyFrame = new KeyFrame();
+ this._keyFrames.push(keyFrame);
+ let keys = [KeyStore.X, KeyStore.Y];
+ this._reactionDisposer = reaction(() => {
+ return keys.map(key => doc.GetNumber(key, 0));
+ }, data => {
+ keys.forEach((key, index) => {
+ keyFrame.document().SetNumber(key, data[index]);
+ });
+ });
+ }
+
+ componentWillUnmount() {
+ if (this._reactionDisposer) {
+ this._reactionDisposer();
+ this._reactionDisposer = undefined;
+ }
}
render() {