UNPKG

@wordpress/block-library

Version:
82 lines (70 loc) 2.58 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = SiteTaglineEdit; var _element = require("@wordpress/element"); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _classnames = _interopRequireDefault(require("classnames")); var _data = require("@wordpress/data"); var _coreData = require("@wordpress/core-data"); var _blockEditor = require("@wordpress/block-editor"); var _i18n = require("@wordpress/i18n"); var _blocks = require("@wordpress/blocks"); /** * External dependencies */ /** * WordPress dependencies */ function SiteTaglineEdit(_ref) { let { attributes, setAttributes, insertBlocksAfter } = _ref; const { textAlign } = attributes; const [siteTagline, setSiteTagline] = (0, _coreData.useEntityProp)('root', 'site', 'description'); const { canUserEdit, readOnlySiteTagLine } = (0, _data.useSelect)(select => { const { canUser, getEntityRecord } = select(_coreData.store); const siteData = getEntityRecord('root', '__unstableBase'); return { canUserEdit: canUser('update', 'settings'), readOnlySiteTagLine: siteData === null || siteData === void 0 ? void 0 : siteData.description }; }, []); const blockProps = (0, _blockEditor.useBlockProps)({ className: (0, _classnames.default)({ [`has-text-align-${textAlign}`]: textAlign, 'wp-block-site-tagline__placeholder': !canUserEdit && !readOnlySiteTagLine }) }); const siteTaglineContent = canUserEdit ? (0, _element.createElement)(_blockEditor.RichText, (0, _extends2.default)({ allowedFormats: [], onChange: setSiteTagline, "aria-label": (0, _i18n.__)('Site tagline text'), placeholder: (0, _i18n.__)('Write site tagline…'), tagName: "p", value: siteTagline, disableLineBreaks: true, __unstableOnSplitAtEnd: () => insertBlocksAfter((0, _blocks.createBlock)((0, _blocks.getDefaultBlockName)())) }, blockProps)) : (0, _element.createElement)("p", blockProps, readOnlySiteTagLine || (0, _i18n.__)('Site Tagline placeholder')); return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_blockEditor.BlockControls, { group: "block" }, (0, _element.createElement)(_blockEditor.AlignmentControl, { onChange: newAlign => setAttributes({ textAlign: newAlign }), value: textAlign })), siteTaglineContent); } //# sourceMappingURL=edit.js.map