import * as React from 'react'; import { GlobalState } from '../../globalState'; import { Color3 } from 'babylonjs/Maths/math.color'; import { GradientBlockColorStep } from 'babylonjs/Materials/Node/Blocks/gradientBlock'; import { ColorPickerLineComponent } from '../../sharedComponents/colorPickerComponent'; import { FloatLineComponent } from '../../sharedComponents/floatLineComponent'; const deleteButton = require('../../../imgs/delete.svg'); const copyIcon: string = require('../../sharedComponents/copy.svg'); interface IGradientStepComponentProps { globalState: GlobalState; step: GradientBlockColorStep; lineIndex: number; onDelete: () => void; onUpdateStep: () => void; onCheckForReOrder: () => void; onCopy?: () => void; } export class GradientStepComponent extends React.Component { constructor(props: IGradientStepComponentProps) { super(props); this.state={gradient: props.step.step}; } updateColor(color: string) { this.props.step.color = Color3.FromHexString(color); this.props.onUpdateStep(); this.forceUpdate(); } updateStep(gradient: number) { this.props.step.step = gradient; this.setState({gradient: gradient}); this.props.onUpdateStep(); } onPointerUp() { this.props.onCheckForReOrder(); } render() { let step = this.props.step; return (
{`#${this.props.lineIndex}`}
{ this.updateColor(color); }} />
{ this.props.onUpdateStep(); this.props.onCheckForReOrder(); this.forceUpdate(); } } >
this.onPointerUp()} onChange={evt => this.updateStep(parseFloat(evt.target.value))} />
{if(this.props.onCopy) this.props.onCopy()}} title="Copy Step">
this.props.onDelete()} title={"Delete Step"}>
) } }