import { createElement, Component, useState, useRef, useContext, } from '@wordpress/element' import OutsideClickHandler from './react-outside-click-handler' import classnames from 'classnames' import ColorPicker from './ct-color-picker' import { __ } from 'ct-i18n' const clamp = (min, max, value) => Math.max(min, Math.min(max, value)) const Border = ({ value, option, onChange }) => { const [isOpen, setIsOpen] = useState(false) return (
onChange({ ...value, width: clamp(1, 5, parseInt(width, 10) || 1), }) } /> setIsOpen(!isOpen)}> {value.inherit ? __('Inherit', 'blocksy') : value.style === 'none' ? __('none', 'blocksy') : null} { if (!isOpen) return setIsOpen(false) }}>
    {['solid', 'dashed', 'dotted', 'none'] .reduce( (current, el, index) => [ ...current.slice( 0, index % 2 === 0 ? undefined : -1 ), ...(index % 2 === 0 ? [[el]] : [ [ current[ current.length - 1 ][0], el, ], ]), ], [] ) .map((group) => (
  • {group.map((style) => ( { onChange({ ...value, style, ...(Object.keys( option.value ).indexOf('inherit') > -1 ? { inherit: false, } : {}), }) setIsOpen(false) }} data-style={style}> {style === 'none' ? __('None', 'blocksy') : null} ))}
  • ))}
onChange({ ...value, color: colorValue.default, }) } option={{ pickers: [ { id: 'default', title: __('Initial', 'blocksy'), }, ], }} value={{ default: value.color, }} /> {option.secondColor && ( onChange({ ...value, secondColor: colorValue.default, }) } option={{ pickers: [ { id: 'default', title: __('Hover', 'blocksy'), }, ], }} value={{ default: value.secondColor || option.value.secondColor, }} /> )}
) } export default Border