@wordpress/edit-post 7.24.1 → 7.26.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 (267) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/LICENSE.md +1 -1
  3. package/build/components/browser-url/index.js +3 -2
  4. package/build/components/browser-url/index.js.map +1 -1
  5. package/build/components/header/index.js +35 -33
  6. package/build/components/header/index.js.map +1 -1
  7. package/build/components/header/mode-switcher/index.js +1 -1
  8. package/build/components/header/mode-switcher/index.js.map +1 -1
  9. package/build/components/header/more-menu/index.js +2 -1
  10. package/build/components/header/more-menu/index.js.map +1 -1
  11. package/build/components/header/writing-menu/index.js +22 -18
  12. package/build/components/header/writing-menu/index.js.map +1 -1
  13. package/build/components/keyboard-shortcuts/index.js +1 -20
  14. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  15. package/build/components/layout/index.js +45 -38
  16. package/build/components/layout/index.js.map +1 -1
  17. package/build/components/layout/index.native.js +3 -1
  18. package/build/components/layout/index.native.js.map +1 -1
  19. package/build/components/meta-boxes/meta-box-visibility.js +2 -6
  20. package/build/components/meta-boxes/meta-box-visibility.js.map +1 -1
  21. package/build/components/preferences-modal/index.js +87 -54
  22. package/build/components/preferences-modal/index.js.map +1 -1
  23. package/build/components/preferences-modal/options/enable-feature.js +23 -23
  24. package/build/components/preferences-modal/options/enable-feature.js.map +1 -1
  25. package/build/components/preferences-modal/options/enable-panel.js +3 -6
  26. package/build/components/preferences-modal/options/enable-panel.js.map +1 -1
  27. package/build/components/sidebar/plugin-document-setting-panel/index.js +3 -3
  28. package/build/components/sidebar/plugin-document-setting-panel/index.js.map +1 -1
  29. package/build/components/sidebar/plugin-sidebar/index.js +2 -10
  30. package/build/components/sidebar/plugin-sidebar/index.js.map +1 -1
  31. package/build/components/sidebar/post-status/index.js +3 -5
  32. package/build/components/sidebar/post-status/index.js.map +1 -1
  33. package/build/components/sidebar/settings-header/index.js +17 -43
  34. package/build/components/sidebar/settings-header/index.js.map +1 -1
  35. package/build/components/sidebar/settings-sidebar/index.js +80 -26
  36. package/build/components/sidebar/settings-sidebar/index.js.map +1 -1
  37. package/build/components/start-page-options/index.js +3 -3
  38. package/build/components/start-page-options/index.js.map +1 -1
  39. package/build/components/visual-editor/index.js +20 -257
  40. package/build/components/visual-editor/index.js.map +1 -1
  41. package/build/components/welcome-guide/index.js +6 -3
  42. package/build/components/welcome-guide/index.js.map +1 -1
  43. package/build/editor.js +20 -30
  44. package/build/editor.js.map +1 -1
  45. package/build/editor.native.js +3 -11
  46. package/build/editor.native.js.map +1 -1
  47. package/build/hooks/commands/use-common-commands.js +16 -12
  48. package/build/hooks/commands/use-common-commands.js.map +1 -1
  49. package/build/hooks/use-post-history.js +79 -0
  50. package/build/hooks/use-post-history.js.map +1 -0
  51. package/build/index.js +24 -20
  52. package/build/index.js.map +1 -1
  53. package/build/index.native.js +7 -1
  54. package/build/index.native.js.map +1 -1
  55. package/build/plugins/welcome-guide-menu-item/index.js +2 -6
  56. package/build/plugins/welcome-guide-menu-item/index.js.map +1 -1
  57. package/build/store/actions.js +94 -112
  58. package/build/store/actions.js.map +1 -1
  59. package/build/store/reducer.js +1 -95
  60. package/build/store/reducer.js.map +1 -1
  61. package/build/store/selectors.js +86 -48
  62. package/build/store/selectors.js.map +1 -1
  63. package/build-module/components/browser-url/index.js +3 -2
  64. package/build-module/components/browser-url/index.js.map +1 -1
  65. package/build-module/components/header/index.js +37 -35
  66. package/build-module/components/header/index.js.map +1 -1
  67. package/build-module/components/header/mode-switcher/index.js +1 -1
  68. package/build-module/components/header/mode-switcher/index.js.map +1 -1
  69. package/build-module/components/header/more-menu/index.js +2 -1
  70. package/build-module/components/header/more-menu/index.js.map +1 -1
  71. package/build-module/components/header/writing-menu/index.js +23 -19
  72. package/build-module/components/header/writing-menu/index.js.map +1 -1
  73. package/build-module/components/keyboard-shortcuts/index.js +1 -20
  74. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  75. package/build-module/components/layout/index.js +46 -38
  76. package/build-module/components/layout/index.js.map +1 -1
  77. package/build-module/components/layout/index.native.js +4 -2
  78. package/build-module/components/layout/index.native.js.map +1 -1
  79. package/build-module/components/meta-boxes/meta-box-visibility.js +2 -6
  80. package/build-module/components/meta-boxes/meta-box-visibility.js.map +1 -1
  81. package/build-module/components/preferences-modal/index.js +87 -54
  82. package/build-module/components/preferences-modal/index.js.map +1 -1
  83. package/build-module/components/preferences-modal/options/enable-feature.js +22 -23
  84. package/build-module/components/preferences-modal/options/enable-feature.js.map +1 -1
  85. package/build-module/components/preferences-modal/options/enable-panel.js +3 -7
  86. package/build-module/components/preferences-modal/options/enable-panel.js.map +1 -1
  87. package/build-module/components/sidebar/plugin-document-setting-panel/index.js +3 -3
  88. package/build-module/components/sidebar/plugin-document-setting-panel/index.js.map +1 -1
  89. package/build-module/components/sidebar/plugin-sidebar/index.js +2 -10
  90. package/build-module/components/sidebar/plugin-sidebar/index.js.map +1 -1
  91. package/build-module/components/sidebar/post-status/index.js +4 -6
  92. package/build-module/components/sidebar/post-status/index.js.map +1 -1
  93. package/build-module/components/sidebar/settings-header/index.js +20 -46
  94. package/build-module/components/sidebar/settings-header/index.js.map +1 -1
  95. package/build-module/components/sidebar/settings-sidebar/index.js +80 -27
  96. package/build-module/components/sidebar/settings-sidebar/index.js.map +1 -1
  97. package/build-module/components/start-page-options/index.js +3 -3
  98. package/build-module/components/start-page-options/index.js.map +1 -1
  99. package/build-module/components/visual-editor/index.js +24 -261
  100. package/build-module/components/visual-editor/index.js.map +1 -1
  101. package/build-module/components/welcome-guide/index.js +6 -3
  102. package/build-module/components/welcome-guide/index.js.map +1 -1
  103. package/build-module/editor.js +20 -30
  104. package/build-module/editor.js.map +1 -1
  105. package/build-module/editor.native.js +3 -11
  106. package/build-module/editor.native.js.map +1 -1
  107. package/build-module/hooks/commands/use-common-commands.js +16 -12
  108. package/build-module/hooks/commands/use-common-commands.js.map +1 -1
  109. package/build-module/hooks/use-post-history.js +73 -0
  110. package/build-module/hooks/use-post-history.js.map +1 -0
  111. package/build-module/index.js +19 -12
  112. package/build-module/index.js.map +1 -1
  113. package/build-module/index.native.js +7 -1
  114. package/build-module/index.native.js.map +1 -1
  115. package/build-module/plugins/welcome-guide-menu-item/index.js +2 -6
  116. package/build-module/plugins/welcome-guide-menu-item/index.js.map +1 -1
  117. package/build-module/store/actions.js +86 -105
  118. package/build-module/store/actions.js.map +1 -1
  119. package/build-module/store/reducer.js +1 -92
  120. package/build-module/store/reducer.js.map +1 -1
  121. package/build-module/store/selectors.js +76 -38
  122. package/build-module/store/selectors.js.map +1 -1
  123. package/build-style/style-rtl.css +65 -473
  124. package/build-style/style.css +65 -473
  125. package/package.json +32 -32
  126. package/src/components/browser-url/index.js +4 -2
  127. package/src/components/header/index.js +45 -46
  128. package/src/components/header/mode-switcher/index.js +2 -1
  129. package/src/components/header/more-menu/index.js +1 -0
  130. package/src/components/header/style.scss +63 -37
  131. package/src/components/header/writing-menu/index.js +24 -24
  132. package/src/components/keyboard-shortcut-help-modal/test/index.js +0 -15
  133. package/src/components/keyboard-shortcuts/index.js +1 -23
  134. package/src/components/layout/index.js +31 -39
  135. package/src/components/layout/index.native.js +9 -1
  136. package/src/components/meta-boxes/meta-box-visibility.js +2 -8
  137. package/src/components/preferences-modal/index.js +128 -97
  138. package/src/components/preferences-modal/options/enable-feature.js +26 -21
  139. package/src/components/preferences-modal/options/enable-panel.js +3 -7
  140. package/src/components/preferences-modal/test/__snapshots__/meta-boxes-section.js.snap +187 -175
  141. package/src/components/preferences-modal/test/index.js +1 -52
  142. package/src/components/sidebar/plugin-document-setting-panel/index.js +3 -3
  143. package/src/components/sidebar/plugin-sidebar/index.js +1 -9
  144. package/src/components/sidebar/post-status/index.js +5 -5
  145. package/src/components/sidebar/settings-header/index.js +19 -71
  146. package/src/components/sidebar/settings-sidebar/index.js +125 -60
  147. package/src/components/sidebar/style.scss +4 -12
  148. package/src/components/start-page-options/index.js +3 -3
  149. package/src/components/text-editor/style.scss +0 -6
  150. package/src/components/visual-editor/index.js +26 -359
  151. package/src/components/visual-editor/style.scss +0 -15
  152. package/src/components/welcome-guide/index.js +4 -2
  153. package/src/editor.js +36 -35
  154. package/src/editor.native.js +2 -23
  155. package/src/hooks/commands/use-common-commands.js +14 -16
  156. package/src/hooks/use-post-history.js +73 -0
  157. package/src/index.js +24 -13
  158. package/src/index.native.js +8 -1
  159. package/src/plugins/welcome-guide-menu-item/index.js +3 -6
  160. package/src/store/actions.js +80 -131
  161. package/src/store/reducer.js +0 -93
  162. package/src/store/selectors.js +97 -55
  163. package/src/store/test/actions.js +10 -131
  164. package/src/store/test/reducer.js +1 -108
  165. package/src/store/test/selectors.js +0 -50
  166. package/src/style.scss +1 -8
  167. package/src/test/__snapshots__/editor.native.js.snap +21 -0
  168. package/src/test/editor.native.js +107 -56
  169. package/build/components/device-preview/index.js +0 -72
  170. package/build/components/device-preview/index.js.map +0 -1
  171. package/build/components/header/document-actions/index.js +0 -82
  172. package/build/components/header/document-actions/index.js.map +0 -1
  173. package/build/components/header/header-toolbar/index.js +0 -156
  174. package/build/components/header/header-toolbar/index.js.map +0 -1
  175. package/build/components/secondary-sidebar/inserter-sidebar.js +0 -73
  176. package/build/components/secondary-sidebar/inserter-sidebar.js.map +0 -1
  177. package/build/components/secondary-sidebar/list-view-outline.js +0 -112
  178. package/build/components/secondary-sidebar/list-view-outline.js.map +0 -1
  179. package/build/components/secondary-sidebar/list-view-sidebar.js +0 -148
  180. package/build/components/secondary-sidebar/list-view-sidebar.js.map +0 -1
  181. package/build/components/sidebar/discussion-panel/index.js +0 -59
  182. package/build/components/sidebar/discussion-panel/index.js.map +0 -1
  183. package/build/components/sidebar/featured-image/index.js +0 -70
  184. package/build/components/sidebar/featured-image/index.js.map +0 -1
  185. package/build/components/sidebar/last-revision/index.js +0 -21
  186. package/build/components/sidebar/last-revision/index.js.map +0 -1
  187. package/build/components/sidebar/page-attributes/index.js +0 -65
  188. package/build/components/sidebar/page-attributes/index.js.map +0 -1
  189. package/build/components/sidebar/plugin-post-excerpt/index.js +0 -72
  190. package/build/components/sidebar/plugin-post-excerpt/index.js.map +0 -1
  191. package/build/components/sidebar/post-excerpt/index.js +0 -54
  192. package/build/components/sidebar/post-excerpt/index.js.map +0 -1
  193. package/build/components/sidebar/post-taxonomies/index.js +0 -30
  194. package/build/components/sidebar/post-taxonomies/index.js.map +0 -1
  195. package/build/components/sidebar/post-taxonomies/taxonomy-panel.js +0 -56
  196. package/build/components/sidebar/post-taxonomies/taxonomy-panel.js.map +0 -1
  197. package/build/components/sidebar/post-template/create-modal.js +0 -99
  198. package/build/components/sidebar/post-template/create-modal.js.map +0 -1
  199. package/build/components/sidebar/post-template/form.js +0 -110
  200. package/build/components/sidebar/post-template/form.js.map +0 -1
  201. package/build/components/sidebar/post-template/index.js +0 -106
  202. package/build/components/sidebar/post-template/index.js.map +0 -1
  203. package/build/components/view-link/index.js +0 -53
  204. package/build/components/view-link/index.js.map +0 -1
  205. package/build-module/components/device-preview/index.js +0 -65
  206. package/build-module/components/device-preview/index.js.map +0 -1
  207. package/build-module/components/header/document-actions/index.js +0 -74
  208. package/build-module/components/header/document-actions/index.js.map +0 -1
  209. package/build-module/components/header/header-toolbar/index.js +0 -148
  210. package/build-module/components/header/header-toolbar/index.js.map +0 -1
  211. package/build-module/components/secondary-sidebar/inserter-sidebar.js +0 -66
  212. package/build-module/components/secondary-sidebar/inserter-sidebar.js.map +0 -1
  213. package/build-module/components/secondary-sidebar/list-view-outline.js +0 -105
  214. package/build-module/components/secondary-sidebar/list-view-outline.js.map +0 -1
  215. package/build-module/components/secondary-sidebar/list-view-sidebar.js +0 -140
  216. package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +0 -1
  217. package/build-module/components/sidebar/discussion-panel/index.js +0 -52
  218. package/build-module/components/sidebar/discussion-panel/index.js.map +0 -1
  219. package/build-module/components/sidebar/featured-image/index.js +0 -63
  220. package/build-module/components/sidebar/featured-image/index.js.map +0 -1
  221. package/build-module/components/sidebar/last-revision/index.js +0 -13
  222. package/build-module/components/sidebar/last-revision/index.js.map +0 -1
  223. package/build-module/components/sidebar/page-attributes/index.js +0 -57
  224. package/build-module/components/sidebar/page-attributes/index.js.map +0 -1
  225. package/build-module/components/sidebar/plugin-post-excerpt/index.js +0 -64
  226. package/build-module/components/sidebar/plugin-post-excerpt/index.js.map +0 -1
  227. package/build-module/components/sidebar/post-excerpt/index.js +0 -47
  228. package/build-module/components/sidebar/post-excerpt/index.js.map +0 -1
  229. package/build-module/components/sidebar/post-taxonomies/index.js +0 -21
  230. package/build-module/components/sidebar/post-taxonomies/index.js.map +0 -1
  231. package/build-module/components/sidebar/post-taxonomies/taxonomy-panel.js +0 -48
  232. package/build-module/components/sidebar/post-taxonomies/taxonomy-panel.js.map +0 -1
  233. package/build-module/components/sidebar/post-template/create-modal.js +0 -92
  234. package/build-module/components/sidebar/post-template/create-modal.js.map +0 -1
  235. package/build-module/components/sidebar/post-template/form.js +0 -102
  236. package/build-module/components/sidebar/post-template/form.js.map +0 -1
  237. package/build-module/components/sidebar/post-template/index.js +0 -98
  238. package/build-module/components/sidebar/post-template/index.js.map +0 -1
  239. package/build-module/components/view-link/index.js +0 -46
  240. package/build-module/components/view-link/index.js.map +0 -1
  241. package/src/components/device-preview/index.js +0 -73
  242. package/src/components/header/document-actions/index.js +0 -82
  243. package/src/components/header/document-actions/style.scss +0 -64
  244. package/src/components/header/header-toolbar/index.js +0 -182
  245. package/src/components/header/header-toolbar/style.scss +0 -114
  246. package/src/components/keyboard-shortcut-help-modal/test/__snapshots__/index.js.snap +0 -929
  247. package/src/components/secondary-sidebar/inserter-sidebar.js +0 -71
  248. package/src/components/secondary-sidebar/list-view-outline.js +0 -98
  249. package/src/components/secondary-sidebar/list-view-sidebar.js +0 -170
  250. package/src/components/secondary-sidebar/style.scss +0 -120
  251. package/src/components/sidebar/discussion-panel/index.js +0 -62
  252. package/src/components/sidebar/featured-image/index.js +0 -67
  253. package/src/components/sidebar/last-revision/index.js +0 -17
  254. package/src/components/sidebar/last-revision/style.scss +0 -10
  255. package/src/components/sidebar/page-attributes/index.js +0 -65
  256. package/src/components/sidebar/plugin-post-excerpt/index.js +0 -61
  257. package/src/components/sidebar/plugin-post-excerpt/test/index.js +0 -36
  258. package/src/components/sidebar/post-excerpt/index.js +0 -59
  259. package/src/components/sidebar/post-taxonomies/index.js +0 -30
  260. package/src/components/sidebar/post-taxonomies/taxonomy-panel.js +0 -48
  261. package/src/components/sidebar/post-template/create-modal.js +0 -140
  262. package/src/components/sidebar/post-template/form.js +0 -141
  263. package/src/components/sidebar/post-template/index.js +0 -120
  264. package/src/components/sidebar/post-template/style.scss +0 -22
  265. package/src/components/sidebar/settings-header/style.scss +0 -74
  266. package/src/components/sidebar/template/style.scss +0 -35
  267. package/src/components/view-link/index.js +0 -48
