UNPKG

@gechiui/block-editor

Version:
48 lines (45 loc) 1.38 kB
/** * GeChiUI dependencies */ import { Button } from '@gechiui/components'; import { __ } from '@gechiui/i18n'; import { lineDashed, lineDotted, lineSolid } from '@gechiui/icons'; const BORDER_STYLES = [ { label: __( '纯色' ), icon: lineSolid, value: 'solid' }, { label: __( '虚线' ), icon: lineDashed, value: 'dashed' }, { label: __( '点线' ), icon: lineDotted, value: 'dotted' }, ]; /** * Control to display border style options. * * @param {Object} props Component props. * @param {Function} props.onChange Handler for changing border style selection. * @param {string} props.value Currently selected border style value. * * @return {GCElement} Custom border style segmented control. */ export default function BorderStyleControl( { onChange, value } ) { return ( <fieldset className="components-border-style-control"> <legend>{ __( '样式' ) }</legend> <div className="components-border-style-control__buttons"> { BORDER_STYLES.map( ( borderStyle ) => ( <Button key={ borderStyle.value } icon={ borderStyle.icon } isSmall isPressed={ borderStyle.value === value } onClick={ () => onChange( borderStyle.value === value ? undefined : borderStyle.value ) } aria-label={ borderStyle.label } /> ) ) } </div> </fieldset> ); }