aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/Timeline.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views/nodes/Timeline.tsx')
-rw-r--r--src/client/views/nodes/Timeline.tsx40
1 files changed, 26 insertions, 14 deletions
diff --git a/src/client/views/nodes/Timeline.tsx b/src/client/views/nodes/Timeline.tsx
index c6aa0b146..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) => {
@@ -22,11 +24,10 @@ export class Timeline extends React.Component {
@action
onStop = (e: React.MouseEvent) => {
this._isRecording = false;
- if (this._inner.current) {
+ if (this._inner.current) { //if you comment this section out it works as before...
this._newBar = document.createElement("div");
this._newBar.style.height = "100%";
this._newBar.style.width = "5px";
- this._newBar.style.left = this._currentBar.style.left;
this._newBar.style.backgroundColor = "yellow";
this._newBar.style.transform = this._currentBar.style.transform;
this._inner.current.appendChild(this._newBar);
@@ -45,6 +46,9 @@ export class Timeline extends React.Component {
}
}
+ createMark = (width: number) => {
+
+ }
private _keyFrames: KeyFrame[] = [];
@@ -60,19 +64,27 @@ 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() {