@wordpress/edit-post 5.1.0 → 6.0.1

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 (44) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +10 -4
  3. package/build/components/block-manager/index.js +18 -1
  4. package/build/components/block-manager/index.js.map +1 -1
  5. package/build/components/header/plugin-more-menu-item/index.js +1 -1
  6. package/build/components/header/plugin-more-menu-item/index.js.map +1 -1
  7. package/build/components/layout/index.js +14 -1
  8. package/build/components/layout/index.js.map +1 -1
  9. package/build/components/preferences-modal/index.js +13 -5
  10. package/build/components/preferences-modal/index.js.map +1 -1
  11. package/build/components/sidebar/template/actions.js +5 -2
  12. package/build/components/sidebar/template/actions.js.map +1 -1
  13. package/build/components/sidebar/template/index.js +23 -12
  14. package/build/components/sidebar/template/index.js.map +1 -1
  15. package/build/index.js +1 -1
  16. package/build/index.js.map +1 -1
  17. package/build-module/components/block-manager/index.js +17 -2
  18. package/build-module/components/block-manager/index.js.map +1 -1
  19. package/build-module/components/header/plugin-more-menu-item/index.js +1 -1
  20. package/build-module/components/header/plugin-more-menu-item/index.js.map +1 -1
  21. package/build-module/components/layout/index.js +14 -2
  22. package/build-module/components/layout/index.js.map +1 -1
  23. package/build-module/components/preferences-modal/index.js +13 -5
  24. package/build-module/components/preferences-modal/index.js.map +1 -1
  25. package/build-module/components/sidebar/template/actions.js +5 -2
  26. package/build-module/components/sidebar/template/actions.js.map +1 -1
  27. package/build-module/components/sidebar/template/index.js +24 -13
  28. package/build-module/components/sidebar/template/index.js.map +1 -1
  29. package/build-module/index.js +1 -1
  30. package/build-module/index.js.map +1 -1
  31. package/build-style/style-rtl.css +8 -0
  32. package/build-style/style.css +8 -0
  33. package/package.json +26 -29
  34. package/src/components/block-manager/index.js +18 -1
  35. package/src/components/header/plugin-more-menu-item/index.js +1 -1
  36. package/src/components/layout/index.js +16 -2
  37. package/src/components/preferences-modal/index.js +22 -4
  38. package/src/components/sidebar/plugin-post-publish-panel/test/__snapshots__/index.js.snap +1 -1
  39. package/src/components/sidebar/plugin-pre-publish-panel/test/__snapshots__/index.js.snap +1 -1
  40. package/src/components/sidebar/template/actions.js +12 -7
  41. package/src/components/sidebar/template/index.js +55 -31
  42. package/src/components/sidebar/template/style.scss +8 -0
  43. package/src/components/visual-editor/style.scss +1 -0
  44. package/src/index.js +1 -1
@@ -8,7 +8,7 @@ import { partial, isEmpty, map, fromPairs } from 'lodash';
8
8
  */
9
9
  import { __, sprintf } from '@wordpress/i18n';
10
10
  import { useMemo } from '@wordpress/element';
11
- import { PanelBody, SelectControl } from '@wordpress/components';
11
+ import { Notice, PanelBody, SelectControl } from '@wordpress/components';
12
12
  import { store as editorStore } from '@wordpress/editor';
13
13
  import { useSelect, useDispatch } from '@wordpress/data';
14
14
  import { store as coreStore } from '@wordpress/core-data';
