-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Expand file tree
/
Copy pathuse-common-commands.js
More file actions
125 lines (115 loc) · 2.98 KB
/
use-common-commands.js
File metadata and controls
125 lines (115 loc) · 2.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
/**
* WordPress dependencies
*/
import { useSelect, useDispatch } from '@wordpress/data';
import { __, isRTL } from '@wordpress/i18n';
import {
code,
cog,
drawerLeft,
drawerRight,
blockDefault,
keyboardClose,
} from '@wordpress/icons';
import { useCommand } from '@wordpress/commands';
import { store as preferencesStore } from '@wordpress/preferences';
import { store as interfaceStore } from '@wordpress/interface';
/**
* Internal dependencies
*/
import { KEYBOARD_SHORTCUT_HELP_MODAL_NAME } from '../../components/keyboard-shortcut-help-modal';
import { PREFERENCES_MODAL_NAME } from '../../components/preferences-modal';
import { store as editPostStore } from '../../store';
export default function useCommonCommands() {
const { openGeneralSidebar, closeGeneralSidebar, switchEditorMode } =
useDispatch( editPostStore );
const { openModal } = useDispatch( interfaceStore );
const { editorMode, activeSidebar } = useSelect(
( select ) => ( {
activeSidebar: select( interfaceStore ).getActiveComplementaryArea(
editPostStore.name
),
editorMode: select( editPostStore ).getEditorMode(),
} ),
[]
);
const { toggle } = useDispatch( preferencesStore );
useCommand( {
name: 'core/open-settings-sidebar',
label: __( 'Toggle settings sidebar' ),
icon: isRTL() ? drawerLeft : drawerRight,
callback: ( { close } ) => {
close();
if ( activeSidebar === 'edit-post/document' ) {
closeGeneralSidebar();
} else {
openGeneralSidebar( 'edit-post/document' );
}
},
} );
useCommand( {
name: 'core/open-block-inspector',
label: __( 'Toggle block inspector' ),
icon: blockDefault,
callback: ( { close } ) => {
close();
if ( activeSidebar === 'edit-post/block' ) {
closeGeneralSidebar();
} else {
openGeneralSidebar( 'edit-post/block' );
}
},
} );
useCommand( {
name: 'core/toggle-distraction-free',
label: __( 'Toggle distraction free' ),
icon: cog,
callback: ( { close } ) => {
toggle( 'core/edit-post', 'distractionFree' );
close();
},
} );
useCommand( {
name: 'core/toggle-spotlight-mode',
label: __( 'Toggle spotlight mode' ),
icon: cog,
callback: ( { close } ) => {
toggle( 'core/edit-post', 'focusMode' );
close();
},
} );
useCommand( {
name: 'core/toggle-top-toolbar',
label: __( 'Toggle top toolbar' ),
icon: cog,
callback: ( { close } ) => {
toggle( 'core/edit-post', 'fixedToolbar' );
close();
},
} );
useCommand( {
name: 'core/toggle-code-editor',
label: __( 'Toggle code editor' ),
icon: code,
callback: ( { close } ) => {
switchEditorMode( editorMode === 'visual' ? 'text' : 'visual' );
close();
},
} );
useCommand( {
name: 'core/open-preferences',
label: __( 'Open editor preferences' ),
icon: cog,
callback: () => {
openModal( PREFERENCES_MODAL_NAME );
},
} );
useCommand( {
name: 'core/open-shortcut-help',
label: __( 'Open keyboard shortcuts' ),
icon: keyboardClose,
callback: () => {
openModal( KEYBOARD_SHORTCUT_HELP_MODAL_NAME );
},
} );
}