@wordpress/edit-post 7.31.0 → 7.33.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 (294) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +9 -323
  3. package/build/components/browser-url/index.js.map +1 -1
  4. package/build/components/editor-initialization/index.js +0 -1
  5. package/build/components/editor-initialization/index.js.map +1 -1
  6. package/build/components/editor-initialization/listener-hooks.js +1 -38
  7. package/build/components/editor-initialization/listener-hooks.js.map +1 -1
  8. package/build/components/header/fullscreen-mode-close/index.js.map +1 -1
  9. package/build/components/header/header-toolbar/index.native.js.map +1 -1
  10. package/build/components/header/index.js +5 -5
  11. package/build/components/header/index.js.map +1 -1
  12. package/build/components/header/index.native.js +1 -1
  13. package/build/components/header/index.native.js.map +1 -1
  14. package/build/components/header/main-dashboard-button/index.js.map +1 -1
  15. package/build/components/header/more-menu/index.js +7 -6
  16. package/build/components/header/more-menu/index.js.map +1 -1
  17. package/build/components/header/post-publish-button-or-toggle.js +11 -13
  18. package/build/components/header/post-publish-button-or-toggle.js.map +1 -1
  19. package/build/components/header/preferences-menu-item/index.js +12 -4
  20. package/build/components/header/preferences-menu-item/index.js.map +1 -1
  21. package/build/components/header/tools-more-menu-group/index.js.map +1 -1
  22. package/build/components/header/writing-menu/index.js.map +1 -1
  23. package/build/components/init-pattern-modal/index.js.map +1 -1
  24. package/build/components/keyboard-shortcuts/index.js +1 -36
  25. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  26. package/build/components/layout/actions-panel.js +4 -7
  27. package/build/components/layout/actions-panel.js.map +1 -1
  28. package/build/components/layout/index.js +16 -21
  29. package/build/components/layout/index.js.map +1 -1
  30. package/build/components/layout/index.native.js.map +1 -1
  31. package/build/components/meta-boxes/index.js.map +1 -1
  32. package/build/components/meta-boxes/meta-box-visibility.js.map +1 -1
  33. package/build/components/meta-boxes/meta-boxes-area/index.js.map +1 -1
  34. package/build/components/preferences-modal/enable-custom-fields.js.map +1 -1
  35. package/build/components/preferences-modal/enable-panel.js.map +1 -1
  36. package/build/components/preferences-modal/enable-publish-sidebar.js.map +1 -1
  37. package/build/components/preferences-modal/index.js +1 -21
  38. package/build/components/preferences-modal/index.js.map +1 -1
  39. package/build/components/preferences-modal/meta-boxes-section.js.map +1 -1
  40. package/build/components/sidebar/plugin-post-publish-panel/index.js +16 -64
  41. package/build/components/sidebar/plugin-post-publish-panel/index.js.map +1 -1
  42. package/build/components/sidebar/plugin-pre-publish-panel/index.js +16 -63
  43. package/build/components/sidebar/plugin-pre-publish-panel/index.js.map +1 -1
  44. package/build/components/sidebar/post-format/index.js.map +1 -1
  45. package/build/components/sidebar/post-pending-status/index.js.map +1 -1
  46. package/build/components/sidebar/post-slug/index.js.map +1 -1
  47. package/build/components/sidebar/post-status/index.js +9 -9
  48. package/build/components/sidebar/post-status/index.js.map +1 -1
  49. package/build/components/sidebar/post-sticky/index.js.map +1 -1
  50. package/build/components/sidebar/post-trash/index.js.map +1 -1
  51. package/build/components/sidebar/post-visibility/index.js.map +1 -1
  52. package/build/components/sidebar/settings-header/index.js.map +1 -1
  53. package/build/components/sidebar/settings-sidebar/index.js +42 -40
  54. package/build/components/sidebar/settings-sidebar/index.js.map +1 -1
  55. package/build/components/text-editor/index.js.map +1 -1
  56. package/build/components/visual-editor/block-inspector-button.js +1 -1
  57. package/build/components/visual-editor/block-inspector-button.js.map +1 -1
  58. package/build/components/visual-editor/header.native.js.map +1 -1
  59. package/build/components/visual-editor/index.js +4 -1
  60. package/build/components/visual-editor/index.js.map +1 -1
  61. package/build/components/visual-editor/index.native.js.map +1 -1
  62. package/build/components/visual-editor/use-padding-appender.js +62 -0
  63. package/build/components/visual-editor/use-padding-appender.js.map +1 -0
  64. package/build/components/welcome-guide/default.js.map +1 -1
  65. package/build/components/welcome-guide/image.js.map +1 -1
  66. package/build/components/welcome-guide/index.js.map +1 -1
  67. package/build/components/welcome-guide/template.js.map +1 -1
  68. package/build/editor.js +9 -4
  69. package/build/editor.js.map +1 -1
  70. package/build/editor.native.js.map +1 -1
  71. package/build/hooks/commands/use-common-commands.js +7 -24
  72. package/build/hooks/commands/use-common-commands.js.map +1 -1
  73. package/build/hooks/components/index.js.map +1 -1
  74. package/build/hooks/index.js.map +1 -1
  75. package/build/hooks/use-navigate-to-entity-record.js +36 -19
  76. package/build/hooks/use-navigate-to-entity-record.js.map +1 -1
  77. package/build/hooks/validate-multiple-use/index.js.map +1 -1
  78. package/build/index.js +7 -12
  79. package/build/index.js.map +1 -1
  80. package/build/index.native.js +2 -4
  81. package/build/index.native.js.map +1 -1
  82. package/build/lock-unlock.js.map +1 -1
  83. package/build/plugins/copy-content-menu-item/index.js.map +1 -1
  84. package/build/plugins/index.js.map +1 -1
  85. package/build/plugins/keyboard-shortcuts-help-menu-item/index.js +7 -4
  86. package/build/plugins/keyboard-shortcuts-help-menu-item/index.js.map +1 -1
  87. package/build/plugins/welcome-guide-menu-item/index.js.map +1 -1
  88. package/build/store/actions.js +46 -31
  89. package/build/store/actions.js.map +1 -1
  90. package/build/store/constants.js.map +1 -1
  91. package/build/store/index.js +1 -1
  92. package/build/store/index.js.map +1 -1
  93. package/build/store/reducer.js +1 -15
  94. package/build/store/reducer.js.map +1 -1
  95. package/build/store/selectors.js +44 -24
  96. package/build/store/selectors.js.map +1 -1
  97. package/build/utils/meta-boxes.js.map +1 -1
  98. package/build-module/components/browser-url/index.js.map +1 -1
  99. package/build-module/components/editor-initialization/index.js +1 -2
  100. package/build-module/components/editor-initialization/index.js.map +1 -1
  101. package/build-module/components/editor-initialization/listener-hooks.js +2 -38
  102. package/build-module/components/editor-initialization/listener-hooks.js.map +1 -1
  103. package/build-module/components/header/fullscreen-mode-close/index.js.map +1 -1
  104. package/build-module/components/header/header-toolbar/index.native.js.map +1 -1
  105. package/build-module/components/header/index.js +4 -4
  106. package/build-module/components/header/index.js.map +1 -1
  107. package/build-module/components/header/index.native.js +1 -1
  108. package/build-module/components/header/index.native.js.map +1 -1
  109. package/build-module/components/header/main-dashboard-button/index.js.map +1 -1
  110. package/build-module/components/header/more-menu/index.js +5 -4
  111. package/build-module/components/header/more-menu/index.js.map +1 -1
  112. package/build-module/components/header/post-publish-button-or-toggle.js +11 -13
  113. package/build-module/components/header/post-publish-button-or-toggle.js.map +1 -1
  114. package/build-module/components/header/preferences-menu-item/index.js +11 -3
  115. package/build-module/components/header/preferences-menu-item/index.js.map +1 -1
  116. package/build-module/components/header/tools-more-menu-group/index.js.map +1 -1
  117. package/build-module/components/header/writing-menu/index.js.map +1 -1
  118. package/build-module/components/init-pattern-modal/index.js.map +1 -1
  119. package/build-module/components/keyboard-shortcuts/index.js +1 -36
  120. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  121. package/build-module/components/layout/actions-panel.js +4 -5
  122. package/build-module/components/layout/actions-panel.js.map +1 -1
  123. package/build-module/components/layout/index.js +15 -20
  124. package/build-module/components/layout/index.js.map +1 -1
  125. package/build-module/components/layout/index.native.js.map +1 -1
  126. package/build-module/components/meta-boxes/index.js.map +1 -1
  127. package/build-module/components/meta-boxes/meta-box-visibility.js.map +1 -1
  128. package/build-module/components/meta-boxes/meta-boxes-area/index.js.map +1 -1
  129. package/build-module/components/preferences-modal/enable-custom-fields.js.map +1 -1
  130. package/build-module/components/preferences-modal/enable-panel.js.map +1 -1
  131. package/build-module/components/preferences-modal/enable-publish-sidebar.js.map +1 -1
  132. package/build-module/components/preferences-modal/index.js +1 -20
  133. package/build-module/components/preferences-modal/index.js.map +1 -1
  134. package/build-module/components/preferences-modal/meta-boxes-section.js.map +1 -1
  135. package/build-module/components/sidebar/plugin-post-publish-panel/index.js +14 -62
  136. package/build-module/components/sidebar/plugin-post-publish-panel/index.js.map +1 -1
  137. package/build-module/components/sidebar/plugin-pre-publish-panel/index.js +14 -61
  138. package/build-module/components/sidebar/plugin-pre-publish-panel/index.js.map +1 -1
  139. package/build-module/components/sidebar/post-format/index.js.map +1 -1
  140. package/build-module/components/sidebar/post-pending-status/index.js.map +1 -1
  141. package/build-module/components/sidebar/post-slug/index.js.map +1 -1
  142. package/build-module/components/sidebar/post-status/index.js +9 -10
  143. package/build-module/components/sidebar/post-status/index.js.map +1 -1
  144. package/build-module/components/sidebar/post-sticky/index.js.map +1 -1
  145. package/build-module/components/sidebar/post-trash/index.js.map +1 -1
  146. package/build-module/components/sidebar/post-visibility/index.js.map +1 -1
  147. package/build-module/components/sidebar/settings-header/index.js.map +1 -1
  148. package/build-module/components/sidebar/settings-sidebar/index.js +43 -41
  149. package/build-module/components/sidebar/settings-sidebar/index.js.map +1 -1
  150. package/build-module/components/text-editor/index.js.map +1 -1
  151. package/build-module/components/visual-editor/block-inspector-button.js +1 -1
  152. package/build-module/components/visual-editor/block-inspector-button.js.map +1 -1
  153. package/build-module/components/visual-editor/header.native.js.map +1 -1
  154. package/build-module/components/visual-editor/index.js +4 -1
  155. package/build-module/components/visual-editor/index.js.map +1 -1
  156. package/build-module/components/visual-editor/index.native.js.map +1 -1
  157. package/build-module/components/visual-editor/use-padding-appender.js +55 -0
  158. package/build-module/components/visual-editor/use-padding-appender.js.map +1 -0
  159. package/build-module/components/welcome-guide/default.js.map +1 -1
  160. package/build-module/components/welcome-guide/image.js.map +1 -1
  161. package/build-module/components/welcome-guide/index.js.map +1 -1
  162. package/build-module/components/welcome-guide/template.js.map +1 -1
  163. package/build-module/editor.js +9 -4
  164. package/build-module/editor.js.map +1 -1
  165. package/build-module/editor.native.js.map +1 -1
  166. package/build-module/hooks/commands/use-common-commands.js +9 -26
  167. package/build-module/hooks/commands/use-common-commands.js.map +1 -1
  168. package/build-module/hooks/components/index.js.map +1 -1
  169. package/build-module/hooks/index.js.map +1 -1
  170. package/build-module/hooks/use-navigate-to-entity-record.js +37 -20
  171. package/build-module/hooks/use-navigate-to-entity-record.js.map +1 -1
  172. package/build-module/hooks/validate-multiple-use/index.js.map +1 -1
  173. package/build-module/index.js +8 -8
  174. package/build-module/index.js.map +1 -1
  175. package/build-module/index.native.js +2 -4
  176. package/build-module/index.native.js.map +1 -1
  177. package/build-module/lock-unlock.js.map +1 -1
  178. package/build-module/plugins/copy-content-menu-item/index.js.map +1 -1
  179. package/build-module/plugins/index.js.map +1 -1
  180. package/build-module/plugins/keyboard-shortcuts-help-menu-item/index.js +6 -3
  181. package/build-module/plugins/keyboard-shortcuts-help-menu-item/index.js.map +1 -1
  182. package/build-module/plugins/welcome-guide-menu-item/index.js.map +1 -1
  183. package/build-module/store/actions.js +38 -22
  184. package/build-module/store/actions.js.map +1 -1
  185. package/build-module/store/constants.js.map +1 -1
  186. package/build-module/store/index.js.map +1 -1
  187. package/build-module/store/reducer.js +1 -13
  188. package/build-module/store/reducer.js.map +1 -1
  189. package/build-module/store/selectors.js +42 -21
  190. package/build-module/store/selectors.js.map +1 -1
  191. package/build-module/utils/meta-boxes.js.map +1 -1
  192. package/build-style/classic-rtl.css +2 -2
  193. package/build-style/classic.css +2 -2
  194. package/build-style/style-rtl.css +12 -454
  195. package/build-style/style.css +12 -454
  196. package/package.json +32 -34
  197. package/src/classic.scss +2 -1
  198. package/src/components/editor-initialization/index.js +1 -5
  199. package/src/components/editor-initialization/listener-hooks.js +1 -40
  200. package/src/components/editor-initialization/test/listener-hooks.js +1 -96
  201. package/src/components/header/index.js +3 -4
  202. package/src/components/header/index.native.js +1 -1
  203. package/src/components/header/more-menu/index.js +3 -4
  204. package/src/components/header/post-publish-button-or-toggle.js +10 -11
  205. package/src/components/header/preferences-menu-item/index.js +9 -3
  206. package/src/components/header/style.scss +5 -3
  207. package/src/components/header/test/index.js +13 -1
  208. package/src/components/keyboard-shortcuts/index.js +3 -44
  209. package/src/components/layout/actions-panel.js +5 -4
  210. package/src/components/layout/index.js +20 -42
  211. package/src/components/meta-boxes/meta-boxes-area/style.scss +1 -1
  212. package/src/components/preferences-modal/index.js +1 -24
  213. package/src/components/sidebar/plugin-post-publish-panel/index.js +12 -67
  214. package/src/components/sidebar/plugin-pre-publish-panel/index.js +12 -66
  215. package/src/components/sidebar/post-status/index.js +6 -9
  216. package/src/components/sidebar/settings-sidebar/index.js +64 -56
  217. package/src/components/visual-editor/block-inspector-button.js +1 -1
  218. package/src/components/visual-editor/index.js +4 -0
  219. package/src/components/visual-editor/use-padding-appender.js +66 -0
  220. package/src/editor.js +14 -4
  221. package/src/hooks/commands/use-common-commands.js +13 -28
  222. package/src/hooks/use-navigate-to-entity-record.js +37 -24
  223. package/src/index.js +11 -6
  224. package/src/index.native.js +1 -4
  225. package/src/plugins/keyboard-shortcuts-help-menu-item/index.js +5 -3
  226. package/src/store/actions.js +37 -24
  227. package/src/store/reducer.js +0 -13
  228. package/src/store/selectors.js +52 -36
  229. package/src/store/test/actions.js +11 -10
  230. package/src/style.scss +1 -20
  231. package/build/components/block-settings-menu/plugin-block-settings-menu-item.js +0 -107
  232. package/build/components/block-settings-menu/plugin-block-settings-menu-item.js.map +0 -1
  233. package/build/components/header/plugin-more-menu-item/index.js +0 -78
  234. package/build/components/header/plugin-more-menu-item/index.js.map +0 -1
  235. package/build/components/header/plugin-sidebar-more-menu-item/index.js +0 -71
  236. package/build/components/header/plugin-sidebar-more-menu-item/index.js.map +0 -1
  237. package/build/components/keyboard-shortcut-help-modal/config.js +0 -78
  238. package/build/components/keyboard-shortcut-help-modal/config.js.map +0 -1
  239. package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +0 -49
  240. package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +0 -1
  241. package/build/components/keyboard-shortcut-help-modal/index.js +0 -129
  242. package/build/components/keyboard-shortcut-help-modal/index.js.map +0 -1
  243. package/build/components/keyboard-shortcut-help-modal/shortcut.js +0 -55
  244. package/build/components/keyboard-shortcut-help-modal/shortcut.js.map +0 -1
  245. package/build/components/sidebar/plugin-post-status-info/index.js +0 -73
  246. package/build/components/sidebar/plugin-post-status-info/index.js.map +0 -1
  247. package/build/components/sidebar/plugin-sidebar/index.js +0 -104
  248. package/build/components/sidebar/plugin-sidebar/index.js.map +0 -1
  249. package/build/components/sidebar/template-summary/index.js +0 -36
  250. package/build/components/sidebar/template-summary/index.js.map +0 -1
  251. package/build/components/start-page-options/index.js +0 -107
  252. package/build/components/start-page-options/index.js.map +0 -1
  253. package/build-module/components/block-settings-menu/plugin-block-settings-menu-item.js +0 -100
  254. package/build-module/components/block-settings-menu/plugin-block-settings-menu-item.js.map +0 -1
  255. package/build-module/components/header/plugin-more-menu-item/index.js +0 -73
  256. package/build-module/components/header/plugin-more-menu-item/index.js.map +0 -1
  257. package/build-module/components/header/plugin-sidebar-more-menu-item/index.js +0 -65
  258. package/build-module/components/header/plugin-sidebar-more-menu-item/index.js.map +0 -1
  259. package/build-module/components/keyboard-shortcut-help-modal/config.js +0 -71
  260. package/build-module/components/keyboard-shortcut-help-modal/config.js.map +0 -1
  261. package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +0 -41
  262. package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +0 -1
  263. package/build-module/components/keyboard-shortcut-help-modal/index.js +0 -119
  264. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +0 -1
  265. package/build-module/components/keyboard-shortcut-help-modal/shortcut.js +0 -48
  266. package/build-module/components/keyboard-shortcut-help-modal/shortcut.js.map +0 -1
  267. package/build-module/components/sidebar/plugin-post-status-info/index.js +0 -66
  268. package/build-module/components/sidebar/plugin-post-status-info/index.js.map +0 -1
  269. package/build-module/components/sidebar/plugin-sidebar/index.js +0 -98
  270. package/build-module/components/sidebar/plugin-sidebar/index.js.map +0 -1
  271. package/build-module/components/sidebar/template-summary/index.js +0 -29
  272. package/build-module/components/sidebar/template-summary/index.js.map +0 -1
  273. package/build-module/components/start-page-options/index.js +0 -100
  274. package/build-module/components/start-page-options/index.js.map +0 -1
  275. package/src/components/block-settings-menu/plugin-block-settings-menu-item.js +0 -108
  276. package/src/components/header/plugin-more-menu-item/index.js +0 -73
  277. package/src/components/header/plugin-sidebar-more-menu-item/index.js +0 -64
  278. package/src/components/keyboard-shortcut-help-modal/config.js +0 -53
  279. package/src/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +0 -43
  280. package/src/components/keyboard-shortcut-help-modal/index.js +0 -159
  281. package/src/components/keyboard-shortcut-help-modal/shortcut.js +0 -67
  282. package/src/components/keyboard-shortcut-help-modal/style.scss +0 -61
  283. package/src/components/keyboard-shortcut-help-modal/test/index.js +0 -36
  284. package/src/components/sidebar/plugin-post-publish-panel/test/__snapshots__/index.js.snap +0 -39
  285. package/src/components/sidebar/plugin-post-publish-panel/test/index.js +0 -33
  286. package/src/components/sidebar/plugin-post-status-info/index.js +0 -63
  287. package/src/components/sidebar/plugin-post-status-info/test/__snapshots__/index.js.snap +0 -11
  288. package/src/components/sidebar/plugin-post-status-info/test/index.js +0 -29
  289. package/src/components/sidebar/plugin-pre-publish-panel/test/index.js +0 -33
  290. package/src/components/sidebar/plugin-sidebar/index.js +0 -94
  291. package/src/components/sidebar/template-summary/index.js +0 -37
  292. package/src/components/sidebar/template-summary/style.scss +0 -5
  293. package/src/components/start-page-options/index.js +0 -108
  294. package/src/components/start-page-options/style.scss +0 -26
