@wordpress/edit-site 5.27.2 → 5.28.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/components/actions/index.js +3 -6
- package/build/components/actions/index.js.map +1 -1
- package/build/components/add-new-template/add-custom-generic-template-modal-content.js +1 -2
- package/build/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
- package/build/components/add-new-template/add-custom-template-modal-content.js +1 -2
- package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
- package/build/components/block-editor/editor-canvas.js +1 -2
- package/build/components/block-editor/editor-canvas.js.map +1 -1
- package/build/components/block-editor/inserter-media-categories.js +1 -2
- package/build/components/block-editor/inserter-media-categories.js.map +1 -1
- package/build/components/block-editor/resizable-editor.js +1 -2
- package/build/components/block-editor/resizable-editor.js.map +1 -1
- package/build/components/block-editor/site-editor-canvas.js +4 -3
- package/build/components/block-editor/site-editor-canvas.js.map +1 -1
- package/build/components/block-editor/{use-post-link-props.js → use-navigate-to-entity-record.js} +9 -8
- package/build/components/block-editor/use-navigate-to-entity-record.js.map +1 -0
- package/build/components/block-editor/use-site-editor-settings.js +31 -5
- package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build/components/editor/index.js +6 -3
- package/build/components/editor/index.js.map +1 -1
- package/build/components/editor-canvas-container/index.js +1 -2
- package/build/components/editor-canvas-container/index.js.map +1 -1
- package/build/components/global-styles/block-preview-panel.js +1 -2
- package/build/components/global-styles/block-preview-panel.js.map +1 -1
- package/build/components/global-styles/color-indicator-wrapper.js +1 -2
- package/build/components/global-styles/color-indicator-wrapper.js.map +1 -1
- package/build/components/global-styles/font-families.js +9 -5
- package/build/components/global-styles/font-families.js.map +1 -1
- package/build/components/global-styles/font-family-item.js +1 -2
- package/build/components/global-styles/font-family-item.js.map +1 -1
- package/build/components/global-styles/font-library-modal/collection-font-details.js +1 -2
- package/build/components/global-styles/font-library-modal/collection-font-details.js.map +1 -1
- package/build/components/global-styles/font-library-modal/collection-font-variant.js +13 -13
- package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
- package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js +1 -2
- package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -1
- package/build/components/global-styles/font-library-modal/context.js +2 -13
- package/build/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build/components/global-styles/font-library-modal/font-card.js +3 -3
- package/build/components/global-styles/font-library-modal/font-card.js.map +1 -1
- package/build/components/global-styles/font-library-modal/font-collection.js +9 -7
- package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build/components/global-styles/font-library-modal/font-demo.js +5 -11
- package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -1
- package/build/components/global-styles/font-library-modal/fonts-grid.js +1 -2
- package/build/components/global-styles/font-library-modal/fonts-grid.js.map +1 -1
- package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +2 -3
- package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
- package/build/components/global-styles/font-library-modal/index.js +1 -2
- package/build/components/global-styles/font-library-modal/index.js.map +1 -1
- package/build/components/global-styles/font-library-modal/installed-fonts.js +6 -5
- package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build/components/global-styles/font-library-modal/library-font-card.js +2 -3
- package/build/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
- package/build/components/global-styles/font-library-modal/library-font-details.js +1 -2
- package/build/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
- package/build/components/global-styles/font-library-modal/library-font-variant.js +13 -13
- package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
- package/build/components/global-styles/font-library-modal/tab-panel-layout.js +14 -4
- package/build/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -1
- package/build/components/global-styles/font-library-modal/upload-fonts.js +9 -8
- package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/constants.js +3 -6
- package/build/components/global-styles/font-library-modal/utils/constants.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/index.js +4 -1
- package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
- package/build/components/global-styles/header.js +1 -2
- package/build/components/global-styles/header.js.map +1 -1
- package/build/components/global-styles/palette.js +1 -2
- package/build/components/global-styles/palette.js.map +1 -1
- package/build/components/global-styles/preview.js +1 -2
- package/build/components/global-styles/preview.js.map +1 -1
- package/build/components/global-styles/root-menu.js +1 -2
- package/build/components/global-styles/root-menu.js.map +1 -1
- package/build/components/global-styles/screen-block-list.js +1 -2
- package/build/components/global-styles/screen-block-list.js.map +1 -1
- package/build/components/global-styles/screen-block.js +1 -11
- package/build/components/global-styles/screen-block.js.map +1 -1
- package/build/components/global-styles/screen-color-palette.js +1 -2
- package/build/components/global-styles/screen-color-palette.js.map +1 -1
- package/build/components/global-styles/screen-colors.js +1 -2
- package/build/components/global-styles/screen-colors.js.map +1 -1
- package/build/components/global-styles/screen-css.js +1 -2
- package/build/components/global-styles/screen-css.js.map +1 -1
- package/build/components/global-styles/screen-layout.js +1 -2
- package/build/components/global-styles/screen-layout.js.map +1 -1
- package/build/components/global-styles/screen-revisions/index.js +1 -2
- package/build/components/global-styles/screen-revisions/index.js.map +1 -1
- package/build/components/global-styles/screen-revisions/revisions-buttons.js +2 -3
- package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
- package/build/components/global-styles/screen-root.js +1 -2
- package/build/components/global-styles/screen-root.js.map +1 -1
- package/build/components/global-styles/screen-style-variations.js +1 -2
- package/build/components/global-styles/screen-style-variations.js.map +1 -1
- package/build/components/global-styles/screen-typography-element.js +3 -6
- package/build/components/global-styles/screen-typography-element.js.map +1 -1
- package/build/components/global-styles/screen-typography.js +1 -2
- package/build/components/global-styles/screen-typography.js.map +1 -1
- package/build/components/global-styles/subtitle.js +1 -2
- package/build/components/global-styles/subtitle.js.map +1 -1
- package/build/components/global-styles/typogrphy-elements.js +1 -2
- package/build/components/global-styles/typogrphy-elements.js.map +1 -1
- package/build/components/global-styles/ui.js +3 -4
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/header-edit-mode/mode-switcher/index.js +1 -2
- package/build/components/header-edit-mode/mode-switcher/index.js.map +1 -1
- package/build/components/header-edit-mode/more-menu/index.js +12 -21
- package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
- package/build/components/header-edit-mode/plugin-more-menu-item/index.js +1 -2
- package/build/components/header-edit-mode/plugin-more-menu-item/index.js.map +1 -1
- package/build/components/header-edit-mode/tools-more-menu-group/index.js +1 -2
- package/build/components/header-edit-mode/tools-more-menu-group/index.js.map +1 -1
- package/build/components/keyboard-shortcut-help-modal/config.js +1 -2
- package/build/components/keyboard-shortcut-help-modal/config.js.map +1 -1
- package/build/components/keyboard-shortcut-help-modal/index.js +1 -3
- package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
- package/build/components/keyboard-shortcuts/edit-mode.js +1 -2
- package/build/components/keyboard-shortcuts/edit-mode.js.map +1 -1
- package/build/components/keyboard-shortcuts/global.js +1 -2
- package/build/components/keyboard-shortcuts/global.js.map +1 -1
- package/build/components/keyboard-shortcuts/register.js +1 -2
- package/build/components/keyboard-shortcuts/register.js.map +1 -1
- package/build/components/layout/index.js +0 -2
- package/build/components/layout/index.js.map +1 -1
- package/build/components/media/index.js +1 -2
- package/build/components/media/index.js.map +1 -1
- package/build/components/page-pages/index.js +27 -15
- package/build/components/page-pages/index.js.map +1 -1
- package/build/components/page-patterns/dataviews-pattern-actions.js +87 -32
- package/build/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
- package/build/components/page-patterns/grid-item.js +2 -6
- package/build/components/page-patterns/grid-item.js.map +1 -1
- package/build/components/page-patterns/index.js +2 -1
- package/build/components/page-patterns/index.js.map +1 -1
- package/build/components/page-patterns/search-items.js +0 -1
- package/build/components/page-patterns/search-items.js.map +1 -1
- package/build/components/page-patterns/use-patterns.js +1 -2
- package/build/components/page-patterns/use-patterns.js.map +1 -1
- package/build/components/page-templates-template-parts/actions.js +2 -4
- package/build/components/page-templates-template-parts/actions.js.map +1 -1
- package/build/components/page-templates-template-parts/index.js +8 -5
- package/build/components/page-templates-template-parts/index.js.map +1 -1
- package/build/components/pattern-modal/index.js +1 -2
- package/build/components/pattern-modal/index.js.map +1 -1
- package/build/components/plugin-template-setting-panel/index.js +1 -2
- package/build/components/plugin-template-setting-panel/index.js.map +1 -1
- package/build/components/preferences-modal/index.js +1 -2
- package/build/components/preferences-modal/index.js.map +1 -1
- package/build/components/resizable-frame/index.js +1 -2
- package/build/components/resizable-frame/index.js.map +1 -1
- package/build/components/revisions/index.js +1 -2
- package/build/components/revisions/index.js.map +1 -1
- package/build/components/routes/link.js +2 -6
- package/build/components/routes/link.js.map +1 -1
- package/build/components/sidebar/index.js +3 -4
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/sidebar-dataviews/default-views.js +4 -6
- package/build/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build/components/sidebar-edit-mode/constants.js +2 -4
- package/build/components/sidebar-edit-mode/constants.js.map +1 -1
- package/build/components/sidebar-edit-mode/index.js +97 -18
- package/build/components/sidebar-edit-mode/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/settings-header/index.js +21 -43
- package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/index.js +1 -2
- package/build/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menus/constants.js +1 -2
- package/build/components/sidebar-navigation-screen-navigation-menus/constants.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +1 -1
- package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
- package/build/components/site-hub/index.js +1 -2
- package/build/components/site-hub/index.js.map +1 -1
- package/build/components/site-icon/index.js +3 -4
- package/build/components/site-icon/index.js.map +1 -1
- package/build/components/start-template-options/index.js +3 -5
- package/build/components/start-template-options/index.js.map +1 -1
- package/build/components/style-book/index.js +1 -2
- package/build/components/style-book/index.js.map +1 -1
- package/build/components/template-part-converter/convert-to-template-part.js +0 -1
- package/build/components/template-part-converter/convert-to-template-part.js.map +1 -1
- package/build/hooks/navigation-menu-edit.js +1 -2
- package/build/hooks/navigation-menu-edit.js.map +1 -1
- package/build/hooks/template-part-edit.js +1 -2
- package/build/hooks/template-part-edit.js.map +1 -1
- package/build/store/actions.js +7 -2
- package/build/store/actions.js.map +1 -1
- package/build/store/constants.js +1 -2
- package/build/store/constants.js.map +1 -1
- package/build/store/index.js +4 -6
- package/build/store/index.js.map +1 -1
- package/build/store/reducer.js +1 -2
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +9 -18
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils.js +1 -2
- package/build/store/utils.js.map +1 -1
- package/build/utils/constants.js +13 -26
- package/build/utils/constants.js.map +1 -1
- package/build-module/components/block-editor/site-editor-canvas.js +5 -4
- package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
- package/build-module/components/block-editor/{use-post-link-props.js → use-navigate-to-entity-record.js} +8 -7
- package/build-module/components/block-editor/use-navigate-to-entity-record.js.map +1 -0
- package/build-module/components/block-editor/use-site-editor-settings.js +30 -5
- package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build-module/components/editor/index.js +6 -3
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/global-styles/font-families.js +8 -4
- package/build-module/components/global-styles/font-families.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +12 -11
- package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/context.js +0 -9
- package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/font-card.js +3 -2
- package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/font-collection.js +9 -6
- package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/font-demo.js +4 -9
- package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +1 -1
- package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js +5 -3
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/library-font-card.js +1 -1
- package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/library-font-variant.js +12 -11
- package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js +13 -2
- package/build-module/components/global-styles/font-library-modal/tab-panel-layout.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/upload-fonts.js +9 -7
- package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/index.js +4 -1
- package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
- package/build-module/components/global-styles/screen-block.js +0 -9
- package/build-module/components/global-styles/screen-block.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
- package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
- package/build-module/components/global-styles/screen-typography-element.js +3 -5
- package/build-module/components/global-styles/screen-typography-element.js.map +1 -1
- package/build-module/components/header-edit-mode/more-menu/index.js +12 -21
- package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
- package/build-module/components/keyboard-shortcut-help-modal/index.js +0 -1
- package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
- package/build-module/components/layout/index.js +0 -2
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/page-pages/index.js +25 -13
- package/build-module/components/page-pages/index.js.map +1 -1
- package/build-module/components/page-patterns/dataviews-pattern-actions.js +81 -20
- package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
- package/build-module/components/page-patterns/grid-item.js +1 -4
- package/build-module/components/page-patterns/grid-item.js.map +1 -1
- package/build-module/components/page-patterns/index.js +2 -1
- package/build-module/components/page-patterns/index.js.map +1 -1
- package/build-module/components/page-patterns/search-items.js +0 -1
- package/build-module/components/page-patterns/search-items.js.map +1 -1
- package/build-module/components/page-templates-template-parts/index.js +6 -3
- package/build-module/components/page-templates-template-parts/index.js.map +1 -1
- package/build-module/components/routes/link.js +2 -5
- package/build-module/components/routes/link.js.map +1 -1
- package/build-module/components/sidebar-dataviews/default-views.js +3 -3
- package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/index.js +98 -18
- package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/settings-header/index.js +23 -43
- package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +2 -2
- package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
- package/build-module/components/site-icon/index.js +2 -2
- package/build-module/components/site-icon/index.js.map +1 -1
- package/build-module/components/start-template-options/index.js +4 -6
- package/build-module/components/start-template-options/index.js.map +1 -1
- package/build-module/components/template-part-converter/convert-to-template-part.js +0 -1
- package/build-module/components/template-part-converter/convert-to-template-part.js.map +1 -1
- package/build-module/store/actions.js +7 -2
- package/build-module/store/actions.js.map +1 -1
- package/build-style/style-rtl.css +389 -218
- package/build-style/style.css +389 -218
- package/package.json +42 -42
- package/src/components/add-new-template/style.scss +0 -12
- package/src/components/block-editor/site-editor-canvas.js +4 -3
- package/src/components/block-editor/style.scss +2 -20
- package/src/components/block-editor/use-navigate-to-entity-record.js +25 -0
- package/src/components/block-editor/use-site-editor-settings.js +38 -5
- package/src/components/editor/index.js +7 -1
- package/src/components/global-styles/font-families.js +13 -4
- package/src/components/global-styles/font-library-modal/collection-font-variant.js +10 -8
- package/src/components/global-styles/font-library-modal/context.js +0 -9
- package/src/components/global-styles/font-library-modal/font-card.js +10 -4
- package/src/components/global-styles/font-library-modal/font-collection.js +9 -7
- package/src/components/global-styles/font-library-modal/font-demo.js +8 -9
- package/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +1 -1
- package/src/components/global-styles/font-library-modal/installed-fonts.js +8 -3
- package/src/components/global-styles/font-library-modal/library-font-card.js +1 -1
- package/src/components/global-styles/font-library-modal/library-font-variant.js +10 -8
- package/src/components/global-styles/font-library-modal/style.scss +13 -17
- package/src/components/global-styles/font-library-modal/tab-panel-layout.js +11 -1
- package/src/components/global-styles/font-library-modal/upload-fonts.js +10 -13
- package/src/components/global-styles/font-library-modal/utils/index.js +2 -1
- package/src/components/global-styles/screen-block.js +0 -12
- package/src/components/global-styles/screen-revisions/revisions-buttons.js +1 -1
- package/src/components/global-styles/screen-revisions/style.scss +21 -15
- package/src/components/global-styles/screen-typography-element.js +2 -4
- package/src/components/global-styles/style.scss +4 -0
- package/src/components/header-edit-mode/more-menu/index.js +10 -18
- package/src/components/header-edit-mode/style.scss +54 -6
- package/src/components/layout/style.scss +2 -7
- package/src/components/page/style.scss +0 -1
- package/src/components/page-pages/index.js +32 -23
- package/src/components/page-pages/style.scss +28 -27
- package/src/components/page-patterns/dataviews-pattern-actions.js +106 -30
- package/src/components/page-patterns/grid-item.js +0 -2
- package/src/components/page-patterns/index.js +1 -0
- package/src/components/page-patterns/style.scss +4 -9
- package/src/components/page-templates-template-parts/index.js +23 -16
- package/src/components/page-templates-template-parts/style.scss +16 -0
- package/src/components/routes/link.js +2 -11
- package/src/components/sidebar-dataviews/default-views.js +3 -3
- package/src/components/sidebar-edit-mode/index.js +121 -25
- package/src/components/sidebar-edit-mode/settings-header/index.js +25 -63
- package/src/components/sidebar-edit-mode/settings-header/style.scss +0 -87
- package/src/components/sidebar-edit-mode/sidebar-card/style.scss +3 -0
- package/src/components/sidebar-edit-mode/style.scss +4 -0
- package/src/components/sidebar-navigation-screen/style.scss +2 -1
- package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +9 -3
- package/src/components/site-hub/style.scss +0 -1
- package/src/components/site-icon/index.js +1 -1
- package/src/components/site-icon/style.scss +9 -1
- package/src/components/start-template-options/index.js +3 -7
- package/src/store/actions.js +20 -3
- package/build/components/block-editor/back-button.js +0 -46
- package/build/components/block-editor/back-button.js.map +0 -1
- package/build/components/block-editor/use-post-link-props.js.map +0 -1
- package/build/components/global-styles/font-library-modal/font-variant.js +0 -51
- package/build/components/global-styles/font-library-modal/font-variant.js.map +0 -1
- package/build-module/components/block-editor/back-button.js +0 -38
- package/build-module/components/block-editor/back-button.js.map +0 -1
- package/build-module/components/block-editor/use-post-link-props.js.map +0 -1
- package/build-module/components/global-styles/font-library-modal/font-variant.js +0 -42
- package/build-module/components/global-styles/font-library-modal/font-variant.js.map +0 -1
- package/src/components/block-editor/back-button.js +0 -51
- package/src/components/block-editor/use-post-link-props.js +0 -24
- package/src/components/global-styles/font-library-modal/font-variant.js +0 -53
|
@@ -161,49 +161,125 @@ export const deleteAction = {
|
|
|
161
161
|
return canDeleteOrReset( item ) && ! hasThemeFile;
|
|
162
162
|
},
|
|
163
163
|
hideModalHeader: true,
|
|
164
|
-
|
|
165
|
-
|
|
164
|
+
supportsBulk: true,
|
|
165
|
+
RenderModal: ( { items, closeModal, onPerform } ) => {
|
|
166
166
|
const { __experimentalDeleteReusableBlock } =
|
|
167
167
|
useDispatch( reusableBlocksStore );
|
|
168
168
|
const { createErrorNotice, createSuccessNotice } =
|
|
169
169
|
useDispatch( noticesStore );
|
|
170
|
-
const {
|
|
170
|
+
const { removeTemplates } = unlock( useDispatch( editSiteStore ) );
|
|
171
171
|
|
|
172
172
|
const deletePattern = async () => {
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
173
|
+
const promiseResult = await Promise.allSettled(
|
|
174
|
+
items.map( ( item ) => {
|
|
175
|
+
return __experimentalDeleteReusableBlock( item.id );
|
|
176
|
+
} )
|
|
177
|
+
);
|
|
178
|
+
// If all the promises were fulfilled with success.
|
|
179
|
+
if (
|
|
180
|
+
promiseResult.every( ( { status } ) => status === 'fulfilled' )
|
|
181
|
+
) {
|
|
182
|
+
let successMessage;
|
|
183
|
+
if ( promiseResult.length === 1 ) {
|
|
184
|
+
successMessage = sprintf(
|
|
185
|
+
/* translators: The posts's title. */
|
|
178
186
|
__( '"%s" deleted.' ),
|
|
179
|
-
|
|
180
|
-
)
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
error.message && error.code !== 'unknown_error'
|
|
186
|
-
? error.message
|
|
187
|
-
: __( 'An error occurred while deleting the pattern.' );
|
|
188
|
-
createErrorNotice( errorMessage, {
|
|
187
|
+
items[ 0 ].title
|
|
188
|
+
);
|
|
189
|
+
} else {
|
|
190
|
+
successMessage = __( 'The patterns were deleted.' );
|
|
191
|
+
}
|
|
192
|
+
createSuccessNotice( successMessage, {
|
|
189
193
|
type: 'snackbar',
|
|
190
|
-
id: 'edit-site-
|
|
194
|
+
id: 'edit-site-page-trashed',
|
|
191
195
|
} );
|
|
196
|
+
} else {
|
|
197
|
+
// If there was at lease one failure.
|
|
198
|
+
let errorMessage;
|
|
199
|
+
// If we were trying to delete a single pattern.
|
|
200
|
+
if ( promiseResult.length === 1 ) {
|
|
201
|
+
if ( promiseResult[ 0 ].reason?.message ) {
|
|
202
|
+
errorMessage = promiseResult[ 0 ].reason.message;
|
|
203
|
+
} else {
|
|
204
|
+
errorMessage = __(
|
|
205
|
+
'An error occurred while deleting the pattern.'
|
|
206
|
+
);
|
|
207
|
+
}
|
|
208
|
+
// If we were trying to delete multiple patterns.
|
|
209
|
+
} else {
|
|
210
|
+
const errorMessages = new Set();
|
|
211
|
+
const failedPromises = promiseResult.filter(
|
|
212
|
+
( { status } ) => status === 'rejected'
|
|
213
|
+
);
|
|
214
|
+
for ( const failedPromise of failedPromises ) {
|
|
215
|
+
if ( failedPromise.reason?.message ) {
|
|
216
|
+
errorMessages.add( failedPromise.reason.message );
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
if ( errorMessages.size === 0 ) {
|
|
220
|
+
errorMessage = __(
|
|
221
|
+
'An error occurred while deleting the patterns.'
|
|
222
|
+
);
|
|
223
|
+
} else if ( errorMessages.size === 1 ) {
|
|
224
|
+
errorMessage = sprintf(
|
|
225
|
+
/* translators: %s: an error message */
|
|
226
|
+
__(
|
|
227
|
+
'An error occurred while deleting the patterns: %s'
|
|
228
|
+
),
|
|
229
|
+
[ ...errorMessages ][ 0 ]
|
|
230
|
+
);
|
|
231
|
+
} else {
|
|
232
|
+
errorMessage = sprintf(
|
|
233
|
+
/* translators: %s: a list of comma separated error messages */
|
|
234
|
+
__(
|
|
235
|
+
'Some errors occurred while deleting the patterns: %s'
|
|
236
|
+
),
|
|
237
|
+
[ ...errorMessages ].join( ',' )
|
|
238
|
+
);
|
|
239
|
+
}
|
|
240
|
+
createErrorNotice( errorMessage, {
|
|
241
|
+
type: 'snackbar',
|
|
242
|
+
} );
|
|
243
|
+
}
|
|
192
244
|
}
|
|
193
245
|
};
|
|
194
|
-
const deleteItem = () =>
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
246
|
+
const deleteItem = () => {
|
|
247
|
+
if ( items[ 0 ].type === TEMPLATE_PART_POST_TYPE ) {
|
|
248
|
+
removeTemplates( items );
|
|
249
|
+
} else {
|
|
250
|
+
deletePattern();
|
|
251
|
+
}
|
|
252
|
+
if ( onPerform ) {
|
|
253
|
+
onPerform();
|
|
254
|
+
}
|
|
255
|
+
closeModal();
|
|
256
|
+
};
|
|
257
|
+
let questionMessage;
|
|
258
|
+
if ( items.length === 1 ) {
|
|
259
|
+
questionMessage = sprintf(
|
|
260
|
+
// translators: %s: The page's title.
|
|
261
|
+
__( 'Are you sure you want to delete "%s"?' ),
|
|
262
|
+
decodeEntities( items[ 0 ].title || items[ 0 ].name )
|
|
263
|
+
);
|
|
264
|
+
} else if (
|
|
265
|
+
items.length > 1 &&
|
|
266
|
+
items[ 0 ].type === TEMPLATE_PART_POST_TYPE
|
|
267
|
+
) {
|
|
268
|
+
questionMessage = sprintf(
|
|
269
|
+
// translators: %d: The number of template parts (2 or more).
|
|
270
|
+
__( 'Are you sure you want to delete %d template parts?' ),
|
|
271
|
+
items.length
|
|
272
|
+
);
|
|
273
|
+
} else {
|
|
274
|
+
questionMessage = sprintf(
|
|
275
|
+
// translators: %d: The number of patterns (2 or more).
|
|
276
|
+
__( 'Are you sure you want to delete %d patterns?' ),
|
|
277
|
+
items.length
|
|
278
|
+
);
|
|
279
|
+
}
|
|
198
280
|
return (
|
|
199
281
|
<VStack spacing="5">
|
|
200
|
-
<Text>
|
|
201
|
-
{ sprintf(
|
|
202
|
-
// translators: %s: The pattern or template part's title e.g. 'Call to action'.
|
|
203
|
-
__( 'Are you sure you want to delete "%s"?' ),
|
|
204
|
-
decodeEntities( item.title || item.name )
|
|
205
|
-
) }
|
|
206
|
-
</Text>
|
|
282
|
+
<Text>{ questionMessage }</Text>
|
|
207
283
|
<HStack justify="right">
|
|
208
284
|
<Button variant="tertiary" onClick={ closeModal }>
|
|
209
285
|
{ __( 'Cancel' ) }
|
|
@@ -171,8 +171,6 @@ function GridItem( { categoryId, item, ...props } ) {
|
|
|
171
171
|
<li className={ patternClassNames }>
|
|
172
172
|
<button
|
|
173
173
|
className={ previewClassNames }
|
|
174
|
-
// Even though still incomplete, passing ids helps performance.
|
|
175
|
-
// @see https://reakit.io/docs/composite/#performance.
|
|
176
174
|
id={ `edit-site-patterns-${ item.name }` }
|
|
177
175
|
type="button"
|
|
178
176
|
{ ...props }
|
|
@@ -31,17 +31,12 @@
|
|
|
31
31
|
flex-grow: 1;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
//
|
|
35
|
-
// without relying on internal component class names.
|
|
34
|
+
// TODO: Consider using the Theme component to automatically adapt to a dark background.
|
|
36
35
|
.edit-site-patterns__search {
|
|
37
|
-
|
|
38
|
-
height: $button-size-next-default-40px;
|
|
39
|
-
background: $gray-800;
|
|
40
|
-
color: $gray-200;
|
|
36
|
+
--wp-components-color-foreground: #{$gray-200};
|
|
41
37
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
38
|
+
.components-input-control__container {
|
|
39
|
+
background: $gray-800;
|
|
45
40
|
}
|
|
46
41
|
|
|
47
42
|
svg {
|
|
@@ -151,6 +151,7 @@ function Preview( { item, viewType } ) {
|
|
|
151
151
|
postType: item.type,
|
|
152
152
|
canvas: 'edit',
|
|
153
153
|
} );
|
|
154
|
+
|
|
154
155
|
const isEmpty = ! blocks?.length;
|
|
155
156
|
// Wrap everything in a block editor provider to ensure 'styles' that are needed
|
|
156
157
|
// for the previews are synced between the site editor store and the block editor store.
|
|
@@ -165,18 +166,23 @@ function Preview( { item, viewType } ) {
|
|
|
165
166
|
className={ `page-templates-preview-field is-viewtype-${ viewType }` }
|
|
166
167
|
style={ { backgroundColor } }
|
|
167
168
|
>
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
169
|
+
{ viewType === LAYOUT_LIST && ! isEmpty && (
|
|
170
|
+
<BlockPreview blocks={ blocks } />
|
|
171
|
+
) }
|
|
172
|
+
{ viewType !== LAYOUT_LIST && (
|
|
173
|
+
<button
|
|
174
|
+
className="page-templates-preview-field__button"
|
|
175
|
+
type="button"
|
|
176
|
+
onClick={ onClick }
|
|
177
|
+
aria-label={ item.title?.rendered || item.title }
|
|
178
|
+
>
|
|
179
|
+
{ isEmpty &&
|
|
180
|
+
( item.type === TEMPLATE_POST_TYPE
|
|
181
|
+
? __( 'Empty template' )
|
|
182
|
+
: __( 'Empty template part' ) ) }
|
|
183
|
+
{ ! isEmpty && <BlockPreview blocks={ blocks } /> }
|
|
184
|
+
</button>
|
|
185
|
+
) }
|
|
180
186
|
</div>
|
|
181
187
|
</ExperimentalBlockEditorProvider>
|
|
182
188
|
);
|
|
@@ -186,11 +192,13 @@ export default function PageTemplatesTemplateParts( { postType } ) {
|
|
|
186
192
|
const { params } = useLocation();
|
|
187
193
|
const { activeView = 'all', layout } = params;
|
|
188
194
|
const defaultView = useMemo( () => {
|
|
195
|
+
const usedType = window?.__experimentalAdminViews
|
|
196
|
+
? layout ?? DEFAULT_VIEW.type
|
|
197
|
+
: DEFAULT_VIEW.type;
|
|
189
198
|
return {
|
|
190
199
|
...DEFAULT_VIEW,
|
|
191
|
-
type:
|
|
192
|
-
|
|
193
|
-
: DEFAULT_VIEW.type,
|
|
200
|
+
type: usedType,
|
|
201
|
+
layout: defaultConfigPerViewType[ usedType ],
|
|
194
202
|
filters:
|
|
195
203
|
activeView !== 'all'
|
|
196
204
|
? [
|
|
@@ -317,7 +325,6 @@ export default function PageTemplatesTemplateParts( { postType } ) {
|
|
|
317
325
|
render: ( { item } ) => {
|
|
318
326
|
return <AuthorField viewType={ view.type } item={ item } />;
|
|
319
327
|
},
|
|
320
|
-
enableHiding: false,
|
|
321
328
|
type: ENUMERATION_TYPE,
|
|
322
329
|
elements: authors,
|
|
323
330
|
width: '1%',
|
|
@@ -37,6 +37,22 @@
|
|
|
37
37
|
border-radius: 3px 3px 0 0;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
+
|
|
41
|
+
&.is-viewtype-table {
|
|
42
|
+
border-radius: $radius-block-ui;
|
|
43
|
+
position: relative;
|
|
44
|
+
|
|
45
|
+
&::after {
|
|
46
|
+
content: "";
|
|
47
|
+
position: absolute;
|
|
48
|
+
top: 0;
|
|
49
|
+
left: 0;
|
|
50
|
+
width: 100%;
|
|
51
|
+
height: 100%;
|
|
52
|
+
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
|
|
53
|
+
border-radius: $radius-block-ui;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
40
56
|
}
|
|
41
57
|
|
|
42
58
|
.page-templates-description {
|
|
@@ -15,12 +15,8 @@ import {
|
|
|
15
15
|
|
|
16
16
|
const { useHistory } = unlock( routerPrivateApis );
|
|
17
17
|
|
|
18
|
-
export function
|
|
19
|
-
history
|
|
20
|
-
params = {},
|
|
21
|
-
state,
|
|
22
|
-
shouldReplace = false
|
|
23
|
-
) {
|
|
18
|
+
export function useLink( params, state, shouldReplace = false ) {
|
|
19
|
+
const history = useHistory();
|
|
24
20
|
function onClick( event ) {
|
|
25
21
|
event?.preventDefault();
|
|
26
22
|
|
|
@@ -52,11 +48,6 @@ export function getPostLinkProps(
|
|
|
52
48
|
};
|
|
53
49
|
}
|
|
54
50
|
|
|
55
|
-
export function useLink( params, state, shouldReplace ) {
|
|
56
|
-
const history = useHistory();
|
|
57
|
-
return getPostLinkProps( history, params, state, shouldReplace );
|
|
58
|
-
}
|
|
59
|
-
|
|
60
51
|
export default function Link( {
|
|
61
52
|
params = {},
|
|
62
53
|
state,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { __ } from '@wordpress/i18n';
|
|
4
|
+
import { __, _x } from '@wordpress/i18n';
|
|
5
5
|
import { trash } from '@wordpress/icons';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -42,14 +42,14 @@ const DEFAULT_PAGE_BASE = {
|
|
|
42
42
|
// better to keep track of the hidden ones.
|
|
43
43
|
hiddenFields: [ 'date', 'featured-image' ],
|
|
44
44
|
layout: {
|
|
45
|
-
...DEFAULT_CONFIG_PER_VIEW_TYPE[
|
|
45
|
+
...DEFAULT_CONFIG_PER_VIEW_TYPE[ LAYOUT_TABLE ],
|
|
46
46
|
},
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
export const DEFAULT_VIEWS = {
|
|
50
50
|
page: [
|
|
51
51
|
{
|
|
52
|
-
title:
|
|
52
|
+
title: _x( 'All', 'pages' ),
|
|
53
53
|
slug: 'all',
|
|
54
54
|
view: DEFAULT_PAGE_BASE,
|
|
55
55
|
},
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
createSlotFill,
|
|
6
|
+
privateApis as componentsPrivateApis,
|
|
7
|
+
} from '@wordpress/components';
|
|
5
8
|
import { isRTL, __ } from '@wordpress/i18n';
|
|
6
9
|
import { drawerLeft, drawerRight } from '@wordpress/icons';
|
|
7
|
-
import { useEffect } from '@wordpress/element';
|
|
10
|
+
import { useCallback, useContext, useEffect, useRef } from '@wordpress/element';
|
|
8
11
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
9
12
|
import { store as interfaceStore } from '@wordpress/interface';
|
|
10
13
|
import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
14
|
+
import { store as coreStore } from '@wordpress/core-data';
|
|
11
15
|
|
|
12
16
|
/**
|
|
13
17
|
* Internal dependencies
|
|
@@ -21,12 +25,89 @@ import TemplatePanel from './template-panel';
|
|
|
21
25
|
import PluginTemplateSettingPanel from '../plugin-template-setting-panel';
|
|
22
26
|
import { SIDEBAR_BLOCK, SIDEBAR_TEMPLATE } from './constants';
|
|
23
27
|
import { store as editSiteStore } from '../../store';
|
|
28
|
+
import { unlock } from '../../lock-unlock';
|
|
29
|
+
|
|
30
|
+
const { Tabs } = unlock( componentsPrivateApis );
|
|
24
31
|
|
|
25
32
|
const { Slot: InspectorSlot, Fill: InspectorFill } = createSlotFill(
|
|
26
33
|
'EditSiteSidebarInspector'
|
|
27
34
|
);
|
|
28
35
|
export const SidebarInspectorFill = InspectorFill;
|
|
29
36
|
|
|
37
|
+
const FillContents = ( {
|
|
38
|
+
sidebarName,
|
|
39
|
+
isEditingPage,
|
|
40
|
+
supportsGlobalStyles,
|
|
41
|
+
} ) => {
|
|
42
|
+
const tabListRef = useRef( null );
|
|
43
|
+
// Because `DefaultSidebar` renders a `ComplementaryArea`, we
|
|
44
|
+
// need to forward the `Tabs` context so it can be passed through the
|
|
45
|
+
// underlying slot/fill.
|
|
46
|
+
const tabsContextValue = useContext( Tabs.Context );
|
|
47
|
+
|
|
48
|
+
// This effect addresses a race condition caused by tabbing from the last
|
|
49
|
+
// block in the editor into the settings sidebar. Without this effect, the
|
|
50
|
+
// selected tab and browser focus can become separated in an unexpected way.
|
|
51
|
+
// (e.g the "block" tab is focused, but the "post" tab is selected).
|
|
52
|
+
useEffect( () => {
|
|
53
|
+
const tabsElements = Array.from(
|
|
54
|
+
tabListRef.current?.querySelectorAll( '[role="tab"]' ) || []
|
|
55
|
+
);
|
|
56
|
+
const selectedTabElement = tabsElements.find(
|
|
57
|
+
// We are purposefully using a custom `data-tab-id` attribute here
|
|
58
|
+
// because we don't want rely on any assumptions about `Tabs`
|
|
59
|
+
// component internals.
|
|
60
|
+
( element ) => element.getAttribute( 'data-tab-id' ) === sidebarName
|
|
61
|
+
);
|
|
62
|
+
const activeElement = selectedTabElement?.ownerDocument.activeElement;
|
|
63
|
+
const tabsHasFocus = tabsElements.some( ( element ) => {
|
|
64
|
+
return activeElement && activeElement.id === element.id;
|
|
65
|
+
} );
|
|
66
|
+
if (
|
|
67
|
+
tabsHasFocus &&
|
|
68
|
+
selectedTabElement &&
|
|
69
|
+
selectedTabElement.id !== activeElement?.id
|
|
70
|
+
) {
|
|
71
|
+
selectedTabElement?.focus();
|
|
72
|
+
}
|
|
73
|
+
}, [ sidebarName ] );
|
|
74
|
+
|
|
75
|
+
return (
|
|
76
|
+
<>
|
|
77
|
+
<DefaultSidebar
|
|
78
|
+
identifier={ sidebarName }
|
|
79
|
+
title={ __( 'Settings' ) }
|
|
80
|
+
icon={ isRTL() ? drawerLeft : drawerRight }
|
|
81
|
+
closeLabel={ __( 'Close Settings' ) }
|
|
82
|
+
header={
|
|
83
|
+
<Tabs.Context.Provider value={ tabsContextValue }>
|
|
84
|
+
<SettingsHeader ref={ tabListRef } />
|
|
85
|
+
</Tabs.Context.Provider>
|
|
86
|
+
}
|
|
87
|
+
headerClassName="edit-site-sidebar-edit-mode__panel-tabs"
|
|
88
|
+
// This classname is added so we can apply a corrective negative
|
|
89
|
+
// margin to the panel.
|
|
90
|
+
// see https://github.com/WordPress/gutenberg/pull/55360#pullrequestreview-1737671049
|
|
91
|
+
className="edit-site-sidebar__panel"
|
|
92
|
+
>
|
|
93
|
+
<Tabs.Context.Provider value={ tabsContextValue }>
|
|
94
|
+
<Tabs.TabPanel
|
|
95
|
+
tabId={ SIDEBAR_TEMPLATE }
|
|
96
|
+
focusable={ false }
|
|
97
|
+
>
|
|
98
|
+
{ isEditingPage ? <PagePanels /> : <TemplatePanel /> }
|
|
99
|
+
<PluginTemplateSettingPanel.Slot />
|
|
100
|
+
</Tabs.TabPanel>
|
|
101
|
+
<Tabs.TabPanel tabId={ SIDEBAR_BLOCK } focusable={ false }>
|
|
102
|
+
<InspectorSlot bubblesVirtually />
|
|
103
|
+
</Tabs.TabPanel>
|
|
104
|
+
</Tabs.Context.Provider>
|
|
105
|
+
</DefaultSidebar>
|
|
106
|
+
{ supportsGlobalStyles && <GlobalStylesSidebar /> }
|
|
107
|
+
</>
|
|
108
|
+
);
|
|
109
|
+
};
|
|
110
|
+
|
|
30
111
|
export function SidebarComplementaryAreaFills() {
|
|
31
112
|
const {
|
|
32
113
|
sidebar,
|
|
@@ -34,21 +115,26 @@ export function SidebarComplementaryAreaFills() {
|
|
|
34
115
|
hasBlockSelection,
|
|
35
116
|
supportsGlobalStyles,
|
|
36
117
|
isEditingPage,
|
|
118
|
+
isEditorOpen,
|
|
37
119
|
} = useSelect( ( select ) => {
|
|
38
120
|
const _sidebar =
|
|
39
121
|
select( interfaceStore ).getActiveComplementaryArea( STORE_NAME );
|
|
122
|
+
|
|
40
123
|
const _isEditorSidebarOpened = [
|
|
41
124
|
SIDEBAR_BLOCK,
|
|
42
125
|
SIDEBAR_TEMPLATE,
|
|
43
126
|
].includes( _sidebar );
|
|
44
|
-
const
|
|
127
|
+
const { getCanvasMode } = unlock( select( editSiteStore ) );
|
|
128
|
+
|
|
45
129
|
return {
|
|
46
130
|
sidebar: _sidebar,
|
|
47
131
|
isEditorSidebarOpened: _isEditorSidebarOpened,
|
|
48
132
|
hasBlockSelection:
|
|
49
133
|
!! select( blockEditorStore ).getBlockSelectionStart(),
|
|
50
|
-
supportsGlobalStyles:
|
|
134
|
+
supportsGlobalStyles:
|
|
135
|
+
select( coreStore ).getCurrentTheme()?.is_block_theme,
|
|
51
136
|
isEditingPage: select( editSiteStore ).isPage(),
|
|
137
|
+
isEditorOpen: getCanvasMode() === 'edit',
|
|
52
138
|
};
|
|
53
139
|
}, [] );
|
|
54
140
|
const { enableComplementaryArea } = useDispatch( interfaceStore );
|
|
@@ -78,27 +164,37 @@ export function SidebarComplementaryAreaFills() {
|
|
|
78
164
|
sidebarName = hasBlockSelection ? SIDEBAR_BLOCK : SIDEBAR_TEMPLATE;
|
|
79
165
|
}
|
|
80
166
|
|
|
167
|
+
// `newSelectedTabId` could technically be falsey if no tab is selected (i.e.
|
|
168
|
+
// the initial render) or when we don't want a tab displayed (i.e. the
|
|
169
|
+
// sidebar is closed). These cases should both be covered by the `!!` check
|
|
170
|
+
// below, so we shouldn't need any additional falsey handling.
|
|
171
|
+
const onTabSelect = useCallback(
|
|
172
|
+
( newSelectedTabId ) => {
|
|
173
|
+
if ( !! newSelectedTabId ) {
|
|
174
|
+
enableComplementaryArea( STORE_NAME, newSelectedTabId );
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
[ enableComplementaryArea ]
|
|
178
|
+
);
|
|
179
|
+
|
|
81
180
|
return (
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
{
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
</DefaultSidebar>
|
|
101
|
-
{ supportsGlobalStyles && <GlobalStylesSidebar /> }
|
|
102
|
-
</>
|
|
181
|
+
<Tabs
|
|
182
|
+
// Due to how this component is controlled (via a value from the
|
|
183
|
+
// edit-site store), when the sidebar closes the currently selected
|
|
184
|
+
// tab can't be found. This causes the component to continuously reset
|
|
185
|
+
// the selection to `null` in an infinite loop. Proactively setting
|
|
186
|
+
// the selected tab to `null` avoids that.
|
|
187
|
+
selectedTabId={
|
|
188
|
+
isEditorOpen && isEditorSidebarOpened ? sidebarName : null
|
|
189
|
+
}
|
|
190
|
+
onSelect={ onTabSelect }
|
|
191
|
+
selectOnMove={ false }
|
|
192
|
+
>
|
|
193
|
+
<FillContents
|
|
194
|
+
sidebarName={ sidebarName }
|
|
195
|
+
isEditingPage={ isEditingPage }
|
|
196
|
+
supportsGlobalStyles={ supportsGlobalStyles }
|
|
197
|
+
/>
|
|
198
|
+
</Tabs>
|
|
103
199
|
);
|
|
104
200
|
}
|
|
@@ -1,82 +1,44 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import classnames from 'classnames';
|
|
5
|
-
|
|
6
1
|
/**
|
|
7
2
|
* WordPress dependencies
|
|
8
3
|
*/
|
|
9
|
-
import {
|
|
10
|
-
import { __
|
|
11
|
-
import { useSelect
|
|
12
|
-
import { store as interfaceStore } from '@wordpress/interface';
|
|
4
|
+
import { privateApis as componentsPrivateApis } from '@wordpress/components';
|
|
5
|
+
import { __ } from '@wordpress/i18n';
|
|
6
|
+
import { useSelect } from '@wordpress/data';
|
|
13
7
|
import { store as editorStore } from '@wordpress/editor';
|
|
8
|
+
import { forwardRef } from '@wordpress/element';
|
|
14
9
|
|
|
15
10
|
/**
|
|
16
11
|
* Internal dependencies
|
|
17
12
|
*/
|
|
18
|
-
import { STORE_NAME } from '../../../store/constants';
|
|
19
13
|
import { SIDEBAR_BLOCK, SIDEBAR_TEMPLATE } from '../constants';
|
|
14
|
+
import { unlock } from '../../../lock-unlock';
|
|
20
15
|
|
|
21
|
-
const
|
|
16
|
+
const { Tabs } = unlock( componentsPrivateApis );
|
|
17
|
+
|
|
18
|
+
const SettingsHeader = ( _, ref ) => {
|
|
22
19
|
const postTypeLabel = useSelect(
|
|
23
20
|
( select ) => select( editorStore ).getPostTypeLabel(),
|
|
24
21
|
[]
|
|
25
22
|
);
|
|
26
23
|
|
|
27
|
-
const { enableComplementaryArea } = useDispatch( interfaceStore );
|
|
28
|
-
const openTemplateSettings = () =>
|
|
29
|
-
enableComplementaryArea( STORE_NAME, SIDEBAR_TEMPLATE );
|
|
30
|
-
const openBlockSettings = () =>
|
|
31
|
-
enableComplementaryArea( STORE_NAME, SIDEBAR_BLOCK );
|
|
32
|
-
|
|
33
|
-
const documentAriaLabel =
|
|
34
|
-
sidebarName === SIDEBAR_TEMPLATE
|
|
35
|
-
? // translators: ARIA label for the Template sidebar tab, selected.
|
|
36
|
-
sprintf( __( '%s (selected)' ), postTypeLabel )
|
|
37
|
-
: postTypeLabel;
|
|
38
|
-
|
|
39
|
-
/* Use a list so screen readers will announce how many tabs there are. */
|
|
40
24
|
return (
|
|
41
|
-
<
|
|
42
|
-
<
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
<li>
|
|
58
|
-
<Button
|
|
59
|
-
onClick={ openBlockSettings }
|
|
60
|
-
className={ classnames(
|
|
61
|
-
'edit-site-sidebar-edit-mode__panel-tab',
|
|
62
|
-
{
|
|
63
|
-
'is-active': sidebarName === SIDEBAR_BLOCK,
|
|
64
|
-
}
|
|
65
|
-
) }
|
|
66
|
-
aria-label={
|
|
67
|
-
sidebarName === SIDEBAR_BLOCK
|
|
68
|
-
? // translators: ARIA label for the Block Settings Sidebar tab, selected.
|
|
69
|
-
__( 'Block (selected)' )
|
|
70
|
-
: // translators: ARIA label for the Block Settings Sidebar tab, not selected.
|
|
71
|
-
__( 'Block' )
|
|
72
|
-
}
|
|
73
|
-
data-label={ __( 'Block' ) }
|
|
74
|
-
>
|
|
75
|
-
{ __( 'Block' ) }
|
|
76
|
-
</Button>
|
|
77
|
-
</li>
|
|
78
|
-
</ul>
|
|
25
|
+
<Tabs.TabList ref={ ref }>
|
|
26
|
+
<Tabs.Tab
|
|
27
|
+
tabId={ SIDEBAR_TEMPLATE }
|
|
28
|
+
// Used for focus management in the SettingsSidebar component.
|
|
29
|
+
data-tab-id={ SIDEBAR_TEMPLATE }
|
|
30
|
+
>
|
|
31
|
+
{ postTypeLabel }
|
|
32
|
+
</Tabs.Tab>
|
|
33
|
+
<Tabs.Tab
|
|
34
|
+
tabId={ SIDEBAR_BLOCK }
|
|
35
|
+
// Used for focus management in the SettingsSidebar component.
|
|
36
|
+
data-tab-id={ SIDEBAR_BLOCK }
|
|
37
|
+
>
|
|
38
|
+
{ __( 'Block' ) }
|
|
39
|
+
</Tabs.Tab>
|
|
40
|
+
</Tabs.TabList>
|
|
79
41
|
);
|
|
80
42
|
};
|
|
81
43
|
|
|
82
|
-
export default SettingsHeader;
|
|
44
|
+
export default forwardRef( SettingsHeader );
|