@gechiui/block-editor
Version:
68 lines (62 loc) • 1.7 kB
JavaScript
import { createElement } from "@gechiui/element";
/**
* External dependencies
*/
import { noop } from 'lodash';
/**
* GeChiUI dependencies
*/
import { __ } from '@gechiui/i18n';
import { DOWN } from '@gechiui/keycodes';
import { ToolbarButton, Dropdown, __experimentalAlignmentMatrixControl as AlignmentMatrixControl } from '@gechiui/components';
function BlockAlignmentMatrixControl(props) {
const {
label = __('更改矩阵对齐'),
onChange = noop,
value = 'center',
isDisabled
} = props;
const icon = createElement(AlignmentMatrixControl.Icon, {
value: value
});
const className = 'block-editor-block-alignment-matrix-control';
const popoverClassName = `${className}__popover`;
const isAlternate = true;
return createElement(Dropdown, {
position: "bottom right",
className: className,
popoverProps: {
className: popoverClassName,
isAlternate
},
renderToggle: _ref => {
let {
onToggle,
isOpen
} = _ref;
const openOnArrowDown = event => {
if (!isOpen && event.keyCode === DOWN) {
event.preventDefault();
onToggle();
}
};
return createElement(ToolbarButton, {
onClick: onToggle,
"aria-haspopup": "true",
"aria-expanded": isOpen,
onKeyDown: openOnArrowDown,
label: label,
icon: icon,
showTooltip: true,
disabled: isDisabled
});
},
renderContent: () => createElement(AlignmentMatrixControl, {
hasFocusBorder: false,
onChange: onChange,
value: value
})
});
}
export default BlockAlignmentMatrixControl;
//# sourceMappingURL=index.js.map