@@ -47,18 +47,10 @@ class Editor extends Component {
47
47
  this.setTitleRef = this.setTitleRef.bind( this );
48
48
  }
49
49
 
50
- getEditorSettings(
51
- settings,
52
- hasFixedToolbar,
53
- focusMode,
54
- hiddenBlockTypes,
55
- blockTypes
56
- ) {
50
+ getEditorSettings( settings, hiddenBlockTypes, blockTypes ) {
57
51
  settings = {
58
52
  ...settings,
59
53
  isRTL: I18nManager.isRTL,
60
- hasFixedToolbar,
61
- focusMode,
62
54
  };
63
55
 
64
56
  // Omit hidden block types if exists and non-empty.
@@ -134,8 +126,6 @@ class Editor extends Component {
134
126
  render() {
135
127
  const {
136
128
  settings,
137
- hasFixedToolbar,
138
- focusMode,
139
129
  initialEdits,
140
130
  hiddenBlockTypes,
141
131
  blockTypes,
@@ -149,8 +139,6 @@ class Editor extends Component {
149
139
 
150
140
  const editorSettings = this.getEditorSettings(
151
141
  settings,
152
- hasFixedToolbar,
153
- focusMode,
154
142
  hiddenBlockTypes,
155
143
  blockTypes
156
144
  );
@@ -192,19 +180,10 @@ class Editor extends Component {
192
180
 
193
181
  export default compose( [
194
182
  withSelect( ( select ) => {
195
- const {
196
- isFeatureActive,
197
- getEditorMode,
198
- __experimentalGetPreviewDeviceType,
199
- getHiddenBlockTypes,
200
- } = select( editPostStore );
183
+ const { getEditorMode, getHiddenBlockTypes } = select( editPostStore );
201
184
  const { getBlockTypes } = select( blocksStore );
202
185
 
203
186
  return {
204
- hasFixedToolbar:
205
- isFeatureActive( 'fixedToolbar' ) ||
206
- __experimentalGetPreviewDeviceType() !== 'Desktop',
207
- focusMode: isFeatureActive( 'focusMode' ),
208
187
  mode: getEditorMode(),
209
188
  hiddenBlockTypes: getHiddenBlockTypes(),
210
189
  blockTypes: getBlockTypes(),
@@ -32,7 +32,6 @@ export default function useCommonCommands() {
32
32
  openGeneralSidebar,
33
33
  closeGeneralSidebar,
34
34
  switchEditorMode,
35
- setIsListViewOpened,
36
35
  toggleDistractionFree,
37
36
  } = useDispatch( editPostStore );
38
37
  const { openModal } = useDispatch( interfaceStore );
@@ -44,8 +43,9 @@ export default function useCommonCommands() {
44
43
  showBlockBreadcrumbs,
45
44
  isDistractionFree,
46
45
  } = useSelect( ( select ) => {
47
- const { getEditorMode, isListViewOpened, isFeatureActive } =
48
- select( editPostStore );
46
+ const { get } = select( preferencesStore );
47
+ const { getEditorMode } = select( editPostStore );
48
+ const { isListViewOpened } = select( editorStore );
49
49
  return {
50
50
  activeSidebar: select( interfaceStore ).getActiveComplementaryArea(
51
51
  editPostStore.name
@@ -54,16 +54,14 @@ export default function useCommonCommands() {
54
54
  isListViewOpen: isListViewOpened(),
55
55
  isPublishSidebarEnabled:
56
56
  select( editorStore ).isPublishSidebarEnabled(),
57
- showBlockBreadcrumbs: isFeatureActive( 'showBlockBreadcrumbs' ),
58
- isDistractionFree: select( preferencesStore ).get(
59
- editPostStore.name,
60
- 'distractionFree'
61
- ),
57
+ showBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),
58
+ isDistractionFree: get( 'core', 'distractionFree' ),
62
59
  };
63
60
  }, [] );
64
61
  const { toggle } = useDispatch( preferencesStore );
65
62
  const { createInfoNotice } = useDispatch( noticesStore );
66
- const { __unstableSaveForPreview } = useDispatch( editorStore );
63
+ const { __unstableSaveForPreview, setIsListViewOpened } =
64
+ useDispatch( editorStore );
67
65
  const { getCurrentPostId } = useSelect( editorStore );
68
66
 
69
67
  useCommand( {
@@ -107,7 +105,7 @@ export default function useCommonCommands() {
107
105
  name: 'core/toggle-spotlight-mode',
108
106
  label: __( 'Toggle spotlight mode' ),
109
107
  callback: ( { close } ) => {
110
- toggle( 'core/edit-post', 'focusMode' );
108
+ toggle( 'core', 'focusMode' );
111
109
  close();
112
110
  },
113
111
  } );
@@ -136,7 +134,7 @@ export default function useCommonCommands() {
136
134
  name: 'core/toggle-top-toolbar',
137
135
  label: __( 'Toggle top toolbar' ),
138
136
  callback: ( { close } ) => {
139
- toggle( 'core/edit-post', 'fixedToolbar' );
137
+ toggle( 'core', 'fixedToolbar' );
140
138
  if ( isDistractionFree ) {
141
139
  toggleDistractionFree();
142
140
  }
@@ -177,7 +175,7 @@ export default function useCommonCommands() {
177
175
  ? __( 'Hide block breadcrumbs' )
178
176
  : __( 'Show block breadcrumbs' ),
179
177
  callback: ( { close } ) => {
180
- toggle( 'core/edit-post', 'showBlockBreadcrumbs' );
178
+ toggle( 'core', 'showBlockBreadcrumbs' );
181
179
  close();
182
180
  createInfoNotice(
183
181
  showBlockBreadcrumbs
@@ -194,16 +192,16 @@ export default function useCommonCommands() {
194
192
  useCommand( {
195
193
  name: 'core/toggle-publish-sidebar',
196
194
  label: isPublishSidebarEnabled
197
- ? __( 'Disable pre-publish checklist' )
198
- : __( 'Enable pre-publish checklist' ),
195
+ ? __( 'Disable pre-publish checks' )
196
+ : __( 'Enable pre-publish checks' ),
199
197
  icon: formatListBullets,
200
198
  callback: ( { close } ) => {
201
199
  close();
202
200
  toggle( 'core/edit-post', 'isPublishSidebarEnabled' );
203
201
  createInfoNotice(
204
202
  isPublishSidebarEnabled
205
- ? __( 'Pre-publish checklist off.' )
206
- : __( 'Pre-publish checklist on.' ),
203
+ ? __( 'Pre-publish checks disabled.' )
204
+ : __( 'Pre-publish checks enabled.' ),
207
205
  {
208
206
  id: 'core/edit-post/publish-sidebar/notice',
209
207
  type: 'snackbar',
@@ -0,0 +1,73 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useCallback, useReducer } from '@wordpress/element';
5
+ import { addQueryArgs, getQueryArgs, removeQueryArgs } from '@wordpress/url';
6
+
7
+ /**
8
+ * A hook that records the 'entity' history in the post editor as a user
9
+ * navigates between editing a post and editing the post template or patterns.
10
+ *
11
+ * Implemented as a stack, so a little similar to the browser history API.
12
+ *
13
+ * Used to control displaying UI elements like the back button.
14
+ *
15
+ * @param {number} initialPostId The post id of the post when the editor loaded.
16
+ * @param {string} initialPostType The post type of the post when the editor loaded.
17
+ *
18
+ * @return {Object} An object containing the `currentPost` variable and
19
+ * `getPostLinkProps` and `goBack` functions.
20
+ */
21
+ export default function usePostHistory( initialPostId, initialPostType ) {
22
+ const [ postHistory, dispatch ] = useReducer(
23
+ ( historyState, { type, post } ) => {
24
+ if ( type === 'push' ) {
25
+ return [ ...historyState, post ];
26
+ }
27
+ if ( type === 'pop' ) {
28
+ // Try to leave one item in the history.
29
+ if ( historyState.length > 1 ) {
30
+ return historyState.slice( 0, -1 );
31
+ }
32
+ }
33
+ return historyState;
34
+ },
35
+ [ { postId: initialPostId, postType: initialPostType } ]
36
+ );
37
+
38
+ const getPostLinkProps = useCallback( ( params ) => {
39
+ const currentArgs = getQueryArgs( window.location.href );
40
+ const currentUrlWithoutArgs = removeQueryArgs(
41
+ window.location.href,
42
+ ...Object.keys( currentArgs )
43
+ );
44
+
45
+ const newUrl = addQueryArgs( currentUrlWithoutArgs, {
46
+ post: params.postId,
47
+ action: 'edit',
48
+ } );
49
+
50
+ return {
51
+ href: newUrl,
52
+ onClick: ( event ) => {
53
+ event.preventDefault();
54
+ dispatch( {
55
+ type: 'push',
56
+ post: { postId: params.postId, postType: params.postType },
57
+ } );
58
+ },
59
+ };
60
+ }, [] );
61
+
62
+ const goBack = useCallback( () => {
63
+ dispatch( { type: 'pop' } );
64
+ }, [] );
65
+
66
+ const currentPost = postHistory[ postHistory.length - 1 ];
67
+
68
+ return {
69
+ currentPost,
70
+ getPostLinkProps,
71
+ goBack: postHistory.length > 1 ? goBack : undefined,
72
+ };
73
+ }
package/src/index.js CHANGED
@@ -15,6 +15,10 @@ import {
15
15
  registerLegacyWidgetBlock,
16
16
  registerWidgetGroupBlock,
17
17
  } from '@wordpress/widgets';
18
+ import {
19
+ privateApis as editorPrivateApis,
20
+ store as editorStore,
21
+ } from '@wordpress/editor';
18
22
 
19
23
  /**
20
24
  * Internal dependencies
@@ -22,7 +26,10 @@ import {
22
26
  import './hooks';
23
27
  import './plugins';
24
28
  import Editor from './editor';
25
- import { store as editPostStore } from './store';
29
+ import { unlock } from './lock-unlock';
30
+
31
+ const { PluginPostExcerpt: __experimentalPluginPostExcerpt } =
32
+ unlock( editorPrivateApis );
26
33
 
27
34
  /**
28
35
  * Initializes and returns an instance of Editor.
@@ -47,30 +54,34 @@ export function initializeEditor(
47
54
 
48
55
  dispatch( preferencesStore ).setDefaults( 'core/edit-post', {
49
56
  editorMode: 'visual',
50
- fixedToolbar: false,
51
57
  fullscreenMode: true,
52
58
  hiddenBlockTypes: [],
53
- inactivePanels: [],
54
59
  isPublishSidebarEnabled: true,
55
- openPanels: [ 'post-status' ],
56
60
  preferredStyleVariations: {},
57
- showBlockBreadcrumbs: true,
58
- showIconLabels: false,
59
- showListViewByDefault: false,
60
61
  themeStyles: true,
61
62
  welcomeGuide: true,
62
63
  welcomeGuideTemplate: true,
63
64
  } );
64
65
 
66
+ dispatch( preferencesStore ).setDefaults( 'core', {
67
+ allowRightClickOverrides: true,
68
+ fixedToolbar: false,
69
+ inactivePanels: [],
70
+ openPanels: [ 'post-status' ],
71
+ showBlockBreadcrumbs: true,
72
+ showIconLabels: false,
73
+ showListViewByDefault: false,
74
+ } );
75
+
65
76
  dispatch( blocksStore ).reapplyBlockTypeFilters();
66
77
 
67
78
  // Check if the block list view should be open by default.
68
79
  // If `distractionFree` mode is enabled, the block list view should not be open.
69
80
  if (
70
- select( editPostStore ).isFeatureActive( 'showListViewByDefault' ) &&
71
- ! select( editPostStore ).isFeatureActive( 'distractionFree' )
81
+ select( preferencesStore ).get( 'core', 'showListViewByDefault' ) &&
82
+ ! select( preferencesStore ).get( 'core', 'distractionFree' )
72
83
  ) {
73
- dispatch( editPostStore ).setIsListViewOpened( true );
84
+ dispatch( editorStore ).setIsListViewOpened( true );
74
85
  }
75
86
 
76
87
  registerCoreBlocks();
@@ -93,7 +104,7 @@ export function initializeEditor(
93
104
  'removeTemplatePartsFromInserter',
94
105
  ( canInsert, blockType ) => {
95
106
  if (
96
- ! select( editPostStore ).isEditingTemplate() &&
107
+ select( editorStore ).getRenderingMode() === 'post-only' &&
97
108
  blockType.name === 'core/template-part'
98
109
  ) {
99
110
  return false;
@@ -118,7 +129,7 @@ export function initializeEditor(
118
129
  { getBlockParentsByBlockName }
119
130
  ) => {
120
131
  if (
121
- ! select( editPostStore ).isEditingTemplate() &&
132
+ select( editorStore ).getRenderingMode() === 'post-only' &&
122
133
  blockType.name === 'core/post-content'
123
134
  ) {
124
135
  return (
@@ -206,5 +217,5 @@ export { default as PluginSidebar } from './components/sidebar/plugin-sidebar';
206
217
  export { default as PluginSidebarMoreMenuItem } from './components/header/plugin-sidebar-more-menu-item';
207
218
  export { default as __experimentalFullscreenModeClose } from './components/header/fullscreen-mode-close';
208
219
  export { default as __experimentalMainDashboardButton } from './components/header/main-dashboard-button';
209
- export { default as __experimentalPluginPostExcerpt } from './components/sidebar/plugin-post-excerpt';
220
+ export { __experimentalPluginPostExcerpt };
210
221
  export { store } from './store';
@@ -23,7 +23,6 @@ import Editor from './editor';
23
23
  export function initializeEditor( id, postType, postId ) {
24
24
  dispatch( preferencesStore ).setDefaults( 'core/edit-post', {
25
25
  editorMode: 'visual',
26
- fixedToolbar: false,
27
26
  fullscreenMode: true,
28
27
  hiddenBlockTypes: [],
29
28
  inactivePanels: [],
@@ -32,6 +31,14 @@ export function initializeEditor( id, postType, postId ) {
32
31
  preferredStyleVariations: {},
33
32
  welcomeGuide: true,
34
33
  } );
34
+ dispatch( preferencesStore ).setDefaults( 'core', {
35
+ inactivePanels: [],
36
+ openPanels: [ 'post-status' ],
37
+ } );
38
+
39
+ dispatch( preferencesStore ).setDefaults( 'core', {
40
+ fixedToolbar: false,
41
+ } );
35
42
 
36
43
  return <Editor postId={ postId } postType={ postType } />;
37
44
  }
@@ -4,15 +4,12 @@
4
4
  import { useSelect } from '@wordpress/data';
5
5
  import { PreferenceToggleMenuItem } from '@wordpress/preferences';
6
6
  import { __ } from '@wordpress/i18n';
7
-
8
- /**
9
- * Internal dependencies
10
- */
11
- import { store as editPostStore } from '../../store';
7
+ import { store as editorStore } from '@wordpress/editor';
12
8
 
13
9
  export default function WelcomeGuideMenuItem() {
14
10
  const isTemplateMode = useSelect(
15
- ( select ) => select( editPostStore ).isEditingTemplate(),
11
+ ( select ) =>
12
+ select( editorStore ).getRenderingMode() === 'template-only',
16
13
  []
17
14
  );
18
15
 
@@ -7,7 +7,6 @@ import { store as interfaceStore } from '@wordpress/interface';
7
7
  import { store as preferencesStore } from '@wordpress/preferences';
8
8
  import { speak } from '@wordpress/a11y';
9
9
  import { store as noticesStore } from '@wordpress/notices';
10
- import { store as coreStore } from '@wordpress/core-data';
11
10
  import { store as blockEditorStore } from '@wordpress/block-editor';
12
11
  import { store as editorStore } from '@wordpress/editor';
13
12
  import deprecated from '@wordpress/deprecated';
@@ -29,7 +28,7 @@ export const openGeneralSidebar =
29
28
  ( { dispatch, registry } ) => {
30
29
  const isDistractionFree = registry
31
30
  .select( preferencesStore )
32
- .get( 'core/edit-post', 'distractionFree' );
31
+ .get( 'core', 'distractionFree' );
33
32
  if ( isDistractionFree ) {
34
33
  dispatch.toggleDistractionFree();
35
34
  }
@@ -123,6 +122,8 @@ export function togglePublishSidebar() {
123
122
  /**
124
123
  * Returns an action object used to enable or disable a panel in the editor.
125
124
  *
125
+ * @deprecated
126
+ *
126
127
  * @param {string} panelName A string that identifies the panel to enable or disable.
127
128
  *
128
129
  * @return {Object} Action object.
@@ -130,73 +131,48 @@ export function togglePublishSidebar() {
130
131
  export const toggleEditorPanelEnabled =
131
132
  ( panelName ) =>
132
133
  ( { registry } ) => {
133
- const inactivePanels =
134
- registry
135
- .select( preferencesStore )
136
- .get( 'core/edit-post', 'inactivePanels' ) ?? [];
137
-
138
- const isPanelInactive = !! inactivePanels?.includes( panelName );
139
-
140
- // If the panel is inactive, remove it to enable it, else add it to
141
- // make it inactive.
142
- let updatedInactivePanels;
143
- if ( isPanelInactive ) {
144
- updatedInactivePanels = inactivePanels.filter(
145
- ( invactivePanelName ) => invactivePanelName !== panelName
146
- );
147
- } else {
148
- updatedInactivePanels = [ ...inactivePanels, panelName ];
149
- }
150
-
151
- registry
152
- .dispatch( preferencesStore )
153
- .set( 'core/edit-post', 'inactivePanels', updatedInactivePanels );
134
+ deprecated( "dispatch( 'core/edit-post' ).toggleEditorPanelEnabled", {
135
+ since: '6.5',
136
+ alternative: "dispatch( 'core/editor').toggleEditorPanelEnabled",
137
+ } );
138
+ registry.dispatch( editorStore ).toggleEditorPanelEnabled( panelName );
154
139
  };
155
140
 
156
141
  /**
157
142
  * Opens a closed panel and closes an open panel.
158
143
  *
144
+ * @deprecated
145
+ *
159
146
  * @param {string} panelName A string that identifies the panel to open or close.
160
147
  */
161
148
  export const toggleEditorPanelOpened =
162
149
  ( panelName ) =>
163
150
  ( { registry } ) => {
164
- const openPanels =
165
- registry
166
- .select( preferencesStore )
167
- .get( 'core/edit-post', 'openPanels' ) ?? [];
168
-
169
- const isPanelOpen = !! openPanels?.includes( panelName );
170
-
171
- // If the panel is open, remove it to close it, else add it to
172
- // make it open.
173
- let updatedOpenPanels;
174
- if ( isPanelOpen ) {
175
- updatedOpenPanels = openPanels.filter(
176
- ( openPanelName ) => openPanelName !== panelName
177
- );
178
- } else {
179
- updatedOpenPanels = [ ...openPanels, panelName ];
180
- }
181
-
182
- registry
183
- .dispatch( preferencesStore )
184
- .set( 'core/edit-post', 'openPanels', updatedOpenPanels );
151
+ deprecated( "dispatch( 'core/edit-post' ).toggleEditorPanelOpened", {
152
+ since: '6.5',
153
+ alternative: "dispatch( 'core/editor').toggleEditorPanelOpened",
154
+ } );
155
+ registry.dispatch( editorStore ).toggleEditorPanelOpened( panelName );
185
156
  };
186
157
 
187
158
  /**
188
159
  * Returns an action object used to remove a panel from the editor.
189
160
  *
161
+ * @deprecated
162
+ *
190
163
  * @param {string} panelName A string that identifies the panel to remove.
191
164
  *
192
165
  * @return {Object} Action object.
193
166
  */
194
- export function removeEditorPanel( panelName ) {
195
- return {
196
- type: 'REMOVE_PANEL',
197
- panelName,
167
+ export const removeEditorPanel =
168
+ ( panelName ) =>
169
+ ( { registry } ) => {
170
+ deprecated( "dispatch( 'core/edit-post' ).removeEditorPanel", {
171
+ since: '6.5',
172
+ alternative: "dispatch( 'core/editor').removeEditorPanel",
173
+ } );
174
+ registry.dispatch( editorStore ).removeEditorPanel( panelName );
198
175
  };
199
- }
200
176
 
201
177
  /**
202
178
  * Triggers an action used to toggle a feature flag.
@@ -229,9 +205,7 @@ export const switchEditorMode =
229
205
 
230
206
  if (
231
207
  mode === 'text' &&
232
- registry
233
- .select( preferencesStore )
234
- .get( 'core/edit-post', 'distractionFree' )
208
+ registry.select( preferencesStore ).get( 'core', 'distractionFree' )
235
209
  ) {
236
210
  dispatch.toggleDistractionFree();
237
211
  }
@@ -457,114 +431,93 @@ export function metaBoxUpdatesFailure() {
457
431
  }
458
432
 
459
433
  /**
460
- * Returns an action object used to toggle the width of the editing canvas.
434
+ * Action that changes the width of the editing canvas.
461
435
  *
462
- * @param {string} deviceType
436
+ * @deprecated
463
437
  *
464
- * @return {Object} Action object.
438
+ * @param {string} deviceType
465
439
  */
466
- export function __experimentalSetPreviewDeviceType( deviceType ) {
467
- return {
468
- type: 'SET_PREVIEW_DEVICE_TYPE',
469
- deviceType,
440
+ export const __experimentalSetPreviewDeviceType =
441
+ ( deviceType ) =>
442
+ ( { registry } ) => {
443
+ deprecated(
444
+ "dispatch( 'core/edit-post' ).__experimentalSetPreviewDeviceType",
445
+ {
446
+ since: '6.5',
447
+ version: '6.7',
448
+ hint: 'registry.dispatch( editorStore ).setDeviceType',
449
+ }
450
+ );
451
+ registry.dispatch( editorStore ).setDeviceType( deviceType );
470
452
  };
471
- }
472
453
 
473
454
  /**
474
455
  * Returns an action object used to open/close the inserter.
475
456
  *
476
- * @param {boolean|Object} value Whether the inserter should be
477
- * opened (true) or closed (false).
478
- * To specify an insertion point,
479
- * use an object.
480
- * @param {string} value.rootClientId The root client ID to insert at.
481
- * @param {number} value.insertionIndex The index to insert at.
457
+ * @deprecated
482
458
  *
483
- * @return {Object} Action object.
459
+ * @param {boolean|Object} value Whether the inserter should be opened (true) or closed (false).
484
460
  */
485
- export function setIsInserterOpened( value ) {
486
- return {
487
- type: 'SET_IS_INSERTER_OPENED',
488
- value,
461
+ export const setIsInserterOpened =
462
+ ( value ) =>
463
+ ( { registry } ) => {
464
+ deprecated( "dispatch( 'core/edit-post' ).setIsInserterOpened", {
465
+ since: '6.5',
466
+ alternative: "dispatch( 'core/editor').setIsInserterOpened",
467
+ } );
468
+ registry.dispatch( editorStore ).setIsInserterOpened( value );
489
469
  };
490
- }
491
470
 
492
471
  /**
493
472
  * Returns an action object used to open/close the list view.
494
473
  *
474
+ * @deprecated
475
+ *
495
476
  * @param {boolean} isOpen A boolean representing whether the list view should be opened or closed.
496
- * @return {Object} Action object.
497
477
  */
498
478
  export const setIsListViewOpened =
499
479
  ( isOpen ) =>
500
- ( { dispatch, registry } ) => {
501
- const isDistractionFree = registry
502
- .select( preferencesStore )
503
- .get( 'core/edit-post', 'distractionFree' );
504
- if ( isDistractionFree && isOpen ) {
505
- dispatch.toggleDistractionFree();
506
- }
507
- dispatch( {
508
- type: 'SET_IS_LIST_VIEW_OPENED',
509
- isOpen,
480
+ ( { registry } ) => {
481
+ deprecated( "dispatch( 'core/edit-post' ).setIsListViewOpened", {
482
+ since: '6.5',
483
+ alternative: "dispatch( 'core/editor').setIsListViewOpened",
510
484
  } );
485
+ registry.dispatch( editorStore ).setIsListViewOpened( isOpen );
511
486
  };
512
487
 
513
488
  /**
514
489
  * Returns an action object used to switch to template editing.
515
490
  *
516
- * @param {boolean} value Is editing template.
517
- * @return {Object} Action object.
491
+ * @deprecated
518
492
  */
519
- export function setIsEditingTemplate( value ) {
520
- return {
521
- type: 'SET_IS_EDITING_TEMPLATE',
522
- value,
523
- };
493
+ export function setIsEditingTemplate() {
494
+ deprecated( "dispatch( 'core/edit-post' ).setIsEditingTemplate", {
495
+ since: '6.5',
496
+ alternative: "dispatch( 'core/editor').setRenderingMode",
497
+ } );
498
+ return { type: 'NOTHING' };
524
499
  }
525
500
 
526
501
  /**
527
502
  * Switches to the template mode.
528
- *
529
- * @param {boolean} newTemplate Is new template.
530
503
  */
531
504
  export const __unstableSwitchToTemplateMode =
532
- ( newTemplate = false ) =>
533
- ( { registry, select, dispatch } ) => {
534
- dispatch( setIsEditingTemplate( true ) );
535
- const isWelcomeGuideActive = select.isFeatureActive(
536
- 'welcomeGuideTemplate'
537
- );
538
- if ( ! isWelcomeGuideActive ) {
539
- const message = newTemplate
540
- ? __( "Custom template created. You're in template mode now." )
541
- : __(
542
- 'Editing template. Changes made here affect all posts and pages that use the template.'
543
- );
544
- registry.dispatch( noticesStore ).createSuccessNotice( message, {
545
- type: 'snackbar',
546
- } );
547
- }
505
+ () =>
506
+ ( { registry } ) => {
507
+ registry.dispatch( editorStore ).setRenderingMode( 'template-only' );
548
508
  };
549
509
 
550
510
  /**
551
511
  * Create a block based template.
552
512
  *
553
- * @param {Object?} template Template to create and assign.
513
+ * @deprecated
554
514
  */
555
- export const __unstableCreateTemplate =
556
- ( template ) =>
557
- async ( { registry } ) => {
558
- const savedTemplate = await registry
559
- .dispatch( coreStore )
560
- .saveEntityRecord( 'postType', 'wp_template', template );
561
- const post = registry.select( editorStore ).getCurrentPost();
562
- registry
563
- .dispatch( coreStore )
564
- .editEntityRecord( 'postType', post.type, post.id, {
565
- template: savedTemplate.slug,
566
- } );
567
- };
515
+ export function __unstableCreateTemplate() {
516
+ deprecated( "dispatch( 'core/edit-post' ).__unstableCreateTemplate", {
517
+ since: '6.5',
518
+ } );
519
+ return { type: 'NOTHING' };
520
+ }
568
521
 
569
522
  let metaBoxesInitialized = false;
570
523
 
@@ -625,25 +578,21 @@ export const toggleDistractionFree =
625
578
  ( { dispatch, registry } ) => {
626
579
  const isDistractionFree = registry
627
580
  .select( preferencesStore )
628
- .get( 'core/edit-post', 'distractionFree' );
581
+ .get( 'core', 'distractionFree' );
629
582
  if ( ! isDistractionFree ) {
630
583
  registry.batch( () => {
631
584
  registry
632
585
  .dispatch( preferencesStore )
633
- .set( 'core/edit-post', 'fixedToolbar', true );
634
- dispatch.setIsInserterOpened( false );
635
- dispatch.setIsListViewOpened( false );
586
+ .set( 'core', 'fixedToolbar', true );
587
+ registry.dispatch( editorStore ).setIsInserterOpened( false );
588
+ registry.dispatch( editorStore ).setIsListViewOpened( false );
636
589
  dispatch.closeGeneralSidebar();
637
590
  } );
638
591
  }
639
592
  registry.batch( () => {
640
593
  registry
641
594
  .dispatch( preferencesStore )
642
- .set(
643
- 'core/edit-post',
644
- 'distractionFree',
645
- ! isDistractionFree
646
- );
595
+ .set( 'core', 'distractionFree', ! isDistractionFree );
647
596
  registry
648
597
  .dispatch( noticesStore )
649
598
  .createInfoNotice(