UNPKG

@wordpress/editor

Version:
60 lines (58 loc) 2.46 kB
"use strict"; 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