@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
41 lines (37 loc) • 1.4 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import { createElement } from "@wordpress/element";
/**
* WordPress dependencies
*/
import { __, isRTL } from '@wordpress/i18n';
import { Button } from '@wordpress/components';
import { useSelect, useDispatch } from '@wordpress/data';
import { displayShortcut } from '@wordpress/keycodes';
import { undo as undoIcon, redo as redoIcon } from '@wordpress/icons';
import { forwardRef } from '@wordpress/element';
/**
* Internal dependencies
*/
import { store as editorStore } from '../../store';
function EditorHistoryUndo(props, ref) {
const hasUndo = useSelect(select => select(editorStore).hasEditorUndo(), []);
const {
undo
} = useDispatch(editorStore);
return createElement(Button, _extends({}, props, {
ref: ref,
icon: !isRTL() ? undoIcon : redoIcon
/* translators: button label text should, if possible, be under 16 characters. */
,
label: __('Undo'),
shortcut: displayShortcut.primary('z') // If there are no undo levels we don't want to actually disable this
// button, because it will remove focus for keyboard users.
// See: https://github.com/WordPress/gutenberg/issues/3486
,
"aria-disabled": !hasUndo,
onClick: hasUndo ? undo : undefined,
className: "editor-history__undo"
}));
}
export default forwardRef(EditorHistoryUndo);
//# sourceMappingURL=undo.js.map