UNPKG

@wordpress/block-library

Version:
66 lines (64 loc) 2.19 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import { createElement, Fragment } from "@wordpress/element"; /** * External dependencies */ import classnames from 'classnames'; /** * WordPress dependencies */ import { useSelect } from '@wordpress/data'; import { useEntityProp, store as coreStore } from '@wordpress/core-data'; import { AlignmentControl, useBlockProps, BlockControls, RichText } from '@wordpress/block-editor'; import { __ } from '@wordpress/i18n'; import { createBlock, getDefaultBlockName } from '@wordpress/blocks'; export default function SiteTaglineEdit(_ref) { let { attributes, setAttributes, insertBlocksAfter } = _ref; const { textAlign } = attributes; const [siteTagline, setSiteTagline] = useEntityProp('root', 'site', 'description'); const { canUserEdit, readOnlySiteTagLine } = useSelect(select => { const { canUser, getEntityRecord } = select(coreStore); const siteData = getEntityRecord('root', '__unstableBase'); return { canUserEdit: canUser('update', 'settings'), readOnlySiteTagLine: siteData === null || siteData === void 0 ? void 0 : siteData.description }; }, []); const blockProps = useBlockProps({ className: classnames({ [`has-text-align-${textAlign}`]: textAlign, 'wp-block-site-tagline__placeholder': !canUserEdit && !readOnlySiteTagLine }) }); const siteTaglineContent = canUserEdit ? createElement(RichText, _extends({ allowedFormats: [], onChange: setSiteTagline, "aria-label": __('Site tagline text'), placeholder: __('Write site tagline…'), tagName: "p", value: siteTagline, disableLineBreaks: true, __unstableOnSplitAtEnd: () => insertBlocksAfter(createBlock(getDefaultBlockName())) }, blockProps)) : createElement("p", blockProps, readOnlySiteTagLine || __('Site Tagline placeholder')); return createElement(Fragment, null, createElement(BlockControls, { group: "block" }, createElement(AlignmentControl, { onChange: newAlign => setAttributes({ textAlign: newAlign }), value: textAlign })), siteTaglineContent); } //# sourceMappingURL=edit.js.map