@wordpress/editor 13.27.1 → 13.28.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.
- package/CHANGELOG.md +2 -0
- package/build/bindings/post-meta.js +3 -4
- package/build/bindings/post-meta.js.map +1 -1
- package/build/components/autocompleters/user.js +1 -2
- package/build/components/autocompleters/user.js.map +1 -1
- package/build/components/autosave-monitor/index.js +1 -2
- package/build/components/autosave-monitor/index.js.map +1 -1
- package/build/components/block-manager/category.js +1 -2
- package/build/components/block-manager/category.js.map +1 -1
- package/build/components/block-manager/checklist.js +1 -2
- package/build/components/block-manager/checklist.js.map +1 -1
- package/build/components/block-manager/index.js +1 -2
- package/build/components/block-manager/index.js.map +1 -1
- package/build/components/deprecated.js +52 -104
- package/build/components/deprecated.js.map +1 -1
- package/build/components/document-bar/index.js +7 -23
- package/build/components/document-bar/index.js.map +1 -1
- package/build/components/document-outline/check.js +1 -2
- package/build/components/document-outline/check.js.map +1 -1
- package/build/components/document-outline/index.js +1 -2
- package/build/components/document-outline/index.js.map +1 -1
- package/build/components/document-outline/item.js +1 -2
- package/build/components/document-outline/item.js.map +1 -1
- package/build/components/document-tools/index.js +1 -2
- package/build/components/document-tools/index.js.map +1 -1
- package/build/components/editor-canvas/edit-template-blocks-notification.js +22 -13
- package/build/components/editor-canvas/edit-template-blocks-notification.js.map +1 -1
- package/build/components/editor-canvas/index.js +16 -12
- package/build/components/editor-canvas/index.js.map +1 -1
- package/build/components/editor-help/add-blocks.native.js +1 -2
- package/build/components/editor-help/add-blocks.native.js.map +1 -1
- package/build/components/editor-help/customize-blocks.native.js +1 -2
- package/build/components/editor-help/customize-blocks.native.js.map +1 -1
- package/build/components/editor-help/help-detail-navigation-screen.native.js +1 -2
- package/build/components/editor-help/help-detail-navigation-screen.native.js.map +1 -1
- package/build/components/editor-help/help-get-support-button.native.js +1 -2
- package/build/components/editor-help/help-get-support-button.native.js.map +1 -1
- package/build/components/editor-help/help-section-title.native.js +1 -2
- package/build/components/editor-help/help-section-title.native.js.map +1 -1
- package/build/components/editor-help/help-topic-row.native.js +1 -2
- package/build/components/editor-help/help-topic-row.native.js.map +1 -1
- package/build/components/editor-help/icon-move-blocks.native.js +1 -2
- package/build/components/editor-help/icon-move-blocks.native.js.map +1 -1
- package/build/components/editor-help/index.native.js +1 -2
- package/build/components/editor-help/index.native.js.map +1 -1
- package/build/components/editor-help/intro-to-blocks.native.js +1 -2
- package/build/components/editor-help/intro-to-blocks.native.js.map +1 -1
- package/build/components/editor-help/move-blocks.native.js +1 -2
- package/build/components/editor-help/move-blocks.native.js.map +1 -1
- package/build/components/editor-help/remove-blocks.native.js +1 -2
- package/build/components/editor-help/remove-blocks.native.js.map +1 -1
- package/build/components/editor-history/redo.js +1 -2
- package/build/components/editor-history/redo.js.map +1 -1
- package/build/components/editor-history/undo.js +1 -2
- package/build/components/editor-history/undo.js.map +1 -1
- package/build/components/editor-notices/index.js +1 -2
- package/build/components/editor-notices/index.js.map +1 -1
- package/build/components/editor-snackbars/index.js +3 -1
- package/build/components/editor-snackbars/index.js.map +1 -1
- package/build/components/entities-saved-states/entity-record-item.js +1 -1
- package/build/components/entities-saved-states/entity-record-item.js.map +1 -1
- package/build/components/entities-saved-states/entity-type-list.js +7 -7
- package/build/components/entities-saved-states/entity-type-list.js.map +1 -1
- package/build/components/entities-saved-states/index.js +4 -1
- package/build/components/entities-saved-states/index.js.map +1 -1
- package/build/components/error-boundary/index.js +1 -2
- package/build/components/error-boundary/index.js.map +1 -1
- package/build/components/global-keyboard-shortcuts/register-shortcuts.js +1 -2
- package/build/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
- package/build/components/index.js +4 -6
- package/build/components/index.js.map +1 -1
- package/build/components/list-view-sidebar/index.js +43 -36
- package/build/components/list-view-sidebar/index.js.map +1 -1
- package/build/components/local-autosave-monitor/index.js +1 -2
- package/build/components/local-autosave-monitor/index.js.map +1 -1
- package/build/components/media-categories/index.js +1 -2
- package/build/components/media-categories/index.js.map +1 -1
- package/build/components/offline-status/index.native.js +1 -2
- package/build/components/offline-status/index.native.js.map +1 -1
- package/build/components/page-attributes/check.js +1 -2
- package/build/components/page-attributes/check.js.map +1 -1
- package/build/components/page-attributes/panel.js +1 -2
- package/build/components/page-attributes/panel.js.map +1 -1
- package/build/components/page-attributes/parent.js +1 -2
- package/build/components/page-attributes/parent.js.map +1 -1
- package/build/components/post-author/combobox.js +6 -60
- package/build/components/post-author/combobox.js.map +1 -1
- package/build/components/post-author/constants.js +7 -5
- package/build/components/post-author/constants.js.map +1 -1
- package/build/components/post-author/hook.js +72 -0
- package/build/components/post-author/hook.js.map +1 -0
- package/build/components/post-author/index.js +1 -2
- package/build/components/post-author/index.js.map +1 -1
- package/build/components/post-author/panel.js +1 -2
- package/build/components/post-author/panel.js.map +1 -1
- package/build/components/post-author/select.js +6 -24
- package/build/components/post-author/select.js.map +1 -1
- package/build/components/post-comments/index.js +1 -2
- package/build/components/post-comments/index.js.map +1 -1
- package/build/components/post-discussion/panel.js +1 -2
- package/build/components/post-discussion/panel.js.map +1 -1
- package/build/components/post-excerpt/check.js +1 -2
- package/build/components/post-excerpt/check.js.map +1 -1
- package/build/components/post-excerpt/index.js +1 -2
- package/build/components/post-excerpt/index.js.map +1 -1
- package/build/components/post-excerpt/plugin.js +1 -2
- package/build/components/post-excerpt/plugin.js.map +1 -1
- package/build/components/post-featured-image/check.js +1 -2
- package/build/components/post-featured-image/check.js.map +1 -1
- package/build/components/post-featured-image/index.js +1 -2
- package/build/components/post-featured-image/index.js.map +1 -1
- package/build/components/post-featured-image/panel.js +1 -2
- package/build/components/post-featured-image/panel.js.map +1 -1
- package/build/components/post-format/check.js +1 -2
- package/build/components/post-format/check.js.map +1 -1
- package/build/components/post-format/index.js +1 -2
- package/build/components/post-format/index.js.map +1 -1
- package/build/components/post-last-revision/check.js +1 -2
- package/build/components/post-last-revision/check.js.map +1 -1
- package/build/components/post-last-revision/index.js +6 -5
- package/build/components/post-last-revision/index.js.map +1 -1
- package/build/components/post-last-revision/panel.js +1 -2
- package/build/components/post-last-revision/panel.js.map +1 -1
- package/build/components/post-panel-row/index.js +1 -2
- package/build/components/post-panel-row/index.js.map +1 -1
- package/build/components/post-pending-status/check.js +1 -2
- package/build/components/post-pending-status/check.js.map +1 -1
- package/build/components/post-pending-status/index.js +1 -2
- package/build/components/post-pending-status/index.js.map +1 -1
- package/build/components/post-pingbacks/index.js +1 -2
- package/build/components/post-pingbacks/index.js.map +1 -1
- package/build/components/post-publish-button/index.js +1 -2
- package/build/components/post-publish-button/index.js.map +1 -1
- package/build/components/post-publish-button/label.js +1 -2
- package/build/components/post-publish-button/label.js.map +1 -1
- package/build/components/post-publish-panel/index.js +1 -2
- package/build/components/post-publish-panel/index.js.map +1 -1
- package/build/components/post-publish-panel/maybe-category-panel.js +1 -2
- package/build/components/post-publish-panel/maybe-category-panel.js.map +1 -1
- package/build/components/post-publish-panel/maybe-tags-panel.js +22 -26
- package/build/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
- package/build/components/post-publish-panel/postpublish.js +1 -2
- package/build/components/post-publish-panel/postpublish.js.map +1 -1
- package/build/components/post-publish-panel/prepublish.js +1 -2
- package/build/components/post-publish-panel/prepublish.js.map +1 -1
- package/build/components/post-schedule/index.js +0 -1
- package/build/components/post-schedule/index.js.map +1 -1
- package/build/components/post-schedule/label.js +1 -1
- package/build/components/post-schedule/label.js.map +1 -1
- package/build/components/post-schedule/panel.js +1 -0
- package/build/components/post-schedule/panel.js.map +1 -1
- package/build/components/post-slug/index.js +1 -2
- package/build/components/post-slug/index.js.map +1 -1
- package/build/components/post-switch-to-draft-button/index.js +1 -0
- package/build/components/post-switch-to-draft-button/index.js.map +1 -1
- package/build/components/post-sync-status/index.js +1 -1
- package/build/components/post-sync-status/index.js.map +1 -1
- package/build/components/post-taxonomies/check.js +8 -15
- package/build/components/post-taxonomies/check.js.map +1 -1
- package/build/components/post-taxonomies/flat-term-selector.js +1 -2
- package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build/components/post-taxonomies/hierarchical-term-selector.js +1 -2
- package/build/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
- package/build/components/post-taxonomies/index.js +14 -15
- package/build/components/post-taxonomies/index.js.map +1 -1
- package/build/components/post-taxonomies/panel.js +1 -2
- package/build/components/post-taxonomies/panel.js.map +1 -1
- package/build/components/post-template/block-theme.js +24 -11
- package/build/components/post-template/block-theme.js.map +1 -1
- package/build/components/post-template/classic-theme.js +17 -13
- package/build/components/post-template/classic-theme.js.map +1 -1
- package/build/components/post-template/create-new-template-modal.js +20 -5
- package/build/components/post-template/create-new-template-modal.js.map +1 -1
- package/build/components/post-template/panel.js +5 -1
- package/build/components/post-template/panel.js.map +1 -1
- package/build/components/post-title/constants.js +2 -4
- package/build/components/post-title/constants.js.map +1 -1
- package/build/components/post-title/index.js +2 -3
- package/build/components/post-title/index.js.map +1 -1
- package/build/components/post-title/index.native.js +1 -2
- package/build/components/post-title/index.native.js.map +1 -1
- package/build/components/post-title/post-title-raw.js +1 -2
- package/build/components/post-title/post-title-raw.js.map +1 -1
- package/build/components/post-trash/check.js +1 -2
- package/build/components/post-trash/check.js.map +1 -1
- package/build/components/post-trash/index.js +1 -0
- package/build/components/post-trash/index.js.map +1 -1
- package/build/components/post-type-support-check/index.js +1 -2
- package/build/components/post-type-support-check/index.js.map +1 -1
- package/build/components/post-url/panel.js +1 -0
- package/build/components/post-url/panel.js.map +1 -1
- package/build/components/post-visibility/utils.js +1 -2
- package/build/components/post-visibility/utils.js.map +1 -1
- package/build/components/preferences-modal/enable-panel.js +1 -2
- package/build/components/preferences-modal/enable-panel.js.map +1 -1
- package/build/components/preferences-modal/enable-plugin-document-setting-panel.js +1 -2
- package/build/components/preferences-modal/enable-plugin-document-setting-panel.js.map +1 -1
- package/build/components/preferences-modal/index.js +0 -1
- package/build/components/preferences-modal/index.js.map +1 -1
- package/build/components/provider/constants.js +1 -2
- package/build/components/provider/constants.js.map +1 -1
- package/build/components/provider/index.js +13 -7
- package/build/components/provider/index.js.map +1 -1
- package/build/components/provider/index.native.js +4 -6
- package/build/components/provider/index.native.js.map +1 -1
- package/build/components/provider/use-block-editor-settings.js +2 -3
- package/build/components/provider/use-block-editor-settings.js.map +1 -1
- package/build/components/provider/use-block-editor-settings.native.js +1 -2
- package/build/components/provider/use-block-editor-settings.native.js.map +1 -1
- package/build/components/provider/with-registry-provider.js +1 -2
- package/build/components/provider/with-registry-provider.js.map +1 -1
- package/build/components/table-of-contents/index.js +1 -2
- package/build/components/table-of-contents/index.js.map +1 -1
- package/build/components/table-of-contents/panel.js +1 -2
- package/build/components/table-of-contents/panel.js.map +1 -1
- package/build/components/template-validation-notice/index.js +1 -2
- package/build/components/template-validation-notice/index.js.map +1 -1
- package/build/components/theme-support-check/index.js +1 -2
- package/build/components/theme-support-check/index.js.map +1 -1
- package/build/hooks/pattern-partial-syncing.js +9 -2
- package/build/hooks/pattern-partial-syncing.js.map +1 -1
- package/build/private-apis.js +1 -2
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +38 -65
- package/build/store/actions.js.map +1 -1
- package/build/store/constants.js +7 -14
- package/build/store/constants.js.map +1 -1
- package/build/store/defaults.js +1 -2
- package/build/store/defaults.js.map +1 -1
- package/build/store/index.js +4 -6
- package/build/store/index.js.map +1 -1
- package/build/store/private-actions.js +1 -0
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +1 -2
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +1 -2
- package/build/store/reducer.js.map +1 -1
- package/build/store/reducer.native.js +2 -4
- package/build/store/reducer.native.js.map +1 -1
- package/build/store/selectors.js +82 -144
- package/build/store/selectors.js.map +1 -1
- package/build/store/selectors.native.js +1 -2
- package/build/store/selectors.native.js.map +1 -1
- package/build-module/bindings/post-meta.js +2 -2
- package/build-module/bindings/post-meta.js.map +1 -1
- package/build-module/components/document-bar/index.js +7 -23
- package/build-module/components/document-bar/index.js.map +1 -1
- package/build-module/components/editor-canvas/edit-template-blocks-notification.js +22 -13
- package/build-module/components/editor-canvas/edit-template-blocks-notification.js.map +1 -1
- package/build-module/components/editor-canvas/index.js +15 -10
- package/build-module/components/editor-canvas/index.js.map +1 -1
- package/build-module/components/editor-snackbars/index.js +4 -1
- package/build-module/components/editor-snackbars/index.js.map +1 -1
- package/build-module/components/entities-saved-states/entity-record-item.js +1 -1
- package/build-module/components/entities-saved-states/entity-record-item.js.map +1 -1
- package/build-module/components/entities-saved-states/entity-type-list.js +8 -8
- package/build-module/components/entities-saved-states/entity-type-list.js.map +1 -1
- package/build-module/components/entities-saved-states/index.js +6 -3
- package/build-module/components/entities-saved-states/index.js.map +1 -1
- package/build-module/components/list-view-sidebar/index.js +44 -37
- package/build-module/components/list-view-sidebar/index.js.map +1 -1
- package/build-module/components/post-author/combobox.js +8 -61
- package/build-module/components/post-author/combobox.js.map +1 -1
- package/build-module/components/post-author/constants.js +5 -2
- package/build-module/components/post-author/constants.js.map +1 -1
- package/build-module/components/post-author/hook.js +65 -0
- package/build-module/components/post-author/hook.js.map +1 -0
- package/build-module/components/post-author/select.js +7 -24
- package/build-module/components/post-author/select.js.map +1 -1
- package/build-module/components/post-last-revision/index.js +6 -4
- package/build-module/components/post-last-revision/index.js.map +1 -1
- package/build-module/components/post-publish-panel/maybe-tags-panel.js +24 -27
- package/build-module/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
- package/build-module/components/post-schedule/index.js +0 -1
- package/build-module/components/post-schedule/index.js.map +1 -1
- package/build-module/components/post-schedule/label.js +1 -1
- package/build-module/components/post-schedule/label.js.map +1 -1
- package/build-module/components/post-schedule/panel.js +1 -0
- package/build-module/components/post-schedule/panel.js.map +1 -1
- package/build-module/components/post-switch-to-draft-button/index.js +1 -0
- package/build-module/components/post-switch-to-draft-button/index.js.map +1 -1
- package/build-module/components/post-sync-status/index.js +1 -1
- package/build-module/components/post-sync-status/index.js.map +1 -1
- package/build-module/components/post-taxonomies/check.js +9 -14
- package/build-module/components/post-taxonomies/check.js.map +1 -1
- package/build-module/components/post-taxonomies/index.js +15 -15
- package/build-module/components/post-taxonomies/index.js.map +1 -1
- package/build-module/components/post-template/block-theme.js +24 -11
- package/build-module/components/post-template/block-theme.js.map +1 -1
- package/build-module/components/post-template/classic-theme.js +16 -11
- package/build-module/components/post-template/classic-theme.js.map +1 -1
- package/build-module/components/post-template/create-new-template-modal.js +20 -5
- package/build-module/components/post-template/create-new-template-modal.js.map +1 -1
- package/build-module/components/post-template/panel.js +5 -1
- package/build-module/components/post-template/panel.js.map +1 -1
- package/build-module/components/post-title/index.js +1 -2
- package/build-module/components/post-title/index.js.map +1 -1
- package/build-module/components/post-trash/index.js +1 -0
- package/build-module/components/post-trash/index.js.map +1 -1
- package/build-module/components/post-url/panel.js +1 -0
- package/build-module/components/post-url/panel.js.map +1 -1
- package/build-module/components/preferences-modal/index.js +0 -1
- package/build-module/components/preferences-modal/index.js.map +1 -1
- package/build-module/components/provider/index.js +11 -3
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/provider/use-block-editor-settings.js +1 -1
- package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
- package/build-module/components/table-of-contents/panel.js +0 -1
- package/build-module/components/table-of-contents/panel.js.map +1 -1
- package/build-module/hooks/pattern-partial-syncing.js +9 -2
- package/build-module/hooks/pattern-partial-syncing.js.map +1 -1
- package/build-module/store/actions.js +7 -3
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +1 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/selectors.js +10 -0
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +28 -22
- package/build-style/style.css +28 -22
- package/package.json +32 -32
- package/src/bindings/post-meta.js +2 -2
- package/src/components/document-bar/index.js +24 -38
- package/src/components/editor-canvas/edit-template-blocks-notification.js +31 -14
- package/src/components/editor-canvas/index.js +16 -6
- package/src/components/editor-snackbars/index.js +6 -3
- package/src/components/entities-saved-states/entity-record-item.js +1 -4
- package/src/components/entities-saved-states/entity-type-list.js +8 -8
- package/src/components/entities-saved-states/index.js +17 -4
- package/src/components/entities-saved-states/style.scss +5 -0
- package/src/components/list-view-sidebar/index.js +60 -47
- package/src/components/list-view-sidebar/style.scss +20 -20
- package/src/components/post-author/combobox.js +5 -61
- package/src/components/post-author/constants.js +6 -2
- package/src/components/post-author/hook.js +63 -0
- package/src/components/post-author/select.js +5 -25
- package/src/components/post-last-revision/index.js +6 -6
- package/src/components/post-last-revision/style.scss +3 -6
- package/src/components/post-panel-row/style.scss +3 -3
- package/src/components/post-publish-panel/maybe-tags-panel.js +27 -37
- package/src/components/post-publish-panel/style.scss +3 -1
- package/src/components/post-schedule/label.js +1 -1
- package/src/components/post-schedule/panel.js +1 -0
- package/src/components/post-schedule/test/label.js +19 -7
- package/src/components/post-switch-to-draft-button/index.js +1 -0
- package/src/components/post-sync-status/index.js +8 -2
- package/src/components/post-taxonomies/check.js +11 -15
- package/src/components/post-taxonomies/index.js +15 -22
- package/src/components/post-taxonomies/test/index.js +37 -51
- package/src/components/post-template/block-theme.js +33 -14
- package/src/components/post-template/classic-theme.js +17 -10
- package/src/components/post-template/create-new-template-modal.js +17 -9
- package/src/components/post-template/panel.js +5 -1
- package/src/components/post-trash/index.js +1 -0
- package/src/components/post-url/panel.js +1 -0
- package/src/components/provider/index.js +18 -6
- package/src/components/provider/use-block-editor-settings.js +1 -1
- package/src/hooks/pattern-partial-syncing.js +23 -4
- package/src/store/actions.js +8 -3
- package/src/store/private-actions.js +1 -0
- package/src/store/selectors.js +12 -0
|
@@ -23,9 +23,11 @@ describe( 'getFullPostScheduleLabel', () => {
|
|
|
23
23
|
} );
|
|
24
24
|
|
|
25
25
|
const label = getFullPostScheduleLabel( '2022-04-28T15:30:00' );
|
|
26
|
-
expect( label ).toBe( 'April 28, 2022 3:30\xa0pm AEST' );
|
|
27
26
|
|
|
27
|
+
// Reset date settings before potential failure of the expectation.
|
|
28
28
|
setSettings( settings );
|
|
29
|
+
|
|
30
|
+
expect( label ).toBe( 'April 28, 2022 3:30\xa0pm AEST' );
|
|
29
31
|
} );
|
|
30
32
|
|
|
31
33
|
it( "should show site's timezone offset", () => {
|
|
@@ -33,13 +35,15 @@ describe( 'getFullPostScheduleLabel', () => {
|
|
|
33
35
|
|
|
34
36
|
setSettings( {
|
|
35
37
|
...settings,
|
|
36
|
-
timezone: {
|
|
38
|
+
timezone: { offsetFormatted: 10 },
|
|
37
39
|
} );
|
|
38
40
|
|
|
39
41
|
const label = getFullPostScheduleLabel( '2022-04-28T15:30:00' );
|
|
40
|
-
expect( label ).toBe( 'April 28, 2022 3:30\xa0pm UTC+10' );
|
|
41
42
|
|
|
43
|
+
// Reset date settings before potential failure of the expectation.
|
|
42
44
|
setSettings( settings );
|
|
45
|
+
|
|
46
|
+
expect( label ).toBe( 'April 28, 2022 3:30\xa0pm UTC+10' );
|
|
43
47
|
} );
|
|
44
48
|
} );
|
|
45
49
|
|
|
@@ -80,9 +84,11 @@ describe( 'getPostScheduleLabel', () => {
|
|
|
80
84
|
);
|
|
81
85
|
|
|
82
86
|
const label = getPostScheduleLabel( '2022-04-28T15:30:00', { now } );
|
|
83
|
-
expect( label ).toBe( 'Today at 3:30\xa0pm' );
|
|
84
87
|
|
|
88
|
+
// Reset date settings before potential failure of the expectation.
|
|
85
89
|
setSettings( settings );
|
|
90
|
+
|
|
91
|
+
expect( label ).toBe( 'Today at 3:30\xa0pm' );
|
|
86
92
|
} );
|
|
87
93
|
|
|
88
94
|
it( "should show tomorrow if date is same day as now + 1 day and user timezone equals site's timezone", () => {
|
|
@@ -99,9 +105,11 @@ describe( 'getPostScheduleLabel', () => {
|
|
|
99
105
|
);
|
|
100
106
|
|
|
101
107
|
const label = getPostScheduleLabel( '2022-04-29T15:30:00', { now } );
|
|
102
|
-
expect( label ).toBe( 'Tomorrow at 3:30\xa0pm' );
|
|
103
108
|
|
|
109
|
+
// Reset date settings before potential failure of the expectation.
|
|
104
110
|
setSettings( settings );
|
|
111
|
+
|
|
112
|
+
expect( label ).toBe( 'Tomorrow at 3:30\xa0pm' );
|
|
105
113
|
} );
|
|
106
114
|
|
|
107
115
|
it( "should hide year if date is same year as now and user timezone equals site's timezone", () => {
|
|
@@ -118,9 +126,11 @@ describe( 'getPostScheduleLabel', () => {
|
|
|
118
126
|
);
|
|
119
127
|
|
|
120
128
|
const label = getPostScheduleLabel( '2022-12-25T15:30:00', { now } );
|
|
121
|
-
expect( label ).toBe( 'December 25 3:30\xa0pm' );
|
|
122
129
|
|
|
130
|
+
// Reset date settings before potential failure of the expectation.
|
|
123
131
|
setSettings( settings );
|
|
132
|
+
|
|
133
|
+
expect( label ).toBe( 'December 25 3:30\xa0pm' );
|
|
124
134
|
} );
|
|
125
135
|
|
|
126
136
|
it( "should show year if date is not same year as now and user timezone equals site's timezone", () => {
|
|
@@ -137,8 +147,10 @@ describe( 'getPostScheduleLabel', () => {
|
|
|
137
147
|
);
|
|
138
148
|
|
|
139
149
|
const label = getPostScheduleLabel( '2023-04-28T15:30:00', { now } );
|
|
140
|
-
expect( label ).toBe( 'April 28, 2023 3:30\xa0pm' );
|
|
141
150
|
|
|
151
|
+
// Reset date settings before potential failure of the expectation.
|
|
142
152
|
setSettings( settings );
|
|
153
|
+
|
|
154
|
+
expect( label ).toBe( 'April 28, 2023 3:30\xa0pm' );
|
|
143
155
|
} );
|
|
144
156
|
} );
|
|
@@ -47,8 +47,14 @@ export default function PostSyncStatus() {
|
|
|
47
47
|
<PostPanelRow label={ __( 'Sync status' ) }>
|
|
48
48
|
<div className="editor-post-sync-status__value">
|
|
49
49
|
{ syncStatus === 'unsynced'
|
|
50
|
-
?
|
|
51
|
-
|
|
50
|
+
? _x(
|
|
51
|
+
'Not synced',
|
|
52
|
+
'Text that indicates that the pattern is not synchronized'
|
|
53
|
+
)
|
|
54
|
+
: _x(
|
|
55
|
+
'Synced',
|
|
56
|
+
'Text that indicates that the pattern is synchronized'
|
|
57
|
+
) }
|
|
52
58
|
</div>
|
|
53
59
|
</PostPanelRow>
|
|
54
60
|
);
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
import { withSelect } from '@wordpress/data';
|
|
4
|
+
import { useSelect } from '@wordpress/data';
|
|
6
5
|
import { store as coreStore } from '@wordpress/core-data';
|
|
7
6
|
|
|
8
7
|
/**
|
|
@@ -10,22 +9,19 @@ import { store as coreStore } from '@wordpress/core-data';
|
|
|
10
9
|
*/
|
|
11
10
|
import { store as editorStore } from '../../store';
|
|
12
11
|
|
|
13
|
-
export function PostTaxonomiesCheck( {
|
|
14
|
-
const hasTaxonomies =
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
export default function PostTaxonomiesCheck( { children } ) {
|
|
13
|
+
const hasTaxonomies = useSelect( ( select ) => {
|
|
14
|
+
const postType = select( editorStore ).getCurrentPostType();
|
|
15
|
+
const taxonomies = select( coreStore ).getTaxonomies( {
|
|
16
|
+
per_page: -1,
|
|
17
|
+
} );
|
|
18
|
+
return taxonomies?.some( ( taxonomy ) =>
|
|
19
|
+
taxonomy.types.includes( postType )
|
|
20
|
+
);
|
|
21
|
+
}, [] );
|
|
17
22
|
if ( ! hasTaxonomies ) {
|
|
18
23
|
return null;
|
|
19
24
|
}
|
|
20
25
|
|
|
21
26
|
return children;
|
|
22
27
|
}
|
|
23
|
-
|
|
24
|
-
export default compose( [
|
|
25
|
-
withSelect( ( select ) => {
|
|
26
|
-
return {
|
|
27
|
-
postType: select( editorStore ).getCurrentPostType(),
|
|
28
|
-
taxonomies: select( coreStore ).getTaxonomies( { per_page: -1 } ),
|
|
29
|
-
};
|
|
30
|
-
} ),
|
|
31
|
-
] )( PostTaxonomiesCheck );
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { Fragment } from '@wordpress/element';
|
|
5
|
-
import {
|
|
6
|
-
import { compose } from '@wordpress/compose';
|
|
5
|
+
import { useSelect } from '@wordpress/data';
|
|
7
6
|
import { store as coreStore } from '@wordpress/core-data';
|
|
8
7
|
|
|
9
8
|
/**
|
|
@@ -15,19 +14,20 @@ import { store as editorStore } from '../../store';
|
|
|
15
14
|
|
|
16
15
|
const identity = ( x ) => x;
|
|
17
16
|
|
|
18
|
-
export function PostTaxonomies( {
|
|
19
|
-
postType,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
17
|
+
export function PostTaxonomies( { taxonomyWrapper = identity } ) {
|
|
18
|
+
const { postType, taxonomies } = useSelect( ( select ) => {
|
|
19
|
+
return {
|
|
20
|
+
postType: select( editorStore ).getCurrentPostType(),
|
|
21
|
+
taxonomies: select( coreStore ).getTaxonomies( { per_page: -1 } ),
|
|
22
|
+
};
|
|
23
|
+
}, [] );
|
|
24
|
+
const visibleTaxonomies = ( taxonomies ?? [] ).filter(
|
|
25
|
+
( taxonomy ) =>
|
|
26
|
+
// In some circumstances .visibility can end up as undefined so optional chaining operator required.
|
|
27
|
+
// https://github.com/WordPress/gutenberg/issues/40326
|
|
28
|
+
taxonomy.types.includes( postType ) && taxonomy.visibility?.show_ui
|
|
30
29
|
);
|
|
30
|
+
|
|
31
31
|
return visibleTaxonomies.map( ( taxonomy ) => {
|
|
32
32
|
const TaxonomyComponent = taxonomy.hierarchical
|
|
33
33
|
? HierarchicalTermSelector
|
|
@@ -43,11 +43,4 @@ export function PostTaxonomies( {
|
|
|
43
43
|
} );
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
export default
|
|
47
|
-
withSelect( ( select ) => {
|
|
48
|
-
return {
|
|
49
|
-
postType: select( editorStore ).getCurrentPostType(),
|
|
50
|
-
taxonomies: select( coreStore ).getTaxonomies( { per_page: -1 } ),
|
|
51
|
-
};
|
|
52
|
-
} ),
|
|
53
|
-
] )( PostTaxonomies );
|
|
46
|
+
export default PostTaxonomies;
|
|
@@ -13,7 +13,7 @@ import { store as coreStore } from '@wordpress/core-data';
|
|
|
13
13
|
/**
|
|
14
14
|
* Internal dependencies
|
|
15
15
|
*/
|
|
16
|
-
import
|
|
16
|
+
import PostTaxonomies from '../';
|
|
17
17
|
|
|
18
18
|
describe( 'PostTaxonomies', () => {
|
|
19
19
|
const genresTaxonomy = {
|
|
@@ -87,20 +87,30 @@ describe( 'PostTaxonomies', () => {
|
|
|
87
87
|
it( 'should render no children if taxonomy data not available', () => {
|
|
88
88
|
const taxonomies = null;
|
|
89
89
|
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
jest.spyOn(
|
|
91
|
+
select( editorStore ),
|
|
92
|
+
'getCurrentPostType'
|
|
93
|
+
).mockReturnValue( 'page' );
|
|
94
|
+
jest.spyOn( select( coreStore ), 'getTaxonomies' ).mockReturnValue(
|
|
95
|
+
taxonomies
|
|
92
96
|
);
|
|
93
97
|
|
|
98
|
+
const { container } = render( <PostTaxonomies /> );
|
|
99
|
+
|
|
94
100
|
expect( container ).toBeEmptyDOMElement();
|
|
95
101
|
} );
|
|
96
102
|
|
|
97
103
|
it( 'should render taxonomy components for taxonomies assigned to post type', () => {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
+
jest.spyOn(
|
|
105
|
+
select( editorStore ),
|
|
106
|
+
'getCurrentPostType'
|
|
107
|
+
).mockReturnValue( 'book' );
|
|
108
|
+
jest.spyOn( select( coreStore ), 'getTaxonomies' ).mockReturnValue( [
|
|
109
|
+
genresTaxonomy,
|
|
110
|
+
categoriesTaxonomy,
|
|
111
|
+
] );
|
|
112
|
+
|
|
113
|
+
render( <PostTaxonomies /> );
|
|
104
114
|
|
|
105
115
|
expect( screen.getByRole( 'group', { name: 'Genres' } ) ).toBeVisible();
|
|
106
116
|
expect(
|
|
@@ -112,59 +122,35 @@ describe( 'PostTaxonomies', () => {
|
|
|
112
122
|
expect(
|
|
113
123
|
screen.queryByRole( 'button', { name: 'Add new category' } )
|
|
114
124
|
).not.toBeInTheDocument();
|
|
115
|
-
|
|
116
|
-
rerender(
|
|
117
|
-
<PostTaxonomies
|
|
118
|
-
postType="book"
|
|
119
|
-
taxonomies={ [
|
|
120
|
-
genresTaxonomy,
|
|
121
|
-
{
|
|
122
|
-
...categoriesTaxonomy,
|
|
123
|
-
types: [ 'post', 'page', 'book' ],
|
|
124
|
-
},
|
|
125
|
-
] }
|
|
126
|
-
/>
|
|
127
|
-
);
|
|
128
|
-
|
|
129
|
-
expect( screen.getByRole( 'group', { name: 'Genres' } ) ).toBeVisible();
|
|
130
|
-
expect(
|
|
131
|
-
screen.getByRole( 'group', { name: 'Categories' } )
|
|
132
|
-
).toBeVisible();
|
|
133
|
-
expect(
|
|
134
|
-
screen.getByRole( 'button', { name: 'Add new genre' } )
|
|
135
|
-
).toBeVisible();
|
|
136
|
-
expect(
|
|
137
|
-
screen.getByRole( 'button', { name: 'Add new category' } )
|
|
138
|
-
).toBeVisible();
|
|
139
125
|
} );
|
|
140
126
|
|
|
141
127
|
it( 'should not render taxonomy components that hide their ui', () => {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
128
|
+
jest.spyOn(
|
|
129
|
+
select( editorStore ),
|
|
130
|
+
'getCurrentPostType'
|
|
131
|
+
).mockReturnValue( 'book' );
|
|
132
|
+
jest.spyOn( select( coreStore ), 'getTaxonomies' ).mockReturnValue( [
|
|
133
|
+
genresTaxonomy,
|
|
134
|
+
{
|
|
135
|
+
...categoriesTaxonomy,
|
|
136
|
+
types: [ 'post', 'page', 'book' ],
|
|
137
|
+
visibility: {
|
|
138
|
+
show_ui: false,
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
] );
|
|
142
|
+
|
|
143
|
+
render( <PostTaxonomies /> );
|
|
145
144
|
|
|
146
145
|
expect( screen.getByRole( 'group', { name: 'Genres' } ) ).toBeVisible();
|
|
147
146
|
expect(
|
|
148
147
|
screen.getByRole( 'button', { name: 'Add new genre' } )
|
|
149
148
|
).toBeVisible();
|
|
150
|
-
|
|
151
|
-
rerender(
|
|
152
|
-
<PostTaxonomies
|
|
153
|
-
postType="book"
|
|
154
|
-
taxonomies={ [
|
|
155
|
-
{
|
|
156
|
-
...genresTaxonomy,
|
|
157
|
-
visibility: { show_ui: false },
|
|
158
|
-
},
|
|
159
|
-
] }
|
|
160
|
-
/>
|
|
161
|
-
);
|
|
162
|
-
|
|
163
149
|
expect(
|
|
164
|
-
screen.queryByRole( 'group', { name: '
|
|
150
|
+
screen.queryByRole( 'group', { name: 'Categories' } )
|
|
165
151
|
).not.toBeInTheDocument();
|
|
166
152
|
expect(
|
|
167
|
-
screen.queryByRole( 'button', { name: 'Add new
|
|
153
|
+
screen.queryByRole( 'button', { name: 'Add new category' } )
|
|
168
154
|
).not.toBeInTheDocument();
|
|
169
155
|
} );
|
|
170
156
|
} );
|
|
@@ -24,18 +24,30 @@ const POPOVER_PROPS = {
|
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
export default function BlockThemeControl( { id } ) {
|
|
27
|
-
const {
|
|
28
|
-
|
|
27
|
+
const {
|
|
28
|
+
isTemplateHidden,
|
|
29
|
+
onNavigateToEntityRecord,
|
|
30
|
+
getEditorSettings,
|
|
31
|
+
hasGoBack,
|
|
32
|
+
} = useSelect( ( select ) => {
|
|
33
|
+
const { getRenderingMode, getEditorSettings: _getEditorSettings } =
|
|
34
|
+
unlock( select( editorStore ) );
|
|
35
|
+
const editorSettings = _getEditorSettings();
|
|
29
36
|
return {
|
|
30
37
|
isTemplateHidden: getRenderingMode() === 'post-only',
|
|
38
|
+
onNavigateToEntityRecord: editorSettings.onNavigateToEntityRecord,
|
|
39
|
+
getEditorSettings: _getEditorSettings,
|
|
40
|
+
hasGoBack: editorSettings.hasOwnProperty(
|
|
41
|
+
'onNavigateToPreviousEntityRecord'
|
|
42
|
+
),
|
|
31
43
|
};
|
|
32
44
|
}, [] );
|
|
45
|
+
|
|
33
46
|
const { editedRecord: template, hasResolved } = useEntityRecord(
|
|
34
47
|
'postType',
|
|
35
48
|
'wp_template',
|
|
36
49
|
id
|
|
37
50
|
);
|
|
38
|
-
const { getEditorSettings } = useSelect( editorStore );
|
|
39
51
|
const { createSuccessNotice } = useDispatch( noticesStore );
|
|
40
52
|
const { setRenderingMode } = useDispatch( editorStore );
|
|
41
53
|
|
|
@@ -43,11 +55,23 @@ export default function BlockThemeControl( { id } ) {
|
|
|
43
55
|
return null;
|
|
44
56
|
}
|
|
45
57
|
|
|
58
|
+
// The site editor does not have a `onNavigateToPreviousEntityRecord` setting as it uses its own routing
|
|
59
|
+
// and assigns its own backlink to focusMode pages.
|
|
60
|
+
const notificationAction = hasGoBack
|
|
61
|
+
? [
|
|
62
|
+
{
|
|
63
|
+
label: __( 'Go back' ),
|
|
64
|
+
onClick: () =>
|
|
65
|
+
getEditorSettings().onNavigateToPreviousEntityRecord(),
|
|
66
|
+
},
|
|
67
|
+
]
|
|
68
|
+
: undefined;
|
|
46
69
|
return (
|
|
47
70
|
<DropdownMenu
|
|
48
71
|
popoverProps={ POPOVER_PROPS }
|
|
49
72
|
focusOnMount
|
|
50
73
|
toggleProps={ {
|
|
74
|
+
__next40pxDefaultSize: true,
|
|
51
75
|
variant: 'tertiary',
|
|
52
76
|
} }
|
|
53
77
|
label={ __( 'Template options' ) }
|
|
@@ -59,7 +83,10 @@ export default function BlockThemeControl( { id } ) {
|
|
|
59
83
|
<MenuGroup>
|
|
60
84
|
<MenuItem
|
|
61
85
|
onClick={ () => {
|
|
62
|
-
|
|
86
|
+
onNavigateToEntityRecord( {
|
|
87
|
+
postId: template.id,
|
|
88
|
+
postType: 'wp_template',
|
|
89
|
+
} );
|
|
63
90
|
onClose();
|
|
64
91
|
createSuccessNotice(
|
|
65
92
|
__(
|
|
@@ -67,22 +94,14 @@ export default function BlockThemeControl( { id } ) {
|
|
|
67
94
|
),
|
|
68
95
|
{
|
|
69
96
|
type: 'snackbar',
|
|
70
|
-
actions:
|
|
71
|
-
{
|
|
72
|
-
label: __( 'Go back' ),
|
|
73
|
-
onClick: () =>
|
|
74
|
-
setRenderingMode(
|
|
75
|
-
getEditorSettings()
|
|
76
|
-
.defaultRenderingMode
|
|
77
|
-
),
|
|
78
|
-
},
|
|
79
|
-
],
|
|
97
|
+
actions: notificationAction,
|
|
80
98
|
}
|
|
81
99
|
);
|
|
82
100
|
} }
|
|
83
101
|
>
|
|
84
102
|
{ __( 'Edit template' ) }
|
|
85
103
|
</MenuItem>
|
|
104
|
+
|
|
86
105
|
<SwapTemplateButton onClick={ onClose } />
|
|
87
106
|
<ResetDefaultTemplate onClick={ onClose } />
|
|
88
107
|
<CreateNewTemplate onClick={ onClose } />
|
|
@@ -44,6 +44,7 @@ function PostTemplateToggle( { isOpen, onClick } ) {
|
|
|
44
44
|
|
|
45
45
|
return (
|
|
46
46
|
<Button
|
|
47
|
+
__next40pxDefaultSize
|
|
47
48
|
className="edit-post-post-template__toggle"
|
|
48
49
|
variant="tertiary"
|
|
49
50
|
aria-expanded={ isOpen }
|
|
@@ -63,12 +64,16 @@ function PostTemplateDropdownContent( { onClose } ) {
|
|
|
63
64
|
selectedTemplateSlug,
|
|
64
65
|
canCreate,
|
|
65
66
|
canEdit,
|
|
67
|
+
currentTemplateId,
|
|
68
|
+
onNavigateToEntityRecord,
|
|
69
|
+
getEditorSettings,
|
|
66
70
|
} = useSelect(
|
|
67
71
|
( select ) => {
|
|
68
72
|
const { canUser, getEntityRecords } = select( coreStore );
|
|
69
73
|
const editorSettings = select( editorStore ).getEditorSettings();
|
|
70
74
|
const canCreateTemplates = canUser( 'create', 'templates' );
|
|
71
|
-
|
|
75
|
+
const _currentTemplateId =
|
|
76
|
+
select( editorStore ).getCurrentTemplateId();
|
|
72
77
|
return {
|
|
73
78
|
availableTemplates: editorSettings.availableTemplates,
|
|
74
79
|
fetchedTemplates: canCreateTemplates
|
|
@@ -88,7 +93,11 @@ function PostTemplateDropdownContent( { onClose } ) {
|
|
|
88
93
|
allowSwitchingTemplate &&
|
|
89
94
|
canCreateTemplates &&
|
|
90
95
|
editorSettings.supportsTemplateMode &&
|
|
91
|
-
!!
|
|
96
|
+
!! _currentTemplateId,
|
|
97
|
+
currentTemplateId: _currentTemplateId,
|
|
98
|
+
onNavigateToEntityRecord:
|
|
99
|
+
editorSettings.onNavigateToEntityRecord,
|
|
100
|
+
getEditorSettings: select( editorStore ).getEditorSettings,
|
|
92
101
|
};
|
|
93
102
|
},
|
|
94
103
|
[ allowSwitchingTemplate ]
|
|
@@ -113,9 +122,7 @@ function PostTemplateDropdownContent( { onClose } ) {
|
|
|
113
122
|
options.find( ( option ) => ! option.value ); // The default option has '' value.
|
|
114
123
|
|
|
115
124
|
const { editPost } = useDispatch( editorStore );
|
|
116
|
-
const { getEditorSettings } = useSelect( editorStore );
|
|
117
125
|
const { createSuccessNotice } = useDispatch( noticesStore );
|
|
118
|
-
const { setRenderingMode } = useDispatch( editorStore );
|
|
119
126
|
const [ isCreateModalOpen, setIsCreateModalOpen ] = useState( false );
|
|
120
127
|
|
|
121
128
|
return (
|
|
@@ -155,12 +162,15 @@ function PostTemplateDropdownContent( { onClose } ) {
|
|
|
155
162
|
}
|
|
156
163
|
/>
|
|
157
164
|
) }
|
|
158
|
-
{ canEdit && (
|
|
165
|
+
{ canEdit && onNavigateToEntityRecord && (
|
|
159
166
|
<p>
|
|
160
167
|
<Button
|
|
161
168
|
variant="link"
|
|
162
169
|
onClick={ () => {
|
|
163
|
-
|
|
170
|
+
onNavigateToEntityRecord( {
|
|
171
|
+
postId: currentTemplateId,
|
|
172
|
+
postType: 'wp_template',
|
|
173
|
+
} );
|
|
164
174
|
onClose();
|
|
165
175
|
createSuccessNotice(
|
|
166
176
|
__(
|
|
@@ -172,10 +182,7 @@ function PostTemplateDropdownContent( { onClose } ) {
|
|
|
172
182
|
{
|
|
173
183
|
label: __( 'Go back' ),
|
|
174
184
|
onClick: () =>
|
|
175
|
-
|
|
176
|
-
getEditorSettings()
|
|
177
|
-
.defaultRenderingMode
|
|
178
|
-
),
|
|
185
|
+
getEditorSettings().onNavigateToPreviousEntityRecord(),
|
|
179
186
|
},
|
|
180
187
|
],
|
|
181
188
|
}
|
|
@@ -23,15 +23,20 @@ import { store as editorStore } from '../../store';
|
|
|
23
23
|
const DEFAULT_TITLE = __( 'Custom Template' );
|
|
24
24
|
|
|
25
25
|
export default function CreateNewTemplateModal( { onClose } ) {
|
|
26
|
-
const defaultBlockTemplate = useSelect(
|
|
27
|
-
( select ) =>
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
const { defaultBlockTemplate, onNavigateToEntityRecord } = useSelect(
|
|
27
|
+
( select ) => {
|
|
28
|
+
const { getEditorSettings, getCurrentTemplateId } =
|
|
29
|
+
select( editorStore );
|
|
30
|
+
return {
|
|
31
|
+
defaultBlockTemplate: getEditorSettings().defaultBlockTemplate,
|
|
32
|
+
onNavigateToEntityRecord:
|
|
33
|
+
getEditorSettings().onNavigateToEntityRecord,
|
|
34
|
+
getTemplateId: getCurrentTemplateId,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
30
37
|
);
|
|
31
38
|
|
|
32
|
-
const { createTemplate
|
|
33
|
-
useDispatch( editorStore )
|
|
34
|
-
);
|
|
39
|
+
const { createTemplate } = unlock( useDispatch( editorStore ) );
|
|
35
40
|
|
|
36
41
|
const [ title, setTitle ] = useState( '' );
|
|
37
42
|
|
|
@@ -86,15 +91,18 @@ export default function CreateNewTemplateModal( { onClose } ) {
|
|
|
86
91
|
),
|
|
87
92
|
] );
|
|
88
93
|
|
|
89
|
-
await createTemplate( {
|
|
94
|
+
const newTemplate = await createTemplate( {
|
|
90
95
|
slug: cleanForSlug( title || DEFAULT_TITLE ),
|
|
91
96
|
content: newTemplateContent,
|
|
92
97
|
title: title || DEFAULT_TITLE,
|
|
93
98
|
} );
|
|
94
99
|
|
|
95
100
|
setIsBusy( false );
|
|
101
|
+
onNavigateToEntityRecord( {
|
|
102
|
+
postId: newTemplate.id,
|
|
103
|
+
postType: 'wp_template',
|
|
104
|
+
} );
|
|
96
105
|
cancel();
|
|
97
|
-
setRenderingMode( 'template-only' );
|
|
98
106
|
};
|
|
99
107
|
|
|
100
108
|
return (
|
|
@@ -47,7 +47,11 @@ export default function PostTemplatePanel() {
|
|
|
47
47
|
return canCreateTemplates;
|
|
48
48
|
}, [] );
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
const canViewTemplates = useSelect( ( select ) => {
|
|
51
|
+
return select( coreStore ).canUser( 'read', 'templates' ) ?? false;
|
|
52
|
+
}, [] );
|
|
53
|
+
|
|
54
|
+
if ( ( ! isBlockTheme || ! canViewTemplates ) && isVisible ) {
|
|
51
55
|
return (
|
|
52
56
|
<PostPanelRow label={ __( 'Template' ) }>
|
|
53
57
|
<ClassicThemeControl />
|
|
@@ -29,6 +29,19 @@ const { PatternsMenuItems } = unlock( editPatternsPrivateApis );
|
|
|
29
29
|
|
|
30
30
|
const noop = () => {};
|
|
31
31
|
|
|
32
|
+
/**
|
|
33
|
+
* These are global entities that are only there to split blocks into logical units
|
|
34
|
+
* They don't provide a "context" for the current post/page being rendered.
|
|
35
|
+
* So we should not use their ids as post context. This is important to allow post blocks
|
|
36
|
+
* (post content, post title) to be used within them without issues.
|
|
37
|
+
*/
|
|
38
|
+
const NON_CONTEXTUAL_POST_TYPES = [
|
|
39
|
+
'wp_block',
|
|
40
|
+
'wp_template',
|
|
41
|
+
'wp_navigation',
|
|
42
|
+
'wp_template_part',
|
|
43
|
+
];
|
|
44
|
+
|
|
32
45
|
/**
|
|
33
46
|
* Depending on the post, template and template mode,
|
|
34
47
|
* returns the appropriate blocks and change handlers for the block editor provider.
|
|
@@ -113,8 +126,8 @@ export const ExperimentalEditorProvider = withRegistryProvider(
|
|
|
113
126
|
const rootLevelPost = shouldRenderTemplate ? template : post;
|
|
114
127
|
const defaultBlockContext = useMemo( () => {
|
|
115
128
|
const postContext =
|
|
116
|
-
rootLevelPost.type
|
|
117
|
-
|
|
129
|
+
! NON_CONTEXTUAL_POST_TYPES.includes( rootLevelPost.type ) ||
|
|
130
|
+
shouldRenderTemplate
|
|
118
131
|
? { postId: post.id, postType: post.type }
|
|
119
132
|
: {};
|
|
120
133
|
|
|
@@ -126,12 +139,11 @@ export const ExperimentalEditorProvider = withRegistryProvider(
|
|
|
126
139
|
: undefined,
|
|
127
140
|
};
|
|
128
141
|
}, [
|
|
129
|
-
|
|
142
|
+
shouldRenderTemplate,
|
|
130
143
|
post.id,
|
|
131
144
|
post.type,
|
|
132
145
|
rootLevelPost.type,
|
|
133
|
-
rootLevelPost
|
|
134
|
-
shouldRenderTemplate,
|
|
146
|
+
rootLevelPost.slug,
|
|
135
147
|
] );
|
|
136
148
|
const { editorSettings, selection, isReady } = useSelect(
|
|
137
149
|
( select ) => {
|
|
@@ -200,7 +212,7 @@ export const ExperimentalEditorProvider = withRegistryProvider(
|
|
|
200
212
|
// Synchronizes the active post with the state
|
|
201
213
|
useEffect( () => {
|
|
202
214
|
setEditedPost( post.type, post.id );
|
|
203
|
-
}, [ post.type, post.id ] );
|
|
215
|
+
}, [ post.type, post.id, setEditedPost ] );
|
|
204
216
|
|
|
205
217
|
// Synchronize the editor settings as they change.
|
|
206
218
|
useEffect( () => {
|