UNPKG

@wordpress/block-editor

Version:
103 lines (85 loc) 2.77 kB
"use strict"; 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