@wordpress/edit-post
Version:
Edit Post module for WordPress.
81 lines (66 loc) • 1.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _element = require("@wordpress/element");
var _i18n = require("@wordpress/i18n");
var _components = require("@wordpress/components");
var _data = require("@wordpress/data");
var _keyboardShortcuts = require("@wordpress/keyboard-shortcuts");
var _store = require("../../../store");
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
/**
* Set of available mode options.
*
* @type {Array}
*/
const MODES = [{
value: 'visual',
label: (0, _i18n.__)('Visual editor')
}, {
value: 'text',
label: (0, _i18n.__)('Code editor')
}];
function ModeSwitcher() {
const {
shortcut,
isRichEditingEnabled,
isCodeEditingEnabled,
mode
} = (0, _data.useSelect)(select => ({
shortcut: select(_keyboardShortcuts.store).getShortcutRepresentation('core/edit-post/toggle-mode'),
isRichEditingEnabled: select('core/editor').getEditorSettings().richEditingEnabled,
isCodeEditingEnabled: select('core/editor').getEditorSettings().codeEditingEnabled,
mode: select(_store.store).getEditorMode()
}), []);
const {
switchEditorMode
} = (0, _data.useDispatch)(_store.store);
if (!isRichEditingEnabled || !isCodeEditingEnabled) {
return null;
}
const choices = MODES.map(choice => {
if (choice.value !== mode) {
return { ...choice,
shortcut
};
}
return choice;
});
return (0, _element.createElement)(_components.MenuGroup, {
label: (0, _i18n.__)('Editor')
}, (0, _element.createElement)(_components.MenuItemsChoice, {
choices: choices,
value: mode,
onSelect: switchEditorMode
}));
}
var _default = ModeSwitcher;
exports.default = _default;
//# sourceMappingURL=index.js.map