import * as React from 'react'; import { GlobalState } from '../../../globalState'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faTrash } from '@fortawesome/free-solid-svg-icons'; import { Color3 } from 'babylonjs/Maths/math.color'; import { GradientBlockColorStep } from 'babylonjs/Materials/Node/Blocks/gradientBlock'; interface IGradientStepComponentProps { globalState: GlobalState; step: GradientBlockColorStep; lineIndex: number; onDelete: () => void; onUpdateStep: () => 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(); } render() { let step = this.props.step; return (
{`#${this.props.lineIndex}`}
this.updateColor(evt.target.value)} />
{step.step.toFixed(2)}
this.updateStep(parseFloat(evt.target.value))} />
this.props.onDelete()}>
) } }