@@ -28,6 +28,7 @@ export function TemplatePanel() {
28
28
  const {
29
29
  isEnabled,
30
30
  isOpened,
31
+ isPostsPage,
31
32
  selectedTemplate,
32
33
  availableTemplates,
33
34
  fetchedTemplates,
@@ -44,33 +45,36 @@ export function TemplatePanel() {
44
45
  const {
45
46
  getEditedPostAttribute,
46
47
  getEditorSettings,
48
+ getCurrentPostId,
47
49
  getCurrentPostType,
48
50
  } = select( editorStore );
49
- const { getPostType, getEntityRecords, canUser } = select( coreStore );
51
+ const {
52
+ getPostType,
53
+ getEntityRecord,
54
+ getEntityRecords,
55
+ canUser,
56
+ } = select( coreStore );
57
+
58
+ const currentPostId = getCurrentPostId();
50
59
  const currentPostType = getCurrentPostType();
60
+ const settings = getEntityRecord( 'root', 'site' );
51
61
  const _isViewable = getPostType( currentPostType )?.viewable ?? false;
52
62
  const _supportsTemplateMode =
53
63
  select( editorStore ).getEditorSettings().supportsTemplateMode &&
54
64
  _isViewable;
55
65
 
56
- const wpTemplates = getEntityRecords( 'postType', 'wp_template', {
66
+ const templateRecords = getEntityRecords( 'postType', 'wp_template', {
57
67
  post_type: currentPostType,
58
68
  per_page: -1,
59
69
  } );
60
70
 
61
- const newAvailableTemplates = fromPairs(
62
- ( wpTemplates || [] ).map( ( { slug, title } ) => [
63
- slug,
64
- title.rendered,
65
- ] )
66
- );
67
-
68
71
  return {
69
72
  isEnabled: isEditorPanelEnabled( PANEL_NAME ),
70
73
  isOpened: isEditorPanelOpened( PANEL_NAME ),
74
+ isPostsPage: currentPostId === settings?.page_for_posts,
71
75
  selectedTemplate: getEditedPostAttribute( 'template' ),
72
76
  availableTemplates: getEditorSettings().availableTemplates,
73
- fetchedTemplates: newAvailableTemplates,
77
+ fetchedTemplates: templateRecords,
74
78
  template: _supportsTemplateMode && getEditedPostTemplate(),
75
79
  isViewable: _isViewable,
76
80
  supportsTemplateMode: _supportsTemplateMode,
@@ -81,7 +85,12 @@ export function TemplatePanel() {
81
85
  const templates = useMemo( () => {
82
86
  return {
83
87
  ...availableTemplates,
84
- ...fetchedTemplates,
88
+ ...fromPairs(
89
+ ( fetchedTemplates ?? [] ).map( ( { slug, title } ) => [
90
+ slug,
91
+ title.rendered,
92
+ ] )
93
+ ),
85
94
  };
86
95
  }, [ availableTemplates, fetchedTemplates ] );
87
96
 
@@ -114,25 +123,40 @@ export function TemplatePanel() {
114
123
  opened={ isOpened }
115
124
  onToggle={ onTogglePanel }
116
125
  >
117
- <SelectControl
118
- hideLabelFromVision
119
- label={ __( 'Template:' ) }
120
- value={
121
- Object.keys( templates ).includes( selectedTemplate )
122
- ? selectedTemplate
123
- : ''
124
- }
125
- onChange={ ( templateSlug ) => {
126
- editPost( {
127
- template: templateSlug || '',
128
- } );
129
- } }
130
- options={ map( templates, ( templateName, templateSlug ) => ( {
131
- value: templateSlug,
132
- label: templateName,
133
- } ) ) }
134
- />
135
- { canUserCreate && <PostTemplateActions /> }
126
+ { isPostsPage ? (
127
+ <Notice
128
+ className="edit-post-template__notice"
129
+ status="warning"
130
+ isDismissible={ false }
131
+ >
132
+ { __( 'The posts page template cannot be changed.' ) }
133
+ </Notice>
134
+ ) : (
135
+ <SelectControl
136
+ hideLabelFromVision
137
+ label={ __( 'Template:' ) }
138
+ value={
139
+ Object.keys( templates ).includes( selectedTemplate )
140
+ ? selectedTemplate
141
+ : ''
142
+ }
143
+ onChange={ ( templateSlug ) => {
144
+ editPost( {
145
+ template: templateSlug || '',
146
+ } );
147
+ } }
148
+ options={ map(
149
+ templates,
150
+ ( templateName, templateSlug ) => ( {
151
+ value: templateSlug,
152
+ label: templateName,
153
+ } )
154
+ ) }
155
+ />
156
+ ) }
157
+ { canUserCreate && (
158
+ <PostTemplateActions isPostsPage={ isPostsPage } />
159
+ ) }
136
160
  </PanelBody>
137
161
  );
138
162
  }
@@ -28,6 +28,14 @@
28
28
  }
29
29
  }
30
30
 
31
+ .edit-post-template__notice {
32
+ margin: 0 0 $grid-unit-10 0;
33
+
34
+ .components-notice__content {
35
+ margin: 0;
36
+ }
37
+ }
38
+
31
39
  .edit-post-template__actions {
32
40
  button:not(:last-child) {
33
41
  margin-right: $grid-unit-10;
@@ -66,6 +66,7 @@
66
66
  width: 100%;
67
67
  height: 100%;
68
68
  position: relative;
69
+ box-sizing: border-box;
69
70
  display: flex;
70
71
 
71
72
  // This is necessary for older browsers due to their flex height interpretation.
package/src/index.js CHANGED
@@ -118,7 +118,7 @@ export function initializeEditor(
118
118
 
119
119
  dispatch( blocksStore ).__experimentalReapplyBlockTypeFilters();
120
120
  registerCoreBlocks();
121
- if ( process.env.GUTENBERG_PHASE === 2 ) {
121
+ if ( process.env.IS_GUTENBERG_PLUGIN ) {
122
122
  __experimentalRegisterExperimentalCoreBlocks( {
123
123
  enableFSEBlocks: settings.__unstableEnableFullSiteEditingBlocks,
124
124
  } );