diff options
| author | Eleanor Eng <eleanor_eng@brown.edu> | 2019-04-20 18:20:00 -0400 |
|---|---|---|
| committer | Eleanor Eng <eleanor_eng@brown.edu> | 2019-04-20 18:20:00 -0400 |
| commit | 6304e03f953b2cc66dcc1a0900855376ff739015 (patch) | |
| tree | 86b5fdab7f1d5a844c7e9d2e291bb6645f746bc5 | |
| parent | 5469990566c237014d3350ddb1709c253feb2a55 (diff) | |
| parent | 83367785f0414232c29150ab043e1999ea4796e4 (diff) | |
disposer function
| -rw-r--r-- | src/client/views/nodes/PDFBox.tsx | 1 | ||||
| -rw-r--r-- | src/client/views/nodes/Timeline.tsx | 33 |
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() { |
