UNPKG

@gechiui/block-editor

Version:
68 lines (62 loc) 1.61 kB
import { createElement } from "@gechiui/element"; /** * External dependencies */ import { noop } from 'lodash'; /** * GeChiUI dependencies */ import { __ } from '@gechiui/i18n'; import { MenuItem } from '@gechiui/components'; import { getBlockType, hasBlockSupport } from '@gechiui/blocks'; import { withSelect, withDispatch } from '@gechiui/data'; import { compose } from '@gechiui/compose'; /** * Internal dependencies */ import { store as blockEditorStore } from '../../store'; export function BlockModeToggle(_ref) { let { blockType, mode, onToggleMode, small = false, isCodeEditingEnabled = true } = _ref; if (!hasBlockSupport(blockType, 'html', true) || !isCodeEditingEnabled) { return null; } const label = mode === 'visual' ? __('作为HTML编辑') : __('可视化编辑'); return createElement(MenuItem, { onClick: onToggleMode }, !small && label); } export default compose([withSelect((select, _ref2) => { let { clientId } = _ref2; const { getBlock, getBlockMode, getSettings } = select(blockEditorStore); const block = getBlock(clientId); const isCodeEditingEnabled = getSettings().codeEditingEnabled; return { mode: getBlockMode(clientId), blockType: block ? getBlockType(block.name) : null, isCodeEditingEnabled }; }), withDispatch((dispatch, _ref3) => { let { onToggle = noop, clientId } = _ref3; return { onToggleMode() { dispatch(blockEditorStore).toggleBlockMode(clientId); onToggle(); } }; })])(BlockModeToggle); //# sourceMappingURL=block-mode-toggle.js.map