UNPKG

@wordpress/block-editor

Version:
54 lines (52 loc) 1.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _element = require("@wordpress/element"); var _components = require("@wordpress/components"); var _i18n = require("@wordpress/i18n"); var _jsxRuntime = require("react/jsx-runtime"); /** * WordPress dependencies */ const noop = () => {}; const DEFAULT_PICKER_OPTIONS = [{ id: 'createEmbed', label: (0, _i18n.__)('Create embed'), value: 'createEmbed', onSelect: noop }, { id: 'createLink', label: (0, _i18n.__)('Create link'), value: 'createLink', onSelect: noop }]; const EmbedHandlerPicker = (0, _element.forwardRef)(({}, ref) => { const pickerRef = (0, _element.useRef)(); const pickerOptions = (0, _element.useRef)(DEFAULT_PICKER_OPTIONS).current; const onPickerSelect = (0, _element.useCallback)(value => { const selectedItem = pickerOptions.find(item => item.value === value); selectedItem.onSelect(); }, [pickerOptions]); (0, _element.useImperativeHandle)(ref, () => ({ presentPicker: ({ createEmbed, createLink }) => { pickerOptions[0].onSelect = createEmbed; pickerOptions[1].onSelect = createLink; pickerRef.current?.presentPicker(); } })); return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Picker, { ref: pickerRef, options: pickerOptions, onChange: onPickerSelect, testID: "embed-handler-picker", hideCancelButton: true, leftAlign: true }); }); var _default = exports.default = (0, _element.memo)(EmbedHandlerPicker); //# sourceMappingURL=embed-handler-picker.native.js.map