import { createElement, Component, Fragment } from '@wordpress/element' import SinglePicker from './color-picker/single-picker.js' import './color-picker/quick-color-picker.js' import OutsideClickHandler from 'react-outside-click-handler' import { normalizeCondition, matchValuesWithCondition } from 'match-conditions' export default class ColorPicker extends Component { static ControlEnd = () => (
{ e.stopPropagation() }} onMouseUp={e => { e.stopPropagation() }} /> ) state = { is_picking: null, isTransitioning: null, shouldAnimate: true } render() { return ( this.setState({ is_picking: null, isTransitioning: this.state.is_picking, shouldAnimate: true }) }>
{this.props.option.pickers .filter( picker => !picker.condition || matchValuesWithCondition( normalizeCondition(picker.condition), this.props.values ) ) .map(picker => ( this.setState(({ is_picking }) => ({ isTransitioning: picker.id, shouldAnimate: is_picking ? is_picking === picker.id ? true : false : true, is_picking: is_picking === picker.id ? null : picker.id })) } stopTransitioning={() => this.setState({ isTransitioning: false, shouldAnimate: true }) } onChange={newPicker => this.props.onChange({ ...this.props.value, [picker.id]: newPicker }) } value={this.props.value[picker.id]} /> ))}
) } }