import * as React from "react"; import * as ReactDOM from "react-dom"; import { observer } from "mobx-react"; import { observable, reaction, action } from "mobx"; import "./Timeline.scss"; import { KeyStore } from "../../../fields/KeyStore"; import { Document } from "../../../fields/Document"; import { KeyFrame } from "./KeyFrame"; @observer export class Timeline extends React.Component { @observable private _inner = React.createRef(); @observable private _isRecording: Boolean = false; @observable private _currentBar: any = null; @observable private _newBar: any = null; @action onRecord = (e: React.MouseEvent) => { this._isRecording = true; // console.log("hello"); } @action onStop = (e: React.MouseEvent) => { this._isRecording = false; 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.backgroundColor = "yellow"; this._newBar.style.transform = this._currentBar.style.transform; this._inner.current.appendChild(this._newBar); } this._currentBar.remove(); this._currentBar = null; } @action onInnerPointerDown = (e: React.PointerEvent) => { if (this._isRecording) { if (this._inner.current) { if (this._currentBar === null) { console.log("rr"); let mouse = e.nativeEvent; this._currentBar = document.createElement("div"); this._currentBar.style.height = "100%"; this._currentBar.style.width = "5px"; this._currentBar.style.backgroundColor = "white"; this._currentBar.style.transform = `translate(${mouse.offsetX}px)`; this._inner.current.appendChild(this._currentBar); } else { this._currentBar.remove(); this._currentBar = null; this.onInnerPointerDown(e); } } } } createMark = (width: number) => { } private _keyFrames: KeyFrame[] = []; componentDidMount() { // 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]); // }); // }); } render() { return (
); } }