UNPKG

@gechiui/block-editor

Version:
94 lines (76 loc) 2.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _element = require("@gechiui/element"); var _reactNative = require("react-native"); var _i18n = require("@gechiui/i18n"); var _blocks = require("@gechiui/blocks"); var _components = require("@gechiui/components"); var _data = require("@gechiui/data"); var _notices = require("@gechiui/notices"); var _store = require("../../store"); /** * External dependencies */ /** * GeChiUI dependencies */ /** * Internal dependencies */ const BlockTransformationsMenu = _ref => { let { anchorNodeRef, blockTitle, pickerRef, possibleTransformations, selectedBlock, selectedBlockClientId } = _ref; const { replaceBlocks } = (0, _data.useDispatch)(_store.store); const { createSuccessNotice } = (0, _data.useDispatch)(_notices.store); const pickerOptions = () => { var _selectedBlock$name; const selectedBlockName = (_selectedBlock$name = selectedBlock === null || selectedBlock === void 0 ? void 0 : 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 (0, _element.createElement)(_components.Picker, { 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 = BlockTransformationsMenu; exports.default = _default; //# sourceMappingURL=block-transformations-menu.native.js.map