@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
60 lines (58 loc) • 2.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = PluginPreviewMenuItem;
var _components = require("@wordpress/components");
var _plugins = require("@wordpress/plugins");
var _interface = require("@wordpress/interface");
var _jsxRuntime = require("react/jsx-runtime");
/**
* WordPress dependencies
*/
/**
* Renders a menu item in the Preview dropdown, which can be used as a button or link depending on the props provided.
* The text within the component appears as the menu item label.
*
* @param {Object} props Component properties.
* @param {React.ReactNode} [props.children] Children to be rendered.
* @param {string} [props.href] When `href` is provided, the menu item is rendered as an anchor instead of a button. It corresponds to the `href` attribute of the anchor.
* @param {WPBlockTypeIconRender} [props.icon=inherits from the plugin] The icon to be rendered to the left of the menu item label. Can be a Dashicon slug or an SVG WP element.
* @param {Function} [props.onClick] The callback function to be executed when the user clicks the menu item.
* @param {...*} [props.other] Any additional props are passed through to the underlying MenuItem component.
*
* @example
* ```jsx
* import { __ } from '@wordpress/i18n';
* import { PluginPreviewMenuItem } from '@wordpress/editor';
* import { external } from '@wordpress/icons';
*
* function onPreviewClick() {
* // Handle preview action
* }
*
* const ExternalPreviewMenuItem = () => (
* <PluginPreviewMenuItem
* icon={ external }
* onClick={ onPreviewClick }
* >
* { __( 'Preview in new tab' ) }
* </PluginPreviewMenuItem>
* );
* registerPlugin( 'external-preview-menu-item', {
* render: ExternalPreviewMenuItem,
* } );
* ```
*
* @return {React.ReactNode} The rendered menu item component.
*/function PluginPreviewMenuItem(props) {
var _props$as;
const context = (0, _plugins.usePluginContext)();
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_interface.ActionItem, {
name: "core/plugin-preview-menu",
as: (_props$as = props.as) !== null && _props$as !== void 0 ? _props$as : _components.MenuItem,
icon: props.icon || context.icon,
...props
});
}
//# sourceMappingURL=index.js.map