@@ -7,35 +7,37 @@ import {
7
7
  drawerLeft,
8
8
  drawerRight,
9
9
  blockDefault,
10
- keyboard,
11
10
  fullscreen,
12
11
  formatListBullets,
13
12
  } from '@wordpress/icons';
14
13
  import { useCommand } from '@wordpress/commands';
15
14
  import { store as preferencesStore } from '@wordpress/preferences';
16
- import { store as interfaceStore } from '@wordpress/interface';
17
- import { store as editorStore } from '@wordpress/editor';
15
+ import {
16
+ store as editorStore,
17
+ privateApis as editorPrivateApis,
18
+ } from '@wordpress/editor';
18
19
  import { store as noticesStore } from '@wordpress/notices';
19
20
 
20
21
  /**
21
22
  * Internal dependencies
22
23
  */
23
- import { KEYBOARD_SHORTCUT_HELP_MODAL_NAME } from '../../components/keyboard-shortcut-help-modal';
24
- import { PREFERENCES_MODAL_NAME } from '../../components/preferences-modal';
25
24
  import { store as editPostStore } from '../../store';
25
+ import { unlock } from '../../lock-unlock';
26
+
27
+ const { interfaceStore } = unlock( editorPrivateApis );
26
28
 
27
29
  export default function useCommonCommands() {
28
30
  const { openGeneralSidebar, closeGeneralSidebar } =
29
31
  useDispatch( editPostStore );
30
- const { openModal } = useDispatch( interfaceStore );
31
32
  const { activeSidebar, isFullscreen, isPublishSidebarEnabled } = useSelect(
32
33
  ( select ) => {
33
34
  const { get } = select( preferencesStore );
34
35
 
35
36
  return {
36
- activeSidebar: select(
37
- interfaceStore
38
- ).getActiveComplementaryArea( editPostStore.name ),
37
+ activeSidebar:
38
+ select( interfaceStore ).getActiveComplementaryArea(
39
+ 'core'
40
+ ),
39
41
  isPublishSidebarEnabled:
40
42
  select( editorStore ).isPublishSidebarEnabled(),
41
43
  isFullscreen: get( 'core/edit-post', 'fullscreenMode' ),
@@ -101,23 +103,6 @@ export default function useCommonCommands() {
101
103
  },
102
104
  } );
103
105
 
104
- useCommand( {
105
- name: 'core/open-preferences',
106
- label: __( 'Editor preferences' ),
107
- callback: () => {
108
- openModal( PREFERENCES_MODAL_NAME );
109
- },
110
- } );
111
-
112
- useCommand( {
113
- name: 'core/open-shortcut-help',
114
- label: __( 'Keyboard shortcuts' ),
115
- icon: keyboard,
116
- callback: () => {
117
- openModal( KEYBOARD_SHORTCUT_HELP_MODAL_NAME );
118
- },
119
- } );
120
-
121
106
  useCommand( {
122
107
  name: 'core/toggle-publish-sidebar',
123
108
  label: isPublishSidebarEnabled
@@ -126,13 +111,13 @@ export default function useCommonCommands() {
126
111
  icon: formatListBullets,
127
112
  callback: ( { close } ) => {
128
113
  close();
129
- toggle( 'core/edit-post', 'isPublishSidebarEnabled' );
114
+ toggle( 'core', 'isPublishSidebarEnabled' );
130
115
  createInfoNotice(
131
116
  isPublishSidebarEnabled
132
117
  ? __( 'Pre-publish checks disabled.' )
133
118
  : __( 'Pre-publish checks enabled.' ),
134
119
  {
135
- id: 'core/edit-post/publish-sidebar/notice',
120
+ id: 'core/editor/publish-sidebar/notice',
136
121
  type: 'snackbar',
137
122
  }
138
123
  );
@@ -1,7 +1,9 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { useCallback, useReducer, useMemo } from '@wordpress/element';
4
+ import { useCallback, useReducer } from '@wordpress/element';
5
+ import { useSelect, useDispatch } from '@wordpress/data';
6
+ import { store as editorStore } from '@wordpress/editor';
5
7
 
6
8
  /**
7
9
  * A hook that records the 'entity' history in the post editor as a user
@@ -11,20 +13,22 @@ import { useCallback, useReducer, useMemo } from '@wordpress/element';
11
13
  *
12
14
  * Used to control displaying UI elements like the back button.
13
15
  *
14
- * @param {number} initialPostId The post id of the post when the editor loaded.
15
- * @param {string} initialPostType The post type of the post when the editor loaded.
16
+ * @param {number} initialPostId The post id of the post when the editor loaded.
17
+ * @param {string} initialPostType The post type of the post when the editor loaded.
18
+ * @param {string} defaultRenderingMode The rendering mode to switch to when navigating.
16
19
  *
17
20
  * @return {Object} An object containing the `currentPost` variable and
18
21
  * `onNavigateToEntityRecord` and `onNavigateToPreviousEntityRecord` functions.
19
22
  */
20
23
  export default function useNavigateToEntityRecord(
21
24
  initialPostId,
22
- initialPostType
25
+ initialPostType,
26
+ defaultRenderingMode
23
27
  ) {
24
28
  const [ postHistory, dispatch ] = useReducer(
25
- ( historyState, { type, post } ) => {
29
+ ( historyState, { type, post, previousRenderingMode } ) => {
26
30
  if ( type === 'push' ) {
27
- return [ ...historyState, post ];
31
+ return [ ...historyState, { post, previousRenderingMode } ];
28
32
  }
29
33
  if ( type === 'pop' ) {
30
34
  // Try to leave one item in the history.
@@ -34,32 +38,41 @@ export default function useNavigateToEntityRecord(
34
38
  }
35
39
  return historyState;
36
40
  },
37
- [ { postId: initialPostId, postType: initialPostType } ]
41
+ [
42
+ {
43
+ post: { postId: initialPostId, postType: initialPostType },
44
+ },
45
+ ]
38
46
  );
39
47
 
40
- const initialPost = useMemo( () => {
41
- return {
42
- type: initialPostType,
43
- id: initialPostId,
44
- };
45
- }, [ initialPostType, initialPostId ] );
48
+ const { post, previousRenderingMode } =
49
+ postHistory[ postHistory.length - 1 ];
46
50
 
47
- const onNavigateToEntityRecord = useCallback( ( params ) => {
48
- dispatch( {
49
- type: 'push',
50
- post: { postId: params.postId, postType: params.postType },
51
- } );
52
- }, [] );
51
+ const { getRenderingMode } = useSelect( editorStore );
52
+ const { setRenderingMode } = useDispatch( editorStore );
53
+
54
+ const onNavigateToEntityRecord = useCallback(
55
+ ( params ) => {
56
+ dispatch( {
57
+ type: 'push',
58
+ post: { postId: params.postId, postType: params.postType },
59
+ // Save the current rendering mode so we can restore it when navigating back.
60
+ previousRenderingMode: getRenderingMode(),
61
+ } );
62
+ setRenderingMode( defaultRenderingMode );
63
+ },
64
+ [ getRenderingMode, setRenderingMode, defaultRenderingMode ]
65
+ );
53
66
 
54
67
  const onNavigateToPreviousEntityRecord = useCallback( () => {
55
68
  dispatch( { type: 'pop' } );
56
- }, [] );
57
-
58
- const currentPost = postHistory[ postHistory.length - 1 ];
69
+ if ( previousRenderingMode ) {
70
+ setRenderingMode( previousRenderingMode );
71
+ }
72
+ }, [ setRenderingMode, previousRenderingMode ] );
59
73
 
60
74
  return {
61
- currentPost,
62
- initialPost,
75
+ currentPost: post,
63
76
  onNavigateToEntityRecord,
64
77
  onNavigateToPreviousEntityRecord:
65
78
  postHistory.length > 1
package/src/index.js CHANGED
@@ -15,7 +15,12 @@ import {
15
15
  registerWidgetGroupBlock,
16
16
  } from '@wordpress/widgets';
17
17
  import {
18
+ PluginBlockSettingsMenuItem,
18
19
  PluginDocumentSettingPanel,
20
+ PluginMoreMenuItem,
21
+ PluginPostStatusInfo,
22
+ PluginSidebar,
23
+ PluginSidebarMoreMenuItem,
19
24
  privateApis as editorPrivateApis,
20
25
  store as editorStore,
21
26
  } from '@wordpress/editor';
@@ -55,7 +60,6 @@ export function initializeEditor(
55
60
 
56
61
  dispatch( preferencesStore ).setDefaults( 'core/edit-post', {
57
62
  fullscreenMode: true,
58
- isPublishSidebarEnabled: true,
59
63
  themeStyles: true,
60
64
  welcomeGuide: true,
61
65
  welcomeGuideTemplate: true,
@@ -71,6 +75,7 @@ export function initializeEditor(
71
75
  showBlockBreadcrumbs: true,
72
76
  showIconLabels: false,
73
77
  showListViewByDefault: false,
78
+ isPublishSidebarEnabled: true,
74
79
  } );
75
80
 
76
81
  dispatch( blocksStore ).reapplyBlockTypeFilters();
@@ -161,14 +166,14 @@ export function reinitializeEditor() {
161
166
  } );
162
167
  }
163
168
 
164
- export { default as PluginBlockSettingsMenuItem } from './components/block-settings-menu/plugin-block-settings-menu-item';
169
+ export { PluginBlockSettingsMenuItem };
165
170
  export { PluginDocumentSettingPanel };
166
- export { default as PluginMoreMenuItem } from './components/header/plugin-more-menu-item';
171
+ export { PluginMoreMenuItem };
172
+ export { PluginPostStatusInfo };
173
+ export { PluginSidebar };
174
+ export { PluginSidebarMoreMenuItem };
167
175
  export { default as PluginPostPublishPanel } from './components/sidebar/plugin-post-publish-panel';
168
- export { default as PluginPostStatusInfo } from './components/sidebar/plugin-post-status-info';
169
176
  export { default as PluginPrePublishPanel } from './components/sidebar/plugin-pre-publish-panel';
170
- export { default as PluginSidebar } from './components/sidebar/plugin-sidebar';
171
- export { default as PluginSidebarMoreMenuItem } from './components/header/plugin-sidebar-more-menu-item';
172
177
  export { default as __experimentalFullscreenModeClose } from './components/header/fullscreen-mode-close';
173
178
  export { default as __experimentalMainDashboardButton } from './components/header/main-dashboard-button';
174
179
  export { __experimentalPluginPostExcerpt };
@@ -25,7 +25,6 @@ export function initializeEditor( id, postType, postId ) {
25
25
  editorMode: 'visual',
26
26
  fullscreenMode: true,
27
27
  inactivePanels: [],
28
- isPublishSidebarEnabled: true,
29
28
  openPanels: [ 'post-status' ],
30
29
  welcomeGuide: true,
31
30
  } );
@@ -33,9 +32,7 @@ export function initializeEditor( id, postType, postId ) {
33
32
  hiddenBlockTypes: [],
34
33
  inactivePanels: [],
35
34
  openPanels: [ 'post-status' ],
36
- } );
37
-
38
- dispatch( preferencesStore ).setDefaults( 'core', {
35
+ isPublishSidebarEnabled: true,
39
36
  fixedToolbar: false,
40
37
  } );
41
38
 
@@ -5,18 +5,20 @@ import { MenuItem } from '@wordpress/components';
5
5
  import { withDispatch } from '@wordpress/data';
6
6
  import { __ } from '@wordpress/i18n';
7
7
  import { displayShortcut } from '@wordpress/keycodes';
8
- import { store as interfaceStore } from '@wordpress/interface';
8
+ import { privateApis as editorPrivateApis } from '@wordpress/editor';
9
9
 
10
10
  /**
11
11
  * Internal dependencies
12
12
  */
13
- import { KEYBOARD_SHORTCUT_HELP_MODAL_NAME } from '../../components/keyboard-shortcut-help-modal';
13
+ import { unlock } from '../../lock-unlock';
14
+
15
+ const { interfaceStore } = unlock( editorPrivateApis );
14
16
 
15
17
  export function KeyboardShortcutsHelpMenuItem( { openModal } ) {
16
18
  return (
17
19
  <MenuItem
18
20
  onClick={ () => {
19
- openModal( KEYBOARD_SHORTCUT_HELP_MODAL_NAME );
21
+ openModal( 'editor/keyboard-shortcut-help' );
20
22
  } }
21
23
  shortcut={ displayShortcut.access( 'h' ) }
22
24
  >
@@ -2,9 +2,11 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import apiFetch from '@wordpress/api-fetch';
5
- import { store as interfaceStore } from '@wordpress/interface';
6
5
  import { store as preferencesStore } from '@wordpress/preferences';
7
- import { store as editorStore } from '@wordpress/editor';
6
+ import {
7
+ store as editorStore,
8
+ privateApis as editorPrivateApis,
9
+ } from '@wordpress/editor';
8
10
  import deprecated from '@wordpress/deprecated';
9
11
  import { addFilter } from '@wordpress/hooks';
10
12
 
@@ -12,9 +14,10 @@ import { addFilter } from '@wordpress/hooks';
12
14
  * Internal dependencies
13
15
  */
14
16
  import { getMetaBoxContainer } from '../utils/meta-boxes';
15
- import { store as editPostStore } from '.';
16
17
  import { unlock } from '../lock-unlock';
17
18
 
19
+ const { interfaceStore } = unlock( editorPrivateApis );
20
+
18
21
  /**
19
22
  * Returns an action object used in signalling that the user opened an editor sidebar.
20
23
  *
@@ -25,7 +28,7 @@ export const openGeneralSidebar =
25
28
  ( { registry } ) => {
26
29
  registry
27
30
  .dispatch( interfaceStore )
28
- .enableComplementaryArea( editPostStore.name, name );
31
+ .enableComplementaryArea( 'core', name );
29
32
  };
30
33
 
31
34
  /**
@@ -34,9 +37,7 @@ export const openGeneralSidebar =
34
37
  export const closeGeneralSidebar =
35
38
  () =>
36
39
  ( { registry } ) =>
37
- registry
38
- .dispatch( interfaceStore )
39
- .disableComplementaryArea( editPostStore.name );
40
+ registry.dispatch( interfaceStore ).disableComplementaryArea( 'core' );
40
41
 
41
42
  /**
42
43
  * Returns an action object used in signalling that the user opened a modal.
@@ -78,37 +79,52 @@ export const closeModal =
78
79
  /**
79
80
  * Returns an action object used in signalling that the user opened the publish
80
81
  * sidebar.
82
+ * @deprecated
81
83
  *
82
84
  * @return {Object} Action object
83
85
  */
84
- export function openPublishSidebar() {
85
- return {
86
- type: 'OPEN_PUBLISH_SIDEBAR',
86
+ export const openPublishSidebar =
87
+ () =>
88
+ ( { registry } ) => {
89
+ deprecated( "dispatch( 'core/edit-post' ).openPublishSidebar", {
90
+ since: '6.6',
91
+ alternative: "dispatch( 'core/editor').openPublishSidebar",
92
+ } );
93
+ registry.dispatch( editorStore ).openPublishSidebar();
87
94
  };
88
- }
89
95
 
90
96
  /**
91
97
  * Returns an action object used in signalling that the user closed the
92
98
  * publish sidebar.
99
+ * @deprecated
93
100
  *
94
101
  * @return {Object} Action object.
95
102
  */
96
- export function closePublishSidebar() {
97
- return {
98
- type: 'CLOSE_PUBLISH_SIDEBAR',
103
+ export const closePublishSidebar =
104
+ () =>
105
+ ( { registry } ) => {
106
+ deprecated( "dispatch( 'core/edit-post' ).closePublishSidebar", {
107
+ since: '6.6',
108
+ alternative: "dispatch( 'core/editor').closePublishSidebar",
109
+ } );
110
+ registry.dispatch( editorStore ).closePublishSidebar();
99
111
  };
100
- }
101
112
 
102
113
  /**
103
114
  * Returns an action object used in signalling that the user toggles the publish sidebar.
115
+ * @deprecated
104
116
  *
105
117
  * @return {Object} Action object
106
118
  */
107
- export function togglePublishSidebar() {
108
- return {
109
- type: 'TOGGLE_PUBLISH_SIDEBAR',
119
+ export const togglePublishSidebar =
120
+ () =>
121
+ ( { registry } ) => {
122
+ deprecated( "dispatch( 'core/edit-post' ).togglePublishSidebar", {
123
+ since: '6.6',
124
+ alternative: "dispatch( 'core/editor').togglePublishSidebar",
125
+ } );
126
+ registry.dispatch( editorStore ).togglePublishSidebar();
110
127
  };
111
- }
112
128
 
113
129
  /**
114
130
  * Returns an action object used to enable or disable a panel in the editor.
@@ -204,14 +220,11 @@ export const togglePinnedPluginItem =
204
220
  ( { registry } ) => {
205
221
  const isPinned = registry
206
222
  .select( interfaceStore )
207
- .isItemPinned( 'core/edit-post', pluginName );
223
+ .isItemPinned( 'core', pluginName );
208
224
 
209
225
  registry
210
226
  .dispatch( interfaceStore )
211
- [ isPinned ? 'unpinItem' : 'pinItem' ](
212
- 'core/edit-post',
213
- pluginName
214
- );
227
+ [ isPinned ? 'unpinItem' : 'pinItem' ]( 'core', pluginName );
215
228
  };
216
229
 
217
230
  /**
@@ -3,18 +3,6 @@
3
3
  */
4
4
  import { combineReducers } from '@wordpress/data';
5
5
 
6
- export function publishSidebarActive( state = false, action ) {
7
- switch ( action.type ) {
8
- case 'OPEN_PUBLISH_SIDEBAR':
9
- return true;
10
- case 'CLOSE_PUBLISH_SIDEBAR':
11
- return false;
12
- case 'TOGGLE_PUBLISH_SIDEBAR':
13
- return ! state;
14
- }
15
- return state;
16
- }
17
-
18
6
  /**
19
7
  * Reducer keeping track of the meta boxes isSaving state.
20
8
  * A "true" value means the meta boxes saving request is in-flight.
@@ -103,5 +91,4 @@ const metaBoxes = combineReducers( {
103
91
 
104
92
  export default combineReducers( {
105
93
  metaBoxes,
106
- publishSidebarActive,
107
94
  } );
@@ -1,16 +1,13 @@
1
- /**
2
- * External dependencies
3
- */
4
- import createSelector from 'rememo';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
9
- import { createRegistrySelector } from '@wordpress/data';
10
- import { store as interfaceStore } from '@wordpress/interface';
4
+ import { createSelector, createRegistrySelector } from '@wordpress/data';
11
5
  import { store as preferencesStore } from '@wordpress/preferences';
12
6
  import { store as coreStore } from '@wordpress/core-data';
13
- import { store as editorStore } from '@wordpress/editor';
7
+ import {
8
+ store as editorStore,
9
+ privateApis as editorPrivateApis,
10
+ } from '@wordpress/editor';
14
11
  import deprecated from '@wordpress/deprecated';
15
12
 
16
13
  /**
@@ -18,6 +15,7 @@ import deprecated from '@wordpress/deprecated';
18
15
  */
19
16
  import { unlock } from '../lock-unlock';
20
17
 
18
+ const { interfaceStore } = unlock( editorPrivateApis );
21
19
  const EMPTY_ARRAY = [];
22
20
  const EMPTY_OBJECT = {};
23
21
 
@@ -43,9 +41,7 @@ export const getEditorMode = createRegistrySelector(
43
41
  export const isEditorSidebarOpened = createRegistrySelector(
44
42
  ( select ) => () => {
45
43
  const activeGeneralSidebar =
46
- select( interfaceStore ).getActiveComplementaryArea(
47
- 'core/edit-post'
48
- );
44
+ select( interfaceStore ).getActiveComplementaryArea( 'core' );
49
45
  return [ 'edit-post/document', 'edit-post/block' ].includes(
50
46
  activeGeneralSidebar
51
47
  );
@@ -62,9 +58,7 @@ export const isEditorSidebarOpened = createRegistrySelector(
62
58
  export const isPluginSidebarOpened = createRegistrySelector(
63
59
  ( select ) => () => {
64
60
  const activeGeneralSidebar =
65
- select( interfaceStore ).getActiveComplementaryArea(
66
- 'core/edit-post'
67
- );
61
+ select( interfaceStore ).getActiveComplementaryArea( 'core' );
68
62
  return (
69
63
  !! activeGeneralSidebar &&
70
64
  ! [ 'edit-post/document', 'edit-post/block' ].includes(
@@ -90,9 +84,7 @@ export const isPluginSidebarOpened = createRegistrySelector(
90
84
  */
91
85
  export const getActiveGeneralSidebarName = createRegistrySelector(
92
86
  ( select ) => () => {
93
- return select( interfaceStore ).getActiveComplementaryArea(
94
- 'core/edit-post'
95
- );
87
+ return select( interfaceStore ).getActiveComplementaryArea( 'core' );
96
88
  }
97
89
  );
98
90
 
@@ -228,13 +220,21 @@ export const getHiddenBlockTypes = createRegistrySelector( ( select ) => () => {
228
220
  /**
229
221
  * Returns true if the publish sidebar is opened.
230
222
  *
223
+ * @deprecated
224
+ *
231
225
  * @param {Object} state Global application state
232
226
  *
233
227
  * @return {boolean} Whether the publish sidebar is open.
234
228
  */
235
- export function isPublishSidebarOpened( state ) {
236
- return state.publishSidebarActive;
237
- }
229
+ export const isPublishSidebarOpened = createRegistrySelector(
230
+ ( select ) => () => {
231
+ deprecated( `select( 'core/edit-post' ).isPublishSidebarOpened`, {
232
+ since: '6.6',
233
+ alternative: `select( 'core/editor' ).isPublishSidebarOpened`,
234
+ } );
235
+ return select( editorStore ).isPublishSidebarOpened();
236
+ }
237
+ );
238
238
 
239
239
  /**
240
240
  * Returns true if the given panel was programmatically removed, or false otherwise.
@@ -344,10 +344,7 @@ export const isFeatureActive = createRegistrySelector(
344
344
  */
345
345
  export const isPluginItemPinned = createRegistrySelector(
346
346
  ( select ) => ( state, pluginName ) => {
347
- return select( interfaceStore ).isItemPinned(
348
- 'core/edit-post',
349
- pluginName
350
- );
347
+ return select( interfaceStore ).isItemPinned( 'core', pluginName );
351
348
  }
352
349
  );
353
350
 
@@ -559,36 +556,55 @@ export function areMetaBoxesInitialized( state ) {
559
556
  */
560
557
  export const getEditedPostTemplate = createRegistrySelector(
561
558
  ( select ) => () => {
559
+ const {
560
+ id: postId,
561
+ type: postType,
562
+ slug,
563
+ } = select( editorStore ).getCurrentPost();
564
+ const { getSite, getEditedEntityRecord, getEntityRecords } =
565
+ select( coreStore );
566
+ const siteSettings = getSite();
567
+ // First check if the current page is set as the posts page.
568
+ const isPostsPage = +postId === siteSettings?.page_for_posts;
569
+ if ( isPostsPage ) {
570
+ const defaultTemplateId = select( coreStore ).getDefaultTemplateId(
571
+ { slug: 'home' }
572
+ );
573
+ return getEditedEntityRecord(
574
+ 'postType',
575
+ 'wp_template',
576
+ defaultTemplateId
577
+ );
578
+ }
562
579
  const currentTemplate =
563
580
  select( editorStore ).getEditedPostAttribute( 'template' );
564
581
  if ( currentTemplate ) {
565
- const templateWithSameSlug = select( coreStore )
566
- .getEntityRecords( 'postType', 'wp_template', { per_page: -1 } )
567
- ?.find( ( template ) => template.slug === currentTemplate );
582
+ const templateWithSameSlug = getEntityRecords(
583
+ 'postType',
584
+ 'wp_template',
585
+ { per_page: -1 }
586
+ )?.find( ( template ) => template.slug === currentTemplate );
568
587
  if ( ! templateWithSameSlug ) {
569
588
  return templateWithSameSlug;
570
589
  }
571
- return select( coreStore ).getEditedEntityRecord(
590
+ return getEditedEntityRecord(
572
591
  'postType',
573
592
  'wp_template',
574
593
  templateWithSameSlug.id
575
594
  );
576
595
  }
577
-
578
- const post = select( editorStore ).getCurrentPost();
579
596
  let slugToCheck;
580
597
  // In `draft` status we might not have a slug available, so we use the `single`
581
598
  // post type templates slug(ex page, single-post, single-product etc..).
582
599
  // Pages do not need the `single` prefix in the slug to be prioritized
583
600
  // through template hierarchy.
584
- if ( post.slug ) {
601
+ if ( slug ) {
585
602
  slugToCheck =
586
- post.type === 'page'
587
- ? `${ post.type }-${ post.slug }`
588
- : `single-${ post.type }-${ post.slug }`;
603
+ postType === 'page'
604
+ ? `${ postType }-${ slug }`
605
+ : `single-${ postType }-${ slug }`;
589
606
  } else {
590
- slugToCheck =
591
- post.type === 'page' ? 'page' : `single-${ post.type }`;
607
+ slugToCheck = postType === 'page' ? 'page' : `single-${ postType }`;
592
608
  }
593
609
  const defaultTemplateId = select( coreStore ).getDefaultTemplateId( {
594
610
  slug: slugToCheck,
@@ -2,17 +2,22 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { createRegistry } from '@wordpress/data';
5
- import { store as interfaceStore } from '@wordpress/interface';
6
5
  import { store as preferencesStore } from '@wordpress/preferences';
7
6
  import { store as noticesStore } from '@wordpress/notices';
8
7
  import { store as coreStore } from '@wordpress/core-data';
9
8
  import { store as blockEditorStore } from '@wordpress/block-editor';
10
- import { store as editorStore } from '@wordpress/editor';
9
+ import {
10
+ store as editorStore,
11
+ privateApis as editorPrivateApis,
12
+ } from '@wordpress/editor';
11
13
 
12
14
  /**
13
15
  * Internal dependencies
14
16
  */
15
17
  import { store as editPostStore } from '..';
18
+ import { unlock } from '../../lock-unlock';
19
+
20
+ const { interfaceStore } = unlock( editorPrivateApis );
16
21
 
17
22
  function createRegistryWithStores() {
18
23
  // Create a registry and register used stores.
@@ -40,7 +45,7 @@ describe( 'actions', () => {
40
45
  expect(
41
46
  registry
42
47
  .select( interfaceStore )
43
- .getActiveComplementaryArea( 'core/edit-post' )
48
+ .getActiveComplementaryArea( 'core' )
44
49
  ).toBe( 'test/sidebar' );
45
50
 
46
51
  registry
@@ -49,7 +54,7 @@ describe( 'actions', () => {
49
54
  expect(
50
55
  registry
51
56
  .select( interfaceStore )
52
- .getActiveComplementaryArea( 'core/edit-post' )
57
+ .getActiveComplementaryArea( 'core' )
53
58
  ).toBeNull();
54
59
  } );
55
60
 
@@ -74,15 +79,11 @@ describe( 'actions', () => {
74
79
  // Sidebars are pinned by default.
75
80
  // @See https://github.com/WordPress/gutenberg/pull/21645
76
81
  expect(
77
- registry
78
- .select( interfaceStore )
79
- .isItemPinned( editPostStore.name, 'rigatoni' )
82
+ registry.select( interfaceStore ).isItemPinned( 'core', 'rigatoni' )
80
83
  ).toBe( false );
81
84
  registry.dispatch( editPostStore ).togglePinnedPluginItem( 'rigatoni' );
82
85
  expect(
83
- registry
84
- .select( interfaceStore )
85
- .isItemPinned( editPostStore.name, 'rigatoni' )
86
+ registry.select( interfaceStore ).isItemPinned( 'core', 'rigatoni' )
86
87
  ).toBe( true );
87
88
  } );
88
89