mihdan
1/11/2019 - 11:15 AM

wp-gutenberg-code-btn.js

(function (richText, element, editor) {

	var el       = element.createElement,
		fragment = element.Fragment;

	var registerFormatType   = richText.registerFormatType,
		toggleFormat         = richText.toggleFormat,
		unregisterFormatType = richText.unregisterFormatType;

	var richTextToolbarButton = editor.RichTextToolbarButton,
		richTextShortcut      = editor.RichTextShortcut;

	var type = 'core/code';

	unregisterFormatType( type );
	registerFormatType( type, {
		title: 'Code',
		tagName: 'code',
		className: null,
		edit: function edit( _ref ) {
			var isActive = _ref.isActive,
				value    = _ref.value,
				onChange = _ref.onChange;

			var onToggle = function() {
				return onChange( toggleFormat( value, { type: type } ) );
			};

			return el(
				fragment,
				null,
				el( richTextShortcut, {
					type: 'access',
					character: 'x',
					onUse: onToggle
				} ),
				el( richTextToolbarButton, {
					icon: 'editor-code',
					title: 'Code',
					onClick: onToggle,
					isActive: isActive,
					shortcutType: 'access',
					shortcutCharacter: 'x'
				} )
			);
		}
	} );

}(
	window.wp.richText,
	window.wp.element,
	window.wp.editor
));

// eof;