@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
|
@@ -2,13 +2,14 @@ import { createElement, Fragment } from "react";
|
|
|
2
2
|
/**
|
|
3
3
|
* WordPress dependencies
|
|
4
4
|
*/
|
|
5
|
-
import { createSlotFill } from '@wordpress/components';
|
|
5
|
+
import { createSlotFill, privateApis as componentsPrivateApis } from '@wordpress/components';
|
|
6
6
|
import { isRTL, __ } from '@wordpress/i18n';
|
|
7
7
|
import { drawerLeft, drawerRight } from '@wordpress/icons';
|
|
8
|
-
import { useEffect } from '@wordpress/element';
|
|
8
|
+
import { useCallback, useContext, useEffect, useRef } from '@wordpress/element';
|
|
9
9
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
10
10
|
import { store as interfaceStore } from '@wordpress/interface';
|
|
11
11
|
import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
12
|
+
import { store as coreStore } from '@wordpress/core-data';
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* Internal dependencies
|
|
@@ -22,28 +23,94 @@ import TemplatePanel from './template-panel';
|
|
|
22
23
|
import PluginTemplateSettingPanel from '../plugin-template-setting-panel';
|
|
23
24
|
import { SIDEBAR_BLOCK, SIDEBAR_TEMPLATE } from './constants';
|
|
24
25
|
import { store as editSiteStore } from '../../store';
|
|
26
|
+
import { unlock } from '../../lock-unlock';
|
|
27
|
+
const {
|
|
28
|
+
Tabs
|
|
29
|
+
} = unlock(componentsPrivateApis);
|
|
25
30
|
const {
|
|
26
31
|
Slot: InspectorSlot,
|
|
27
32
|
Fill: InspectorFill
|
|
28
33
|
} = createSlotFill('EditSiteSidebarInspector');
|
|
29
34
|
export const SidebarInspectorFill = InspectorFill;
|
|
35
|
+
const FillContents = ({
|
|
36
|
+
sidebarName,
|
|
37
|
+
isEditingPage,
|
|
38
|
+
supportsGlobalStyles
|
|
39
|
+
}) => {
|
|
40
|
+
const tabListRef = useRef(null);
|
|
41
|
+
// Because `DefaultSidebar` renders a `ComplementaryArea`, we
|
|
42
|
+
// need to forward the `Tabs` context so it can be passed through the
|
|
43
|
+
// underlying slot/fill.
|
|
44
|
+
const tabsContextValue = useContext(Tabs.Context);
|
|
45
|
+
|
|
46
|
+
// This effect addresses a race condition caused by tabbing from the last
|
|
47
|
+
// block in the editor into the settings sidebar. Without this effect, the
|
|
48
|
+
// selected tab and browser focus can become separated in an unexpected way.
|
|
49
|
+
// (e.g the "block" tab is focused, but the "post" tab is selected).
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
const tabsElements = Array.from(tabListRef.current?.querySelectorAll('[role="tab"]') || []);
|
|
52
|
+
const selectedTabElement = tabsElements.find(
|
|
53
|
+
// We are purposefully using a custom `data-tab-id` attribute here
|
|
54
|
+
// because we don't want rely on any assumptions about `Tabs`
|
|
55
|
+
// component internals.
|
|
56
|
+
element => element.getAttribute('data-tab-id') === sidebarName);
|
|
57
|
+
const activeElement = selectedTabElement?.ownerDocument.activeElement;
|
|
58
|
+
const tabsHasFocus = tabsElements.some(element => {
|
|
59
|
+
return activeElement && activeElement.id === element.id;
|
|
60
|
+
});
|
|
61
|
+
if (tabsHasFocus && selectedTabElement && selectedTabElement.id !== activeElement?.id) {
|
|
62
|
+
selectedTabElement?.focus();
|
|
63
|
+
}
|
|
64
|
+
}, [sidebarName]);
|
|
65
|
+
return createElement(Fragment, null, createElement(DefaultSidebar, {
|
|
66
|
+
identifier: sidebarName,
|
|
67
|
+
title: __('Settings'),
|
|
68
|
+
icon: isRTL() ? drawerLeft : drawerRight,
|
|
69
|
+
closeLabel: __('Close Settings'),
|
|
70
|
+
header: createElement(Tabs.Context.Provider, {
|
|
71
|
+
value: tabsContextValue
|
|
72
|
+
}, createElement(SettingsHeader, {
|
|
73
|
+
ref: tabListRef
|
|
74
|
+
})),
|
|
75
|
+
headerClassName: "edit-site-sidebar-edit-mode__panel-tabs"
|
|
76
|
+
// This classname is added so we can apply a corrective negative
|
|
77
|
+
// margin to the panel.
|
|
78
|
+
// see https://github.com/WordPress/gutenberg/pull/55360#pullrequestreview-1737671049
|
|
79
|
+
,
|
|
80
|
+
className: "edit-site-sidebar__panel"
|
|
81
|
+
}, createElement(Tabs.Context.Provider, {
|
|
82
|
+
value: tabsContextValue
|
|
83
|
+
}, createElement(Tabs.TabPanel, {
|
|
84
|
+
tabId: SIDEBAR_TEMPLATE,
|
|
85
|
+
focusable: false
|
|
86
|
+
}, isEditingPage ? createElement(PagePanels, null) : createElement(TemplatePanel, null), createElement(PluginTemplateSettingPanel.Slot, null)), createElement(Tabs.TabPanel, {
|
|
87
|
+
tabId: SIDEBAR_BLOCK,
|
|
88
|
+
focusable: false
|
|
89
|
+
}, createElement(InspectorSlot, {
|
|
90
|
+
bubblesVirtually: true
|
|
91
|
+
})))), supportsGlobalStyles && createElement(GlobalStylesSidebar, null));
|
|
92
|
+
};
|
|
30
93
|
export function SidebarComplementaryAreaFills() {
|
|
31
94
|
const {
|
|
32
95
|
sidebar,
|
|
33
96
|
isEditorSidebarOpened,
|
|
34
97
|
hasBlockSelection,
|
|
35
98
|
supportsGlobalStyles,
|
|
36
|
-
isEditingPage
|
|
99
|
+
isEditingPage,
|
|
100
|
+
isEditorOpen
|
|
37
101
|
} = useSelect(select => {
|
|
38
102
|
const _sidebar = select(interfaceStore).getActiveComplementaryArea(STORE_NAME);
|
|
39
103
|
const _isEditorSidebarOpened = [SIDEBAR_BLOCK, SIDEBAR_TEMPLATE].includes(_sidebar);
|
|
40
|
-
const
|
|
104
|
+
const {
|
|
105
|
+
getCanvasMode
|
|
106
|
+
} = unlock(select(editSiteStore));
|
|
41
107
|
return {
|
|
42
108
|
sidebar: _sidebar,
|
|
43
109
|
isEditorSidebarOpened: _isEditorSidebarOpened,
|
|
44
110
|
hasBlockSelection: !!select(blockEditorStore).getBlockSelectionStart(),
|
|
45
|
-
supportsGlobalStyles:
|
|
46
|
-
isEditingPage: select(editSiteStore).isPage()
|
|
111
|
+
supportsGlobalStyles: select(coreStore).getCurrentTheme()?.is_block_theme,
|
|
112
|
+
isEditingPage: select(editSiteStore).isPage(),
|
|
113
|
+
isEditorOpen: getCanvasMode() === 'edit'
|
|
47
114
|
};
|
|
48
115
|
}, []);
|
|
49
116
|
const {
|
|
@@ -67,17 +134,30 @@ export function SidebarComplementaryAreaFills() {
|
|
|
67
134
|
if (!isEditorSidebarOpened) {
|
|
68
135
|
sidebarName = hasBlockSelection ? SIDEBAR_BLOCK : SIDEBAR_TEMPLATE;
|
|
69
136
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
},
|
|
80
|
-
|
|
81
|
-
|
|
137
|
+
|
|
138
|
+
// `newSelectedTabId` could technically be falsey if no tab is selected (i.e.
|
|
139
|
+
// the initial render) or when we don't want a tab displayed (i.e. the
|
|
140
|
+
// sidebar is closed). These cases should both be covered by the `!!` check
|
|
141
|
+
// below, so we shouldn't need any additional falsey handling.
|
|
142
|
+
const onTabSelect = useCallback(newSelectedTabId => {
|
|
143
|
+
if (!!newSelectedTabId) {
|
|
144
|
+
enableComplementaryArea(STORE_NAME, newSelectedTabId);
|
|
145
|
+
}
|
|
146
|
+
}, [enableComplementaryArea]);
|
|
147
|
+
return createElement(Tabs
|
|
148
|
+
// Due to how this component is controlled (via a value from the
|
|
149
|
+
// edit-site store), when the sidebar closes the currently selected
|
|
150
|
+
// tab can't be found. This causes the component to continuously reset
|
|
151
|
+
// the selection to `null` in an infinite loop. Proactively setting
|
|
152
|
+
// the selected tab to `null` avoids that.
|
|
153
|
+
, {
|
|
154
|
+
selectedTabId: isEditorOpen && isEditorSidebarOpened ? sidebarName : null,
|
|
155
|
+
onSelect: onTabSelect,
|
|
156
|
+
selectOnMove: false
|
|
157
|
+
}, createElement(FillContents, {
|
|
158
|
+
sidebarName: sidebarName,
|
|
159
|
+
isEditingPage: isEditingPage,
|
|
160
|
+
supportsGlobalStyles: supportsGlobalStyles
|
|
161
|
+
}));
|
|
82
162
|
}
|
|
83
163
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createSlotFill","isRTL","__","drawerLeft","drawerRight","useEffect","useSelect","useDispatch","store","interfaceStore","blockEditorStore","DefaultSidebar","GlobalStylesSidebar","STORE_NAME","SettingsHeader","PagePanels","TemplatePanel","PluginTemplateSettingPanel","SIDEBAR_BLOCK","SIDEBAR_TEMPLATE","editSiteStore","Slot","InspectorSlot","Fill","InspectorFill","SidebarInspectorFill","SidebarComplementaryAreaFills","sidebar","isEditorSidebarOpened","hasBlockSelection","supportsGlobalStyles","isEditingPage","select","_sidebar","getActiveComplementaryArea","_isEditorSidebarOpened","includes","settings","getSettings","getBlockSelectionStart","supportsTemplatePartsMode","isPage","enableComplementaryArea","sidebarName","createElement","Fragment","identifier","title","icon","closeLabel","header","headerClassName","bubblesVirtually"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createSlotFill } from '@wordpress/components';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { drawerLeft, drawerRight } from '@wordpress/icons';\nimport { useEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport DefaultSidebar from './default-sidebar';\nimport GlobalStylesSidebar from './global-styles-sidebar';\nimport { STORE_NAME } from '../../store/constants';\nimport SettingsHeader from './settings-header';\nimport PagePanels from './page-panels';\nimport TemplatePanel from './template-panel';\nimport PluginTemplateSettingPanel from '../plugin-template-setting-panel';\nimport { SIDEBAR_BLOCK, SIDEBAR_TEMPLATE } from './constants';\nimport { store as editSiteStore } from '../../store';\n\nconst { Slot: InspectorSlot, Fill: InspectorFill } = createSlotFill(\n\t'EditSiteSidebarInspector'\n);\nexport const SidebarInspectorFill = InspectorFill;\n\nexport function SidebarComplementaryAreaFills() {\n\tconst {\n\t\tsidebar,\n\t\tisEditorSidebarOpened,\n\t\thasBlockSelection,\n\t\tsupportsGlobalStyles,\n\t\tisEditingPage,\n\t} = useSelect( ( select ) => {\n\t\tconst _sidebar =\n\t\t\tselect( interfaceStore ).getActiveComplementaryArea( STORE_NAME );\n\t\tconst _isEditorSidebarOpened = [\n\t\t\tSIDEBAR_BLOCK,\n\t\t\tSIDEBAR_TEMPLATE,\n\t\t].includes( _sidebar );\n\t\tconst settings = select( editSiteStore ).getSettings();\n\t\treturn {\n\t\t\tsidebar: _sidebar,\n\t\t\tisEditorSidebarOpened: _isEditorSidebarOpened,\n\t\t\thasBlockSelection:\n\t\t\t\t!! select( blockEditorStore ).getBlockSelectionStart(),\n\t\t\tsupportsGlobalStyles: ! settings?.supportsTemplatePartsMode,\n\t\t\tisEditingPage: select( editSiteStore ).isPage(),\n\t\t};\n\t}, [] );\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\n\tuseEffect( () => {\n\t\t// Don't automatically switch tab when the sidebar is closed or when we\n\t\t// are focused on page content.\n\t\tif ( ! isEditorSidebarOpened ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( hasBlockSelection ) {\n\t\t\tif ( ! isEditingPage ) {\n\t\t\t\tenableComplementaryArea( STORE_NAME, SIDEBAR_BLOCK );\n\t\t\t}\n\t\t} else {\n\t\t\tenableComplementaryArea( STORE_NAME, SIDEBAR_TEMPLATE );\n\t\t}\n\t}, [\n\t\thasBlockSelection,\n\t\tisEditorSidebarOpened,\n\t\tisEditingPage,\n\t\tenableComplementaryArea,\n\t] );\n\n\tlet sidebarName = sidebar;\n\tif ( ! isEditorSidebarOpened ) {\n\t\tsidebarName = hasBlockSelection ? SIDEBAR_BLOCK : SIDEBAR_TEMPLATE;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<DefaultSidebar\n\t\t\t\tidentifier={ sidebarName }\n\t\t\t\ttitle={ __( 'Settings' ) }\n\t\t\t\ticon={ isRTL() ? drawerLeft : drawerRight }\n\t\t\t\tcloseLabel={ __( 'Close Settings' ) }\n\t\t\t\theader={ <SettingsHeader sidebarName={ sidebarName } /> }\n\t\t\t\theaderClassName=\"edit-site-sidebar-edit-mode__panel-tabs\"\n\t\t\t>\n\t\t\t\t{ sidebarName === SIDEBAR_TEMPLATE && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ isEditingPage ? <PagePanels /> : <TemplatePanel /> }\n\t\t\t\t\t\t<PluginTemplateSettingPanel.Slot />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t{ sidebarName === SIDEBAR_BLOCK && (\n\t\t\t\t\t<InspectorSlot bubblesVirtually />\n\t\t\t\t) }\n\t\t\t</DefaultSidebar>\n\t\t\t{ supportsGlobalStyles && <GlobalStylesSidebar /> }\n\t\t</>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,cAAc,QAAQ,uBAAuB;AACtD,SAASC,KAAK,EAAEC,EAAE,QAAQ,iBAAiB;AAC3C,SAASC,UAAU,EAAEC,WAAW,QAAQ,kBAAkB;AAC1D,SAASC,SAAS,QAAQ,oBAAoB;AAC9C,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,cAAc,QAAQ,sBAAsB;AAC9D,SAASD,KAAK,IAAIE,gBAAgB,QAAQ,yBAAyB;;AAEnE;AACA;AACA;AACA,OAAOC,cAAc,MAAM,mBAAmB;AAC9C,OAAOC,mBAAmB,MAAM,yBAAyB;AACzD,SAASC,UAAU,QAAQ,uBAAuB;AAClD,OAAOC,cAAc,MAAM,mBAAmB;AAC9C,OAAOC,UAAU,MAAM,eAAe;AACtC,OAAOC,aAAa,MAAM,kBAAkB;AAC5C,OAAOC,0BAA0B,MAAM,kCAAkC;AACzE,SAASC,aAAa,EAAEC,gBAAgB,QAAQ,aAAa;AAC7D,SAASX,KAAK,IAAIY,aAAa,QAAQ,aAAa;AAEpD,MAAM;EAAEC,IAAI,EAAEC,aAAa;EAAEC,IAAI,EAAEC;AAAc,CAAC,GAAGxB,cAAc,CAClE,0BACD,CAAC;AACD,OAAO,MAAMyB,oBAAoB,GAAGD,aAAa;AAEjD,OAAO,SAASE,6BAA6BA,CAAA,EAAG;EAC/C,MAAM;IACLC,OAAO;IACPC,qBAAqB;IACrBC,iBAAiB;IACjBC,oBAAoB;IACpBC;EACD,CAAC,GAAGzB,SAAS,CAAI0B,MAAM,IAAM;IAC5B,MAAMC,QAAQ,GACbD,MAAM,CAAEvB,cAAe,CAAC,CAACyB,0BAA0B,CAAErB,UAAW,CAAC;IAClE,MAAMsB,sBAAsB,GAAG,CAC9BjB,aAAa,EACbC,gBAAgB,CAChB,CAACiB,QAAQ,CAAEH,QAAS,CAAC;IACtB,MAAMI,QAAQ,GAAGL,MAAM,CAAEZ,aAAc,CAAC,CAACkB,WAAW,CAAC,CAAC;IACtD,OAAO;MACNX,OAAO,EAAEM,QAAQ;MACjBL,qBAAqB,EAAEO,sBAAsB;MAC7CN,iBAAiB,EAChB,CAAC,CAAEG,MAAM,CAAEtB,gBAAiB,CAAC,CAAC6B,sBAAsB,CAAC,CAAC;MACvDT,oBAAoB,EAAE,CAAEO,QAAQ,EAAEG,yBAAyB;MAC3DT,aAAa,EAAEC,MAAM,CAAEZ,aAAc,CAAC,CAACqB,MAAM,CAAC;IAC/C,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAM;IAAEC;EAAwB,CAAC,GAAGnC,WAAW,CAAEE,cAAe,CAAC;EAEjEJ,SAAS,CAAE,MAAM;IAChB;IACA;IACA,IAAK,CAAEuB,qBAAqB,EAAG;MAC9B;IACD;IACA,IAAKC,iBAAiB,EAAG;MACxB,IAAK,CAAEE,aAAa,EAAG;QACtBW,uBAAuB,CAAE7B,UAAU,EAAEK,aAAc,CAAC;MACrD;IACD,CAAC,MAAM;MACNwB,uBAAuB,CAAE7B,UAAU,EAAEM,gBAAiB,CAAC;IACxD;EACD,CAAC,EAAE,CACFU,iBAAiB,EACjBD,qBAAqB,EACrBG,aAAa,EACbW,uBAAuB,CACtB,CAAC;EAEH,IAAIC,WAAW,GAAGhB,OAAO;EACzB,IAAK,CAAEC,qBAAqB,EAAG;IAC9Be,WAAW,GAAGd,iBAAiB,GAAGX,aAAa,GAAGC,gBAAgB;EACnE;EAEA,OACCyB,aAAA,CAAAC,QAAA,QACCD,aAAA,CAACjC,cAAc;IACdmC,UAAU,EAAGH,WAAa;IAC1BI,KAAK,EAAG7C,EAAE,CAAE,UAAW,CAAG;IAC1B8C,IAAI,EAAG/C,KAAK,CAAC,CAAC,GAAGE,UAAU,GAAGC,WAAa;IAC3C6C,UAAU,EAAG/C,EAAE,CAAE,gBAAiB,CAAG;IACrCgD,MAAM,EAAGN,aAAA,CAAC9B,cAAc;MAAC6B,WAAW,EAAGA;IAAa,CAAE,CAAG;IACzDQ,eAAe,EAAC;EAAyC,GAEvDR,WAAW,KAAKxB,gBAAgB,IACjCyB,aAAA,CAAAC,QAAA,QACGd,aAAa,GAAGa,aAAA,CAAC7B,UAAU,MAAE,CAAC,GAAG6B,aAAA,CAAC5B,aAAa,MAAE,CAAC,EACpD4B,aAAA,CAAC3B,0BAA0B,CAACI,IAAI,MAAE,CACjC,CACF,EACCsB,WAAW,KAAKzB,aAAa,IAC9B0B,aAAA,CAACtB,aAAa;IAAC8B,gBAAgB;EAAA,CAAE,CAEnB,CAAC,EACftB,oBAAoB,IAAIc,aAAA,CAAChC,mBAAmB,MAAE,CAC/C,CAAC;AAEL"}
|
|
1
|
+
{"version":3,"names":["createSlotFill","privateApis","componentsPrivateApis","isRTL","__","drawerLeft","drawerRight","useCallback","useContext","useEffect","useRef","useSelect","useDispatch","store","interfaceStore","blockEditorStore","coreStore","DefaultSidebar","GlobalStylesSidebar","STORE_NAME","SettingsHeader","PagePanels","TemplatePanel","PluginTemplateSettingPanel","SIDEBAR_BLOCK","SIDEBAR_TEMPLATE","editSiteStore","unlock","Tabs","Slot","InspectorSlot","Fill","InspectorFill","SidebarInspectorFill","FillContents","sidebarName","isEditingPage","supportsGlobalStyles","tabListRef","tabsContextValue","Context","tabsElements","Array","from","current","querySelectorAll","selectedTabElement","find","element","getAttribute","activeElement","ownerDocument","tabsHasFocus","some","id","focus","createElement","Fragment","identifier","title","icon","closeLabel","header","Provider","value","ref","headerClassName","className","TabPanel","tabId","focusable","bubblesVirtually","SidebarComplementaryAreaFills","sidebar","isEditorSidebarOpened","hasBlockSelection","isEditorOpen","select","_sidebar","getActiveComplementaryArea","_isEditorSidebarOpened","includes","getCanvasMode","getBlockSelectionStart","getCurrentTheme","is_block_theme","isPage","enableComplementaryArea","onTabSelect","newSelectedTabId","selectedTabId","onSelect","selectOnMove"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateSlotFill,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { drawerLeft, drawerRight } from '@wordpress/icons';\nimport { useCallback, useContext, useEffect, useRef } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport DefaultSidebar from './default-sidebar';\nimport GlobalStylesSidebar from './global-styles-sidebar';\nimport { STORE_NAME } from '../../store/constants';\nimport SettingsHeader from './settings-header';\nimport PagePanels from './page-panels';\nimport TemplatePanel from './template-panel';\nimport PluginTemplateSettingPanel from '../plugin-template-setting-panel';\nimport { SIDEBAR_BLOCK, SIDEBAR_TEMPLATE } from './constants';\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nconst { Slot: InspectorSlot, Fill: InspectorFill } = createSlotFill(\n\t'EditSiteSidebarInspector'\n);\nexport const SidebarInspectorFill = InspectorFill;\n\nconst FillContents = ( {\n\tsidebarName,\n\tisEditingPage,\n\tsupportsGlobalStyles,\n} ) => {\n\tconst tabListRef = useRef( null );\n\t// Because `DefaultSidebar` renders a `ComplementaryArea`, we\n\t// need to forward the `Tabs` context so it can be passed through the\n\t// underlying slot/fill.\n\tconst tabsContextValue = useContext( Tabs.Context );\n\n\t// This effect addresses a race condition caused by tabbing from the last\n\t// block in the editor into the settings sidebar. Without this effect, the\n\t// selected tab and browser focus can become separated in an unexpected way.\n\t// (e.g the \"block\" tab is focused, but the \"post\" tab is selected).\n\tuseEffect( () => {\n\t\tconst tabsElements = Array.from(\n\t\t\ttabListRef.current?.querySelectorAll( '[role=\"tab\"]' ) || []\n\t\t);\n\t\tconst selectedTabElement = tabsElements.find(\n\t\t\t// We are purposefully using a custom `data-tab-id` attribute here\n\t\t\t// because we don't want rely on any assumptions about `Tabs`\n\t\t\t// component internals.\n\t\t\t( element ) => element.getAttribute( 'data-tab-id' ) === sidebarName\n\t\t);\n\t\tconst activeElement = selectedTabElement?.ownerDocument.activeElement;\n\t\tconst tabsHasFocus = tabsElements.some( ( element ) => {\n\t\t\treturn activeElement && activeElement.id === element.id;\n\t\t} );\n\t\tif (\n\t\t\ttabsHasFocus &&\n\t\t\tselectedTabElement &&\n\t\t\tselectedTabElement.id !== activeElement?.id\n\t\t) {\n\t\t\tselectedTabElement?.focus();\n\t\t}\n\t}, [ sidebarName ] );\n\n\treturn (\n\t\t<>\n\t\t\t<DefaultSidebar\n\t\t\t\tidentifier={ sidebarName }\n\t\t\t\ttitle={ __( 'Settings' ) }\n\t\t\t\ticon={ isRTL() ? drawerLeft : drawerRight }\n\t\t\t\tcloseLabel={ __( 'Close Settings' ) }\n\t\t\t\theader={\n\t\t\t\t\t<Tabs.Context.Provider value={ tabsContextValue }>\n\t\t\t\t\t\t<SettingsHeader ref={ tabListRef } />\n\t\t\t\t\t</Tabs.Context.Provider>\n\t\t\t\t}\n\t\t\t\theaderClassName=\"edit-site-sidebar-edit-mode__panel-tabs\"\n\t\t\t\t// This classname is added so we can apply a corrective negative\n\t\t\t\t// margin to the panel.\n\t\t\t\t// see https://github.com/WordPress/gutenberg/pull/55360#pullrequestreview-1737671049\n\t\t\t\tclassName=\"edit-site-sidebar__panel\"\n\t\t\t>\n\t\t\t\t<Tabs.Context.Provider value={ tabsContextValue }>\n\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\ttabId={ SIDEBAR_TEMPLATE }\n\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isEditingPage ? <PagePanels /> : <TemplatePanel /> }\n\t\t\t\t\t\t<PluginTemplateSettingPanel.Slot />\n\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t<Tabs.TabPanel tabId={ SIDEBAR_BLOCK } focusable={ false }>\n\t\t\t\t\t\t<InspectorSlot bubblesVirtually />\n\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t</Tabs.Context.Provider>\n\t\t\t</DefaultSidebar>\n\t\t\t{ supportsGlobalStyles && <GlobalStylesSidebar /> }\n\t\t</>\n\t);\n};\n\nexport function SidebarComplementaryAreaFills() {\n\tconst {\n\t\tsidebar,\n\t\tisEditorSidebarOpened,\n\t\thasBlockSelection,\n\t\tsupportsGlobalStyles,\n\t\tisEditingPage,\n\t\tisEditorOpen,\n\t} = useSelect( ( select ) => {\n\t\tconst _sidebar =\n\t\t\tselect( interfaceStore ).getActiveComplementaryArea( STORE_NAME );\n\n\t\tconst _isEditorSidebarOpened = [\n\t\t\tSIDEBAR_BLOCK,\n\t\t\tSIDEBAR_TEMPLATE,\n\t\t].includes( _sidebar );\n\t\tconst { getCanvasMode } = unlock( select( editSiteStore ) );\n\n\t\treturn {\n\t\t\tsidebar: _sidebar,\n\t\t\tisEditorSidebarOpened: _isEditorSidebarOpened,\n\t\t\thasBlockSelection:\n\t\t\t\t!! select( blockEditorStore ).getBlockSelectionStart(),\n\t\t\tsupportsGlobalStyles:\n\t\t\t\tselect( coreStore ).getCurrentTheme()?.is_block_theme,\n\t\t\tisEditingPage: select( editSiteStore ).isPage(),\n\t\t\tisEditorOpen: getCanvasMode() === 'edit',\n\t\t};\n\t}, [] );\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\n\tuseEffect( () => {\n\t\t// Don't automatically switch tab when the sidebar is closed or when we\n\t\t// are focused on page content.\n\t\tif ( ! isEditorSidebarOpened ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( hasBlockSelection ) {\n\t\t\tif ( ! isEditingPage ) {\n\t\t\t\tenableComplementaryArea( STORE_NAME, SIDEBAR_BLOCK );\n\t\t\t}\n\t\t} else {\n\t\t\tenableComplementaryArea( STORE_NAME, SIDEBAR_TEMPLATE );\n\t\t}\n\t}, [\n\t\thasBlockSelection,\n\t\tisEditorSidebarOpened,\n\t\tisEditingPage,\n\t\tenableComplementaryArea,\n\t] );\n\n\tlet sidebarName = sidebar;\n\tif ( ! isEditorSidebarOpened ) {\n\t\tsidebarName = hasBlockSelection ? SIDEBAR_BLOCK : SIDEBAR_TEMPLATE;\n\t}\n\n\t// `newSelectedTabId` could technically be falsey if no tab is selected (i.e.\n\t// the initial render) or when we don't want a tab displayed (i.e. the\n\t// sidebar is closed). These cases should both be covered by the `!!` check\n\t// below, so we shouldn't need any additional falsey handling.\n\tconst onTabSelect = useCallback(\n\t\t( newSelectedTabId ) => {\n\t\t\tif ( !! newSelectedTabId ) {\n\t\t\t\tenableComplementaryArea( STORE_NAME, newSelectedTabId );\n\t\t\t}\n\t\t},\n\t\t[ enableComplementaryArea ]\n\t);\n\n\treturn (\n\t\t<Tabs\n\t\t\t// Due to how this component is controlled (via a value from the\n\t\t\t// edit-site store), when the sidebar closes the currently selected\n\t\t\t// tab can't be found. This causes the component to continuously reset\n\t\t\t// the selection to `null` in an infinite loop. Proactively setting\n\t\t\t// the selected tab to `null` avoids that.\n\t\t\tselectedTabId={\n\t\t\t\tisEditorOpen && isEditorSidebarOpened ? sidebarName : null\n\t\t\t}\n\t\t\tonSelect={ onTabSelect }\n\t\t\tselectOnMove={ false }\n\t\t>\n\t\t\t<FillContents\n\t\t\t\tsidebarName={ sidebarName }\n\t\t\t\tisEditingPage={ isEditingPage }\n\t\t\t\tsupportsGlobalStyles={ supportsGlobalStyles }\n\t\t\t/>\n\t\t</Tabs>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -1,56 +1,36 @@
|
|
|
1
1
|
import { createElement } from "react";
|
|
2
|
-
/**
|
|
3
|
-
* External dependencies
|
|
4
|
-
*/
|
|
5
|
-
import classnames from 'classnames';
|
|
6
|
-
|
|
7
2
|
/**
|
|
8
3
|
* WordPress dependencies
|
|
9
4
|
*/
|
|
10
|
-
import {
|
|
11
|
-
import { __
|
|
12
|
-
import { useSelect
|
|
13
|
-
import { store as interfaceStore } from '@wordpress/interface';
|
|
5
|
+
import { privateApis as componentsPrivateApis } from '@wordpress/components';
|
|
6
|
+
import { __ } from '@wordpress/i18n';
|
|
7
|
+
import { useSelect } from '@wordpress/data';
|
|
14
8
|
import { store as editorStore } from '@wordpress/editor';
|
|
9
|
+
import { forwardRef } from '@wordpress/element';
|
|
15
10
|
|
|
16
11
|
/**
|
|
17
12
|
* Internal dependencies
|
|
18
13
|
*/
|
|
19
|
-
import { STORE_NAME } from '../../../store/constants';
|
|
20
14
|
import { SIDEBAR_BLOCK, SIDEBAR_TEMPLATE } from '../constants';
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
15
|
+
import { unlock } from '../../../lock-unlock';
|
|
16
|
+
const {
|
|
17
|
+
Tabs
|
|
18
|
+
} = unlock(componentsPrivateApis);
|
|
19
|
+
const SettingsHeader = (_, ref) => {
|
|
24
20
|
const postTypeLabel = useSelect(select => select(editorStore).getPostTypeLabel(), []);
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
'is-active': sidebarName === SIDEBAR_TEMPLATE
|
|
39
|
-
}),
|
|
40
|
-
"aria-label": documentAriaLabel,
|
|
41
|
-
"data-label": postTypeLabel
|
|
42
|
-
}, postTypeLabel)), createElement("li", null, createElement(Button, {
|
|
43
|
-
onClick: openBlockSettings,
|
|
44
|
-
className: classnames('edit-site-sidebar-edit-mode__panel-tab', {
|
|
45
|
-
'is-active': sidebarName === SIDEBAR_BLOCK
|
|
46
|
-
}),
|
|
47
|
-
"aria-label": sidebarName === SIDEBAR_BLOCK ?
|
|
48
|
-
// translators: ARIA label for the Block Settings Sidebar tab, selected.
|
|
49
|
-
__('Block (selected)') :
|
|
50
|
-
// translators: ARIA label for the Block Settings Sidebar tab, not selected.
|
|
51
|
-
__('Block'),
|
|
52
|
-
"data-label": __('Block')
|
|
53
|
-
}, __('Block'))));
|
|
21
|
+
return createElement(Tabs.TabList, {
|
|
22
|
+
ref: ref
|
|
23
|
+
}, createElement(Tabs.Tab, {
|
|
24
|
+
tabId: SIDEBAR_TEMPLATE
|
|
25
|
+
// Used for focus management in the SettingsSidebar component.
|
|
26
|
+
,
|
|
27
|
+
"data-tab-id": SIDEBAR_TEMPLATE
|
|
28
|
+
}, postTypeLabel), createElement(Tabs.Tab, {
|
|
29
|
+
tabId: SIDEBAR_BLOCK
|
|
30
|
+
// Used for focus management in the SettingsSidebar component.
|
|
31
|
+
,
|
|
32
|
+
"data-tab-id": SIDEBAR_BLOCK
|
|
33
|
+
}, __('Block')));
|
|
54
34
|
};
|
|
55
|
-
export default SettingsHeader;
|
|
35
|
+
export default forwardRef(SettingsHeader);
|
|
56
36
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["privateApis","componentsPrivateApis","__","useSelect","store","editorStore","forwardRef","SIDEBAR_BLOCK","SIDEBAR_TEMPLATE","unlock","Tabs","SettingsHeader","_","ref","postTypeLabel","select","getPostTypeLabel","createElement","TabList","Tab","tabId"],"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/settings-header/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { SIDEBAR_BLOCK, SIDEBAR_TEMPLATE } from '../constants';\nimport { unlock } from '../../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nconst SettingsHeader = ( _, ref ) => {\n\tconst postTypeLabel = useSelect(\n\t\t( select ) => select( editorStore ).getPostTypeLabel(),\n\t\t[]\n\t);\n\n\treturn (\n\t\t<Tabs.TabList ref={ ref }>\n\t\t\t<Tabs.Tab\n\t\t\t\ttabId={ SIDEBAR_TEMPLATE }\n\t\t\t\t// Used for focus management in the SettingsSidebar component.\n\t\t\t\tdata-tab-id={ SIDEBAR_TEMPLATE }\n\t\t\t>\n\t\t\t\t{ postTypeLabel }\n\t\t\t</Tabs.Tab>\n\t\t\t<Tabs.Tab\n\t\t\t\ttabId={ SIDEBAR_BLOCK }\n\t\t\t\t// Used for focus management in the SettingsSidebar component.\n\t\t\t\tdata-tab-id={ SIDEBAR_BLOCK }\n\t\t\t>\n\t\t\t\t{ __( 'Block' ) }\n\t\t\t</Tabs.Tab>\n\t\t</Tabs.TabList>\n\t);\n};\n\nexport default forwardRef( SettingsHeader );\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,WAAW,IAAIC,qBAAqB,QAAQ,uBAAuB;AAC5E,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,WAAW,QAAQ,mBAAmB;AACxD,SAASC,UAAU,QAAQ,oBAAoB;;AAE/C;AACA;AACA;AACA,SAASC,aAAa,EAAEC,gBAAgB,QAAQ,cAAc;AAC9D,SAASC,MAAM,QAAQ,sBAAsB;AAE7C,MAAM;EAAEC;AAAK,CAAC,GAAGD,MAAM,CAAER,qBAAsB,CAAC;AAEhD,MAAMU,cAAc,GAAGA,CAAEC,CAAC,EAAEC,GAAG,KAAM;EACpC,MAAMC,aAAa,GAAGX,SAAS,CAC5BY,MAAM,IAAMA,MAAM,CAAEV,WAAY,CAAC,CAACW,gBAAgB,CAAC,CAAC,EACtD,EACD,CAAC;EAED,OACCC,aAAA,CAACP,IAAI,CAACQ,OAAO;IAACL,GAAG,EAAGA;EAAK,GACxBI,aAAA,CAACP,IAAI,CAACS,GAAG;IACRC,KAAK,EAAGZ;IACR;IAAA;IACA,eAAcA;EAAkB,GAE9BM,aACO,CAAC,EACXG,aAAA,CAACP,IAAI,CAACS,GAAG;IACRC,KAAK,EAAGb;IACR;IAAA;IACA,eAAcA;EAAe,GAE3BL,EAAE,CAAE,OAAQ,CACL,CACG,CAAC;AAEjB,CAAC;AAED,eAAeI,UAAU,CAAEK,cAAe,CAAC"}
|
|
@@ -7,7 +7,7 @@ import { sentenceCase } from 'change-case';
|
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
9
9
|
*/
|
|
10
|
-
import { __, sprintf } from '@wordpress/i18n';
|
|
10
|
+
import { __, _x, sprintf } from '@wordpress/i18n';
|
|
11
11
|
import { store as coreStore } from '@wordpress/core-data';
|
|
12
12
|
import { store as editorStore } from '@wordpress/editor';
|
|
13
13
|
import { useSelect } from '@wordpress/data';
|
|
@@ -64,7 +64,7 @@ export default function usePatternDetails(postType, postId) {
|
|
|
64
64
|
if (postType === PATTERN_TYPES.user || postType === TEMPLATE_PART_POST_TYPE) {
|
|
65
65
|
details.push({
|
|
66
66
|
label: __('Syncing'),
|
|
67
|
-
value: record.wp_pattern_sync_status === PATTERN_SYNC_TYPES.unsynced ?
|
|
67
|
+
value: record.wp_pattern_sync_status === PATTERN_SYNC_TYPES.unsynced ? _x('Not synced', 'Text that indicates that the pattern is not synchronized') : _x('Synced', 'Text that indicates that the pattern is synchronized')
|
|
68
68
|
});
|
|
69
69
|
if (record.wp_pattern_category?.length === 0) {
|
|
70
70
|
details.push({
|
package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["sentenceCase","__","sprintf","store","coreStore","editorStore","useSelect","useAddedBy","useEditedEntityRecord","useNavigationMenuContent","SidebarNavigationScreenDetailsFooter","SidebarNavigationScreenDetailsPanel","SidebarNavigationScreenDetailsPanelRow","SidebarNavigationScreenDetailsPanelLabel","SidebarNavigationScreenDetailsPanelValue","PATTERN_TYPES","TEMPLATE_PART_POST_TYPE","PATTERN_SYNC_TYPES","TEMPLATE_ORIGINS","usePatternDetails","postType","postId","getDescription","getTitle","record","templatePartAreas","select","__experimentalGetDefaultTemplatePartAreas","currentTheme","userPatternCategories","getCurrentTheme","getUserPatternCategories","addedBy","isAddedByActiveTheme","type","theme","stylesheet","title","description","text","user","footer","modified","createElement","details","push","label","value","wp_pattern_sync_status","unsynced","wp_pattern_category","length","patternCategories","Map","forEach","userCategory","set","id","categories","filter","category","get","map","join","templatePartArea","find","area","areaDetailValue","className","origin","plugin","has_theme_file","isCustomized","content","Fragment","spacing","key"],"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { sentenceCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useAddedBy } from '../list/added-by';\nimport useEditedEntityRecord from '../use-edited-entity-record';\nimport useNavigationMenuContent from './use-navigation-menu-content';\nimport SidebarNavigationScreenDetailsFooter from '../sidebar-navigation-screen-details-footer';\nimport {\n\tSidebarNavigationScreenDetailsPanel,\n\tSidebarNavigationScreenDetailsPanelRow,\n\tSidebarNavigationScreenDetailsPanelLabel,\n\tSidebarNavigationScreenDetailsPanelValue,\n} from '../sidebar-navigation-screen-details-panel';\nimport {\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_SYNC_TYPES,\n\tTEMPLATE_ORIGINS,\n} from '../../utils/constants';\n\nexport default function usePatternDetails( postType, postId ) {\n\tconst { getDescription, getTitle, record } = useEditedEntityRecord(\n\t\tpostType,\n\t\tpostId\n\t);\n\tconst templatePartAreas = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).__experimentalGetDefaultTemplatePartAreas(),\n\t\t[]\n\t);\n\tconst { currentTheme, userPatternCategories } = useSelect( ( select ) => {\n\t\tconst { getCurrentTheme, getUserPatternCategories } =\n\t\t\tselect( coreStore );\n\n\t\treturn {\n\t\t\tcurrentTheme: getCurrentTheme(),\n\t\t\tuserPatternCategories: getUserPatternCategories(),\n\t\t};\n\t}, [] );\n\n\tconst addedBy = useAddedBy( postType, postId );\n\tconst isAddedByActiveTheme =\n\t\taddedBy.type === 'theme' && record.theme === currentTheme?.stylesheet;\n\tconst title = getTitle();\n\tlet description = getDescription();\n\n\tif ( ! description && addedBy.text ) {\n\t\tdescription =\n\t\t\tpostType === PATTERN_TYPES.user\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t// translators: %s: pattern title e.g: \"Header\".\n\t\t\t\t\t\t__( 'This is the %s pattern.' ),\n\t\t\t\t\t\tgetTitle()\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t// translators: %s: template part title e.g: \"Header\".\n\t\t\t\t\t\t__( 'This is the %s template part.' ),\n\t\t\t\t\t\tgetTitle()\n\t\t\t\t );\n\t}\n\n\tif ( ! description && postType === PATTERN_TYPES.user && record?.title ) {\n\t\tdescription = sprintf(\n\t\t\t// translators: %s: user created pattern title e.g. \"Footer\".\n\t\t\t__( 'This is the %s pattern.' ),\n\t\t\trecord.title\n\t\t);\n\t}\n\n\tconst footer = record?.modified ? (\n\t\t<SidebarNavigationScreenDetailsFooter record={ record } />\n\t) : null;\n\n\tconst details = [];\n\n\tif (\n\t\tpostType === PATTERN_TYPES.user ||\n\t\tpostType === TEMPLATE_PART_POST_TYPE\n\t) {\n\t\tdetails.push( {\n\t\t\tlabel: __( 'Syncing' ),\n\t\t\tvalue:\n\t\t\t\trecord.wp_pattern_sync_status === PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t\t? __( 'Not synced' )\n\t\t\t\t\t: __( 'Fully synced' ),\n\t\t} );\n\n\t\tif ( record.wp_pattern_category?.length === 0 ) {\n\t\t\tdetails.push( {\n\t\t\t\tlabel: __( 'Categories' ),\n\t\t\t\tvalue: __( 'Uncategorized' ),\n\t\t\t} );\n\t\t}\n\t\tif ( record.wp_pattern_category?.length > 0 ) {\n\t\t\tconst patternCategories = new Map();\n\t\t\tuserPatternCategories.forEach( ( userCategory ) =>\n\t\t\t\tpatternCategories.set( userCategory.id, userCategory )\n\t\t\t);\n\n\t\t\tconst categories = record.wp_pattern_category\n\t\t\t\t.filter( ( category ) => patternCategories.get( category ) )\n\t\t\t\t.map( ( category ) => patternCategories.get( category ).label );\n\n\t\t\tdetails.push( {\n\t\t\t\tlabel: __( 'Categories' ),\n\t\t\t\tvalue: categories.length > 0 ? categories.join( ', ' ) : '',\n\t\t\t} );\n\t\t}\n\t}\n\n\tif ( postType === TEMPLATE_PART_POST_TYPE ) {\n\t\tconst templatePartArea = templatePartAreas.find(\n\t\t\t( area ) => area.area === record.area\n\t\t);\n\n\t\tlet areaDetailValue = templatePartArea?.label;\n\n\t\tif ( ! areaDetailValue ) {\n\t\t\tareaDetailValue = record.area\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t// translators: %s: Sentenced cased template part area e.g: \"My custom area\".\n\t\t\t\t\t\t__( '%s (removed)' ),\n\t\t\t\t\t\tsentenceCase( record.area )\n\t\t\t\t )\n\t\t\t\t: __( 'None' );\n\t\t}\n\n\t\tdetails.push( { label: __( 'Area' ), value: areaDetailValue } );\n\t}\n\n\tif (\n\t\tpostType === TEMPLATE_PART_POST_TYPE &&\n\t\taddedBy.text &&\n\t\t! isAddedByActiveTheme\n\t) {\n\t\tdetails.push( {\n\t\t\tlabel: __( 'Added by' ),\n\t\t\tvalue: (\n\t\t\t\t<span className=\"edit-site-sidebar-navigation-screen-pattern__added-by-description-author\">\n\t\t\t\t\t{ addedBy.text }\n\t\t\t\t</span>\n\t\t\t),\n\t\t} );\n\t}\n\n\tif (\n\t\tpostType === TEMPLATE_PART_POST_TYPE &&\n\t\taddedBy.text &&\n\t\t( record.origin === TEMPLATE_ORIGINS.plugin ||\n\t\t\trecord.has_theme_file === true )\n\t) {\n\t\tdetails.push( {\n\t\t\tlabel: __( 'Customized' ),\n\t\t\tvalue: (\n\t\t\t\t<span className=\"edit-site-sidebar-navigation-screen-pattern__added-by-description-customized\">\n\t\t\t\t\t{ addedBy.isCustomized ? __( 'Yes' ) : __( 'No' ) }\n\t\t\t\t</span>\n\t\t\t),\n\t\t} );\n\t}\n\n\tconst content = (\n\t\t<>\n\t\t\t{ useNavigationMenuContent( postType, postId ) }\n\t\t\t{ !! details.length && (\n\t\t\t\t<SidebarNavigationScreenDetailsPanel\n\t\t\t\t\tspacing={ 5 }\n\t\t\t\t\ttitle={ __( 'Details' ) }\n\t\t\t\t>\n\t\t\t\t\t{ details.map( ( { label, value } ) => (\n\t\t\t\t\t\t<SidebarNavigationScreenDetailsPanelRow key={ label }>\n\t\t\t\t\t\t\t<SidebarNavigationScreenDetailsPanelLabel>\n\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t</SidebarNavigationScreenDetailsPanelLabel>\n\t\t\t\t\t\t\t<SidebarNavigationScreenDetailsPanelValue>\n\t\t\t\t\t\t\t\t{ value }\n\t\t\t\t\t\t\t</SidebarNavigationScreenDetailsPanelValue>\n\t\t\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t) ) }\n\t\t\t\t</SidebarNavigationScreenDetailsPanel>\n\t\t\t) }\n\t\t</>\n\t);\n\n\treturn { title, description, content, footer };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["sentenceCase","__","_x","sprintf","store","coreStore","editorStore","useSelect","useAddedBy","useEditedEntityRecord","useNavigationMenuContent","SidebarNavigationScreenDetailsFooter","SidebarNavigationScreenDetailsPanel","SidebarNavigationScreenDetailsPanelRow","SidebarNavigationScreenDetailsPanelLabel","SidebarNavigationScreenDetailsPanelValue","PATTERN_TYPES","TEMPLATE_PART_POST_TYPE","PATTERN_SYNC_TYPES","TEMPLATE_ORIGINS","usePatternDetails","postType","postId","getDescription","getTitle","record","templatePartAreas","select","__experimentalGetDefaultTemplatePartAreas","currentTheme","userPatternCategories","getCurrentTheme","getUserPatternCategories","addedBy","isAddedByActiveTheme","type","theme","stylesheet","title","description","text","user","footer","modified","createElement","details","push","label","value","wp_pattern_sync_status","unsynced","wp_pattern_category","length","patternCategories","Map","forEach","userCategory","set","id","categories","filter","category","get","map","join","templatePartArea","find","area","areaDetailValue","className","origin","plugin","has_theme_file","isCustomized","content","Fragment","spacing","key"],"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { sentenceCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useAddedBy } from '../list/added-by';\nimport useEditedEntityRecord from '../use-edited-entity-record';\nimport useNavigationMenuContent from './use-navigation-menu-content';\nimport SidebarNavigationScreenDetailsFooter from '../sidebar-navigation-screen-details-footer';\nimport {\n\tSidebarNavigationScreenDetailsPanel,\n\tSidebarNavigationScreenDetailsPanelRow,\n\tSidebarNavigationScreenDetailsPanelLabel,\n\tSidebarNavigationScreenDetailsPanelValue,\n} from '../sidebar-navigation-screen-details-panel';\nimport {\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_SYNC_TYPES,\n\tTEMPLATE_ORIGINS,\n} from '../../utils/constants';\n\nexport default function usePatternDetails( postType, postId ) {\n\tconst { getDescription, getTitle, record } = useEditedEntityRecord(\n\t\tpostType,\n\t\tpostId\n\t);\n\tconst templatePartAreas = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).__experimentalGetDefaultTemplatePartAreas(),\n\t\t[]\n\t);\n\tconst { currentTheme, userPatternCategories } = useSelect( ( select ) => {\n\t\tconst { getCurrentTheme, getUserPatternCategories } =\n\t\t\tselect( coreStore );\n\n\t\treturn {\n\t\t\tcurrentTheme: getCurrentTheme(),\n\t\t\tuserPatternCategories: getUserPatternCategories(),\n\t\t};\n\t}, [] );\n\n\tconst addedBy = useAddedBy( postType, postId );\n\tconst isAddedByActiveTheme =\n\t\taddedBy.type === 'theme' && record.theme === currentTheme?.stylesheet;\n\tconst title = getTitle();\n\tlet description = getDescription();\n\n\tif ( ! description && addedBy.text ) {\n\t\tdescription =\n\t\t\tpostType === PATTERN_TYPES.user\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t// translators: %s: pattern title e.g: \"Header\".\n\t\t\t\t\t\t__( 'This is the %s pattern.' ),\n\t\t\t\t\t\tgetTitle()\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t// translators: %s: template part title e.g: \"Header\".\n\t\t\t\t\t\t__( 'This is the %s template part.' ),\n\t\t\t\t\t\tgetTitle()\n\t\t\t\t );\n\t}\n\n\tif ( ! description && postType === PATTERN_TYPES.user && record?.title ) {\n\t\tdescription = sprintf(\n\t\t\t// translators: %s: user created pattern title e.g. \"Footer\".\n\t\t\t__( 'This is the %s pattern.' ),\n\t\t\trecord.title\n\t\t);\n\t}\n\n\tconst footer = record?.modified ? (\n\t\t<SidebarNavigationScreenDetailsFooter record={ record } />\n\t) : null;\n\n\tconst details = [];\n\n\tif (\n\t\tpostType === PATTERN_TYPES.user ||\n\t\tpostType === TEMPLATE_PART_POST_TYPE\n\t) {\n\t\tdetails.push( {\n\t\t\tlabel: __( 'Syncing' ),\n\t\t\tvalue:\n\t\t\t\trecord.wp_pattern_sync_status === PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t\t? _x(\n\t\t\t\t\t\t\t'Not synced',\n\t\t\t\t\t\t\t'Text that indicates that the pattern is not synchronized'\n\t\t\t\t\t )\n\t\t\t\t\t: _x(\n\t\t\t\t\t\t\t'Synced',\n\t\t\t\t\t\t\t'Text that indicates that the pattern is synchronized'\n\t\t\t\t\t ),\n\t\t} );\n\n\t\tif ( record.wp_pattern_category?.length === 0 ) {\n\t\t\tdetails.push( {\n\t\t\t\tlabel: __( 'Categories' ),\n\t\t\t\tvalue: __( 'Uncategorized' ),\n\t\t\t} );\n\t\t}\n\t\tif ( record.wp_pattern_category?.length > 0 ) {\n\t\t\tconst patternCategories = new Map();\n\t\t\tuserPatternCategories.forEach( ( userCategory ) =>\n\t\t\t\tpatternCategories.set( userCategory.id, userCategory )\n\t\t\t);\n\n\t\t\tconst categories = record.wp_pattern_category\n\t\t\t\t.filter( ( category ) => patternCategories.get( category ) )\n\t\t\t\t.map( ( category ) => patternCategories.get( category ).label );\n\n\t\t\tdetails.push( {\n\t\t\t\tlabel: __( 'Categories' ),\n\t\t\t\tvalue: categories.length > 0 ? categories.join( ', ' ) : '',\n\t\t\t} );\n\t\t}\n\t}\n\n\tif ( postType === TEMPLATE_PART_POST_TYPE ) {\n\t\tconst templatePartArea = templatePartAreas.find(\n\t\t\t( area ) => area.area === record.area\n\t\t);\n\n\t\tlet areaDetailValue = templatePartArea?.label;\n\n\t\tif ( ! areaDetailValue ) {\n\t\t\tareaDetailValue = record.area\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t// translators: %s: Sentenced cased template part area e.g: \"My custom area\".\n\t\t\t\t\t\t__( '%s (removed)' ),\n\t\t\t\t\t\tsentenceCase( record.area )\n\t\t\t\t )\n\t\t\t\t: __( 'None' );\n\t\t}\n\n\t\tdetails.push( { label: __( 'Area' ), value: areaDetailValue } );\n\t}\n\n\tif (\n\t\tpostType === TEMPLATE_PART_POST_TYPE &&\n\t\taddedBy.text &&\n\t\t! isAddedByActiveTheme\n\t) {\n\t\tdetails.push( {\n\t\t\tlabel: __( 'Added by' ),\n\t\t\tvalue: (\n\t\t\t\t<span className=\"edit-site-sidebar-navigation-screen-pattern__added-by-description-author\">\n\t\t\t\t\t{ addedBy.text }\n\t\t\t\t</span>\n\t\t\t),\n\t\t} );\n\t}\n\n\tif (\n\t\tpostType === TEMPLATE_PART_POST_TYPE &&\n\t\taddedBy.text &&\n\t\t( record.origin === TEMPLATE_ORIGINS.plugin ||\n\t\t\trecord.has_theme_file === true )\n\t) {\n\t\tdetails.push( {\n\t\t\tlabel: __( 'Customized' ),\n\t\t\tvalue: (\n\t\t\t\t<span className=\"edit-site-sidebar-navigation-screen-pattern__added-by-description-customized\">\n\t\t\t\t\t{ addedBy.isCustomized ? __( 'Yes' ) : __( 'No' ) }\n\t\t\t\t</span>\n\t\t\t),\n\t\t} );\n\t}\n\n\tconst content = (\n\t\t<>\n\t\t\t{ useNavigationMenuContent( postType, postId ) }\n\t\t\t{ !! details.length && (\n\t\t\t\t<SidebarNavigationScreenDetailsPanel\n\t\t\t\t\tspacing={ 5 }\n\t\t\t\t\ttitle={ __( 'Details' ) }\n\t\t\t\t>\n\t\t\t\t\t{ details.map( ( { label, value } ) => (\n\t\t\t\t\t\t<SidebarNavigationScreenDetailsPanelRow key={ label }>\n\t\t\t\t\t\t\t<SidebarNavigationScreenDetailsPanelLabel>\n\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t</SidebarNavigationScreenDetailsPanelLabel>\n\t\t\t\t\t\t\t<SidebarNavigationScreenDetailsPanelValue>\n\t\t\t\t\t\t\t\t{ value }\n\t\t\t\t\t\t\t</SidebarNavigationScreenDetailsPanelValue>\n\t\t\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t) ) }\n\t\t\t\t</SidebarNavigationScreenDetailsPanel>\n\t\t\t) }\n\t\t</>\n\t);\n\n\treturn { title, description, content, footer };\n}\n"],"mappings":"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"}
|
|
@@ -39,8 +39,8 @@ function SiteIcon({
|
|
|
39
39
|
src: siteIconUrl
|
|
40
40
|
}) : createElement(Icon, {
|
|
41
41
|
className: "edit-site-site-icon__icon",
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
icon: wordpress,
|
|
43
|
+
size: 48
|
|
44
44
|
});
|
|
45
45
|
return createElement("div", {
|
|
46
46
|
className: classnames(className, 'edit-site-site-icon')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classnames","useSelect","Icon","__","wordpress","store","coreDataStore","SiteIcon","className","isRequestingSite","siteIconUrl","select","getEntityRecord","siteData","undefined","site_icon_url","createElement","icon","alt","src","size"],"sources":["@wordpress/edit-site/src/components/site-icon/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { Icon } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { wordpress } from '@wordpress/icons';\nimport { store as coreDataStore } from '@wordpress/core-data';\n\nfunction SiteIcon( { className } ) {\n\tconst { isRequestingSite, siteIconUrl } = useSelect( ( select ) => {\n\t\tconst { getEntityRecord } = select( coreDataStore );\n\t\tconst siteData = getEntityRecord( 'root', '__unstableBase', undefined );\n\n\t\treturn {\n\t\t\tisRequestingSite: ! siteData,\n\t\t\tsiteIconUrl: siteData?.site_icon_url,\n\t\t};\n\t}, [] );\n\n\tif ( isRequestingSite && ! siteIconUrl ) {\n\t\treturn <div className=\"edit-site-site-icon__image\" />;\n\t}\n\n\tconst icon = siteIconUrl ? (\n\t\t<img\n\t\t\tclassName=\"edit-site-site-icon__image\"\n\t\t\talt={ __( 'Site Icon' ) }\n\t\t\tsrc={ siteIconUrl }\n\t\t/>\n\t) : (\n\t\t<Icon\n\t\t\tclassName=\"edit-site-site-icon__icon\"\n\t\t\
|
|
1
|
+
{"version":3,"names":["classnames","useSelect","Icon","__","wordpress","store","coreDataStore","SiteIcon","className","isRequestingSite","siteIconUrl","select","getEntityRecord","siteData","undefined","site_icon_url","createElement","icon","alt","src","size"],"sources":["@wordpress/edit-site/src/components/site-icon/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { Icon } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { wordpress } from '@wordpress/icons';\nimport { store as coreDataStore } from '@wordpress/core-data';\n\nfunction SiteIcon( { className } ) {\n\tconst { isRequestingSite, siteIconUrl } = useSelect( ( select ) => {\n\t\tconst { getEntityRecord } = select( coreDataStore );\n\t\tconst siteData = getEntityRecord( 'root', '__unstableBase', undefined );\n\n\t\treturn {\n\t\t\tisRequestingSite: ! siteData,\n\t\t\tsiteIconUrl: siteData?.site_icon_url,\n\t\t};\n\t}, [] );\n\n\tif ( isRequestingSite && ! siteIconUrl ) {\n\t\treturn <div className=\"edit-site-site-icon__image\" />;\n\t}\n\n\tconst icon = siteIconUrl ? (\n\t\t<img\n\t\t\tclassName=\"edit-site-site-icon__image\"\n\t\t\talt={ __( 'Site Icon' ) }\n\t\t\tsrc={ siteIconUrl }\n\t\t/>\n\t) : (\n\t\t<Icon\n\t\t\tclassName=\"edit-site-site-icon__icon\"\n\t\t\ticon={ wordpress }\n\t\t\tsize={ 48 }\n\t\t/>\n\t);\n\n\treturn (\n\t\t<div className={ classnames( className, 'edit-site-site-icon' ) }>\n\t\t\t{ icon }\n\t\t</div>\n\t);\n}\n\nexport default SiteIcon;\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,IAAI,QAAQ,uBAAuB;AAC5C,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,KAAK,IAAIC,aAAa,QAAQ,sBAAsB;AAE7D,SAASC,QAAQA,CAAE;EAAEC;AAAU,CAAC,EAAG;EAClC,MAAM;IAAEC,gBAAgB;IAAEC;EAAY,CAAC,GAAGT,SAAS,CAAIU,MAAM,IAAM;IAClE,MAAM;MAAEC;IAAgB,CAAC,GAAGD,MAAM,CAAEL,aAAc,CAAC;IACnD,MAAMO,QAAQ,GAAGD,eAAe,CAAE,MAAM,EAAE,gBAAgB,EAAEE,SAAU,CAAC;IAEvE,OAAO;MACNL,gBAAgB,EAAE,CAAEI,QAAQ;MAC5BH,WAAW,EAAEG,QAAQ,EAAEE;IACxB,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,IAAKN,gBAAgB,IAAI,CAAEC,WAAW,EAAG;IACxC,OAAOM,aAAA;MAAKR,SAAS,EAAC;IAA4B,CAAE,CAAC;EACtD;EAEA,MAAMS,IAAI,GAAGP,WAAW,GACvBM,aAAA;IACCR,SAAS,EAAC,4BAA4B;IACtCU,GAAG,EAAGf,EAAE,CAAE,WAAY,CAAG;IACzBgB,GAAG,EAAGT;EAAa,CACnB,CAAC,GAEFM,aAAA,CAACd,IAAI;IACJM,SAAS,EAAC,2BAA2B;IACrCS,IAAI,EAAGb,SAAW;IAClBgB,IAAI,EAAG;EAAI,CACX,CACD;EAED,OACCJ,aAAA;IAAKR,SAAS,EAAGR,UAAU,CAAEQ,SAAS,EAAE,qBAAsB;EAAG,GAC9DS,IACE,CAAC;AAER;AAEA,eAAeV,QAAQ"}
|
|
@@ -5,7 +5,7 @@ import { createElement } from "react";
|
|
|
5
5
|
import { Modal, Flex, FlexItem, Button } from '@wordpress/components';
|
|
6
6
|
import { __ } from '@wordpress/i18n';
|
|
7
7
|
import { useState, useMemo } from '@wordpress/element';
|
|
8
|
-
import { __experimentalBlockPatternsList as BlockPatternsList
|
|
8
|
+
import { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';
|
|
9
9
|
import { useSelect } from '@wordpress/data';
|
|
10
10
|
import { useAsyncList } from '@wordpress/compose';
|
|
11
11
|
import { store as preferencesStore } from '@wordpress/preferences';
|
|
@@ -41,17 +41,15 @@ function useStartPatterns(fallbackContent) {
|
|
|
41
41
|
getEditedPostId
|
|
42
42
|
} = select(editSiteStore);
|
|
43
43
|
const {
|
|
44
|
-
getEntityRecord
|
|
44
|
+
getEntityRecord,
|
|
45
|
+
getBlockPatterns
|
|
45
46
|
} = select(coreStore);
|
|
46
47
|
const postId = getEditedPostId();
|
|
47
48
|
const postType = getEditedPostType();
|
|
48
49
|
const record = getEntityRecord('postType', postType, postId);
|
|
49
|
-
const {
|
|
50
|
-
getSettings
|
|
51
|
-
} = select(blockEditorStore);
|
|
52
50
|
return {
|
|
53
51
|
slug: record.slug,
|
|
54
|
-
patterns:
|
|
52
|
+
patterns: getBlockPatterns()
|
|
55
53
|
};
|
|
56
54
|
}, []);
|
|
57
55
|
const currentThemeStylesheet = useSelect(select => select(coreStore).getCurrentTheme().stylesheet);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Modal","Flex","FlexItem","Button","__","useState","useMemo","__experimentalBlockPatternsList","BlockPatternsList","store","blockEditorStore","useSelect","useAsyncList","preferencesStore","parse","coreStore","useEntityBlockEditor","editSiteStore","TEMPLATE_POST_TYPE","useFallbackTemplateContent","slug","isCustom","select","getEntityRecord","getDefaultTemplateId","templateId","is_custom","ignore_empty","content","raw","undefined","useStartPatterns","fallbackContent","patterns","getEditedPostType","getEditedPostId","postId","postType","record","getSettings","__experimentalBlockPatterns","currentThemeStylesheet","getCurrentTheme","stylesheet","injectThemeAttributeInBlockTemplateContent","block","innerBlocks","find","innerBlock","name","map","attributes","theme","blocks","title","filter","pattern","Array","isArray","templateTypes","some","templateType","startsWith","PatternSelection","onChoosePattern","onChange","blockPatterns","shownBlockPatterns","createElement","shownPatterns","onClickPattern","selection","StartModal","onClose","className","closeLabel","focusOnMount","onRequestClose","isFullScreen","justify","expanded","variant","onClick","START_TEMPLATE_MODAL_STATES","INITIAL","CLOSED","StartTemplateOptions","modalState","setModalState","shouldOpenModal","_postType","getEditedEntityRecord","hasEditsForEntityRecord","templateRecord","hasEdits","get"],"sources":["@wordpress/edit-site/src/components/start-template-options/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Modal, Flex, FlexItem, Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useMemo } from '@wordpress/element';\nimport {\n\t__experimentalBlockPatternsList as BlockPatternsList,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useAsyncList } from '@wordpress/compose';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { parse } from '@wordpress/blocks';\nimport { store as coreStore, useEntityBlockEditor } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nfunction useFallbackTemplateContent( slug, isCustom = false ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecord, getDefaultTemplateId } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst templateId = getDefaultTemplateId( {\n\t\t\t\tslug,\n\t\t\t\tis_custom: isCustom,\n\t\t\t\tignore_empty: true,\n\t\t\t} );\n\t\t\treturn templateId\n\t\t\t\t? getEntityRecord( 'postType', TEMPLATE_POST_TYPE, templateId )\n\t\t\t\t\t\t?.content?.raw\n\t\t\t\t: undefined;\n\t\t},\n\t\t[ slug, isCustom ]\n\t);\n}\n\nfunction useStartPatterns( fallbackContent ) {\n\tconst { slug, patterns } = useSelect( ( select ) => {\n\t\tconst { getEditedPostType, getEditedPostId } = select( editSiteStore );\n\t\tconst { getEntityRecord } = select( coreStore );\n\t\tconst postId = getEditedPostId();\n\t\tconst postType = getEditedPostType();\n\t\tconst record = getEntityRecord( 'postType', postType, postId );\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tslug: record.slug,\n\t\t\tpatterns: getSettings().__experimentalBlockPatterns,\n\t\t};\n\t}, [] );\n\n\tconst currentThemeStylesheet = useSelect(\n\t\t( select ) => select( coreStore ).getCurrentTheme().stylesheet\n\t);\n\n\t// Duplicated from packages/block-library/src/pattern/edit.js.\n\tfunction injectThemeAttributeInBlockTemplateContent( block ) {\n\t\tif (\n\t\t\tblock.innerBlocks.find(\n\t\t\t\t( innerBlock ) => innerBlock.name === 'core/template-part'\n\t\t\t)\n\t\t) {\n\t\t\tblock.innerBlocks = block.innerBlocks.map( ( innerBlock ) => {\n\t\t\t\tif (\n\t\t\t\t\tinnerBlock.name === 'core/template-part' &&\n\t\t\t\t\tinnerBlock.attributes.theme === undefined\n\t\t\t\t) {\n\t\t\t\t\tinnerBlock.attributes.theme = currentThemeStylesheet;\n\t\t\t\t}\n\t\t\t\treturn innerBlock;\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tblock.name === 'core/template-part' &&\n\t\t\tblock.attributes.theme === undefined\n\t\t) {\n\t\t\tblock.attributes.theme = currentThemeStylesheet;\n\t\t}\n\t\treturn block;\n\t}\n\n\treturn useMemo( () => {\n\t\t// filter patterns that are supposed to be used in the current template being edited.\n\t\treturn [\n\t\t\t{\n\t\t\t\tname: 'fallback',\n\t\t\t\tblocks: parse( fallbackContent ),\n\t\t\t\ttitle: __( 'Fallback content' ),\n\t\t\t},\n\t\t\t...patterns\n\t\t\t\t.filter( ( pattern ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\tArray.isArray( pattern.templateTypes ) &&\n\t\t\t\t\t\tpattern.templateTypes.some( ( templateType ) =>\n\t\t\t\t\t\t\tslug.startsWith( templateType )\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t} )\n\t\t\t\t.map( ( pattern ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...pattern,\n\t\t\t\t\t\tblocks: parse( pattern.content ).map( ( block ) =>\n\t\t\t\t\t\t\tinjectThemeAttributeInBlockTemplateContent( block )\n\t\t\t\t\t\t),\n\t\t\t\t\t};\n\t\t\t\t} ),\n\t\t];\n\t}, [ fallbackContent, slug, patterns ] );\n}\n\nfunction PatternSelection( { fallbackContent, onChoosePattern, postType } ) {\n\tconst [ , , onChange ] = useEntityBlockEditor( 'postType', postType );\n\tconst blockPatterns = useStartPatterns( fallbackContent );\n\tconst shownBlockPatterns = useAsyncList( blockPatterns );\n\treturn (\n\t\t<BlockPatternsList\n\t\t\tblockPatterns={ blockPatterns }\n\t\t\tshownPatterns={ shownBlockPatterns }\n\t\t\tonClickPattern={ ( pattern, blocks ) => {\n\t\t\t\tonChange( blocks, { selection: undefined } );\n\t\t\t\tonChoosePattern();\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nfunction StartModal( { slug, isCustom, onClose, postType } ) {\n\tconst fallbackContent = useFallbackTemplateContent( slug, isCustom );\n\tif ( ! fallbackContent ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<Modal\n\t\t\tclassName=\"edit-site-start-template-options__modal\"\n\t\t\ttitle={ __( 'Choose a pattern' ) }\n\t\t\tcloseLabel={ __( 'Cancel' ) }\n\t\t\tfocusOnMount=\"firstElement\"\n\t\t\tonRequestClose={ onClose }\n\t\t\tisFullScreen={ true }\n\t\t>\n\t\t\t<div className=\"edit-site-start-template-options__modal-content\">\n\t\t\t\t<PatternSelection\n\t\t\t\t\tfallbackContent={ fallbackContent }\n\t\t\t\t\tslug={ slug }\n\t\t\t\t\tisCustom={ isCustom }\n\t\t\t\t\tpostType={ postType }\n\t\t\t\t\tonChoosePattern={ () => {\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<Flex\n\t\t\t\tclassName=\"edit-site-start-template-options__modal__actions\"\n\t\t\t\tjustify=\"flex-end\"\n\t\t\t\texpanded={ false }\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button variant=\"tertiary\" onClick={ onClose }>\n\t\t\t\t\t\t{ __( 'Skip' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</Modal>\n\t);\n}\n\nconst START_TEMPLATE_MODAL_STATES = {\n\tINITIAL: 'INITIAL',\n\tCLOSED: 'CLOSED',\n};\n\nexport default function StartTemplateOptions() {\n\tconst [ modalState, setModalState ] = useState(\n\t\tSTART_TEMPLATE_MODAL_STATES.INITIAL\n\t);\n\tconst { shouldOpenModal, slug, isCustom, postType } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedPostType, getEditedPostId } =\n\t\t\t\tselect( editSiteStore );\n\t\t\tconst _postType = getEditedPostType();\n\t\t\tconst postId = getEditedPostId();\n\t\t\tconst { getEditedEntityRecord, hasEditsForEntityRecord } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst templateRecord = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t_postType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t\tconst hasEdits = hasEditsForEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t_postType,\n\t\t\t\tpostId\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tshouldOpenModal:\n\t\t\t\t\t! hasEdits &&\n\t\t\t\t\t'' === templateRecord.content &&\n\t\t\t\t\tTEMPLATE_POST_TYPE === _postType &&\n\t\t\t\t\t! select( preferencesStore ).get(\n\t\t\t\t\t\t'core/edit-site',\n\t\t\t\t\t\t'welcomeGuide'\n\t\t\t\t\t),\n\t\t\t\tslug: templateRecord.slug,\n\t\t\t\tisCustom: templateRecord.is_custom,\n\t\t\t\tpostType: _postType,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tif (\n\t\t( modalState === START_TEMPLATE_MODAL_STATES.INITIAL &&\n\t\t\t! shouldOpenModal ) ||\n\t\tmodalState === START_TEMPLATE_MODAL_STATES.CLOSED\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<StartModal\n\t\t\tslug={ slug }\n\t\t\tisCustom={ isCustom }\n\t\t\tpostType={ postType }\n\t\t\tonClose={ () =>\n\t\t\t\tsetModalState( START_TEMPLATE_MODAL_STATES.CLOSED )\n\t\t\t}\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Modal","Flex","FlexItem","Button","__","useState","useMemo","__experimentalBlockPatternsList","BlockPatternsList","useSelect","useAsyncList","store","preferencesStore","parse","coreStore","useEntityBlockEditor","editSiteStore","TEMPLATE_POST_TYPE","useFallbackTemplateContent","slug","isCustom","select","getEntityRecord","getDefaultTemplateId","templateId","is_custom","ignore_empty","content","raw","undefined","useStartPatterns","fallbackContent","patterns","getEditedPostType","getEditedPostId","getBlockPatterns","postId","postType","record","currentThemeStylesheet","getCurrentTheme","stylesheet","injectThemeAttributeInBlockTemplateContent","block","innerBlocks","find","innerBlock","name","map","attributes","theme","blocks","title","filter","pattern","Array","isArray","templateTypes","some","templateType","startsWith","PatternSelection","onChoosePattern","onChange","blockPatterns","shownBlockPatterns","createElement","shownPatterns","onClickPattern","selection","StartModal","onClose","className","closeLabel","focusOnMount","onRequestClose","isFullScreen","justify","expanded","variant","onClick","START_TEMPLATE_MODAL_STATES","INITIAL","CLOSED","StartTemplateOptions","modalState","setModalState","shouldOpenModal","_postType","getEditedEntityRecord","hasEditsForEntityRecord","templateRecord","hasEdits","get"],"sources":["@wordpress/edit-site/src/components/start-template-options/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Modal, Flex, FlexItem, Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useMemo } from '@wordpress/element';\nimport { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useAsyncList } from '@wordpress/compose';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { parse } from '@wordpress/blocks';\nimport { store as coreStore, useEntityBlockEditor } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nfunction useFallbackTemplateContent( slug, isCustom = false ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecord, getDefaultTemplateId } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst templateId = getDefaultTemplateId( {\n\t\t\t\tslug,\n\t\t\t\tis_custom: isCustom,\n\t\t\t\tignore_empty: true,\n\t\t\t} );\n\t\t\treturn templateId\n\t\t\t\t? getEntityRecord( 'postType', TEMPLATE_POST_TYPE, templateId )\n\t\t\t\t\t\t?.content?.raw\n\t\t\t\t: undefined;\n\t\t},\n\t\t[ slug, isCustom ]\n\t);\n}\n\nfunction useStartPatterns( fallbackContent ) {\n\tconst { slug, patterns } = useSelect( ( select ) => {\n\t\tconst { getEditedPostType, getEditedPostId } = select( editSiteStore );\n\t\tconst { getEntityRecord, getBlockPatterns } = select( coreStore );\n\t\tconst postId = getEditedPostId();\n\t\tconst postType = getEditedPostType();\n\t\tconst record = getEntityRecord( 'postType', postType, postId );\n\t\treturn {\n\t\t\tslug: record.slug,\n\t\t\tpatterns: getBlockPatterns(),\n\t\t};\n\t}, [] );\n\n\tconst currentThemeStylesheet = useSelect(\n\t\t( select ) => select( coreStore ).getCurrentTheme().stylesheet\n\t);\n\n\t// Duplicated from packages/block-library/src/pattern/edit.js.\n\tfunction injectThemeAttributeInBlockTemplateContent( block ) {\n\t\tif (\n\t\t\tblock.innerBlocks.find(\n\t\t\t\t( innerBlock ) => innerBlock.name === 'core/template-part'\n\t\t\t)\n\t\t) {\n\t\t\tblock.innerBlocks = block.innerBlocks.map( ( innerBlock ) => {\n\t\t\t\tif (\n\t\t\t\t\tinnerBlock.name === 'core/template-part' &&\n\t\t\t\t\tinnerBlock.attributes.theme === undefined\n\t\t\t\t) {\n\t\t\t\t\tinnerBlock.attributes.theme = currentThemeStylesheet;\n\t\t\t\t}\n\t\t\t\treturn innerBlock;\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tblock.name === 'core/template-part' &&\n\t\t\tblock.attributes.theme === undefined\n\t\t) {\n\t\t\tblock.attributes.theme = currentThemeStylesheet;\n\t\t}\n\t\treturn block;\n\t}\n\n\treturn useMemo( () => {\n\t\t// filter patterns that are supposed to be used in the current template being edited.\n\t\treturn [\n\t\t\t{\n\t\t\t\tname: 'fallback',\n\t\t\t\tblocks: parse( fallbackContent ),\n\t\t\t\ttitle: __( 'Fallback content' ),\n\t\t\t},\n\t\t\t...patterns\n\t\t\t\t.filter( ( pattern ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\tArray.isArray( pattern.templateTypes ) &&\n\t\t\t\t\t\tpattern.templateTypes.some( ( templateType ) =>\n\t\t\t\t\t\t\tslug.startsWith( templateType )\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t} )\n\t\t\t\t.map( ( pattern ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...pattern,\n\t\t\t\t\t\tblocks: parse( pattern.content ).map( ( block ) =>\n\t\t\t\t\t\t\tinjectThemeAttributeInBlockTemplateContent( block )\n\t\t\t\t\t\t),\n\t\t\t\t\t};\n\t\t\t\t} ),\n\t\t];\n\t}, [ fallbackContent, slug, patterns ] );\n}\n\nfunction PatternSelection( { fallbackContent, onChoosePattern, postType } ) {\n\tconst [ , , onChange ] = useEntityBlockEditor( 'postType', postType );\n\tconst blockPatterns = useStartPatterns( fallbackContent );\n\tconst shownBlockPatterns = useAsyncList( blockPatterns );\n\treturn (\n\t\t<BlockPatternsList\n\t\t\tblockPatterns={ blockPatterns }\n\t\t\tshownPatterns={ shownBlockPatterns }\n\t\t\tonClickPattern={ ( pattern, blocks ) => {\n\t\t\t\tonChange( blocks, { selection: undefined } );\n\t\t\t\tonChoosePattern();\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nfunction StartModal( { slug, isCustom, onClose, postType } ) {\n\tconst fallbackContent = useFallbackTemplateContent( slug, isCustom );\n\tif ( ! fallbackContent ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<Modal\n\t\t\tclassName=\"edit-site-start-template-options__modal\"\n\t\t\ttitle={ __( 'Choose a pattern' ) }\n\t\t\tcloseLabel={ __( 'Cancel' ) }\n\t\t\tfocusOnMount=\"firstElement\"\n\t\t\tonRequestClose={ onClose }\n\t\t\tisFullScreen={ true }\n\t\t>\n\t\t\t<div className=\"edit-site-start-template-options__modal-content\">\n\t\t\t\t<PatternSelection\n\t\t\t\t\tfallbackContent={ fallbackContent }\n\t\t\t\t\tslug={ slug }\n\t\t\t\t\tisCustom={ isCustom }\n\t\t\t\t\tpostType={ postType }\n\t\t\t\t\tonChoosePattern={ () => {\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<Flex\n\t\t\t\tclassName=\"edit-site-start-template-options__modal__actions\"\n\t\t\t\tjustify=\"flex-end\"\n\t\t\t\texpanded={ false }\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button variant=\"tertiary\" onClick={ onClose }>\n\t\t\t\t\t\t{ __( 'Skip' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</Modal>\n\t);\n}\n\nconst START_TEMPLATE_MODAL_STATES = {\n\tINITIAL: 'INITIAL',\n\tCLOSED: 'CLOSED',\n};\n\nexport default function StartTemplateOptions() {\n\tconst [ modalState, setModalState ] = useState(\n\t\tSTART_TEMPLATE_MODAL_STATES.INITIAL\n\t);\n\tconst { shouldOpenModal, slug, isCustom, postType } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedPostType, getEditedPostId } =\n\t\t\t\tselect( editSiteStore );\n\t\t\tconst _postType = getEditedPostType();\n\t\t\tconst postId = getEditedPostId();\n\t\t\tconst { getEditedEntityRecord, hasEditsForEntityRecord } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst templateRecord = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t_postType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t\tconst hasEdits = hasEditsForEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t_postType,\n\t\t\t\tpostId\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tshouldOpenModal:\n\t\t\t\t\t! hasEdits &&\n\t\t\t\t\t'' === templateRecord.content &&\n\t\t\t\t\tTEMPLATE_POST_TYPE === _postType &&\n\t\t\t\t\t! select( preferencesStore ).get(\n\t\t\t\t\t\t'core/edit-site',\n\t\t\t\t\t\t'welcomeGuide'\n\t\t\t\t\t),\n\t\t\t\tslug: templateRecord.slug,\n\t\t\t\tisCustom: templateRecord.is_custom,\n\t\t\t\tpostType: _postType,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tif (\n\t\t( modalState === START_TEMPLATE_MODAL_STATES.INITIAL &&\n\t\t\t! shouldOpenModal ) ||\n\t\tmodalState === START_TEMPLATE_MODAL_STATES.CLOSED\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<StartModal\n\t\t\tslug={ slug }\n\t\t\tisCustom={ isCustom }\n\t\t\tpostType={ postType }\n\t\t\tonClose={ () =>\n\t\t\t\tsetModalState( START_TEMPLATE_MODAL_STATES.CLOSED )\n\t\t\t}\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -52,7 +52,6 @@ export default function ConvertToTemplatePart({
|
|
|
52
52
|
// The modal and this component will be unmounted because of `replaceBlocks` above,
|
|
53
53
|
// so no need to call `closeModal` or `onClose`.
|
|
54
54
|
};
|
|
55
|
-
|
|
56
55
|
return createElement(Fragment, null, createElement(MenuItem, {
|
|
57
56
|
icon: symbolFilled,
|
|
58
57
|
onClick: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useDispatch","useSelect","store","blockEditorStore","MenuItem","createBlock","__","useState","noticesStore","symbolFilled","CreateTemplatePartModal","editSiteStore","ConvertToTemplatePart","clientIds","blocks","isModalOpen","setIsModalOpen","replaceBlocks","createSuccessNotice","canCreate","select","supportsTemplatePartsMode","getSettings","onConvert","templatePart","slug","theme","type","createElement","Fragment","icon","onClick","closeModal","onCreate"],"sources":["@wordpress/edit-site/src/components/template-part-converter/convert-to-template-part.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { MenuItem } from '@wordpress/components';\nimport { createBlock } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { symbolFilled } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport CreateTemplatePartModal from '../create-template-part-modal';\nimport { store as editSiteStore } from '../../store';\n\nexport default function ConvertToTemplatePart( { clientIds, blocks } ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\tconst { canCreate } = useSelect( ( select ) => {\n\t\tconst { supportsTemplatePartsMode } =\n\t\t\tselect( editSiteStore ).getSettings();\n\t\treturn {\n\t\t\tcanCreate: ! supportsTemplatePartsMode,\n\t\t};\n\t}, [] );\n\n\tif ( ! canCreate ) {\n\t\treturn null;\n\t}\n\n\tconst onConvert = async ( templatePart ) => {\n\t\treplaceBlocks(\n\t\t\tclientIds,\n\t\t\tcreateBlock( 'core/template-part', {\n\t\t\t\tslug: templatePart.slug,\n\t\t\t\ttheme: templatePart.theme,\n\t\t\t} )\n\t\t);\n\t\tcreateSuccessNotice( __( 'Template part created.' ), {\n\t\t\ttype: 'snackbar',\n\t\t} );\n\n\t\t// The modal and this component will be unmounted because of `replaceBlocks` above,\n\t\t// so no need to call `closeModal` or `onClose`.\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\ticon={ symbolFilled }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetIsModalOpen( true );\n\t\t\t\t} }\n\t\t\t\taria-expanded={ isModalOpen }\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t>\n\t\t\t\t{ __( 'Create template part' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tcloseModal={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tonCreate={ onConvert }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,yBAAyB;AACnE,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASL,KAAK,IAAIM,YAAY,QAAQ,oBAAoB;AAC1D,SAASC,YAAY,QAAQ,kBAAkB;;AAE/C;AACA;AACA;AACA,OAAOC,uBAAuB,MAAM,+BAA+B;AACnE,SAASR,KAAK,IAAIS,aAAa,QAAQ,aAAa;AAEpD,eAAe,SAASC,qBAAqBA,CAAE;EAAEC,SAAS;EAAEC;AAAO,CAAC,EAAG;EACtE,MAAM,CAAEC,WAAW,EAAEC,cAAc,CAAE,GAAGT,QAAQ,CAAE,KAAM,CAAC;EACzD,MAAM;IAAEU;EAAc,CAAC,GAAGjB,WAAW,CAAEG,gBAAiB,CAAC;EACzD,MAAM;IAAEe;EAAoB,CAAC,GAAGlB,WAAW,CAAEQ,YAAa,CAAC;EAE3D,MAAM;IAAEW;EAAU,CAAC,GAAGlB,SAAS,CAAImB,MAAM,IAAM;IAC9C,MAAM;MAAEC;IAA0B,CAAC,GAClCD,MAAM,CAAET,aAAc,CAAC,CAACW,WAAW,CAAC,CAAC;IACtC,OAAO;MACNH,SAAS,EAAE,CAAEE;IACd,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,IAAK,CAAEF,SAAS,EAAG;IAClB,OAAO,IAAI;EACZ;EAEA,MAAMI,SAAS,GAAG,MAAQC,YAAY,IAAM;IAC3CP,aAAa,CACZJ,SAAS,EACTR,WAAW,CAAE,oBAAoB,EAAE;MAClCoB,IAAI,EAAED,YAAY,CAACC,IAAI;MACvBC,KAAK,EAAEF,YAAY,CAACE;IACrB,CAAE,CACH,CAAC;IACDR,mBAAmB,CAAEZ,EAAE,CAAE,wBAAyB,CAAC,EAAE;MACpDqB,IAAI,EAAE;IACP,CAAE,CAAC;;IAEH;IACA;EACD,CAAC
|
|
1
|
+
{"version":3,"names":["useDispatch","useSelect","store","blockEditorStore","MenuItem","createBlock","__","useState","noticesStore","symbolFilled","CreateTemplatePartModal","editSiteStore","ConvertToTemplatePart","clientIds","blocks","isModalOpen","setIsModalOpen","replaceBlocks","createSuccessNotice","canCreate","select","supportsTemplatePartsMode","getSettings","onConvert","templatePart","slug","theme","type","createElement","Fragment","icon","onClick","closeModal","onCreate"],"sources":["@wordpress/edit-site/src/components/template-part-converter/convert-to-template-part.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { MenuItem } from '@wordpress/components';\nimport { createBlock } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { symbolFilled } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport CreateTemplatePartModal from '../create-template-part-modal';\nimport { store as editSiteStore } from '../../store';\n\nexport default function ConvertToTemplatePart( { clientIds, blocks } ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\tconst { canCreate } = useSelect( ( select ) => {\n\t\tconst { supportsTemplatePartsMode } =\n\t\t\tselect( editSiteStore ).getSettings();\n\t\treturn {\n\t\t\tcanCreate: ! supportsTemplatePartsMode,\n\t\t};\n\t}, [] );\n\n\tif ( ! canCreate ) {\n\t\treturn null;\n\t}\n\n\tconst onConvert = async ( templatePart ) => {\n\t\treplaceBlocks(\n\t\t\tclientIds,\n\t\t\tcreateBlock( 'core/template-part', {\n\t\t\t\tslug: templatePart.slug,\n\t\t\t\ttheme: templatePart.theme,\n\t\t\t} )\n\t\t);\n\t\tcreateSuccessNotice( __( 'Template part created.' ), {\n\t\t\ttype: 'snackbar',\n\t\t} );\n\n\t\t// The modal and this component will be unmounted because of `replaceBlocks` above,\n\t\t// so no need to call `closeModal` or `onClose`.\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\ticon={ symbolFilled }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetIsModalOpen( true );\n\t\t\t\t} }\n\t\t\t\taria-expanded={ isModalOpen }\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t>\n\t\t\t\t{ __( 'Create template part' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tcloseModal={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tonCreate={ onConvert }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,yBAAyB;AACnE,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASL,KAAK,IAAIM,YAAY,QAAQ,oBAAoB;AAC1D,SAASC,YAAY,QAAQ,kBAAkB;;AAE/C;AACA;AACA;AACA,OAAOC,uBAAuB,MAAM,+BAA+B;AACnE,SAASR,KAAK,IAAIS,aAAa,QAAQ,aAAa;AAEpD,eAAe,SAASC,qBAAqBA,CAAE;EAAEC,SAAS;EAAEC;AAAO,CAAC,EAAG;EACtE,MAAM,CAAEC,WAAW,EAAEC,cAAc,CAAE,GAAGT,QAAQ,CAAE,KAAM,CAAC;EACzD,MAAM;IAAEU;EAAc,CAAC,GAAGjB,WAAW,CAAEG,gBAAiB,CAAC;EACzD,MAAM;IAAEe;EAAoB,CAAC,GAAGlB,WAAW,CAAEQ,YAAa,CAAC;EAE3D,MAAM;IAAEW;EAAU,CAAC,GAAGlB,SAAS,CAAImB,MAAM,IAAM;IAC9C,MAAM;MAAEC;IAA0B,CAAC,GAClCD,MAAM,CAAET,aAAc,CAAC,CAACW,WAAW,CAAC,CAAC;IACtC,OAAO;MACNH,SAAS,EAAE,CAAEE;IACd,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,IAAK,CAAEF,SAAS,EAAG;IAClB,OAAO,IAAI;EACZ;EAEA,MAAMI,SAAS,GAAG,MAAQC,YAAY,IAAM;IAC3CP,aAAa,CACZJ,SAAS,EACTR,WAAW,CAAE,oBAAoB,EAAE;MAClCoB,IAAI,EAAED,YAAY,CAACC,IAAI;MACvBC,KAAK,EAAEF,YAAY,CAACE;IACrB,CAAE,CACH,CAAC;IACDR,mBAAmB,CAAEZ,EAAE,CAAE,wBAAyB,CAAC,EAAE;MACpDqB,IAAI,EAAE;IACP,CAAE,CAAC;;IAEH;IACA;EACD,CAAC;EAED,OACCC,aAAA,CAAAC,QAAA,QACCD,aAAA,CAACxB,QAAQ;IACR0B,IAAI,EAAGrB,YAAc;IACrBsB,OAAO,EAAGA,CAAA,KAAM;MACff,cAAc,CAAE,IAAK,CAAC;IACvB,CAAG;IACH,iBAAgBD,WAAa;IAC7B,iBAAc;EAAQ,GAEpBT,EAAE,CAAE,sBAAuB,CACpB,CAAC,EACTS,WAAW,IACZa,aAAA,CAAClB,uBAAuB;IACvBsB,UAAU,EAAGA,CAAA,KAAM;MAClBhB,cAAc,CAAE,KAAM,CAAC;IACxB,CAAG;IACHF,MAAM,EAAGA,MAAQ;IACjBmB,QAAQ,EAAGV;EAAW,CACtB,CAED,CAAC;AAEL"}
|
|
@@ -377,7 +377,6 @@ export const revertTemplate = (template, {
|
|
|
377
377
|
}, {
|
|
378
378
|
undoIgnore: true // Required to merge this edit with the last undo level.
|
|
379
379
|
});
|
|
380
|
-
|
|
381
380
|
const blocks = parse(fileTemplate?.content?.raw);
|
|
382
381
|
registry.dispatch(coreStore).editEntityRecord('postType', template.type, fileTemplate.id, {
|
|
383
382
|
content: serializeBlocks,
|
|
@@ -486,6 +485,9 @@ export const toggleDistractionFree = () => ({
|
|
|
486
485
|
registry
|
|
487
486
|
}) => {
|
|
488
487
|
const isDistractionFree = registry.select(preferencesStore).get('core', 'distractionFree');
|
|
488
|
+
if (isDistractionFree) {
|
|
489
|
+
registry.dispatch(preferencesStore).set('core', 'fixedToolbar', false);
|
|
490
|
+
}
|
|
489
491
|
if (!isDistractionFree) {
|
|
490
492
|
registry.batch(() => {
|
|
491
493
|
registry.dispatch(preferencesStore).set('core', 'fixedToolbar', true);
|
|
@@ -502,7 +504,10 @@ export const toggleDistractionFree = () => ({
|
|
|
502
504
|
actions: [{
|
|
503
505
|
label: __('Undo'),
|
|
504
506
|
onClick: () => {
|
|
505
|
-
registry.
|
|
507
|
+
registry.batch(() => {
|
|
508
|
+
registry.dispatch(preferencesStore).set('core', 'fixedToolbar', isDistractionFree ? true : false);
|
|
509
|
+
registry.dispatch(preferencesStore).toggle('core', 'distractionFree');
|
|
510
|
+
});
|
|
506
511
|
}
|
|
507
512
|
}]
|
|
508
513
|
});
|