UNPKG

@gechiui/block-editor

Version:
56 lines (53 loc) 1.6 kB
import { createElement } from "@gechiui/element"; /** * External dependencies */ import { noop } from 'lodash'; /** * GeChiUI dependencies */ import { forwardRef, useRef, useImperativeHandle, memo, useCallback } from '@gechiui/element'; import { Picker } from '@gechiui/components'; import { __ } from '@gechiui/i18n'; const DEFAULT_PICKER_OPTIONS = [{ id: 'createEmbed', label: __('Create embed'), value: 'createEmbed', onSelect: noop }, { id: 'createLink', label: __('Create link'), value: 'createLink', onSelect: noop }]; const EmbedHandlerPicker = forwardRef((_ref, ref) => { let {} = _ref; const pickerRef = useRef(); const pickerOptions = useRef(DEFAULT_PICKER_OPTIONS).current; const onPickerSelect = useCallback(value => { const selectedItem = pickerOptions.find(item => item.value === value); selectedItem.onSelect(); }, [pickerOptions]); useImperativeHandle(ref, () => ({ presentPicker: _ref2 => { var _pickerRef$current; let { createEmbed, createLink } = _ref2; pickerOptions[0].onSelect = createEmbed; pickerOptions[1].onSelect = createLink; (_pickerRef$current = pickerRef.current) === null || _pickerRef$current === void 0 ? void 0 : _pickerRef$current.presentPicker(); } })); return createElement(Picker, { ref: pickerRef, options: pickerOptions, onChange: onPickerSelect, testID: "embed-handler-picker", hideCancelButton: true, leftAlign: true }); }); export default memo(EmbedHandlerPicker); //# sourceMappingURL=embed-handler-picker.native.js.map