@wordpress/block-editor
Version:
103 lines (85 loc) • 2.77 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _element = require("@wordpress/element");
var _classnames = _interopRequireDefault(require("classnames"));
var _deprecated = _interopRequireDefault(require("@wordpress/deprecated"));
var _components = require("@wordpress/components");
var _icons = require("@wordpress/icons");
var _i18n = require("@wordpress/i18n");
var _data = require("@wordpress/data");
var _blockIcon = _interopRequireDefault(require("../block-icon"));
var _store = require("../../store");
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function BlockCard({
title,
icon,
description,
blockType,
className
}) {
if (blockType) {
(0, _deprecated.default)('`blockType` property in `BlockCard component`', {
since: '5.7',
alternative: '`title, icon and description` properties'
});
({
title,
icon,
description
} = blockType);
}
const {
parentNavBlockClientId
} = (0, _data.useSelect)(select => {
const {
getSelectedBlockClientId,
getBlockParentsByBlockName
} = select(_store.store);
const _selectedBlockClientId = getSelectedBlockClientId();
return {
parentNavBlockClientId: getBlockParentsByBlockName(_selectedBlockClientId, 'core/navigation', true)[0]
};
}, []);
const {
selectBlock
} = (0, _data.useDispatch)(_store.store);
return (0, _element.createElement)("div", {
className: (0, _classnames.default)('block-editor-block-card', className)
}, parentNavBlockClientId && // This is only used by the Navigation block for now. It's not ideal having Navigation block specific code here.
(0, _element.createElement)(_components.Button, {
onClick: () => selectBlock(parentNavBlockClientId),
label: (0, _i18n.__)('Go to parent Navigation block'),
style: // TODO: This style override is also used in ToolsPanelHeader.
// It should be supported out-of-the-box by Button.
{
minWidth: 24,
padding: 0
},
icon: (0, _i18n.isRTL)() ? _icons.chevronRight : _icons.chevronLeft,
isSmall: true
}), (0, _element.createElement)(_blockIcon.default, {
icon: icon,
showColors: true
}), (0, _element.createElement)("div", {
className: "block-editor-block-card__content"
}, (0, _element.createElement)("h2", {
className: "block-editor-block-card__title"
}, title), (0, _element.createElement)("span", {
className: "block-editor-block-card__description"
}, description)));
}
var _default = BlockCard;
exports.default = _default;
//# sourceMappingURL=index.js.map