UNPKG

@wordpress/edit-post

Version:
110 lines (94 loc) 3.42 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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _lodash = require("lodash"); var _compose = require("@wordpress/compose"); var _components = require("@wordpress/components"); var _plugins = require("@wordpress/plugins"); var _pluginsMoreMenuGroup = _interopRequireDefault(require("../plugins-more-menu-group")); /** * External dependencies */ /** * WordPress dependencies */ /** * Internal dependencies */ var PluginMoreMenuItem = function PluginMoreMenuItem(_ref) { var _ref$onClick = _ref.onClick, onClick = _ref$onClick === void 0 ? _lodash.noop : _ref$onClick, props = (0, _objectWithoutProperties2.default)(_ref, ["onClick"]); return (0, _element.createElement)(_pluginsMoreMenuGroup.default, null, function (fillProps) { return (0, _element.createElement)(_components.MenuItem, (0, _extends2.default)({}, props, { onClick: (0, _compose.compose)(onClick, fillProps.onClose) })); }); }; /** * Renders a menu item in `Plugins` group in `More Menu` drop down, and can be used to 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 {string} [props.href] When `href` is provided then the menu item is represented as an anchor rather than button. It corresponds to the `href` attribute of the anchor. * @param {string|Element} [props.icon=inherits from the plugin] The [Dashicon](https://developer.wordpress.org/resource/dashicons/) icon slug string, or an SVG WP element, to be rendered to the left of the menu item label. * @param {Function} [props.onClick=noop] 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](/packages/components/src/menu-item/README.md) component. * * @example <caption>ES5</caption> * ```js * // Using ES5 syntax * var __ = wp.i18n.__; * var PluginMoreMenuItem = wp.editPost.PluginMoreMenuItem; * * function onButtonClick() { * alert( 'Button clicked.' ); * } * * function MyButtonMoreMenuItem() { * return wp.element.createElement( * PluginMoreMenuItem, * { * icon: 'smiley', * onClick: onButtonClick * }, * __( 'My button title' ) * ) * } * ``` * * @example <caption>ESNext</caption> * ```jsx * // Using ESNext syntax * const { __ } = wp.i18n; * const { PluginMoreMenuItem } = wp.editPost; * * function onButtonClick() { * alert( 'Button clicked.' ); * } * * const MyButtonMoreMenuItem = () => ( * <PluginMoreMenuItem * icon="smiley" * onClick={ onButtonClick } * > * { __( 'My button title' ) } * </PluginMoreMenuItem> * ); * ``` * * @return {WPElement} The element to be rendered. */ var _default = (0, _compose.compose)((0, _plugins.withPluginContext)(function (context, ownProps) { return { icon: ownProps.icon || context.icon }; }))(PluginMoreMenuItem); exports.default = _default; //# sourceMappingURL=index.js.map