UNPKG

@wordpress/editor

Version:
8 lines (7 loc) 3.67 kB
{ "version": 3, "sources": ["../../../src/components/mode-switcher/index.js"], "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuItemsChoice, MenuGroup } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * Set of available mode options.\n *\n * @type {Array}\n */\nconst MODES = [\n\t{\n\t\tvalue: 'visual',\n\t\tlabel: __( 'Visual editor' ),\n\t},\n\t{\n\t\tvalue: 'text',\n\t\tlabel: __( 'Code editor' ),\n\t},\n];\n\nfunction ModeSwitcher() {\n\tconst { shortcut, isRichEditingEnabled, isCodeEditingEnabled, mode } =\n\t\tuseSelect(\n\t\t\t( select ) => ( {\n\t\t\t\tshortcut: select(\n\t\t\t\t\tkeyboardShortcutsStore\n\t\t\t\t).getShortcutRepresentation( 'core/editor/toggle-mode' ),\n\t\t\t\tisRichEditingEnabled:\n\t\t\t\t\tselect( editorStore ).getEditorSettings()\n\t\t\t\t\t\t.richEditingEnabled,\n\t\t\t\tisCodeEditingEnabled:\n\t\t\t\t\tselect( editorStore ).getEditorSettings()\n\t\t\t\t\t\t.codeEditingEnabled,\n\t\t\t\tmode: select( editorStore ).getEditorMode(),\n\t\t\t} ),\n\t\t\t[]\n\t\t);\n\tconst { switchEditorMode } = useDispatch( editorStore );\n\n\tlet selectedMode = mode;\n\tif ( ! isRichEditingEnabled && mode === 'visual' ) {\n\t\tselectedMode = 'text';\n\t}\n\tif ( ! isCodeEditingEnabled && mode === 'text' ) {\n\t\tselectedMode = 'visual';\n\t}\n\n\tconst choices = MODES.map( ( choice ) => {\n\t\tif ( ! isCodeEditingEnabled && choice.value === 'text' ) {\n\t\t\tchoice = {\n\t\t\t\t...choice,\n\t\t\t\tdisabled: true,\n\t\t\t};\n\t\t}\n\t\tif ( ! isRichEditingEnabled && choice.value === 'visual' ) {\n\t\t\tchoice = {\n\t\t\t\t...choice,\n\t\t\t\tdisabled: true,\n\t\t\t\tinfo: __(\n\t\t\t\t\t'You can enable the visual editor in your profile settings.'\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\t\tif ( choice.value !== selectedMode && ! choice.disabled ) {\n\t\t\treturn { ...choice, shortcut };\n\t\t}\n\t\treturn choice;\n\t} );\n\n\treturn (\n\t\t<MenuGroup label={ __( 'Editor' ) }>\n\t\t\t<MenuItemsChoice\n\t\t\t\tchoices={ choices }\n\t\t\t\tvalue={ selectedMode }\n\t\t\t\tonSelect={ switchEditorMode }\n\t\t\t/>\n\t\t</MenuGroup>\n\t);\n}\n\nexport default ModeSwitcher;\n"], "mappings": ";AAGA,SAAS,UAAU;AACnB,SAAS,iBAAiB,iBAAiB;AAC3C,SAAS,WAAW,mBAAmB;AACvC,SAAS,SAAS,8BAA8B;AAKhD,SAAS,SAAS,mBAAmB;AAqElC;AA9DH,IAAM,QAAQ;AAAA,EACb;AAAA,IACC,OAAO;AAAA,IACP,OAAO,GAAI,eAAgB;AAAA,EAC5B;AAAA,EACA;AAAA,IACC,OAAO;AAAA,IACP,OAAO,GAAI,aAAc;AAAA,EAC1B;AACD;AAEA,SAAS,eAAe;AACvB,QAAM,EAAE,UAAU,sBAAsB,sBAAsB,KAAK,IAClE;AAAA,IACC,CAAE,YAAc;AAAA,MACf,UAAU;AAAA,QACT;AAAA,MACD,EAAE,0BAA2B,yBAA0B;AAAA,MACvD,sBACC,OAAQ,WAAY,EAAE,kBAAkB,EACtC;AAAA,MACH,sBACC,OAAQ,WAAY,EAAE,kBAAkB,EACtC;AAAA,MACH,MAAM,OAAQ,WAAY,EAAE,cAAc;AAAA,IAC3C;AAAA,IACA,CAAC;AAAA,EACF;AACD,QAAM,EAAE,iBAAiB,IAAI,YAAa,WAAY;AAEtD,MAAI,eAAe;AACnB,MAAK,CAAE,wBAAwB,SAAS,UAAW;AAClD,mBAAe;AAAA,EAChB;AACA,MAAK,CAAE,wBAAwB,SAAS,QAAS;AAChD,mBAAe;AAAA,EAChB;AAEA,QAAM,UAAU,MAAM,IAAK,CAAE,WAAY;AACxC,QAAK,CAAE,wBAAwB,OAAO,UAAU,QAAS;AACxD,eAAS;AAAA,QACR,GAAG;AAAA,QACH,UAAU;AAAA,MACX;AAAA,IACD;AACA,QAAK,CAAE,wBAAwB,OAAO,UAAU,UAAW;AAC1D,eAAS;AAAA,QACR,GAAG;AAAA,QACH,UAAU;AAAA,QACV,MAAM;AAAA,UACL;AAAA,QACD;AAAA,MACD;AAAA,IACD;AACA,QAAK,OAAO,UAAU,gBAAgB,CAAE,OAAO,UAAW;AACzD,aAAO,EAAE,GAAG,QAAQ,SAAS;AAAA,IAC9B;AACA,WAAO;AAAA,EACR,CAAE;AAEF,SACC,oBAAC,aAAU,OAAQ,GAAI,QAAS,GAC/B;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA,OAAQ;AAAA,MACR,UAAW;AAAA;AAAA,EACZ,GACD;AAEF;AAEA,IAAO,wBAAQ;", "names": [] }