@wordpress/edit-post 7.28.3 → 7.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/header/index.js +1 -1
  3. package/build/components/header/index.js.map +1 -1
  4. package/build/components/header/more-menu/index.js +6 -2
  5. package/build/components/header/more-menu/index.js.map +1 -1
  6. package/build/components/header/writing-menu/index.js +2 -6
  7. package/build/components/header/writing-menu/index.js.map +1 -1
  8. package/build/components/keyboard-shortcuts/index.js +1 -38
  9. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  10. package/build/components/layout/index.js +2 -3
  11. package/build/components/layout/index.js.map +1 -1
  12. package/build/components/layout/index.native.js +2 -5
  13. package/build/components/layout/index.native.js.map +1 -1
  14. package/build/components/text-editor/index.js +1 -1
  15. package/build/components/text-editor/index.js.map +1 -1
  16. package/build/editor.js +2 -16
  17. package/build/editor.js.map +1 -1
  18. package/build/editor.native.js +2 -3
  19. package/build/editor.native.js.map +1 -1
  20. package/build/hooks/commands/use-common-commands.js +2 -135
  21. package/build/hooks/commands/use-common-commands.js.map +1 -1
  22. package/build/index.js +0 -30
  23. package/build/index.js.map +1 -1
  24. package/build/index.native.js +0 -1
  25. package/build/index.native.js.map +1 -1
  26. package/build/store/actions.js +24 -77
  27. package/build/store/actions.js.map +1 -1
  28. package/build/store/selectors.js +0 -12
  29. package/build/store/selectors.js.map +1 -1
  30. package/build-module/components/header/index.js +1 -1
  31. package/build-module/components/header/index.js.map +1 -1
  32. package/build-module/components/header/more-menu/index.js +5 -1
  33. package/build-module/components/header/more-menu/index.js.map +1 -1
  34. package/build-module/components/header/writing-menu/index.js +2 -6
  35. package/build-module/components/header/writing-menu/index.js.map +1 -1
  36. package/build-module/components/keyboard-shortcuts/index.js +1 -38
  37. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  38. package/build-module/components/layout/index.js +3 -4
  39. package/build-module/components/layout/index.js.map +1 -1
  40. package/build-module/components/layout/index.native.js +2 -5
  41. package/build-module/components/layout/index.native.js.map +1 -1
  42. package/build-module/components/text-editor/index.js +1 -1
  43. package/build-module/components/text-editor/index.js.map +1 -1
  44. package/build-module/editor.js +3 -17
  45. package/build-module/editor.js.map +1 -1
  46. package/build-module/editor.native.js +3 -4
  47. package/build-module/editor.native.js.map +1 -1
  48. package/build-module/hooks/commands/use-common-commands.js +3 -136
  49. package/build-module/hooks/commands/use-common-commands.js.map +1 -1
  50. package/build-module/index.js +0 -30
  51. package/build-module/index.js.map +1 -1
  52. package/build-module/index.native.js +0 -1
  53. package/build-module/index.native.js.map +1 -1
  54. package/build-module/store/actions.js +23 -75
  55. package/build-module/store/actions.js.map +1 -1
  56. package/build-module/store/selectors.js +0 -12
  57. package/build-module/store/selectors.js.map +1 -1
  58. package/build-style/style-rtl.css +6 -6
  59. package/build-style/style.css +6 -6
  60. package/package.json +32 -32
  61. package/src/components/header/index.js +1 -1
  62. package/src/components/header/more-menu/index.js +4 -1
  63. package/src/components/header/writing-menu/index.js +2 -6
  64. package/src/components/keyboard-shortcuts/index.js +3 -50
  65. package/src/components/layout/index.js +3 -4
  66. package/src/components/layout/index.native.js +1 -3
  67. package/src/components/text-editor/index.js +1 -1
  68. package/src/editor.js +31 -53
  69. package/src/editor.native.js +3 -4
  70. package/src/hooks/commands/use-common-commands.js +17 -170
  71. package/src/index.js +0 -44
  72. package/src/index.native.js +0 -1
  73. package/src/store/actions.js +24 -126
  74. package/src/store/selectors.js +0 -18
  75. package/src/store/test/actions.js +0 -146
  76. package/src/style.scss +1 -2
  77. package/build/components/header/mode-switcher/index.js +0 -87
  78. package/build/components/header/mode-switcher/index.js.map +0 -1
  79. package/build-module/components/header/mode-switcher/index.js +0 -81
  80. package/build-module/components/header/mode-switcher/index.js.map +0 -1
  81. package/src/components/header/mode-switcher/index.js +0 -91
@@ -1,13 +1,9 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { __ } from '@wordpress/i18n';
5
4
  import apiFetch from '@wordpress/api-fetch';
6
5
  import { store as interfaceStore } from '@wordpress/interface';
7
6
  import { store as preferencesStore } from '@wordpress/preferences';
8
- import { speak } from '@wordpress/a11y';
9
- import { store as noticesStore } from '@wordpress/notices';
10
- import { store as blockEditorStore } from '@wordpress/block-editor';
11
7
  import { store as editorStore } from '@wordpress/editor';
12
8
  import deprecated from '@wordpress/deprecated';
13
9
  import { addFilter } from '@wordpress/hooks';
@@ -26,13 +22,7 @@ import { unlock } from '../lock-unlock';
26
22
  */
27
23
  export const openGeneralSidebar =
28
24
  ( name ) =>
