@wordpress/edit-post
Version:
Edit Post module for WordPress.
50 lines (46 loc) • 1.32 kB
JavaScript
/**
* WordPress dependencies
*/
import { useSelect, useDispatch } from '@wordpress/data';
import { __ } from '@wordpress/i18n';
import { fullscreen } from '@wordpress/icons';
import { useCommand } from '@wordpress/commands';
import { store as preferencesStore } from '@wordpress/preferences';
import { store as noticesStore } from '@wordpress/notices';
export default function useCommands() {
const { isFullscreen } = useSelect( ( select ) => {
const { get } = select( preferencesStore );
return {
isFullscreen: get( 'core/edit-post', 'fullscreenMode' ),
};
}, [] );
const { toggle } = useDispatch( preferencesStore );
const { createInfoNotice } = useDispatch( noticesStore );
useCommand( {
name: 'core/toggle-fullscreen-mode',
label: isFullscreen
? __( 'Exit fullscreen' )
: __( 'Enter fullscreen' ),
icon: fullscreen,
category: 'command',
callback: ( { close } ) => {
toggle( 'core/edit-post', 'fullscreenMode' );
close();
createInfoNotice(
isFullscreen ? __( 'Fullscreen off.' ) : __( 'Fullscreen on.' ),
{
id: 'core/edit-post/toggle-fullscreen-mode/notice',
type: 'snackbar',
actions: [
{
label: __( 'Undo' ),
onClick: () => {
toggle( 'core/edit-post', 'fullscreenMode' );
},
},
],
}
);
},
} );
}