@wordpress/block-editor
Version:
8 lines (7 loc) • 2.33 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../src/components/block-settings-menu/block-mode-toggle.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuItem } from '@wordpress/components';\nimport { getBlockType, hasBlockSupport } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst noop = () => {};\n\nexport default function BlockModeToggle( { clientId, onToggle = noop } ) {\n\tconst { blockType, mode, enabled } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlockMode, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst block = getBlock( clientId );\n\n\t\t\treturn {\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tblockType: block ? getBlockType( block.name ) : null,\n\t\t\t\tenabled: getSettings().codeEditingEnabled && !! block?.isValid,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { toggleBlockMode } = useDispatch( blockEditorStore );\n\n\tif (\n\t\t! blockType ||\n\t\t! hasBlockSupport( blockType, 'html', true ) ||\n\t\t! enabled\n\t) {\n\t\treturn null;\n\t}\n\n\tconst label =\n\t\tmode === 'visual' ? __( 'Edit as HTML' ) : __( 'Edit visually' );\n\n\treturn (\n\t\t<MenuItem\n\t\t\tonClick={ () => {\n\t\t\t\ttoggleBlockMode( clientId );\n\t\t\t\tonToggle();\n\t\t\t} }\n\t\t>\n\t\t\t{ label }\n\t\t</MenuItem>\n\t);\n}\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AACnB,wBAAyB;AACzB,oBAA8C;AAC9C,kBAAuC;AAKvC,mBAA0C;AAiCxC;AA/BF,IAAM,OAAO,MAAM;AAAC;AAEL,SAAR,gBAAkC,EAAE,UAAU,WAAW,KAAK,GAAI;AACxE,QAAM,EAAE,WAAW,MAAM,QAAQ,QAAI;AAAA,IACpC,CAAE,WAAY;AACb,YAAM,EAAE,UAAU,cAAc,YAAY,IAC3C,OAAQ,aAAAA,KAAiB;AAC1B,YAAM,QAAQ,SAAU,QAAS;AAEjC,aAAO;AAAA,QACN,MAAM,aAAc,QAAS;AAAA,QAC7B,WAAW,YAAQ,4BAAc,MAAM,IAAK,IAAI;AAAA,QAChD,SAAS,YAAY,EAAE,sBAAsB,CAAC,CAAE,OAAO;AAAA,MACxD;AAAA,IACD;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AACA,QAAM,EAAE,gBAAgB,QAAI,yBAAa,aAAAA,KAAiB;AAE1D,MACC,CAAE,aACF,KAAE,+BAAiB,WAAW,QAAQ,IAAK,KAC3C,CAAE,SACD;AACD,WAAO;AAAA,EACR;AAEA,QAAM,QACL,SAAS,eAAW,gBAAI,cAAe,QAAI,gBAAI,eAAgB;AAEhE,SACC;AAAA,IAAC;AAAA;AAAA,MACA,SAAU,MAAM;AACf,wBAAiB,QAAS;AAC1B,iBAAS;AAAA,MACV;AAAA,MAEE;AAAA;AAAA,EACH;AAEF;",
"names": ["blockEditorStore"]
}