29
- ( { dispatch, registry } ) => {
30
- const isDistractionFree = registry
31
- .select( preferencesStore )
32
- .get( 'core', 'distractionFree' );
33
- if ( isDistractionFree ) {
34
- dispatch.toggleDistractionFree();
35
- }
25
+ ( { registry } ) => {
36
26
  registry
37
27
  .dispatch( interfaceStore )
38
28
  .enableComplementaryArea( editPostStore.name, name );
@@ -190,30 +180,18 @@ export const toggleFeature =
190
180
  /**
191
181
  * Triggers an action used to switch editor mode.
192
182
  *
183
+ * @deprecated
184
+ *
193
185
  * @param {string} mode The editor mode.
194
186
  */
195
187
  export const switchEditorMode =
196
188
  ( mode ) =>
197
- ( { dispatch, registry } ) => {
198
- registry.dispatch( preferencesStore ).set( 'core', 'editorMode', mode );
199
-
200
- // Unselect blocks when we switch to the code editor.
201
- if ( mode !== 'visual' ) {
202
- registry.dispatch( blockEditorStore ).clearSelectedBlock();
203
- }
204
-
205
- if (
206
- mode === 'text' &&
207
- registry.select( preferencesStore ).get( 'core', 'distractionFree' )
208
- ) {
209
- dispatch.toggleDistractionFree();
210
- }
211
-
212
- const message =
213
- mode === 'visual'
214
- ? __( 'Visual editor selected' )
215
- : __( 'Code editor selected' );
216
- speak( message, 'assertive' );
189
+ ( { registry } ) => {
190
+ deprecated( "dispatch( 'core/edit-post' ).switchEditorMode", {
191
+ since: '6.6',
192
+ alternative: "dispatch( 'core/editor').switchEditorMode",
193
+ } );
194
+ registry.dispatch( editorStore ).switchEditorMode( mode );
217
195
  };
218
196
 
219
197
  /**
@@ -239,46 +217,15 @@ export const togglePinnedPluginItem =
239
217
  /**
240
218
  * Returns an action object used in signaling that a style should be auto-applied when a block is created.
241
219
  *
242
- * @param {string} blockName Name of the block.
243
- * @param {?string} blockStyle Name of the style that should be auto applied. If undefined, the "auto apply" setting of the block is removed.
220
+ * @deprecated
244
221
  */
245
- export const updatePreferredStyleVariations =
246
- ( blockName, blockStyle ) =>
247
- ( { registry } ) => {
248
- if ( ! blockName ) {
249
- return;
250
- }
251
-
252
- const existingVariations =
253
- registry
254
- .select( preferencesStore )
255
- .get( 'core/edit-post', 'preferredStyleVariations' ) ?? {};
256
-
257
- // When the blockStyle is omitted, remove the block's preferred variation.
258
- if ( ! blockStyle ) {
259
- const updatedVariations = {
260
- ...existingVariations,
261
- };
262
-
263
- delete updatedVariations[ blockName ];
264
-
265
- registry
266
- .dispatch( preferencesStore )
267
- .set(
268
- 'core/edit-post',
269
- 'preferredStyleVariations',
270
- updatedVariations
271
- );
272
- } else {
273
- // Else add the variation.
274
- registry
275
- .dispatch( preferencesStore )
276
- .set( 'core/edit-post', 'preferredStyleVariations', {
277
- ...existingVariations,
278
- [ blockName ]: blockStyle,
279
- } );
280
- }
281
- };
222
+ export function updatePreferredStyleVariations() {
223
+ deprecated( "dispatch( 'core/edit-post' ).updatePreferredStyleVariations", {
224
+ since: '6.6',
225
+ hint: 'Preferred Style Variations are not supported anymore.',
226
+ } );
227
+ return { type: 'NOTHING' };
228
+ }
282
229
 
283
230
  /**
284
231
  * Update the provided block types to be visible.
@@ -534,64 +481,15 @@ export const initializeMetaBoxes =
534
481
  * Action that toggles Distraction free mode.
535
482
  * Distraction free mode expects there are no sidebars, as due to the
536
483
  * z-index values set, you can't close sidebars.
484
+ *
485
+ * @deprecated
537
486
  */
538
487
  export const toggleDistractionFree =
539
488
  () =>
540
- ( { dispatch, registry } ) => {
541
- const isDistractionFree = registry
542
- .select( preferencesStore )
543
- .get( 'core', 'distractionFree' );
544
- if ( isDistractionFree ) {
545
- registry
546
- .dispatch( preferencesStore )
547
- .set( 'core', 'fixedToolbar', false );
548
- }
549
- if ( ! isDistractionFree ) {
550
- registry.batch( () => {
551
- registry
552
- .dispatch( preferencesStore )
553
- .set( 'core', 'fixedToolbar', true );
554
- registry.dispatch( editorStore ).setIsInserterOpened( false );
555
- registry.dispatch( editorStore ).setIsListViewOpened( false );
556
- dispatch.closeGeneralSidebar();
557
- } );
558
- }
559
- registry.batch( () => {
560
- registry
561
- .dispatch( preferencesStore )
562
- .set( 'core', 'distractionFree', ! isDistractionFree );
563
- registry
564
- .dispatch( noticesStore )
565
- .createInfoNotice(
566
- isDistractionFree
567
- ? __( 'Distraction free off.' )
568
- : __( 'Distraction free on.' ),
569
- {
570
- id: 'core/edit-post/distraction-free-mode/notice',
571
- type: 'snackbar',
572
- actions: [
573
- {
574
- label: __( 'Undo' ),
575
- onClick: () => {
576
- registry.batch( () => {
577
- registry
578
- .dispatch( preferencesStore )
579
- .set(
580
- 'core',
581
- 'fixedToolbar',
582
- isDistractionFree ? true : false
583
- );
584
- registry
585
- .dispatch( preferencesStore )
586
- .toggle(
587
- 'core',
588
- 'distractionFree'
589
- );
590
- } );
591
- },
592
- },
593
- ],
594
- }
595
- );
489
+ ( { registry } ) => {
490
+ deprecated( "dispatch( 'core/edit-post' ).toggleDistractionFree", {
491
+ since: '6.6',
492
+ alternative: "dispatch( 'core/editor').toggleDistractionFree",
596
493
  } );
494
+ registry.dispatch( editorStore ).toggleDistractionFree();
597
495
  };
@@ -161,23 +161,6 @@ export const getPreferences = createRegistrySelector( ( select ) => () => {
161
161
  alternative: `select( 'core/preferences' ).get`,
162
162
  } );
163
163
 
164
- // These preferences now exist in the preferences store.
165
- // Fetch them so that they can be merged into the post
166
- // editor preferences.
167
- const preferences = [ 'preferredStyleVariations' ].reduce(
168
- ( accumulatedPrefs, preferenceKey ) => {
169
- const value = select( preferencesStore ).get(
170
- 'core/edit-post',
171
- preferenceKey
172
- );
173
-
174
- return {
175
- ...accumulatedPrefs,
176
- [ preferenceKey ]: value,
177
- };
178
- },
179
- {}
180
- );
181
164
  const corePreferences = [ 'editorMode', 'hiddenBlockTypes' ].reduce(
182
165
  ( accumulatedPrefs, preferenceKey ) => {
183
166
  const value = select( preferencesStore ).get(
@@ -205,7 +188,6 @@ export const getPreferences = createRegistrySelector( ( select ) => () => {
205
188
  const panels = convertPanelsToOldFormat( inactivePanels, openPanels );
206
189
 
207
190
  return {
208
- ...preferences,
209
191
  ...corePreferences,
210
192
  panels,
211
193
  };
@@ -53,18 +53,6 @@ describe( 'actions', () => {
53
53
  ).toBeNull();
54
54
  } );
55
55
 
56
- it( 'openGeneralSidebar - should turn off distraction free mode when opening a general sidebar', () => {
57
- registry
58
- .dispatch( preferencesStore )
59
- .set( 'core', 'distractionFree', true );
60
- registry
61
- .dispatch( editPostStore )
62
- .openGeneralSidebar( 'edit-post/block' );
63
- expect(
64
- registry.select( preferencesStore ).get( 'core', 'distractionFree' )
65
- ).toBe( false );
66
- } );
67
-
68
56
  it( 'toggleFeature', () => {
69
57
  registry.dispatch( editPostStore ).toggleFeature( 'welcomeGuide' );
70
58
  expect(
@@ -81,52 +69,6 @@ describe( 'actions', () => {
81
69
  ).toBe( false );
82
70
  } );
83
71
 
84
- describe( 'switchEditorMode', () => {
85
- it( 'to visual', () => {
86
- // Switch to text first, since the default is visual.
87
- registry.dispatch( editPostStore ).switchEditorMode( 'text' );
88
- expect( registry.select( editPostStore ).getEditorMode() ).toEqual(
89
- 'text'
90
- );
91
- registry.dispatch( editPostStore ).switchEditorMode( 'visual' );
92
- expect( registry.select( editPostStore ).getEditorMode() ).toEqual(
93
- 'visual'
94
- );
95
- } );
96
-
97
- it( 'to text', () => {
98
- // It defaults to visual.
99
- expect( registry.select( editPostStore ).getEditorMode() ).toEqual(
100
- 'visual'
101
- );
102
- // Add a selected client id and make sure it's there.
103
- const clientId = 'clientId_1';
104
- registry.dispatch( blockEditorStore ).selectionChange( clientId );
105
- expect(
106
- registry.select( blockEditorStore ).getSelectedBlockClientId()
107
- ).toEqual( clientId );
108
-
109
- registry.dispatch( editPostStore ).switchEditorMode( 'text' );
110
- expect(
111
- registry.select( blockEditorStore ).getSelectedBlockClientId()
112
- ).toBeNull();
113
- expect( registry.select( editPostStore ).getEditorMode() ).toEqual(
114
- 'text'
115
- );
116
- } );
117
- it( 'should turn off distraction free mode when switching to code editor', () => {
118
- registry
119
- .dispatch( preferencesStore )
120
- .set( 'core', 'distractionFree', true );
121
- registry.dispatch( editPostStore ).switchEditorMode( 'text' );
122
- expect(
123
- registry
124
- .select( preferencesStore )
125
- .get( 'core', 'distractionFree' )
126
- ).toBe( false );
127
- } );
128
- } );
129
-
130
72
  it( 'togglePinnedPluginItem', () => {
131
73
  registry.dispatch( editPostStore ).togglePinnedPluginItem( 'rigatoni' );
132
74
  // Sidebars are pinned by default.
@@ -199,92 +141,4 @@ describe( 'actions', () => {
199
141
  ).toEqual( expectedB );
200
142
  } );
201
143
  } );
202
-
203
- describe( 'updatePreferredStyleVariations', () => {
204
- it( 'sets a preferred style variation for a block when a style name is passed', () => {
205
- registry
206
- .dispatch( 'core/edit-post' )
207
- .updatePreferredStyleVariations( 'core/paragraph', 'fancy' );
208
- registry
209
- .dispatch( 'core/edit-post' )
210
- .updatePreferredStyleVariations( 'core/quote', 'posh' );
211
-
212
- expect(
213
- registry
214
- .select( editPostStore )
215
- .getPreference( 'preferredStyleVariations' )
216
- ).toEqual( {
217
- 'core/paragraph': 'fancy',
218
- 'core/quote': 'posh',
219
- } );
220
-
221
- // Expect a deprecation message for `getPreference`.
222
- expect( console ).toHaveWarned();
223
- } );
224
-
225
- it( 'removes a preferred style variation for a block when a style name is omitted', () => {
226
- registry
227
- .dispatch( 'core/edit-post' )
228
- .updatePreferredStyleVariations( 'core/paragraph', 'fancy' );
229
- registry
230
- .dispatch( 'core/edit-post' )
231
- .updatePreferredStyleVariations( 'core/quote', 'posh' );
232
- expect(
233
- registry
234
- .select( editPostStore )
235
- .getPreference( 'preferredStyleVariations' )
236
- ).toEqual( {
237
- 'core/paragraph': 'fancy',
238
- 'core/quote': 'posh',
239
- } );
240
-
241
- registry
242
- .dispatch( 'core/edit-post' )
243
- .updatePreferredStyleVariations( 'core/paragraph' );
244
-
245
- expect(
246
- registry
247
- .select( editPostStore )
248
- .getPreference( 'preferredStyleVariations' )
249
- ).toEqual( {
250
- 'core/quote': 'posh',
251
- } );
252
- } );
253
- } );
254
-
255
- describe( 'toggleDistractionFree', () => {
256
- it( 'should properly update settings to prevent layout corruption when enabling distraction free mode', () => {
257
- // Enable everything that shouldn't be enabled in distraction free mode.
258
- registry
259
- .dispatch( preferencesStore )
260
- .set( 'core', 'fixedToolbar', true );
261
- registry.dispatch( editorStore ).setIsListViewOpened( true );
262
- registry
263
- .dispatch( editPostStore )
264
- .openGeneralSidebar( 'edit-post/block' );
265
- // Initial state is falsy.
266
- registry.dispatch( editPostStore ).toggleDistractionFree();
267
- expect(
268
- registry
269
- .select( preferencesStore )
270
- .get( 'core', 'fixedToolbar' )
271
- ).toBe( true );
272
- expect( registry.select( editorStore ).isListViewOpened() ).toBe(
273
- false
274
- );
275
- expect( registry.select( editorStore ).isInserterOpened() ).toBe(
276
- false
277
- );
278
- expect(
279
- registry
280
- .select( interfaceStore )
281
- .getActiveComplementaryArea( editPostStore.name )
282
- ).toBeNull();
283
- expect(
284
- registry
285
- .select( preferencesStore )
286
- .get( 'core', 'distractionFree' )
287
- ).toBe( true );
288
- } );
289
- } );
290
144
  } );
package/src/style.scss CHANGED
@@ -46,8 +46,7 @@ body.js.block-editor-page {
46
46
  .edit-post-header,
47
47
  .edit-post-text-editor,
48
48
  .edit-post-sidebar,
49
- .editor-post-publish-panel,
50
- .components-modal__frame {
49
+ .editor-post-publish-panel {
51
50
  @include reset;
52
51
  }
53
52
 
@@ -1,87 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _react = require("react");
8
- var _i18n = require("@wordpress/i18n");
9
- var _components = require("@wordpress/components");
10
- var _data = require("@wordpress/data");
11
- var _keyboardShortcuts = require("@wordpress/keyboard-shortcuts");
12
- var _editor = require("@wordpress/editor");
13
- var _store = require("../../../store");
14
- /**
15
- * WordPress dependencies
16
- */
17
-
18
- /**
19
- * Internal dependencies
20
- */
21
-
22
- /**
23
- * Set of available mode options.
24
- *
25
- * @type {Array}
26
- */
27
- const MODES = [{
28
- value: 'visual',
29
- label: (0, _i18n.__)('Visual editor')
30
- }, {
31
- value: 'text',
32
- label: (0, _i18n.__)('Code editor')
33
- }];
34
- function ModeSwitcher() {
35
- const {
36
- shortcut,
37
- isRichEditingEnabled,
38
- isCodeEditingEnabled,
39
- mode
40
- } = (0, _data.useSelect)(select => ({
41
- shortcut: select(_keyboardShortcuts.store).getShortcutRepresentation('core/edit-post/toggle-mode'),
42
- isRichEditingEnabled: select(_editor.store).getEditorSettings().richEditingEnabled,
43
- isCodeEditingEnabled: select(_editor.store).getEditorSettings().codeEditingEnabled,
44
- mode: select(_store.store).getEditorMode()
45
- }), []);
46
- const {
47
- switchEditorMode
48
- } = (0, _data.useDispatch)(_store.store);
49
- let selectedMode = mode;
50
- if (!isRichEditingEnabled && mode === 'visual') {
51
- selectedMode = 'text';
52
- }
53
- if (!isCodeEditingEnabled && mode === 'text') {
54
- selectedMode = 'visual';
55
- }
56
- const choices = MODES.map(choice => {
57
- if (!isCodeEditingEnabled && choice.value === 'text') {
58
- choice = {
59
- ...choice,
60
- disabled: true
61
- };
62
- }
63
- if (!isRichEditingEnabled && choice.value === 'visual') {
64
- choice = {
65
- ...choice,
66
- disabled: true,
67
- info: (0, _i18n.__)('You can enable the visual editor in your profile settings.')
68
- };
69
- }
70
- if (choice.value !== selectedMode && !choice.disabled) {
71
- return {
72
- ...choice,
73
- shortcut
74
- };
75
- }
76
- return choice;
77
- });
78
- return (0, _react.createElement)(_components.MenuGroup, {
79
- label: (0, _i18n.__)('Editor')
80
- }, (0, _react.createElement)(_components.MenuItemsChoice, {
81
- choices: choices,
82
- value: selectedMode,
83
- onSelect: switchEditorMode
84
- }));
85
- }
86
- var _default = exports.default = ModeSwitcher;
87
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_i18n","require","_components","_data","_keyboardShortcuts","_editor","_store","MODES","value","label","__","ModeSwitcher","shortcut","isRichEditingEnabled","isCodeEditingEnabled","mode","useSelect","select","keyboardShortcutsStore","getShortcutRepresentation","editorStore","getEditorSettings","richEditingEnabled","codeEditingEnabled","editPostStore","getEditorMode","switchEditorMode","useDispatch","selectedMode","choices","map","choice","disabled","info","_react","createElement","MenuGroup","MenuItemsChoice","onSelect","_default","exports","default"],"sources":["@wordpress/edit-post/src/components/header/mode-switcher/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuItemsChoice, MenuGroup } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editPostStore } from '../../../store';\n\n/**\n * Set of available mode options.\n *\n * @type {Array}\n */\nconst MODES = [\n\t{\n\t\tvalue: 'visual',\n\t\tlabel: __( 'Visual editor' ),\n\t},\n\t{\n\t\tvalue: 'text',\n\t\tlabel: __( 'Code editor' ),\n\t},\n];\n\nfunction ModeSwitcher() {\n\tconst { shortcut, isRichEditingEnabled, isCodeEditingEnabled, mode } =\n\t\tuseSelect(\n\t\t\t( select ) => ( {\n\t\t\t\tshortcut: select(\n\t\t\t\t\tkeyboardShortcutsStore\n\t\t\t\t).getShortcutRepresentation( 'core/edit-post/toggle-mode' ),\n\t\t\t\tisRichEditingEnabled:\n\t\t\t\t\tselect( editorStore ).getEditorSettings()\n\t\t\t\t\t\t.richEditingEnabled,\n\t\t\t\tisCodeEditingEnabled:\n\t\t\t\t\tselect( editorStore ).getEditorSettings()\n\t\t\t\t\t\t.codeEditingEnabled,\n\t\t\t\tmode: select( editPostStore ).getEditorMode(),\n\t\t\t} ),\n\t\t\t[]\n\t\t);\n\tconst { switchEditorMode } = useDispatch( editPostStore );\n\n\tlet selectedMode = mode;\n\tif ( ! isRichEditingEnabled && mode === 'visual' ) {\n\t\tselectedMode = 'text';\n\t}\n\tif ( ! isCodeEditingEnabled && mode === 'text' ) {\n\t\tselectedMode = 'visual';\n\t}\n\n\tconst choices = MODES.map( ( choice ) => {\n\t\tif ( ! isCodeEditingEnabled && choice.value === 'text' ) {\n\t\t\tchoice = {\n\t\t\t\t...choice,\n\t\t\t\tdisabled: true,\n\t\t\t};\n\t\t}\n\t\tif ( ! isRichEditingEnabled && choice.value === 'visual' ) {\n\t\t\tchoice = {\n\t\t\t\t...choice,\n\t\t\t\tdisabled: true,\n\t\t\t\tinfo: __(\n\t\t\t\t\t'You can enable the visual editor in your profile settings.'\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\t\tif ( choice.value !== selectedMode && ! choice.disabled ) {\n\t\t\treturn { ...choice, shortcut };\n\t\t}\n\t\treturn choice;\n\t} );\n\n\treturn (\n\t\t<MenuGroup label={ __( 'Editor' ) }>\n\t\t\t<MenuItemsChoice\n\t\t\t\tchoices={ choices }\n\t\t\t\tvalue={ selectedMode }\n\t\t\t\tonSelect={ switchEditorMode }\n\t\t\t/>\n\t\t</MenuGroup>\n\t);\n}\n\nexport default ModeSwitcher;\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAKA,IAAAK,MAAA,GAAAL,OAAA;AAZA;AACA;AACA;;AAOA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA,MAAMM,KAAK,GAAG,CACb;EACCC,KAAK,EAAE,QAAQ;EACfC,KAAK,EAAE,IAAAC,QAAE,EAAE,eAAgB;AAC5B,CAAC,EACD;EACCF,KAAK,EAAE,MAAM;EACbC,KAAK,EAAE,IAAAC,QAAE,EAAE,aAAc;AAC1B,CAAC,CACD;AAED,SAASC,YAAYA,CAAA,EAAG;EACvB,MAAM;IAAEC,QAAQ;IAAEC,oBAAoB;IAAEC,oBAAoB;IAAEC;EAAK,CAAC,GACnE,IAAAC,eAAS,EACNC,MAAM,KAAQ;IACfL,QAAQ,EAAEK,MAAM,CACfC,wBACD,CAAC,CAACC,yBAAyB,CAAE,4BAA6B,CAAC;IAC3DN,oBAAoB,EACnBI,MAAM,CAAEG,aAAY,CAAC,CAACC,iBAAiB,CAAC,CAAC,CACvCC,kBAAkB;IACrBR,oBAAoB,EACnBG,MAAM,CAAEG,aAAY,CAAC,CAACC,iBAAiB,CAAC,CAAC,CACvCE,kBAAkB;IACrBR,IAAI,EAAEE,MAAM,CAAEO,YAAc,CAAC,CAACC,aAAa,CAAC;EAC7C,CAAC,CAAE,EACH,EACD,CAAC;EACF,MAAM;IAAEC;EAAiB,CAAC,GAAG,IAAAC,iBAAW,EAAEH,YAAc,CAAC;EAEzD,IAAII,YAAY,GAAGb,IAAI;EACvB,IAAK,CAAEF,oBAAoB,IAAIE,IAAI,KAAK,QAAQ,EAAG;IAClDa,YAAY,GAAG,MAAM;EACtB;EACA,IAAK,CAAEd,oBAAoB,IAAIC,IAAI,KAAK,MAAM,EAAG;IAChDa,YAAY,GAAG,QAAQ;EACxB;EAEA,MAAMC,OAAO,GAAGtB,KAAK,CAACuB,GAAG,CAAIC,MAAM,IAAM;IACxC,IAAK,CAAEjB,oBAAoB,IAAIiB,MAAM,CAACvB,KAAK,KAAK,MAAM,EAAG;MACxDuB,MAAM,GAAG;QACR,GAAGA,MAAM;QACTC,QAAQ,EAAE;MACX,CAAC;IACF;IACA,IAAK,CAAEnB,oBAAoB,IAAIkB,MAAM,CAACvB,KAAK,KAAK,QAAQ,EAAG;MAC1DuB,MAAM,GAAG;QACR,GAAGA,MAAM;QACTC,QAAQ,EAAE,IAAI;QACdC,IAAI,EAAE,IAAAvB,QAAE,EACP,4DACD;MACD,CAAC;IACF;IACA,IAAKqB,MAAM,CAACvB,KAAK,KAAKoB,YAAY,IAAI,CAAEG,MAAM,CAACC,QAAQ,EAAG;MACzD,OAAO;QAAE,GAAGD,MAAM;QAAEnB;MAAS,CAAC;IAC/B;IACA,OAAOmB,MAAM;EACd,CAAE,CAAC;EAEH,OACC,IAAAG,MAAA,CAAAC,aAAA,EAACjC,WAAA,CAAAkC,SAAS;IAAC3B,KAAK,EAAG,IAAAC,QAAE,EAAE,QAAS;EAAG,GAClC,IAAAwB,MAAA,CAAAC,aAAA,EAACjC,WAAA,CAAAmC,eAAe;IACfR,OAAO,EAAGA,OAAS;IACnBrB,KAAK,EAAGoB,YAAc;IACtBU,QAAQ,EAAGZ;EAAkB,CAC7B,CACS,CAAC;AAEd;AAAC,IAAAa,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc9B,YAAY"}
@@ -1,81 +0,0 @@
1
- import { createElement } from "react";
2
- /**
3
- * WordPress dependencies
4
- */
5
- import { __ } from '@wordpress/i18n';
6
- import { MenuItemsChoice, MenuGroup } from '@wordpress/components';
7
- import { useSelect, useDispatch } from '@wordpress/data';
8
- import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
9
- import { store as editorStore } from '@wordpress/editor';
10
-
11
- /**
12
- * Internal dependencies
13
- */
14
- import { store as editPostStore } from '../../../store';
15
-
16
- /**
17
- * Set of available mode options.
18
- *
19
- * @type {Array}
20
- */
21
- const MODES = [{
22
- value: 'visual',
23
- label: __('Visual editor')
24
- }, {
25
- value: 'text',
26
- label: __('Code editor')
27
- }];
28
- function ModeSwitcher() {
29
- const {
30
- shortcut,
31
- isRichEditingEnabled,
32
- isCodeEditingEnabled,
33
- mode
34
- } = useSelect(select => ({
35
- shortcut: select(keyboardShortcutsStore).getShortcutRepresentation('core/edit-post/toggle-mode'),
36
- isRichEditingEnabled: select(editorStore).getEditorSettings().richEditingEnabled,
37
- isCodeEditingEnabled: select(editorStore).getEditorSettings().codeEditingEnabled,
38
- mode: select(editPostStore).getEditorMode()
39
- }), []);
40
- const {
41
- switchEditorMode
42
- } = useDispatch(editPostStore);
43
- let selectedMode = mode;
44
- if (!isRichEditingEnabled && mode === 'visual') {
45
- selectedMode = 'text';
46
- }
47
- if (!isCodeEditingEnabled && mode === 'text') {
48
- selectedMode = 'visual';
49
- }
50
- const choices = MODES.map(choice => {
51
- if (!isCodeEditingEnabled && choice.value === 'text') {
52
- choice = {
53
- ...choice,
54
- disabled: true
55
- };
56
- }
57
- if (!isRichEditingEnabled && choice.value === 'visual') {
58
- choice = {
59
- ...choice,
60
- disabled: true,
61
- info: __('You can enable the visual editor in your profile settings.')
62
- };
63
- }
64
- if (choice.value !== selectedMode && !choice.disabled) {
65
- return {
66
- ...choice,
67
- shortcut
68
- };
69
- }
70
- return choice;
71
- });
72
- return createElement(MenuGroup, {
73
- label: __('Editor')
74
- }, createElement(MenuItemsChoice, {
75
- choices: choices,
76
- value: selectedMode,
77
- onSelect: switchEditorMode
78
- }));
79
- }
80
- export default ModeSwitcher;
81
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["__","MenuItemsChoice","MenuGroup","useSelect","useDispatch","store","keyboardShortcutsStore","editorStore","editPostStore","MODES","value","label","ModeSwitcher","shortcut","isRichEditingEnabled","isCodeEditingEnabled","mode","select","getShortcutRepresentation","getEditorSettings","richEditingEnabled","codeEditingEnabled","getEditorMode","switchEditorMode","selectedMode","choices","map","choice","disabled","info","createElement","onSelect"],"sources":["@wordpress/edit-post/src/components/header/mode-switcher/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuItemsChoice, MenuGroup } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editPostStore } from '../../../store';\n\n/**\n * Set of available mode options.\n *\n * @type {Array}\n */\nconst MODES = [\n\t{\n\t\tvalue: 'visual',\n\t\tlabel: __( 'Visual editor' ),\n\t},\n\t{\n\t\tvalue: 'text',\n\t\tlabel: __( 'Code editor' ),\n\t},\n];\n\nfunction ModeSwitcher() {\n\tconst { shortcut, isRichEditingEnabled, isCodeEditingEnabled, mode } =\n\t\tuseSelect(\n\t\t\t( select ) => ( {\n\t\t\t\tshortcut: select(\n\t\t\t\t\tkeyboardShortcutsStore\n\t\t\t\t).getShortcutRepresentation( 'core/edit-post/toggle-mode' ),\n\t\t\t\tisRichEditingEnabled:\n\t\t\t\t\tselect( editorStore ).getEditorSettings()\n\t\t\t\t\t\t.richEditingEnabled,\n\t\t\t\tisCodeEditingEnabled:\n\t\t\t\t\tselect( editorStore ).getEditorSettings()\n\t\t\t\t\t\t.codeEditingEnabled,\n\t\t\t\tmode: select( editPostStore ).getEditorMode(),\n\t\t\t} ),\n\t\t\t[]\n\t\t);\n\tconst { switchEditorMode } = useDispatch( editPostStore );\n\n\tlet selectedMode = mode;\n\tif ( ! isRichEditingEnabled && mode === 'visual' ) {\n\t\tselectedMode = 'text';\n\t}\n\tif ( ! isCodeEditingEnabled && mode === 'text' ) {\n\t\tselectedMode = 'visual';\n\t}\n\n\tconst choices = MODES.map( ( choice ) => {\n\t\tif ( ! isCodeEditingEnabled && choice.value === 'text' ) {\n\t\t\tchoice = {\n\t\t\t\t...choice,\n\t\t\t\tdisabled: true,\n\t\t\t};\n\t\t}\n\t\tif ( ! isRichEditingEnabled && choice.value === 'visual' ) {\n\t\t\tchoice = {\n\t\t\t\t...choice,\n\t\t\t\tdisabled: true,\n\t\t\t\tinfo: __(\n\t\t\t\t\t'You can enable the visual editor in your profile settings.'\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\t\tif ( choice.value !== selectedMode && ! choice.disabled ) {\n\t\t\treturn { ...choice, shortcut };\n\t\t}\n\t\treturn choice;\n\t} );\n\n\treturn (\n\t\t<MenuGroup label={ __( 'Editor' ) }>\n\t\t\t<MenuItemsChoice\n\t\t\t\tchoices={ choices }\n\t\t\t\tvalue={ selectedMode }\n\t\t\t\tonSelect={ switchEditorMode }\n\t\t\t/>\n\t\t</MenuGroup>\n\t);\n}\n\nexport default ModeSwitcher;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,eAAe,EAAEC,SAAS,QAAQ,uBAAuB;AAClE,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,sBAAsB,QAAQ,+BAA+B;AAC/E,SAASD,KAAK,IAAIE,WAAW,QAAQ,mBAAmB;;AAExD;AACA;AACA;AACA,SAASF,KAAK,IAAIG,aAAa,QAAQ,gBAAgB;;AAEvD;AACA;AACA;AACA;AACA;AACA,MAAMC,KAAK,GAAG,CACb;EACCC,KAAK,EAAE,QAAQ;EACfC,KAAK,EAAEX,EAAE,CAAE,eAAgB;AAC5B,CAAC,EACD;EACCU,KAAK,EAAE,MAAM;EACbC,KAAK,EAAEX,EAAE,CAAE,aAAc;AAC1B,CAAC,CACD;AAED,SAASY,YAAYA,CAAA,EAAG;EACvB,MAAM;IAAEC,QAAQ;IAAEC,oBAAoB;IAAEC,oBAAoB;IAAEC;EAAK,CAAC,GACnEb,SAAS,CACNc,MAAM,KAAQ;IACfJ,QAAQ,EAAEI,MAAM,CACfX,sBACD,CAAC,CAACY,yBAAyB,CAAE,4BAA6B,CAAC;IAC3DJ,oBAAoB,EACnBG,MAAM,CAAEV,WAAY,CAAC,CAACY,iBAAiB,CAAC,CAAC,CACvCC,kBAAkB;IACrBL,oBAAoB,EACnBE,MAAM,CAAEV,WAAY,CAAC,CAACY,iBAAiB,CAAC,CAAC,CACvCE,kBAAkB;IACrBL,IAAI,EAAEC,MAAM,CAAET,aAAc,CAAC,CAACc,aAAa,CAAC;EAC7C,CAAC,CAAE,EACH,EACD,CAAC;EACF,MAAM;IAAEC;EAAiB,CAAC,GAAGnB,WAAW,CAAEI,aAAc,CAAC;EAEzD,IAAIgB,YAAY,GAAGR,IAAI;EACvB,IAAK,CAAEF,oBAAoB,IAAIE,IAAI,KAAK,QAAQ,EAAG;IAClDQ,YAAY,GAAG,MAAM;EACtB;EACA,IAAK,CAAET,oBAAoB,IAAIC,IAAI,KAAK,MAAM,EAAG;IAChDQ,YAAY,GAAG,QAAQ;EACxB;EAEA,MAAMC,OAAO,GAAGhB,KAAK,CAACiB,GAAG,CAAIC,MAAM,IAAM;IACxC,IAAK,CAAEZ,oBAAoB,IAAIY,MAAM,CAACjB,KAAK,KAAK,MAAM,EAAG;MACxDiB,MAAM,GAAG;QACR,GAAGA,MAAM;QACTC,QAAQ,EAAE;MACX,CAAC;IACF;IACA,IAAK,CAAEd,oBAAoB,IAAIa,MAAM,CAACjB,KAAK,KAAK,QAAQ,EAAG;MAC1DiB,MAAM,GAAG;QACR,GAAGA,MAAM;QACTC,QAAQ,EAAE,IAAI;QACdC,IAAI,EAAE7B,EAAE,CACP,4DACD;MACD,CAAC;IACF;IACA,IAAK2B,MAAM,CAACjB,KAAK,KAAKc,YAAY,IAAI,CAAEG,MAAM,CAACC,QAAQ,EAAG;MACzD,OAAO;QAAE,GAAGD,MAAM;QAAEd;MAAS,CAAC;IAC/B;IACA,OAAOc,MAAM;EACd,CAAE,CAAC;EAEH,OACCG,aAAA,CAAC5B,SAAS;IAACS,KAAK,EAAGX,EAAE,CAAE,QAAS;EAAG,GAClC8B,aAAA,CAAC7B,eAAe;IACfwB,OAAO,EAAGA,OAAS;IACnBf,KAAK,EAAGc,YAAc;IACtBO,QAAQ,EAAGR;EAAkB,CAC7B,CACS,CAAC;AAEd;AAEA,eAAeX,YAAY"}
@@ -1,91 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { __ } from '@wordpress/i18n';
5
- import { MenuItemsChoice, MenuGroup } from '@wordpress/components';
6
- import { useSelect, useDispatch } from '@wordpress/data';
7
- import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
8
- import { store as editorStore } from '@wordpress/editor';
9
-
10
- /**
11
- * Internal dependencies
12
- */
13
- import { store as editPostStore } from '../../../store';
14
-
15
- /**
16
- * Set of available mode options.
17
- *
18
- * @type {Array}
19
- */
20
- const MODES = [
21
- {
22
- value: 'visual',
23
- label: __( 'Visual editor' ),
24
- },
25
- {
26
- value: 'text',
27
- label: __( 'Code editor' ),
28
- },
29
- ];
30
-
31
- function ModeSwitcher() {
32
- const { shortcut, isRichEditingEnabled, isCodeEditingEnabled, mode } =
33
- useSelect(
34
- ( select ) => ( {
35
- shortcut: select(
36
- keyboardShortcutsStore
37
- ).getShortcutRepresentation( 'core/edit-post/toggle-mode' ),
38
- isRichEditingEnabled:
39
- select( editorStore ).getEditorSettings()
40
- .richEditingEnabled,
41
- isCodeEditingEnabled:
42
- select( editorStore ).getEditorSettings()
43
- .codeEditingEnabled,
44
- mode: select( editPostStore ).getEditorMode(),
45
- } ),
46
- []
47
- );
48
- const { switchEditorMode } = useDispatch( editPostStore );
49
-
50
- let selectedMode = mode;
51
- if ( ! isRichEditingEnabled && mode === 'visual' ) {
52
- selectedMode = 'text';
53
- }
54
- if ( ! isCodeEditingEnabled && mode === 'text' ) {
55
- selectedMode = 'visual';
56
- }
57
-
58
- const choices = MODES.map( ( choice ) => {
59
- if ( ! isCodeEditingEnabled && choice.value === 'text' ) {
60
- choice = {
61
- ...choice,
62
- disabled: true,
63
- };
64
- }
65
- if ( ! isRichEditingEnabled && choice.value === 'visual' ) {
66
- choice = {
67
- ...choice,
68
- disabled: true,
69
- info: __(
70
- 'You can enable the visual editor in your profile settings.'
71
- ),
72
- };
73
- }
74
- if ( choice.value !== selectedMode && ! choice.disabled ) {
75
- return { ...choice, shortcut };
76
- }
77
- return choice;
78
- } );
79
-
80
- return (
81
- <MenuGroup label={ __( 'Editor' ) }>
82
- <MenuItemsChoice
83
- choices={ choices }
84
- value={ selectedMode }
85
- onSelect={ switchEditorMode }
86
- />
87
- </MenuGroup>
88
- );
89
- }
90
-
91
- export default ModeSwitcher;