@wordpress/block-library
Version:
Block library for the WordPress editor.
82 lines (70 loc) • 2.58 kB
JavaScript
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
;