@wordpress/block-editor
Version:
54 lines (52 loc) • 1.6 kB
JavaScript
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
;