import * as React from "react"; import { arraySplice } from "tandem-common"; import { clamp, noop } from "lodash"; import { BaseRgbaInputProps } from "./picker.pc"; export type Props = { onChange?: any; onChangeComplete?: any; value?: [number, number, number, number]; }; export default (Base: React.ComponentClass) => class RGBAInputController extends React.PureComponent { render() { const { onChange = noop, onChangeComplete = noop, value: [r, g, b, a] = [0, 0, 0, 0] } = this.props; const changeCallback = index => value => onChange( arraySplice([r, g, b, a], index, 1, clamp(Number(value), 0, 255)) ); const changeCompleteCallback = index => value => onChangeComplete( arraySplice([r, g, b, a], index, 1, clamp(Number(value), 0, 255)) ); return ( ); } };