graphActionsBar.tsx 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import * as React from "react";
  2. import { IconButtonLineComponent } from '../../../lines/iconButtonLineComponent';
  3. interface IGraphActionsBarProps {
  4. addKeyframe: () => void;
  5. removeKeyframe: () => void;
  6. handleValueChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
  7. handleFrameChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
  8. flatTangent: () => void;
  9. brokeTangents: () => void;
  10. setLerpMode: () => void;
  11. brokenMode: boolean;
  12. lerpMode: boolean;
  13. currentValue: number;
  14. currentFrame: number;
  15. title: string;
  16. close: (event: any) => void;
  17. enabled: boolean;
  18. }
  19. export class GraphActionsBar extends React.Component<IGraphActionsBarProps>{
  20. constructor(props: IGraphActionsBarProps) {
  21. super(props);
  22. }
  23. render() {
  24. return (
  25. <div className="actions-wrapper">
  26. <div className="title-container">
  27. <div className="icon babylon-logo"></div>
  28. <div className="title">{this.props.title}</div>
  29. </div>
  30. <div className="buttons-container" style={{display: this.props.enabled ? 'flex' : 'none'}}>
  31. <div className="action-input">
  32. <input type="number" value={this.props.currentFrame} onChange={this.props.handleFrameChange} step="1"/>
  33. </div>
  34. <div className="action-input">
  35. <input type="number" value={this.props.currentValue.toFixed(3)} onChange={this.props.handleValueChange} step="0.001"/>
  36. </div>
  37. <IconButtonLineComponent tooltip={"Add Keyframe"} icon="new-key" onClick={this.props.addKeyframe} />
  38. <IconButtonLineComponent tooltip={"Remove Keyframe"} icon="frame" onClick={this.props.removeKeyframe} />
  39. <IconButtonLineComponent tooltip={"Flat Tangents"} icon="flat-tangent" onClick={this.props.flatTangent} />
  40. <IconButtonLineComponent tooltip={this.props.brokenMode ? "Broken Mode On" : "Broken Mode Off" } icon={this.props.brokenMode ? "break-tangent" : "unify-tangent" } onClick={this.props.brokeTangents} />
  41. <IconButtonLineComponent tooltip={this.props.lerpMode ? "Lerp On" : "lerp Off" } icon="linear-tangent" onClick={this.props.setLerpMode} />
  42. </div>
  43. <div className="icon close" onClick={(event: React.MouseEvent<HTMLDivElement, MouseEvent>) => this.props.close(event)}>
  44. </div>
  45. </div>
  46. )
  47. }
  48. }