UNPKG

@wordpress/block-library

Version:
103 lines (90 loc) 3.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.IndentUI = IndentUI; exports.default = ListItemEdit; var _element = require("@wordpress/element"); var _blockEditor = require("@wordpress/block-editor"); var _i18n = require("@wordpress/i18n"); var _components = require("@wordpress/components"); var _icons = require("@wordpress/icons"); var _compose = require("@wordpress/compose"); var _hooks = require("./hooks"); var _utils = require("./utils"); /** * WordPress dependencies */ /** * Internal dependencies */ function IndentUI(_ref) { let { clientId } = _ref; const [canIndent, indentListItem] = (0, _hooks.useIndentListItem)(clientId); const [canOutdent, outdentListItem] = (0, _hooks.useOutdentListItem)(clientId); return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.ToolbarButton, { icon: (0, _i18n.isRTL)() ? _icons.formatOutdentRTL : _icons.formatOutdent, title: (0, _i18n.__)('Outdent'), describedBy: (0, _i18n.__)('Outdent list item'), disabled: !canOutdent, onClick: () => outdentListItem() }), (0, _element.createElement)(_components.ToolbarButton, { icon: (0, _i18n.isRTL)() ? _icons.formatIndentRTL : _icons.formatIndent, title: (0, _i18n.__)('Indent'), describedBy: (0, _i18n.__)('Indent list item'), isDisabled: !canIndent, onClick: () => indentListItem() })); } function ListItemEdit(_ref2) { let { attributes, setAttributes, onReplace, clientId } = _ref2; const { placeholder, content } = attributes; const blockProps = (0, _blockEditor.useBlockProps)({ ref: (0, _hooks.useCopy)(clientId) }); const innerBlocksProps = (0, _blockEditor.useInnerBlocksProps)(blockProps, { allowedBlocks: ['core/list'], renderAppender: false }); const useEnterRef = (0, _hooks.useEnter)({ content, clientId }); const useSpaceRef = (0, _hooks.useSpace)(clientId); const onSplit = (0, _hooks.useSplit)(clientId); const onMerge = (0, _hooks.useMerge)(clientId); return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)("li", innerBlocksProps, (0, _element.createElement)(_blockEditor.RichText, { ref: (0, _compose.useMergeRefs)([useEnterRef, useSpaceRef]), identifier: "content", tagName: "div", onChange: nextContent => setAttributes({ content: nextContent }), value: content, "aria-label": (0, _i18n.__)('List text'), placeholder: placeholder || (0, _i18n.__)('List'), onSplit: onSplit, onMerge: onMerge, onReplace: function (blocks) { for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } onReplace((0, _utils.convertToListItems)(blocks), ...args); } }), innerBlocksProps.children), (0, _element.createElement)(_blockEditor.BlockControls, { group: "block" }, (0, _element.createElement)(IndentUI, { clientId: clientId }))); } //# sourceMappingURL=edit.js.map