aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/Timeline.tsx
diff options
context:
space:
mode:
authorAndrew Kim <andrewdkim@users.noreply.github.com>2019-04-29 18:10:08 -0400
committerAndrew Kim <andrewdkim@users.noreply.github.com>2019-04-29 18:10:08 -0400
commit7da184cb569d03454c20f87d9daad005ad697d5b (patch)
tree00e528be860577dff3a73a84c8eb5dbf4072e98e /src/client/views/nodes/Timeline.tsx
parenta92c169ffc92fd5aa21cc1b85286b77d529cac1b (diff)
new changes
Diffstat (limited to 'src/client/views/nodes/Timeline.tsx')
-rw-r--r--src/client/views/nodes/Timeline.tsx62
1 files changed, 32 insertions, 30 deletions
diff --git a/src/client/views/nodes/Timeline.tsx b/src/client/views/nodes/Timeline.tsx
index a64e1a7a8..4b6767e7d 100644
--- a/src/client/views/nodes/Timeline.tsx
+++ b/src/client/views/nodes/Timeline.tsx
@@ -20,9 +20,11 @@ export class Timeline extends React.Component<SubCollectionViewProps> {
@observable private _currentBar: any = null;
@observable private _newBar: any = null;
private _reactionDisposers: IReactionDisposer[] = [];
- private _keyFrames: KeyFrame[] = [];
+ private _keyFrames: HTMLDivElement[] = [];
+ private _currentBarX:number = 0;
@observable private _onBar: Boolean = false;
+
@action
onRecord = (e: React.MouseEvent) => {
this._isRecording = true;
@@ -30,16 +32,16 @@ export class Timeline extends React.Component<SubCollectionViewProps> {
@action
onStop = (e: React.MouseEvent) => {
- this._isRecording = false;
- if (this._inner.current) {
- this._newBar = document.createElement("div");
- this._newBar.style.height = "100%";
- this._newBar.style.width = "5px";
- this._newBar.style.backgroundColor = "yellow";
- this._newBar.style.position = "absolute";
- this._newBar.style.transform = this._currentBar.style.transform;
- this._inner.current.appendChild(this._newBar);
- }
+ // this._isRecording = false;
+ // if (this._inner.current) {
+ // this._newBar = document.createElement("div");
+ // this._newBar.style.height = "100%";
+ // this._newBar.style.width = "5px";
+ // this._newBar.style.backgroundColor = "yellow";
+ // this._newBar.style.position = "absolute";
+ // this._newBar.style.transform = this._currentBar.style.transform;
+ // this._inner.current.appendChild(this._newBar);
+ // }
}
@action
@@ -48,6 +50,7 @@ export class Timeline extends React.Component<SubCollectionViewProps> {
if (this._inner.current) {
let mouse = e.nativeEvent;
this._currentBar.style.transform = `translate(${mouse.offsetX}px)`;
+ this._currentBarX = mouse.offsetX;
}
}
}
@@ -56,18 +59,15 @@ export class Timeline extends React.Component<SubCollectionViewProps> {
}
- createBar = (width: number) => {
- if (this._inner.current) {
- this._currentBar = document.createElement("div");
- this._currentBar.style.height = "100%";
- this._currentBar.style.width = `${width}px`;
- this._currentBar.style.left = "mouse.offsetX";
- this._currentBar.style.backgroundColor = "green";
- this._currentBar.style.transform = `translate(${0}px)`;
- this._currentBar.style.position = "absolute";
- this._currentBar.onPointerDown(this.selectFrame);
- this._inner.current.appendChild(this._currentBar);
- }
+ createBar = (width: number, pos = 0, color = "green"):HTMLDivElement => {
+ let bar = document.createElement("div");
+ bar.style.height = "100%";
+ bar.style.width = `${width}px`;
+ bar.style.left = "mouse.offsetX";
+ bar.style.backgroundColor = color;
+ bar.style.transform = `translate(${pos}px)`;
+ bar.style.position = "absolute";
+ return bar;
}
selectFrame = (e: React.PointerEvent) => {
@@ -76,22 +76,24 @@ export class Timeline extends React.Component<SubCollectionViewProps> {
}
componentDidMount() {
- this.createBar(5);
+ if (this._inner.current && this._currentBar === null){
+ this._currentBar = this.createBar(5);
+ this._inner.current.appendChild(this._currentBar);
+ }
let doc: Document = this.props.Document;
let childrenList = this.props.Document.GetList(this.props.fieldKey, [] as Document[]);
// let keyFrame = new KeyFrame(); //should not be done here...
// this._keyFrames.push(keyFrame);
let keys = [KeyStore.X, KeyStore.Y];
const addReaction = (element: Document) => {
+ let keyFrame = new KeyFrame();
+ if (this._inner.current){
+ this._inner.current.appendChild(this.createBar(5, this._currentBarX, "orange"));
+ }
return reaction(() => {
return keys.map(key => element.GetNumber(key, 0));
}, data => {
- let keyFrame = new KeyFrame();
- if (this._onBar) { //need to set value of onBar somewhere... -> if already on key frame use this keyframe
- // keyFrame = function that returns current keyFrame;
- } else { //else create new keyframe
- this._keyFrames.push(keyFrame);
- }
+
keys.forEach((key, index) => {
console.log("moved!"); //store key frames -> need to create a way to do this (data structure??)
keyFrame.document().SetNumber(key, data[index]); //Tyler working on better Doc.ts functions...(this is currently not comprehensive...)