diff options
| author | andrewdkim <adkim414@gmail.com> | 2019-07-29 17:34:44 -0400 | 
|---|---|---|
| committer | andrewdkim <adkim414@gmail.com> | 2019-07-29 17:34:44 -0400 | 
| commit | d2e9f14340181ef3ab9698a868df72c5170ffb64 (patch) | |
| tree | 97dcfc465b79a39f530f82bbcde2d953492f4ceb /src/client/views/nodes/Keyframe.tsx | |
| parent | efb4f101c093467fe18e3bfa00d06d9d3cd6bce8 (diff) | |
testing interpolation types
Diffstat (limited to 'src/client/views/nodes/Keyframe.tsx')
| -rw-r--r-- | src/client/views/nodes/Keyframe.tsx | 66 | 
1 files changed, 66 insertions, 0 deletions
| diff --git a/src/client/views/nodes/Keyframe.tsx b/src/client/views/nodes/Keyframe.tsx index 6ff925cb5..880c5aee5 100644 --- a/src/client/views/nodes/Keyframe.tsx +++ b/src/client/views/nodes/Keyframe.tsx @@ -10,6 +10,9 @@ import { List } from "../../../new_fields/List";  import { createSchema, defaultSpec, makeInterface, listSpec } from "../../../new_fields/Schema";  import { FlyoutProps } from "./Timeline";  import { Transform } from "../../util/Transform"; +import { DocumentManager } from "../../util/DocumentManager"; +import { CollectionView } from "../collections/CollectionView"; +import { InkField } from "../../../new_fields/InkField";  export namespace KeyframeFunc {      export enum KeyframeType { @@ -48,6 +51,7 @@ export namespace KeyframeFunc {          regiondata.position = 0;          regiondata.fadeIn = 20;          regiondata.fadeOut = 20; +        regiondata.fadeInX = new List([1, 100]);           return regiondata;      };  } @@ -65,6 +69,7 @@ export const RegionData = makeInterface(RegionDataSchema);  interface IProps {      node: Doc;      RegionData: Doc; +    collection:Doc;       changeCurrentBarX: (x: number) => void;      setFlyout: (props: FlyoutProps) => any;      transform: Transform;  @@ -74,6 +79,9 @@ interface IProps {  export class Keyframe extends React.Component<IProps> {      @observable private _bar = React.createRef<HTMLDivElement>(); +    @observable private _fadeInContainer = React.createRef<HTMLDivElement>();  +    @observable private _fadeOutContainer = React.createRef<HTMLDivElement>();  +    @observable private _bodyContainer = React.createRef<HTMLDivElement>();       @computed      private get regiondata() { @@ -112,6 +120,17 @@ export class Keyframe extends React.Component<IProps> {          return last;      } +    @computed +    private get inks(){ +        if (this.props.collection.data_ext){         +            let data_ext = Cast(this.props.collection.data_ext, Doc) as Doc;  +            let ink = Cast(data_ext.ink, InkField) as InkField;  +            if (ink){ +                return ink.inkData;  +            } +        } +    } +      async componentWillMount() {          if (!this.regiondata.keyframes) { @@ -300,6 +319,13 @@ export class Keyframe extends React.Component<IProps> {      } +    @action  +    onKeyframeOver = (e: React.PointerEvent) => { +        e.preventDefault();  +        e.stopPropagation();  +        this.props.node.backgroundColor = "#000000";  +         +    }      @action      private createKeyframeJSX = (kf: Doc, type = KeyframeFunc.KeyframeType.default) => {          if (type === KeyframeFunc.KeyframeType.default) { @@ -319,6 +345,34 @@ export class Keyframe extends React.Component<IProps> {          );      } +    onContainerOver = (e: React.PointerEvent, ref:React.RefObject<HTMLDivElement>) => { +        e.preventDefault();  +        e.stopPropagation();  +        let div = ref.current!;  +        div.style.opacity = "1";  +    } + +    onContainerOut = (e: React.PointerEvent, ref: React.RefObject<HTMLDivElement>) => { +        e.preventDefault();  +        e.stopPropagation();  +        let div = ref.current!;  +        div.style.opacity ="0";  +    } + +    onContainerDown = (e: React.PointerEvent, ref: React.RefObject<HTMLDivElement>) => { +        e.preventDefault();  +        let mouse = e.nativeEvent;  +        if (mouse.which === 3){         +            let reac = reaction(() => { +                return this.inks;}, () => { +                    document.addEventListener("pointerup", () => { +                        reac();  +                    console.log("disposed");  +                });  +            console.log("drawing"); });  +        } +         +    }      render() {          return (              <div> @@ -337,6 +391,18 @@ export class Keyframe extends React.Component<IProps> {                      {this.regiondata.keyframes!.map(kf => {                          return this.createKeyframeJSX(kf as Doc, (kf! as Doc).type as KeyframeFunc.KeyframeType);                      })} +                    <div ref={this._fadeOutContainer}className="fadeOut-container" style={{right: `0px`, width: `${this.regiondata.fadeOut}px`}} +                    onPointerOver={(e) => {this.onContainerOver(e, this._fadeOutContainer); }} +                    onPointerOut ={(e) => {this.onContainerOut(e, this._fadeOutContainer);}} +                    onPointerDown={(e) => {this.onContainerDown(e, this._fadeOutContainer); }}> </div>  +                    <div ref={this._fadeInContainer}className="fadeIn-container" style={{left: "0px", width:`${this.regiondata.fadeIn}px`}} +                    onPointerOver={(e) => {this.onContainerOver(e, this._fadeInContainer); }} +                    onPointerOut ={(e) => {this.onContainerOut(e, this._fadeInContainer);}} +                    onPointerDown={(e) => {this.onContainerDown(e, this._fadeInContainer); }}></div> +                    <div ref={this._bodyContainer}className="body-container" style={{left: `${this.regiondata.fadeIn}px`, width:`${this.regiondata.duration - this.regiondata.fadeIn - this.regiondata.fadeOut}px`}} +                    onPointerOver={(e) => {this.onContainerOver(e, this._bodyContainer); }} +                    onPointerOut ={(e) => {this.onContainerOut(e, this._bodyContainer);}} +                    onPointerDown={(e) => {this.onContainerDown(e, this._bodyContainer); }}> </div>                  </div>              </div>          ); | 
