From 82f21b627c4823b1984cd1865aea6eb91f290eca Mon Sep 17 00:00:00 2001 From: andrewdkim Date: Thu, 20 Jun 2019 11:48:45 -0400 Subject: drag change --- .../collectionFreeForm/CollectionFreeFormView.tsx | 1 + src/client/views/nodes/Keyframe.scss | 2 + src/client/views/nodes/Keyframe.tsx | 57 +++++++++++++++++++--- src/client/views/nodes/Track.tsx | 5 +- 4 files changed, 56 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx index a977f4090..1a99ac383 100644 --- a/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx +++ b/src/client/views/collections/collectionFreeForm/CollectionFreeFormView.tsx @@ -26,6 +26,7 @@ import { MarqueeView } from "./MarqueeView"; import React = require("react"); import v5 = require("uuid/v5"); import PDFMenu from "../../pdf/PDFMenu"; +import { Timeline } from "../../nodes/Timeline"; export const panZoomSchema = createSchema({ panX: "number", diff --git a/src/client/views/nodes/Keyframe.scss b/src/client/views/nodes/Keyframe.scss index 298fec34a..930384c7f 100644 --- a/src/client/views/nodes/Keyframe.scss +++ b/src/client/views/nodes/Keyframe.scss @@ -24,6 +24,7 @@ left:-10px; height:20px; width:20px; + background-color: black; top: calc(50% - 10px); position:absolute; } @@ -32,6 +33,7 @@ height:20px; width:20px; top:calc(50% - 10px); + background-color:black; position:absolute; } diff --git a/src/client/views/nodes/Keyframe.tsx b/src/client/views/nodes/Keyframe.tsx index cef6aac83..6f7a7ec0b 100644 --- a/src/client/views/nodes/Keyframe.tsx +++ b/src/client/views/nodes/Keyframe.tsx @@ -25,8 +25,9 @@ export class Keyframe extends React.Component { @observable private _display:string = "none"; @observable private _duration:number = 200; + @observable private _bar = React.createRef(); - async componentDidMount() { + componentDidMount() { console.log("mounted"); if (this.props.node){ @@ -42,16 +43,14 @@ export class Keyframe extends React.Component { onPointerEnter = (e: React.PointerEvent) => { e.preventDefault(); e.stopPropagation(); - //console.log("in"); - this._display = "block"; + //this._display = "block"; } @action onPointerOut = (e: React.PointerEvent) => { e.preventDefault(); e.stopPropagation(); - //console.log("out"); - this._display = "none"; + //this._display = "none"; } @action @@ -69,13 +68,55 @@ export class Keyframe extends React.Component { e.preventDefault(); e.stopPropagation(); } + + @action + onResizeLeft = (e:React.PointerEvent)=>{ + let bar = this._bar.current!; + bar.addEventListener("pointermove", this.onDragResizeLeft); + } + + @action + onDragResizeLeft = (e:PointerEvent)=>{ + e.preventDefault(); + e.stopPropagation(); + let bar = this._bar.current!; + let barX = bar.getBoundingClientRect().left; + let offset = barX - e.clientX; + bar.style.width = `${bar.getBoundingClientRect().width + offset}px`; + } + + @action + onResizeFinished =(e:React.PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + let bar = this._bar.current!; + bar.removeEventListener("pointermove", this.onDragResizeLeft); + } + @action + onResizeRight = (e:React.PointerEvent)=> { + e.preventDefault(); + e.stopPropagation(); + let bar = this._bar.current!; + bar.addEventListener("pointermove", this.onDragResizeRight); + } + + @action + onDragResizeRight = (e:PointerEvent) => { + e.preventDefault(); + e.stopPropagation(); + let bar = this._bar.current!; + let barX = bar.getBoundingClientRect().right; + let offset = e.clientX - barX; + bar.style.width = `${bar.getBoundingClientRect().width + offset}px`; + } + render() { return (
-
-
-
+
+
+
{/* diff --git a/src/client/views/nodes/Track.tsx b/src/client/views/nodes/Track.tsx index cfb30aac5..dab73ce06 100644 --- a/src/client/views/nodes/Track.tsx +++ b/src/client/views/nodes/Track.tsx @@ -398,7 +398,10 @@ export class Track extends React.Component { @action onInnerDoubleClick = (e: React.MouseEvent) => { - this._keyframes.push(); + let inner = this._inner.current!; + let left = inner.getBoundingClientRect().left; + let offsetX = Math.round(e.clientX - left); + this._keyframes.push(); } render() { -- cgit v1.2.3-70-g09d2