@wordpress/block-editor
Version:
79 lines (75 loc) • 2.72 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _reactNative = require("react-native");
var _i18n = require("@wordpress/i18n");
var _blocks = require("@wordpress/blocks");
var _components = require("@wordpress/components");
var _data = require("@wordpress/data");
var _notices = require("@wordpress/notices");
var _store = require("../../store");
var _jsxRuntime = require("react/jsx-runtime");
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const BlockTransformationsMenu = ({
anchorNodeRef,
blockTitle,
pickerRef,
possibleTransformations,
selectedBlock,
selectedBlockClientId
}) => {
const {
replaceBlocks
} = (0, _data.useDispatch)(_store.store);
const {
createSuccessNotice
} = (0, _data.useDispatch)(_notices.store);
const pickerOptions = () => {
var _selectedBlock$name;
const selectedBlockName = (_selectedBlock$name = selectedBlock?.name) !== null && _selectedBlock$name !== void 0 ? _selectedBlock$name : '';
const blocksThatSplitWhenTransformed = {
'core/list': ['core/paragraph', 'core/heading'],
'core/quote': ['core/paragraph'],
'core/pullquote': ['core/paragraph']
};
return possibleTransformations.map(item => {
const label = selectedBlockName.length && blocksThatSplitWhenTransformed[selectedBlockName] && blocksThatSplitWhenTransformed[selectedBlockName].includes(item.id) ? `${item.title} blocks` : item.title;
return {
label,
value: item.id
};
});
};
const getAnchor = () => anchorNodeRef ? (0, _reactNative.findNodeHandle)(anchorNodeRef) : undefined;
function onPickerSelect(value) {
replaceBlocks(selectedBlockClientId, (0, _blocks.switchToBlockType)(selectedBlock, value));
const selectedItem = pickerOptions().find(item => item.value === value);
const successNotice = (0, _i18n.sprintf)(/* translators: 1: From block title, e.g. Paragraph. 2: To block title, e.g. Header. */
(0, _i18n.__)('%1$s transformed to %2$s'), blockTitle, selectedItem.label);
createSuccessNotice(successNotice);
}
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Picker, {
testID: "block-transformations-menu",
ref: pickerRef,
options: pickerOptions(),
onChange: onPickerSelect,
hideCancelButton: _reactNative.Platform.OS !== 'ios',
leftAlign: true,
getAnchor: getAnchor
// translators: %s: block title e.g: "Paragraph".
,
title: (0, _i18n.sprintf)((0, _i18n.__)('Transform %s to'), blockTitle)
});
};
var _default = exports.default = BlockTransformationsMenu;
//# sourceMappingURL=block-transformations-menu.native.js.map
;