UNPKG

@wordpress/editor

Version:
41 lines (37 loc) 1.25 kB
/** * WordPress dependencies */ import { __, isRTL } from '@wordpress/i18n'; import { Button } from '@wordpress/components'; import { useSelect, useDispatch } from '@wordpress/data'; import { displayShortcut } from '@wordpress/keycodes'; import { redo as redoIcon, undo as undoIcon } from '@wordpress/icons'; import { forwardRef } from '@wordpress/element'; /** * Internal dependencies */ import { store as editorStore } from '../../store'; function EditorHistoryRedo( props, ref ) { const hasRedo = useSelect( ( select ) => select( editorStore ).hasEditorRedo(), [] ); const { redo } = useDispatch( editorStore ); return ( <Button { ...props } ref={ ref } icon={ ! isRTL() ? redoIcon : undoIcon } /* translators: button label text should, if possible, be under 16 characters. */ label={ __( 'Redo' ) } shortcut={ displayShortcut.primaryShift( 'z' ) } // If there are no redo 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={ ! hasRedo } onClick={ hasRedo ? redo : undefined } className="editor-history__redo" /> ); } export default forwardRef( EditorHistoryRedo );