@wordpress/editor 14.10.0 → 14.12.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 +8 -0
- package/README.md +2 -10
- package/build/bindings/post-meta.js +2 -1
- package/build/bindings/post-meta.js.map +1 -1
- package/build/components/collab-sidebar/add-comment.js +119 -0
- package/build/components/collab-sidebar/add-comment.js.map +1 -0
- package/build/components/collab-sidebar/comment-button-toolbar.js +37 -0
- package/build/components/collab-sidebar/comment-button-toolbar.js.map +1 -0
- package/build/components/collab-sidebar/comment-button.js +37 -0
- package/build/components/collab-sidebar/comment-button.js.map +1 -0
- package/build/components/collab-sidebar/comments.js +321 -0
- package/build/components/collab-sidebar/comments.js.map +1 -0
- package/build/components/collab-sidebar/constants.js +8 -0
- package/build/components/collab-sidebar/constants.js.map +1 -0
- package/build/components/collab-sidebar/index.js +274 -0
- package/build/components/collab-sidebar/index.js.map +1 -0
- package/build/components/collab-sidebar/utils.js +16 -0
- package/build/components/collab-sidebar/utils.js.map +1 -0
- package/build/components/commands/index.js +148 -40
- package/build/components/commands/index.js.map +1 -1
- package/build/components/create-template-part-modal/index.js +1 -0
- package/build/components/create-template-part-modal/index.js.map +1 -1
- package/build/components/document-bar/index.js +17 -10
- package/build/components/document-bar/index.js.map +1 -1
- package/build/components/document-tools/index.js +7 -7
- package/build/components/document-tools/index.js.map +1 -1
- package/build/components/editor-interface/index.js +4 -4
- package/build/components/editor-interface/index.js.map +1 -1
- package/build/components/entities-saved-states/index.js +1 -1
- package/build/components/entities-saved-states/index.js.map +1 -1
- package/build/components/global-keyboard-shortcuts/register-shortcuts.js +3 -3
- package/build/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
- package/build/components/global-styles-provider/index.js +25 -3
- package/build/components/global-styles-provider/index.js.map +1 -1
- package/build/components/header/index.js +12 -11
- package/build/components/header/index.js.map +1 -1
- package/build/components/inserter-sidebar/index.js +2 -2
- package/build/components/inserter-sidebar/index.js.map +1 -1
- package/build/components/more-menu/index.js +9 -7
- package/build/components/more-menu/index.js.map +1 -1
- package/build/components/page-attributes/parent.js +5 -5
- package/build/components/page-attributes/parent.js.map +1 -1
- package/build/components/plugin-more-menu-item/index.js +13 -11
- package/build/components/plugin-more-menu-item/index.js.map +1 -1
- package/build/components/plugin-preview-menu-item/index.js +15 -13
- package/build/components/plugin-preview-menu-item/index.js.map +1 -1
- package/build/components/plugin-sidebar/index.js +0 -15
- package/build/components/plugin-sidebar/index.js.map +1 -1
- package/build/components/post-actions/index.js +5 -5
- package/build/components/post-actions/index.js.map +1 -1
- package/build/components/post-author/panel.js +4 -4
- package/build/components/post-author/panel.js.map +1 -1
- package/build/components/post-card-panel/index.js +7 -36
- package/build/components/post-card-panel/index.js.map +1 -1
- package/build/components/post-content-information/index.js +1 -2
- package/build/components/post-content-information/index.js.map +1 -1
- package/build/components/post-featured-image/index.js +26 -7
- package/build/components/post-featured-image/index.js.map +1 -1
- package/build/components/post-last-revision/index.js +1 -1
- package/build/components/post-last-revision/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-taxonomies/flat-term-selector.js +11 -1
- package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build/components/post-taxonomies/hierarchical-term-selector.js +2 -2
- package/build/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
- package/build/components/post-template/swap-template-button.js +0 -3
- package/build/components/post-template/swap-template-button.js.map +1 -1
- package/build/components/post-transform-panel/index.js +0 -3
- package/build/components/post-transform-panel/index.js.map +1 -1
- package/build/components/post-url/index.js +1 -1
- package/build/components/post-url/index.js.map +1 -1
- package/build/components/post-url/panel.js +3 -3
- package/build/components/post-url/panel.js.map +1 -1
- package/build/components/preferences-modal/index.js +26 -22
- package/build/components/preferences-modal/index.js.map +1 -1
- package/build/components/preview-dropdown/index.js +23 -8
- package/build/components/preview-dropdown/index.js.map +1 -1
- package/build/components/provider/index.js +10 -12
- package/build/components/provider/index.js.map +1 -1
- package/build/components/provider/use-block-editor-settings.js +11 -10
- package/build/components/provider/use-block-editor-settings.js.map +1 -1
- package/build/components/sidebar/header.js +2 -1
- package/build/components/sidebar/header.js.map +1 -1
- package/build/components/sidebar/index.js +3 -3
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/sidebar/post-summary.js +2 -2
- package/build/components/sidebar/post-summary.js.map +1 -1
- package/build/components/start-page-options/index.js +0 -3
- package/build/components/start-page-options/index.js.map +1 -1
- package/build/components/start-template-options/index.js +0 -3
- package/build/components/start-template-options/index.js.map +1 -1
- package/build/components/time-to-read/index.js +2 -2
- package/build/components/time-to-read/index.js.map +1 -1
- package/build/components/visual-editor/index.js +30 -29
- package/build/components/visual-editor/index.js.map +1 -1
- package/build/components/visual-editor/use-zoom-out-mode-exit.js +52 -0
- package/build/components/visual-editor/use-zoom-out-mode-exit.js.map +1 -0
- package/build/components/zoom-out-toggle/index.js +37 -5
- package/build/components/zoom-out-toggle/index.js.map +1 -1
- package/build/dataviews/actions/duplicate-template-part.js +2 -2
- package/build/dataviews/actions/duplicate-template-part.js.map +1 -1
- package/build/store/actions.js +68 -18
- package/build/store/actions.js.map +1 -1
- package/build/store/constants.js +0 -2
- package/build/store/constants.js.map +1 -1
- package/build/store/index.js +0 -4
- package/build/store/index.js.map +1 -1
- package/build/store/private-actions.js +2 -2
- package/build/store/private-actions.js.map +1 -1
- package/build/store/selectors.js +5 -4
- package/build/store/selectors.js.map +1 -1
- package/build/utils/pageTypeBadge.js +51 -0
- package/build/utils/pageTypeBadge.js.map +1 -0
- package/build/utils/terms.js +2 -2
- package/build/utils/terms.js.map +1 -1
- package/build-module/bindings/post-meta.js +2 -1
- package/build-module/bindings/post-meta.js.map +1 -1
- package/build-module/components/collab-sidebar/add-comment.js +113 -0
- package/build-module/components/collab-sidebar/add-comment.js.map +1 -0
- package/build-module/components/collab-sidebar/comment-button-toolbar.js +30 -0
- package/build-module/components/collab-sidebar/comment-button-toolbar.js.map +1 -0
- package/build-module/components/collab-sidebar/comment-button.js +30 -0
- package/build-module/components/collab-sidebar/comment-button.js.map +1 -0
- package/build-module/components/collab-sidebar/comments.js +314 -0
- package/build-module/components/collab-sidebar/comments.js.map +1 -0
- package/build-module/components/collab-sidebar/constants.js +2 -0
- package/build-module/components/collab-sidebar/constants.js.map +1 -0
- package/build-module/components/collab-sidebar/index.js +266 -0
- package/build-module/components/collab-sidebar/index.js.map +1 -0
- package/build-module/components/collab-sidebar/utils.js +10 -0
- package/build-module/components/collab-sidebar/utils.js.map +1 -0
- package/build-module/components/commands/index.js +151 -44
- package/build-module/components/commands/index.js.map +1 -1
- package/build-module/components/create-template-part-modal/index.js +1 -0
- package/build-module/components/create-template-part-modal/index.js.map +1 -1
- package/build-module/components/document-bar/index.js +19 -12
- package/build-module/components/document-bar/index.js.map +1 -1
- package/build-module/components/document-tools/index.js +8 -8
- package/build-module/components/document-tools/index.js.map +1 -1
- package/build-module/components/editor-interface/index.js +4 -4
- package/build-module/components/editor-interface/index.js.map +1 -1
- package/build-module/components/entities-saved-states/index.js +1 -1
- package/build-module/components/entities-saved-states/index.js.map +1 -1
- package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js +3 -3
- package/build-module/components/global-keyboard-shortcuts/register-shortcuts.js.map +1 -1
- package/build-module/components/global-styles-provider/index.js +25 -3
- package/build-module/components/global-styles-provider/index.js.map +1 -1
- package/build-module/components/header/index.js +12 -11
- package/build-module/components/header/index.js.map +1 -1
- package/build-module/components/inserter-sidebar/index.js +2 -2
- package/build-module/components/inserter-sidebar/index.js.map +1 -1
- package/build-module/components/more-menu/index.js +9 -7
- package/build-module/components/more-menu/index.js.map +1 -1
- package/build-module/components/page-attributes/parent.js +5 -5
- package/build-module/components/page-attributes/parent.js.map +1 -1
- package/build-module/components/plugin-more-menu-item/index.js +12 -10
- package/build-module/components/plugin-more-menu-item/index.js.map +1 -1
- package/build-module/components/plugin-preview-menu-item/index.js +14 -12
- package/build-module/components/plugin-preview-menu-item/index.js.map +1 -1
- package/build-module/components/plugin-sidebar/index.js +0 -15
- package/build-module/components/plugin-sidebar/index.js.map +1 -1
- package/build-module/components/post-actions/index.js +5 -5
- package/build-module/components/post-actions/index.js.map +1 -1
- package/build-module/components/post-author/panel.js +4 -4
- package/build-module/components/post-author/panel.js.map +1 -1
- package/build-module/components/post-card-panel/index.js +8 -36
- package/build-module/components/post-card-panel/index.js.map +1 -1
- package/build-module/components/post-content-information/index.js +1 -2
- package/build-module/components/post-content-information/index.js.map +1 -1
- package/build-module/components/post-featured-image/index.js +26 -7
- package/build-module/components/post-featured-image/index.js.map +1 -1
- package/build-module/components/post-last-revision/index.js +1 -1
- package/build-module/components/post-last-revision/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-taxonomies/flat-term-selector.js +14 -4
- package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build-module/components/post-taxonomies/hierarchical-term-selector.js +2 -2
- package/build-module/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
- package/build-module/components/post-template/swap-template-button.js +0 -3
- package/build-module/components/post-template/swap-template-button.js.map +1 -1
- package/build-module/components/post-transform-panel/index.js +0 -3
- package/build-module/components/post-transform-panel/index.js.map +1 -1
- package/build-module/components/post-url/index.js +1 -1
- package/build-module/components/post-url/index.js.map +1 -1
- package/build-module/components/post-url/panel.js +3 -3
- package/build-module/components/post-url/panel.js.map +1 -1
- package/build-module/components/preferences-modal/index.js +26 -22
- package/build-module/components/preferences-modal/index.js.map +1 -1
- package/build-module/components/preview-dropdown/index.js +24 -9
- package/build-module/components/preview-dropdown/index.js.map +1 -1
- package/build-module/components/provider/index.js +10 -12
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/provider/use-block-editor-settings.js +12 -11
- package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
- package/build-module/components/sidebar/header.js +2 -1
- package/build-module/components/sidebar/header.js.map +1 -1
- package/build-module/components/sidebar/index.js +4 -4
- package/build-module/components/sidebar/index.js.map +1 -1
- package/build-module/components/sidebar/post-summary.js +2 -2
- package/build-module/components/sidebar/post-summary.js.map +1 -1
- package/build-module/components/start-page-options/index.js +0 -3
- package/build-module/components/start-page-options/index.js.map +1 -1
- package/build-module/components/start-template-options/index.js +0 -3
- package/build-module/components/start-template-options/index.js.map +1 -1
- package/build-module/components/time-to-read/index.js +2 -2
- package/build-module/components/time-to-read/index.js.map +1 -1
- package/build-module/components/visual-editor/index.js +31 -30
- package/build-module/components/visual-editor/index.js.map +1 -1
- package/build-module/components/visual-editor/use-zoom-out-mode-exit.js +46 -0
- package/build-module/components/visual-editor/use-zoom-out-mode-exit.js.map +1 -0
- package/build-module/components/zoom-out-toggle/index.js +37 -5
- package/build-module/components/zoom-out-toggle/index.js.map +1 -1
- package/build-module/dataviews/actions/duplicate-template-part.js +3 -3
- package/build-module/dataviews/actions/duplicate-template-part.js.map +1 -1
- package/build-module/store/actions.js +64 -16
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/constants.js +0 -2
- package/build-module/store/constants.js.map +1 -1
- package/build-module/store/index.js +0 -4
- package/build-module/store/index.js.map +1 -1
- package/build-module/store/private-actions.js +3 -3
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/selectors.js +5 -4
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/pageTypeBadge.js +45 -0
- package/build-module/utils/pageTypeBadge.js.map +1 -0
- package/build-module/utils/terms.js +2 -2
- package/build-module/utils/terms.js.map +1 -1
- package/build-style/style-rtl.css +118 -60
- package/build-style/style.css +118 -60
- package/build-types/bindings/post-meta.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/add-comment.d.ts +15 -0
- package/build-types/components/collab-sidebar/add-comment.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/comment-button-toolbar.d.ts +5 -0
- package/build-types/components/collab-sidebar/comment-button-toolbar.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/comment-button.d.ts +5 -0
- package/build-types/components/collab-sidebar/comment-button.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/comments.d.ts +19 -0
- package/build-types/components/collab-sidebar/comments.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/constants.d.ts +2 -0
- package/build-types/components/collab-sidebar/constants.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/index.d.ts +5 -0
- package/build-types/components/collab-sidebar/index.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/utils.d.ts +8 -0
- package/build-types/components/collab-sidebar/utils.d.ts.map +1 -0
- package/build-types/components/commands/index.d.ts.map +1 -1
- package/build-types/components/create-template-part-modal/index.d.ts.map +1 -1
- package/build-types/components/document-bar/index.d.ts.map +1 -1
- package/build-types/components/document-tools/index.d.ts.map +1 -1
- package/build-types/components/global-styles-provider/index.d.ts.map +1 -1
- package/build-types/components/header/index.d.ts +1 -2
- package/build-types/components/header/index.d.ts.map +1 -1
- package/build-types/components/inserter-sidebar/index.d.ts.map +1 -1
- package/build-types/components/more-menu/index.d.ts.map +1 -1
- package/build-types/components/page-attributes/parent.d.ts.map +1 -1
- package/build-types/components/plugin-more-menu-item/index.d.ts +62 -2
- package/build-types/components/plugin-more-menu-item/index.d.ts.map +1 -1
- package/build-types/components/plugin-preview-menu-item/index.d.ts +41 -2
- package/build-types/components/plugin-preview-menu-item/index.d.ts.map +1 -1
- package/build-types/components/plugin-sidebar/index.d.ts.map +1 -1
- package/build-types/components/post-author/panel.d.ts.map +1 -1
- package/build-types/components/post-card-panel/index.d.ts.map +1 -1
- package/build-types/components/post-taxonomies/flat-term-selector.d.ts.map +1 -1
- package/build-types/components/post-template/hooks.d.ts +2 -2
- package/build-types/components/post-template/swap-template-button.d.ts.map +1 -1
- package/build-types/components/post-transform-panel/index.d.ts.map +1 -1
- package/build-types/components/preferences-modal/index.d.ts.map +1 -1
- package/build-types/components/preview-dropdown/index.d.ts.map +1 -1
- package/build-types/components/provider/index.d.ts.map +1 -1
- package/build-types/components/provider/use-block-editor-settings.d.ts.map +1 -1
- package/build-types/components/sidebar/index.d.ts.map +1 -1
- package/build-types/components/start-page-options/index.d.ts.map +1 -1
- package/build-types/components/start-template-options/index.d.ts.map +1 -1
- package/build-types/components/visual-editor/index.d.ts.map +1 -1
- package/build-types/components/visual-editor/use-zoom-out-mode-exit.d.ts +5 -0
- package/build-types/components/visual-editor/use-zoom-out-mode-exit.d.ts.map +1 -0
- package/build-types/components/zoom-out-toggle/index.d.ts +3 -1
- package/build-types/components/zoom-out-toggle/index.d.ts.map +1 -1
- package/build-types/dataviews/store/reducer.d.ts +5 -2
- package/build-types/dataviews/store/reducer.d.ts.map +1 -1
- package/build-types/lock-unlock.d.ts +2 -2
- package/build-types/store/actions.d.ts +9 -1
- package/build-types/store/actions.d.ts.map +1 -1
- package/build-types/store/constants.d.ts +0 -2
- package/build-types/store/constants.d.ts.map +1 -1
- package/build-types/store/index.d.ts +9 -11
- package/build-types/store/index.d.ts.map +1 -1
- package/build-types/store/reducer.d.ts +24 -4
- package/build-types/store/reducer.d.ts.map +1 -1
- package/build-types/store/selectors.d.ts +3 -3
- package/build-types/store/selectors.d.ts.map +1 -1
- package/build-types/utils/pageTypeBadge.d.ts +5 -0
- package/build-types/utils/pageTypeBadge.d.ts.map +1 -0
- package/build-types/utils/terms.d.ts.map +1 -1
- package/package.json +39 -37
- package/src/bindings/post-meta.js +1 -0
- package/src/components/collab-sidebar/add-comment.js +121 -0
- package/src/components/collab-sidebar/comment-button-toolbar.js +29 -0
- package/src/components/collab-sidebar/comment-button.js +31 -0
- package/src/components/collab-sidebar/comments.js +404 -0
- package/src/components/collab-sidebar/constants.js +1 -0
- package/src/components/collab-sidebar/index.js +298 -0
- package/src/components/collab-sidebar/style.scss +111 -0
- package/src/components/collab-sidebar/utils.js +9 -0
- package/src/components/commands/index.js +390 -268
- package/src/components/create-template-part-modal/index.js +1 -0
- package/src/components/document-bar/index.js +25 -8
- package/src/components/document-bar/style.scss +13 -4
- package/src/components/document-tools/index.js +8 -8
- package/src/components/editor-interface/index.js +4 -4
- package/src/components/entities-saved-states/index.js +2 -2
- package/src/components/global-keyboard-shortcuts/register-shortcuts.js +3 -3
- package/src/components/global-styles-provider/index.js +32 -6
- package/src/components/header/index.js +20 -10
- package/src/components/inserter-sidebar/index.js +3 -6
- package/src/components/more-menu/index.js +12 -7
- package/src/components/page-attributes/parent.js +6 -4
- package/src/components/plugin-more-menu-item/index.js +12 -11
- package/src/components/plugin-post-publish-panel/test/__snapshots__/index.js.snap +1 -1
- package/src/components/plugin-preview-menu-item/index.js +14 -13
- package/src/components/plugin-sidebar/index.js +0 -13
- package/src/components/post-actions/index.js +8 -11
- package/src/components/post-author/panel.js +4 -2
- package/src/components/post-card-panel/index.js +9 -43
- package/src/components/post-card-panel/style.scss +1 -9
- package/src/components/post-content-information/index.js +1 -1
- package/src/components/post-featured-image/index.js +31 -16
- package/src/components/post-featured-image/style.scss +5 -2
- package/src/components/post-last-revision/index.js +1 -1
- package/src/components/post-schedule/label.js +1 -1
- package/src/components/post-sticky/test/index.js +6 -6
- package/src/components/post-taxonomies/flat-term-selector.js +15 -4
- package/src/components/post-taxonomies/hierarchical-term-selector.js +2 -2
- package/src/components/post-template/swap-template-button.js +0 -3
- package/src/components/post-transform-panel/index.js +0 -3
- package/src/components/post-url/index.js +1 -1
- package/src/components/post-url/panel.js +4 -2
- package/src/components/preferences-modal/index.js +26 -19
- package/src/components/preferences-modal/test/index.js +1 -1
- package/src/components/preview-dropdown/index.js +45 -18
- package/src/components/provider/index.js +31 -24
- package/src/components/provider/use-block-editor-settings.js +11 -10
- package/src/components/sidebar/header.js +3 -2
- package/src/components/sidebar/index.js +5 -3
- package/src/components/sidebar/post-summary.js +1 -1
- package/src/components/sidebar/style.scss +1 -3
- package/src/components/start-page-options/index.js +0 -3
- package/src/components/start-template-options/index.js +0 -3
- package/src/components/time-to-read/index.js +3 -3
- package/src/components/visual-editor/index.js +39 -42
- package/src/components/visual-editor/style.scss +11 -0
- package/src/components/visual-editor/use-zoom-out-mode-exit.js +49 -0
- package/src/components/zoom-out-toggle/index.js +39 -5
- package/src/dataviews/actions/duplicate-template-part.tsx +3 -3
- package/src/store/actions.js +113 -34
- package/src/store/constants.ts +0 -2
- package/src/store/index.js +0 -4
- package/src/store/private-actions.js +3 -3
- package/src/store/selectors.js +5 -4
- package/src/style.scss +1 -0
- package/src/utils/pageTypeBadge.js +41 -0
- package/src/utils/terms.js +4 -2
- package/src/utils/test/terms.js +3 -3
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -18,7 +18,7 @@ import { store as coreStore } from '@wordpress/core-data';
|
|
|
18
18
|
import { unlock } from '../../lock-unlock';
|
|
19
19
|
import { usePostActions } from './actions';
|
|
20
20
|
|
|
21
|
-
const {
|
|
21
|
+
const { Menu, kebabCase } = unlock( componentsPrivateApis );
|
|
22
22
|
|
|
23
23
|
export default function PostActions( { postType, postId, onActionPerformed } ) {
|
|
24
24
|
const [ isActionsMenuOpen, setIsActionsMenuOpen ] = useState( false );
|
|
@@ -54,7 +54,7 @@ export default function PostActions( { postType, postId, onActionPerformed } ) {
|
|
|
54
54
|
}, [ allActions, itemWithPermissions ] );
|
|
55
55
|
|
|
56
56
|
return (
|
|
57
|
-
<
|
|
57
|
+
<Menu
|
|
58
58
|
open={ isActionsMenuOpen }
|
|
59
59
|
trigger={
|
|
60
60
|
<Button
|
|
@@ -79,7 +79,7 @@ export default function PostActions( { postType, postId, onActionPerformed } ) {
|
|
|
79
79
|
setIsActionsMenuOpen( false );
|
|
80
80
|
} }
|
|
81
81
|
/>
|
|
82
|
-
</
|
|
82
|
+
</Menu>
|
|
83
83
|
);
|
|
84
84
|
}
|
|
85
85
|
|
|
@@ -93,12 +93,9 @@ function DropdownMenuItemTrigger( { action, onClick, items } ) {
|
|
|
93
93
|
const label =
|
|
94
94
|
typeof action.label === 'string' ? action.label : action.label( items );
|
|
95
95
|
return (
|
|
96
|
-
<
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
>
|
|
100
|
-
<DropdownMenuV2.ItemLabel>{ label }</DropdownMenuV2.ItemLabel>
|
|
101
|
-
</DropdownMenuV2.Item>
|
|
96
|
+
<Menu.Item onClick={ onClick } hideOnClick={ ! action.RenderModal }>
|
|
97
|
+
<Menu.ItemLabel>{ label }</Menu.ItemLabel>
|
|
98
|
+
</Menu.Item>
|
|
102
99
|
);
|
|
103
100
|
}
|
|
104
101
|
|
|
@@ -145,7 +142,7 @@ function ActionWithModal( { action, item, ActionTrigger, onClose } ) {
|
|
|
145
142
|
// With an added onClose prop.
|
|
146
143
|
function ActionsDropdownMenuGroup( { actions, item, onClose } ) {
|
|
147
144
|
return (
|
|
148
|
-
<
|
|
145
|
+
<Menu.Group>
|
|
149
146
|
{ actions.map( ( action ) => {
|
|
150
147
|
if ( action.RenderModal ) {
|
|
151
148
|
return (
|
|
@@ -167,6 +164,6 @@ function ActionsDropdownMenuGroup( { actions, item, onClose } ) {
|
|
|
167
164
|
/>
|
|
168
165
|
);
|
|
169
166
|
} ) }
|
|
170
|
-
</
|
|
167
|
+
</Menu.Group>
|
|
171
168
|
);
|
|
172
169
|
}
|
|
@@ -25,8 +25,10 @@ function PostAuthorToggle( { isOpen, onClick } ) {
|
|
|
25
25
|
className="editor-post-author__panel-toggle"
|
|
26
26
|
variant="tertiary"
|
|
27
27
|
aria-expanded={ isOpen }
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
aria-label={
|
|
29
|
+
// translators: %s: Author name.
|
|
30
|
+
sprintf( __( 'Change author: %s' ), authorName )
|
|
31
|
+
}
|
|
30
32
|
onClick={ onClick }
|
|
31
33
|
>
|
|
32
34
|
{ authorName }
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import clsx from 'clsx';
|
|
5
1
|
/**
|
|
6
2
|
* WordPress dependencies
|
|
7
3
|
*/
|
|
@@ -22,27 +18,20 @@ import { store as editorStore } from '../../store';
|
|
|
22
18
|
import {
|
|
23
19
|
TEMPLATE_POST_TYPE,
|
|
24
20
|
TEMPLATE_PART_POST_TYPE,
|
|
25
|
-
PATTERN_POST_TYPE,
|
|
26
|
-
GLOBAL_POST_TYPES,
|
|
27
21
|
} from '../../store/constants';
|
|
28
22
|
import { unlock } from '../../lock-unlock';
|
|
29
23
|
import PostActions from '../post-actions';
|
|
24
|
+
import usePageTypeBadge from '../../utils/pageTypeBadge';
|
|
30
25
|
|
|
31
26
|
export default function PostCardPanel( {
|
|
32
27
|
postType,
|
|
33
28
|
postId,
|
|
34
29
|
onActionPerformed,
|
|
35
30
|
} ) {
|
|
36
|
-
const {
|
|
31
|
+
const { title, icon } = useSelect(
|
|
37
32
|
( select ) => {
|
|
38
33
|
const { __experimentalGetTemplateInfo } = select( editorStore );
|
|
39
|
-
const {
|
|
40
|
-
const siteSettings = canUser( 'read', {
|
|
41
|
-
kind: 'root',
|
|
42
|
-
name: 'site',
|
|
43
|
-
} )
|
|
44
|
-
? getEditedEntityRecord( 'root', 'site' )
|
|
45
|
-
: undefined;
|
|
34
|
+
const { getEditedEntityRecord } = select( coreStore );
|
|
46
35
|
const _record = getEditedEntityRecord(
|
|
47
36
|
'postType',
|
|
48
37
|
postType,
|
|
@@ -52,31 +41,18 @@ export default function PostCardPanel( {
|
|
|
52
41
|
[ TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE ].includes(
|
|
53
42
|
postType
|
|
54
43
|
) && __experimentalGetTemplateInfo( _record );
|
|
55
|
-
let _isSync = false;
|
|
56
|
-
if ( GLOBAL_POST_TYPES.includes( postType ) ) {
|
|
57
|
-
if ( PATTERN_POST_TYPE === postType ) {
|
|
58
|
-
// When the post is first created, the top level wp_pattern_sync_status is not set so get meta value instead.
|
|
59
|
-
const currentSyncStatus =
|
|
60
|
-
_record?.meta?.wp_pattern_sync_status === 'unsynced'
|
|
61
|
-
? 'unsynced'
|
|
62
|
-
: _record?.wp_pattern_sync_status;
|
|
63
|
-
_isSync = currentSyncStatus !== 'unsynced';
|
|
64
|
-
} else {
|
|
65
|
-
_isSync = true;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
44
|
return {
|
|
69
45
|
title: _templateInfo?.title || _record?.title,
|
|
70
46
|
icon: unlock( select( editorStore ) ).getPostIcon( postType, {
|
|
71
47
|
area: _record?.area,
|
|
72
48
|
} ),
|
|
73
|
-
isSync: _isSync,
|
|
74
|
-
isFrontPage: siteSettings?.page_on_front === postId,
|
|
75
|
-
isPostsPage: siteSettings?.page_for_posts === postId,
|
|
76
49
|
};
|
|
77
50
|
},
|
|
78
51
|
[ postId, postType ]
|
|
79
52
|
);
|
|
53
|
+
|
|
54
|
+
const pageTypeBadge = usePageTypeBadge();
|
|
55
|
+
|
|
80
56
|
return (
|
|
81
57
|
<div className="editor-post-card-panel">
|
|
82
58
|
<HStack
|
|
@@ -84,12 +60,7 @@ export default function PostCardPanel( {
|
|
|
84
60
|
className="editor-post-card-panel__header"
|
|
85
61
|
align="flex-start"
|
|
86
62
|
>
|
|
87
|
-
<Icon
|
|
88
|
-
className={ clsx( 'editor-post-card-panel__icon', {
|
|
89
|
-
'is-sync': isSync,
|
|
90
|
-
} ) }
|
|
91
|
-
icon={ icon }
|
|
92
|
-
/>
|
|
63
|
+
<Icon className="editor-post-card-panel__icon" icon={ icon } />
|
|
93
64
|
<Text
|
|
94
65
|
numberOfLines={ 2 }
|
|
95
66
|
truncate
|
|
@@ -99,14 +70,9 @@ export default function PostCardPanel( {
|
|
|
99
70
|
lineHeight="20px"
|
|
100
71
|
>
|
|
101
72
|
{ title ? decodeEntities( title ) : __( 'No title' ) }
|
|
102
|
-
{
|
|
103
|
-
<span className="editor-post-card-panel__title-badge">
|
|
104
|
-
{ __( 'Homepage' ) }
|
|
105
|
-
</span>
|
|
106
|
-
) }
|
|
107
|
-
{ isPostsPage && (
|
|
73
|
+
{ pageTypeBadge && (
|
|
108
74
|
<span className="editor-post-card-panel__title-badge">
|
|
109
|
-
{
|
|
75
|
+
{ pageTypeBadge }
|
|
110
76
|
</span>
|
|
111
77
|
) }
|
|
112
78
|
</Text>
|
|
@@ -34,17 +34,9 @@
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
.editor-post-card-panel__icon.is-sync {
|
|
38
|
-
fill: var(--wp-block-synced-color);
|
|
39
|
-
|
|
40
|
-
& + .editor-post-card-panel__title {
|
|
41
|
-
color: var(--wp-block-synced-color);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
37
|
.editor-post-card-panel__title-badge {
|
|
46
38
|
background: $gray-100;
|
|
47
|
-
color: $gray-
|
|
39
|
+
color: $gray-800;
|
|
48
40
|
padding: 0 $grid-unit-05;
|
|
49
41
|
border-radius: $radius-small;
|
|
50
42
|
font-size: 12px;
|
|
@@ -70,7 +70,7 @@ export default function PostContentInformation() {
|
|
|
70
70
|
readingTime <= 1
|
|
71
71
|
? __( '1 minute' )
|
|
72
72
|
: sprintf(
|
|
73
|
-
|
|
73
|
+
/* translators: %s: the number of minutes to read the post. */
|
|
74
74
|
_n( '%s minute', '%s minutes', readingTime ),
|
|
75
75
|
readingTime.toLocaleString()
|
|
76
76
|
);
|
|
@@ -121,6 +121,35 @@ function PostFeaturedImage( {
|
|
|
121
121
|
} );
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
+
/**
|
|
125
|
+
* Generates the featured image alt text for this editing context.
|
|
126
|
+
*
|
|
127
|
+
* @param {Object} imageMedia The image media object.
|
|
128
|
+
* @param {string} imageMedia.alt_text The alternative text of the image.
|
|
129
|
+
* @param {Object} imageMedia.media_details The media details of the image.
|
|
130
|
+
* @param {Object} imageMedia.media_details.sizes The sizes of the image.
|
|
131
|
+
* @param {Object} imageMedia.media_details.sizes.full The full size details of the image.
|
|
132
|
+
* @param {string} imageMedia.media_details.sizes.full.file The file name of the full size image.
|
|
133
|
+
* @param {string} imageMedia.slug The slug of the image.
|
|
134
|
+
* @return {string} The featured image alt text.
|
|
135
|
+
*/
|
|
136
|
+
function getImageDescription( imageMedia ) {
|
|
137
|
+
if ( imageMedia.alt_text ) {
|
|
138
|
+
return sprintf(
|
|
139
|
+
// Translators: %s: The selected image alt text.
|
|
140
|
+
__( 'Current image: %s' ),
|
|
141
|
+
imageMedia.alt_text
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
return sprintf(
|
|
145
|
+
// Translators: %s: The selected image filename.
|
|
146
|
+
__(
|
|
147
|
+
'The current image has no alternative text. The file name is: %s'
|
|
148
|
+
),
|
|
149
|
+
imageMedia.media_details.sizes?.full?.file || imageMedia.slug
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
|
|
124
153
|
return (
|
|
125
154
|
<PostFeaturedImageCheck>
|
|
126
155
|
{ noticeUI }
|
|
@@ -130,21 +159,7 @@ function PostFeaturedImage( {
|
|
|
130
159
|
id={ `editor-post-featured-image-${ featuredImageId }-describedby` }
|
|
131
160
|
className="hidden"
|
|
132
161
|
>
|
|
133
|
-
{ media
|
|
134
|
-
sprintf(
|
|
135
|
-
// Translators: %s: The selected image alt text.
|
|
136
|
-
__( 'Current image: %s' ),
|
|
137
|
-
media.alt_text
|
|
138
|
-
) }
|
|
139
|
-
{ ! media.alt_text &&
|
|
140
|
-
sprintf(
|
|
141
|
-
// Translators: %s: The selected image filename.
|
|
142
|
-
__(
|
|
143
|
-
'The current image has no alternative text. The file name is: %s'
|
|
144
|
-
),
|
|
145
|
-
media.media_details.sizes?.full?.file ||
|
|
146
|
-
media.slug
|
|
147
|
-
) }
|
|
162
|
+
{ getImageDescription( media ) }
|
|
148
163
|
</div>
|
|
149
164
|
) }
|
|
150
165
|
<MediaUploadCheck fallback={ instructions }>
|
|
@@ -188,7 +203,7 @@ function PostFeaturedImage( {
|
|
|
188
203
|
<img
|
|
189
204
|
className="editor-post-featured-image__preview-image"
|
|
190
205
|
src={ mediaSourceUrl }
|
|
191
|
-
alt=
|
|
206
|
+
alt={ getImageDescription( media ) }
|
|
192
207
|
/>
|
|
193
208
|
) }
|
|
194
209
|
{ isLoading && <Spinner /> }
|
|
@@ -41,8 +41,6 @@
|
|
|
41
41
|
.editor-post-featured-image__preview {
|
|
42
42
|
width: 100%;
|
|
43
43
|
padding: 0;
|
|
44
|
-
transition: all 0.1s ease-out;
|
|
45
|
-
@include reduce-motion("transition");
|
|
46
44
|
box-shadow: 0 0 0 0 var(--wp-admin-theme-color);
|
|
47
45
|
overflow: hidden; // Ensure the focus style properly encapsulates the image.
|
|
48
46
|
outline-offset: -#{$border-width};
|
|
@@ -66,6 +64,11 @@
|
|
|
66
64
|
|
|
67
65
|
.editor-post-featured-image__toggle {
|
|
68
66
|
box-shadow: inset 0 0 0 $border-width $gray-400;
|
|
67
|
+
|
|
68
|
+
&:focus:not(:disabled) {
|
|
69
|
+
// Allow smooth transition between focused and unfocused box-shadow states.
|
|
70
|
+
box-shadow: 0 0 0 currentColor inset, 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
|
|
71
|
+
}
|
|
69
72
|
}
|
|
70
73
|
|
|
71
74
|
.editor-post-featured-image__actions {
|
|
@@ -48,7 +48,7 @@ export function getFullPostScheduleLabel( dateAttribute ) {
|
|
|
48
48
|
|
|
49
49
|
const timezoneAbbreviation = getTimezoneAbbreviation();
|
|
50
50
|
const formattedDate = dateI18n(
|
|
51
|
-
// translators:
|
|
51
|
+
// translators: Use a non-breaking space between 'g:i' and 'a' if appropriate.
|
|
52
52
|
_x( 'F j, Y g:i\xa0a', 'post schedule full date format' ),
|
|
53
53
|
date
|
|
54
54
|
);
|
|
@@ -35,23 +35,23 @@ function setupUseSelectMock( { hasStickyAction, postType } ) {
|
|
|
35
35
|
describe( 'PostSticky', () => {
|
|
36
36
|
it( 'should not render anything if the post type is not "post"', () => {
|
|
37
37
|
setupUseSelectMock( { hasStickyAction: true, postType: 'page' } );
|
|
38
|
-
render( <PostStickyCheck>Can
|
|
38
|
+
render( <PostStickyCheck>Can Show Sticky</PostStickyCheck> );
|
|
39
39
|
expect(
|
|
40
|
-
screen.queryByText( 'Can
|
|
40
|
+
screen.queryByText( 'Can Show Sticky' )
|
|
41
41
|
).not.toBeInTheDocument();
|
|
42
42
|
} );
|
|
43
43
|
|
|
44
44
|
it( "should not render anything if post doesn't support stickying", () => {
|
|
45
45
|
setupUseSelectMock( { hasStickyAction: false, postType: 'post' } );
|
|
46
|
-
render( <PostStickyCheck>Can
|
|
46
|
+
render( <PostStickyCheck>Can Show Sticky</PostStickyCheck> );
|
|
47
47
|
expect(
|
|
48
|
-
screen.queryByText( 'Can
|
|
48
|
+
screen.queryByText( 'Can Show Sticky' )
|
|
49
49
|
).not.toBeInTheDocument();
|
|
50
50
|
} );
|
|
51
51
|
|
|
52
52
|
it( 'should render if the post supports stickying', () => {
|
|
53
53
|
setupUseSelectMock( { hasStickyAction: true, postType: 'post' } );
|
|
54
|
-
render( <PostStickyCheck>Can
|
|
55
|
-
expect( screen.getByText( 'Can
|
|
54
|
+
render( <PostStickyCheck>Can Show Sticky</PostStickyCheck> );
|
|
55
|
+
expect( screen.getByText( 'Can Show Sticky' ) ).toBeVisible();
|
|
56
56
|
} );
|
|
57
57
|
} );
|
|
@@ -2,8 +2,12 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { __, _x, sprintf } from '@wordpress/i18n';
|
|
5
|
-
import { useEffect, useMemo, useState } from '@wordpress/element';
|
|
6
|
-
import {
|
|
5
|
+
import { Fragment, useEffect, useMemo, useState } from '@wordpress/element';
|
|
6
|
+
import {
|
|
7
|
+
FormTokenField,
|
|
8
|
+
withFilters,
|
|
9
|
+
__experimentalVStack as VStack,
|
|
10
|
+
} from '@wordpress/components';
|
|
7
11
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
8
12
|
import deprecated from '@wordpress/deprecated';
|
|
9
13
|
import { store as coreStore } from '@wordpress/core-data';
|
|
@@ -53,6 +57,13 @@ const termNamesToIds = ( names, terms ) => {
|
|
|
53
57
|
.filter( ( id ) => id !== undefined );
|
|
54
58
|
};
|
|
55
59
|
|
|
60
|
+
const Wrapper = ( { children, __nextHasNoMarginBottom } ) =>
|
|
61
|
+
__nextHasNoMarginBottom ? (
|
|
62
|
+
<VStack spacing={ 4 }>{ children }</VStack>
|
|
63
|
+
) : (
|
|
64
|
+
<Fragment>{ children }</Fragment>
|
|
65
|
+
);
|
|
66
|
+
|
|
56
67
|
/**
|
|
57
68
|
* Renders a flat term selector component.
|
|
58
69
|
*
|
|
@@ -289,7 +300,7 @@ export function FlatTermSelector( { slug, __nextHasNoMarginBottom } ) {
|
|
|
289
300
|
);
|
|
290
301
|
|
|
291
302
|
return (
|
|
292
|
-
|
|
303
|
+
<Wrapper __nextHasNoMarginBottom={ __nextHasNoMarginBottom }>
|
|
293
304
|
<FormTokenField
|
|
294
305
|
__next40pxDefaultSize
|
|
295
306
|
value={ values }
|
|
@@ -306,7 +317,7 @@ export function FlatTermSelector( { slug, __nextHasNoMarginBottom } ) {
|
|
|
306
317
|
__nextHasNoMarginBottom={ __nextHasNoMarginBottom }
|
|
307
318
|
/>
|
|
308
319
|
<MostUsedTerms taxonomy={ taxonomy } onSelect={ appendTerm } />
|
|
309
|
-
|
|
320
|
+
</Wrapper>
|
|
310
321
|
);
|
|
311
322
|
}
|
|
312
323
|
|
|
@@ -310,7 +310,7 @@ export function HierarchicalTermSelector( { slug } ) {
|
|
|
310
310
|
const defaultName =
|
|
311
311
|
slug === 'category' ? __( 'Category' ) : __( 'Term' );
|
|
312
312
|
const termAddedMessage = sprintf(
|
|
313
|
-
/* translators: %s:
|
|
313
|
+
/* translators: %s: term name. */
|
|
314
314
|
_x( '%s added', 'term' ),
|
|
315
315
|
taxonomy?.labels?.singular_name ?? defaultName
|
|
316
316
|
);
|
|
@@ -341,7 +341,7 @@ export function HierarchicalTermSelector( { slug } ) {
|
|
|
341
341
|
|
|
342
342
|
const resultCount = getResultCount( newFilteredTermsTree );
|
|
343
343
|
const resultsFoundMessage = sprintf(
|
|
344
|
-
/* translators: %d: number of results */
|
|
344
|
+
/* translators: %d: number of results. */
|
|
345
345
|
_n( '%d result found.', '%d results found.', resultCount ),
|
|
346
346
|
resultCount
|
|
347
347
|
);
|
|
@@ -9,7 +9,6 @@ import { __ } from '@wordpress/i18n';
|
|
|
9
9
|
import { useDispatch } from '@wordpress/data';
|
|
10
10
|
import { store as coreStore } from '@wordpress/core-data';
|
|
11
11
|
import { parse } from '@wordpress/blocks';
|
|
12
|
-
import { useAsyncList } from '@wordpress/compose';
|
|
13
12
|
|
|
14
13
|
/**
|
|
15
14
|
* Internal dependencies
|
|
@@ -71,12 +70,10 @@ function TemplatesList( { postType, onSelect } ) {
|
|
|
71
70
|
} ) ),
|
|
72
71
|
[ availableTemplates ]
|
|
73
72
|
);
|
|
74
|
-
const shownTemplates = useAsyncList( templatesAsPatterns );
|
|
75
73
|
return (
|
|
76
74
|
<BlockPatternsList
|
|
77
75
|
label={ __( 'Templates' ) }
|
|
78
76
|
blockPatterns={ templatesAsPatterns }
|
|
79
|
-
shownPatterns={ shownTemplates }
|
|
80
77
|
onClickPattern={ onSelect }
|
|
81
78
|
/>
|
|
82
79
|
);
|
|
@@ -5,7 +5,6 @@ import { useSelect, useDispatch } from '@wordpress/data';
|
|
|
5
5
|
import { store as coreStore } from '@wordpress/core-data';
|
|
6
6
|
import { PanelBody } from '@wordpress/components';
|
|
7
7
|
import { __ } from '@wordpress/i18n';
|
|
8
|
-
import { useAsyncList } from '@wordpress/compose';
|
|
9
8
|
import { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';
|
|
10
9
|
import { serialize } from '@wordpress/blocks';
|
|
11
10
|
|
|
@@ -20,7 +19,6 @@ import {
|
|
|
20
19
|
} from '../../store/constants';
|
|
21
20
|
|
|
22
21
|
function TemplatesList( { availableTemplates, onSelect } ) {
|
|
23
|
-
const shownTemplates = useAsyncList( availableTemplates );
|
|
24
22
|
if ( ! availableTemplates || availableTemplates?.length === 0 ) {
|
|
25
23
|
return null;
|
|
26
24
|
}
|
|
@@ -29,7 +27,6 @@ function TemplatesList( { availableTemplates, onSelect } ) {
|
|
|
29
27
|
<BlockPatternsList
|
|
30
28
|
label={ __( 'Templates' ) }
|
|
31
29
|
blockPatterns={ availableTemplates }
|
|
32
|
-
shownPatterns={ shownTemplates }
|
|
33
30
|
onClickPattern={ onSelect }
|
|
34
31
|
showTitlesAsTooltip
|
|
35
32
|
/>
|
|
@@ -76,7 +76,7 @@ export default function PostURL( { onClose } ) {
|
|
|
76
76
|
} );
|
|
77
77
|
} );
|
|
78
78
|
const postUrlSlugDescriptionId =
|
|
79
|
-
'editor-post-url__slug-
|
|
79
|
+
'editor-post-url__slug-description-' + useInstanceId( PostURL );
|
|
80
80
|
|
|
81
81
|
return (
|
|
82
82
|
<div className="editor-post-url">
|
|
@@ -93,8 +93,10 @@ function PostURLToggle( { isOpen, onClick } ) {
|
|
|
93
93
|
className="editor-post-url__panel-toggle"
|
|
94
94
|
variant="tertiary"
|
|
95
95
|
aria-expanded={ isOpen }
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
aria-label={
|
|
97
|
+
// translators: %s: Current post link.
|
|
98
|
+
sprintf( __( 'Change link: %s' ), decodedSlug )
|
|
99
|
+
}
|
|
98
100
|
onClick={ onClick }
|
|
99
101
|
>
|
|
100
102
|
<>{ decodedSlug }</>
|
|
@@ -36,25 +36,40 @@ const {
|
|
|
36
36
|
} = unlock( preferencesPrivateApis );
|
|
37
37
|
|
|
38
38
|
export default function EditorPreferencesModal( { extraSections = {} } ) {
|
|
39
|
+
const isActive = useSelect( ( select ) => {
|
|
40
|
+
return select( interfaceStore ).isModalActive( 'editor/preferences' );
|
|
41
|
+
}, [] );
|
|
42
|
+
const { closeModal } = useDispatch( interfaceStore );
|
|
43
|
+
|
|
44
|
+
if ( ! isActive ) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Please wrap all contents inside PreferencesModalContents to prevent all
|
|
49
|
+
// hooks from executing when the modal is not open.
|
|
50
|
+
return (
|
|
51
|
+
<PreferencesModal closeModal={ closeModal }>
|
|
52
|
+
<PreferencesModalContents extraSections={ extraSections } />
|
|
53
|
+
</PreferencesModal>
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function PreferencesModalContents( { extraSections = {} } ) {
|
|
39
58
|
const isLargeViewport = useViewportMatch( 'medium' );
|
|
40
|
-
const
|
|
59
|
+
const showBlockBreadcrumbsOption = useSelect(
|
|
41
60
|
( select ) => {
|
|
42
61
|
const { getEditorSettings } = select( editorStore );
|
|
43
62
|
const { get } = select( preferencesStore );
|
|
44
|
-
const { isModalActive } = select( interfaceStore );
|
|
45
63
|
const isRichEditingEnabled = getEditorSettings().richEditingEnabled;
|
|
46
64
|
const isDistractionFreeEnabled = get( 'core', 'distractionFree' );
|
|
47
|
-
return
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
isActive: isModalActive( 'editor/preferences' ),
|
|
53
|
-
};
|
|
65
|
+
return (
|
|
66
|
+
! isDistractionFreeEnabled &&
|
|
67
|
+
isLargeViewport &&
|
|
68
|
+
isRichEditingEnabled
|
|
69
|
+
);
|
|
54
70
|
},
|
|
55
71
|
[ isLargeViewport ]
|
|
56
72
|
);
|
|
57
|
-
const { closeModal } = useDispatch( interfaceStore );
|
|
58
73
|
const { setIsListViewOpened, setIsInserterOpened } =
|
|
59
74
|
useDispatch( editorStore );
|
|
60
75
|
const { set: setPreference } = useDispatch( preferencesStore );
|
|
@@ -330,13 +345,5 @@ export default function EditorPreferencesModal( { extraSections = {} } ) {
|
|
|
330
345
|
]
|
|
331
346
|
);
|
|
332
347
|
|
|
333
|
-
|
|
334
|
-
return null;
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
return (
|
|
338
|
-
<PreferencesModal closeModal={ closeModal }>
|
|
339
|
-
<PreferencesModalTabs sections={ sections } />
|
|
340
|
-
</PreferencesModal>
|
|
341
|
-
);
|
|
348
|
+
return <PreferencesModalTabs sections={ sections } />;
|
|
342
349
|
}
|
|
@@ -19,7 +19,7 @@ jest.mock( '@wordpress/compose/src/hooks/use-viewport-match', () => jest.fn() );
|
|
|
19
19
|
|
|
20
20
|
describe( 'EditPostPreferencesModal', () => {
|
|
21
21
|
it( 'should not render when the modal is not active', () => {
|
|
22
|
-
useSelect.mockImplementation( () =>
|
|
22
|
+
useSelect.mockImplementation( () => false );
|
|
23
23
|
render( <EditPostPreferencesModal /> );
|
|
24
24
|
expect(
|
|
25
25
|
screen.queryByRole( 'dialog', { name: 'Preferences' } )
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
Icon,
|
|
17
17
|
} from '@wordpress/components';
|
|
18
18
|
import { __ } from '@wordpress/i18n';
|
|
19
|
-
import { desktop, mobile, tablet, external } from '@wordpress/icons';
|
|
19
|
+
import { desktop, mobile, tablet, external, check } from '@wordpress/icons';
|
|
20
20
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
21
21
|
import { store as coreStore } from '@wordpress/core-data';
|
|
22
22
|
import { store as preferencesStore } from '@wordpress/preferences';
|
|
@@ -31,27 +31,36 @@ import PostPreviewButton from '../post-preview-button';
|
|
|
31
31
|
import { unlock } from '../../lock-unlock';
|
|
32
32
|
|
|
33
33
|
export default function PreviewDropdown( { forceIsAutosaveable, disabled } ) {
|
|
34
|
-
const {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
|
|
34
|
+
const {
|
|
35
|
+
deviceType,
|
|
36
|
+
homeUrl,
|
|
37
|
+
isTemplate,
|
|
38
|
+
isViewable,
|
|
39
|
+
showIconLabels,
|
|
40
|
+
isTemplateHidden,
|
|
41
|
+
templateId,
|
|
42
|
+
} = useSelect( ( select ) => {
|
|
43
|
+
const { getDeviceType, getCurrentPostType, getCurrentTemplateId } =
|
|
44
|
+
select( editorStore );
|
|
45
|
+
const { getRenderingMode } = unlock( select( editorStore ) );
|
|
46
|
+
const { getEntityRecord, getPostType } = select( coreStore );
|
|
47
|
+
const { get } = select( preferencesStore );
|
|
48
|
+
const _currentPostType = getCurrentPostType();
|
|
49
|
+
return {
|
|
50
|
+
deviceType: getDeviceType(),
|
|
51
|
+
homeUrl: getEntityRecord( 'root', '__unstableBase' )?.home,
|
|
52
|
+
isTemplate: _currentPostType === 'wp_template',
|
|
53
|
+
isViewable: getPostType( _currentPostType )?.viewable ?? false,
|
|
54
|
+
showIconLabels: get( 'core', 'showIconLabels' ),
|
|
55
|
+
isTemplateHidden: getRenderingMode() === 'post-only',
|
|
56
|
+
templateId: getCurrentTemplateId(),
|
|
57
|
+
};
|
|
58
|
+
}, [] );
|
|
59
|
+
const { setDeviceType, setRenderingMode } = useDispatch( editorStore );
|
|
50
60
|
const { resetZoomLevel } = unlock( useDispatch( blockEditorStore ) );
|
|
51
61
|
|
|
52
62
|
const handleDevicePreviewChange = ( newDeviceType ) => {
|
|
53
63
|
setDeviceType( newDeviceType );
|
|
54
|
-
__unstableSetEditorMode( 'edit' );
|
|
55
64
|
resetZoomLevel();
|
|
56
65
|
};
|
|
57
66
|
|
|
@@ -144,6 +153,24 @@ export default function PreviewDropdown( { forceIsAutosaveable, disabled } ) {
|
|
|
144
153
|
</MenuItem>
|
|
145
154
|
</MenuGroup>
|
|
146
155
|
) }
|
|
156
|
+
{ ! isTemplate && !! templateId && (
|
|
157
|
+
<MenuGroup>
|
|
158
|
+
<MenuItem
|
|
159
|
+
icon={ ! isTemplateHidden ? check : undefined }
|
|
160
|
+
isSelected={ ! isTemplateHidden }
|
|
161
|
+
role="menuitemcheckbox"
|
|
162
|
+
onClick={ () => {
|
|
163
|
+
setRenderingMode(
|
|
164
|
+
isTemplateHidden
|
|
165
|
+
? 'template-locked'
|
|
166
|
+
: 'post-only'
|
|
167
|
+
);
|
|
168
|
+
} }
|
|
169
|
+
>
|
|
170
|
+
{ __( 'Show template' ) }
|
|
171
|
+
</MenuItem>
|
|
172
|
+
</MenuGroup>
|
|
173
|
+
) }
|
|
147
174
|
{ isViewable && (
|
|
148
175
|
<MenuGroup>
|
|
149
176
|
<PostPreviewButton
|