@wordpress/edit-site 7.3.0 → 7.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/build/components/add-new-pattern/index.cjs +1 -1
- package/build/components/add-new-pattern/index.cjs.map +1 -1
- package/build/components/add-new-post/index.cjs +1 -1
- package/build/components/add-new-post/index.cjs.map +1 -1
- package/build/components/add-new-template/add-custom-generic-template-modal-content.cjs +1 -1
- package/build/components/add-new-template/add-custom-generic-template-modal-content.cjs.map +1 -1
- package/build/components/add-new-template/add-custom-template-modal-content.cjs +4 -2
- package/build/components/add-new-template/add-custom-template-modal-content.cjs.map +3 -3
- package/build/components/add-new-template/index.cjs +7 -5
- package/build/components/add-new-template/index.cjs.map +3 -3
- package/build/components/add-new-template/utils.cjs +84 -9
- package/build/components/add-new-template/utils.cjs.map +2 -2
- package/build/components/app/index.cjs +1 -1
- package/build/components/app/index.cjs.map +1 -1
- package/build/components/canvas-loader/index.cjs +1 -1
- package/build/components/canvas-loader/index.cjs.map +1 -1
- package/build/components/dataviews-actions/index.cjs +2 -55
- package/build/components/dataviews-actions/index.cjs.map +3 -3
- package/build/components/editor/index.cjs +1 -1
- package/build/components/editor/index.cjs.map +1 -1
- package/build/components/editor/site-preview.cjs +1 -1
- package/build/components/editor/site-preview.cjs.map +1 -1
- package/build/components/editor/use-adapt-editor-to-canvas.cjs +0 -11
- package/build/components/editor/use-adapt-editor-to-canvas.cjs.map +3 -3
- package/build/components/layout/index.cjs +3 -3
- package/build/components/layout/index.cjs.map +3 -3
- package/build/components/media/index.cjs +1 -1
- package/build/components/media/index.cjs.map +1 -1
- package/build/components/more-menu/index.cjs +1 -1
- package/build/components/more-menu/index.cjs.map +1 -1
- package/build/components/more-menu/welcome-guide-menu-item.cjs +11 -3
- package/build/components/more-menu/welcome-guide-menu-item.cjs.map +4 -4
- package/build/components/page-patterns/actions.cjs +1 -1
- package/build/components/page-patterns/actions.cjs.map +1 -1
- package/build/components/page-patterns/delete-category-menu-item.cjs +1 -1
- package/build/components/page-patterns/delete-category-menu-item.cjs.map +1 -1
- package/build/components/page-patterns/fields.cjs +1 -1
- package/build/components/page-patterns/fields.cjs.map +1 -1
- package/build/components/page-patterns/index.cjs +1 -1
- package/build/components/page-patterns/index.cjs.map +1 -1
- package/build/components/page-patterns/rename-category-menu-item.cjs +1 -1
- package/build/components/page-patterns/rename-category-menu-item.cjs.map +1 -1
- package/build/components/page-templates/fields.cjs +3 -127
- package/build/components/page-templates/fields.cjs.map +4 -4
- package/build/components/page-templates/index.cjs +47 -231
- package/build/components/page-templates/index.cjs.map +4 -4
- package/build/components/pagination/index.cjs +1 -1
- package/build/components/pagination/index.cjs.map +1 -1
- package/build/components/plugin-template-setting-panel/index.cjs +1 -1
- package/build/components/plugin-template-setting-panel/index.cjs.map +1 -1
- package/build/components/post-list/index.cjs +8 -18
- package/build/components/post-list/index.cjs.map +3 -3
- package/build/components/post-list/quick-edit-modal.cjs +1 -1
- package/build/components/post-list/quick-edit-modal.cjs.map +1 -1
- package/build/components/resizable-frame/index.cjs +1 -1
- package/build/components/resizable-frame/index.cjs.map +1 -1
- package/build/components/save-button/index.cjs +1 -1
- package/build/components/save-button/index.cjs.map +1 -1
- package/build/components/save-hub/index.cjs +1 -1
- package/build/components/save-hub/index.cjs.map +1 -1
- package/build/components/save-panel/index.cjs +1 -1
- package/build/components/save-panel/index.cjs.map +1 -1
- package/build/components/sidebar/index.cjs +1 -1
- package/build/components/sidebar/index.cjs.map +1 -1
- package/build/components/sidebar-button/index.cjs +1 -1
- package/build/components/sidebar-button/index.cjs.map +1 -1
- package/build/components/sidebar-dataviews/index.cjs +1 -1
- package/build/components/sidebar-dataviews/index.cjs.map +1 -1
- package/build/components/sidebar-global-styles/index.cjs +3 -3
- package/build/components/sidebar-global-styles/index.cjs.map +3 -3
- package/build/components/sidebar-identity/index.cjs +18 -23
- package/build/components/sidebar-identity/index.cjs.map +3 -3
- package/build/components/sidebar-navigation-item/index.cjs +2 -9
- package/build/components/sidebar-navigation-item/index.cjs.map +3 -3
- package/build/components/sidebar-navigation-screen/index.cjs +1 -1
- package/build/components/sidebar-navigation-screen/index.cjs.map +1 -1
- package/build/components/sidebar-navigation-screen-details-footer/index.cjs +1 -1
- package/build/components/sidebar-navigation-screen-details-footer/index.cjs.map +1 -1
- package/build/components/sidebar-navigation-screen-global-styles/content.cjs +1 -1
- package/build/components/sidebar-navigation-screen-global-styles/content.cjs.map +1 -1
- package/build/components/sidebar-navigation-screen-global-styles/index.cjs +1 -1
- package/build/components/sidebar-navigation-screen-global-styles/index.cjs.map +1 -1
- package/build/components/sidebar-navigation-screen-identity/index.cjs +1 -1
- package/build/components/sidebar-navigation-screen-identity/index.cjs.map +1 -1
- package/build/components/sidebar-navigation-screen-main/index.cjs +1 -1
- package/build/components/sidebar-navigation-screen-main/index.cjs.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.cjs +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.cjs.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/index.cjs +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/index.cjs.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.cjs +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.cjs.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.cjs +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.cjs.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.cjs +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.cjs.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.cjs +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.cjs.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.cjs.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menus/index.cjs +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menus/index.cjs.map +2 -2
- package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.cjs +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.cjs.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.cjs +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.cjs.map +2 -2
- package/build/components/sidebar-navigation-screen-patterns/category-item.cjs +1 -1
- package/build/components/sidebar-navigation-screen-patterns/category-item.cjs.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/index.cjs +1 -1
- package/build/components/sidebar-navigation-screen-patterns/index.cjs.map +1 -1
- package/build/components/sidebar-navigation-screen-templates-browse/content.cjs +35 -73
- package/build/components/sidebar-navigation-screen-templates-browse/content.cjs.map +4 -4
- package/build/components/sidebar-navigation-screen-templates-browse/index.cjs +2 -3
- package/build/components/sidebar-navigation-screen-templates-browse/index.cjs.map +4 -4
- package/build/components/sidebar-navigation-screen-unsupported/index.cjs +1 -1
- package/build/components/sidebar-navigation-screen-unsupported/index.cjs.map +1 -1
- package/build/components/site-editor-routes/home.cjs +1 -1
- package/build/components/site-editor-routes/home.cjs.map +1 -1
- package/build/components/site-editor-routes/identity.cjs +1 -1
- package/build/components/site-editor-routes/identity.cjs.map +1 -1
- package/build/components/site-editor-routes/navigation-item.cjs +1 -1
- package/build/components/site-editor-routes/navigation-item.cjs.map +1 -1
- package/build/components/site-editor-routes/navigation.cjs +1 -1
- package/build/components/site-editor-routes/navigation.cjs.map +1 -1
- package/build/components/site-editor-routes/notfound.cjs +1 -1
- package/build/components/site-editor-routes/notfound.cjs.map +1 -1
- package/build/components/site-editor-routes/page-item.cjs +1 -1
- package/build/components/site-editor-routes/page-item.cjs.map +1 -1
- package/build/components/site-editor-routes/pages.cjs +1 -1
- package/build/components/site-editor-routes/pages.cjs.map +1 -1
- package/build/components/site-editor-routes/pattern-item.cjs +1 -1
- package/build/components/site-editor-routes/pattern-item.cjs.map +1 -1
- package/build/components/site-editor-routes/patterns.cjs +1 -1
- package/build/components/site-editor-routes/patterns.cjs.map +1 -1
- package/build/components/site-editor-routes/stylebook.cjs +1 -1
- package/build/components/site-editor-routes/stylebook.cjs.map +1 -1
- package/build/components/site-editor-routes/styles.cjs +1 -1
- package/build/components/site-editor-routes/styles.cjs.map +1 -1
- package/build/components/site-editor-routes/template-item.cjs +1 -1
- package/build/components/site-editor-routes/template-item.cjs.map +1 -1
- package/build/components/site-editor-routes/template-part-item.cjs +1 -1
- package/build/components/site-editor-routes/template-part-item.cjs.map +1 -1
- package/build/components/site-editor-routes/templates.cjs +3 -5
- package/build/components/site-editor-routes/templates.cjs.map +4 -4
- package/build/components/site-hub/index.cjs +1 -1
- package/build/components/site-hub/index.cjs.map +1 -1
- package/build/components/welcome-guide/editor.cjs +1 -1
- package/build/components/welcome-guide/editor.cjs.map +1 -1
- package/build/components/welcome-guide/image.cjs +1 -1
- package/build/components/welcome-guide/image.cjs.map +1 -1
- package/build/components/welcome-guide/index.cjs +1 -1
- package/build/components/welcome-guide/index.cjs.map +1 -1
- package/build/components/welcome-guide/page.cjs +1 -1
- package/build/components/welcome-guide/page.cjs.map +1 -1
- package/build/components/welcome-guide/template.cjs +1 -1
- package/build/components/welcome-guide/template.cjs.map +1 -1
- package/build/deprecated.cjs +1 -1
- package/build/deprecated.cjs.map +1 -1
- package/build/index.cjs +1 -2
- package/build/index.cjs.map +3 -3
- package/build-module/components/add-new-pattern/index.mjs +1 -1
- package/build-module/components/add-new-pattern/index.mjs.map +1 -1
- package/build-module/components/add-new-post/index.mjs +1 -1
- package/build-module/components/add-new-post/index.mjs.map +1 -1
- package/build-module/components/add-new-template/add-custom-generic-template-modal-content.mjs +1 -1
- package/build-module/components/add-new-template/add-custom-generic-template-modal-content.mjs.map +1 -1
- package/build-module/components/add-new-template/add-custom-template-modal-content.mjs +4 -2
- package/build-module/components/add-new-template/add-custom-template-modal-content.mjs.map +3 -3
- package/build-module/components/add-new-template/index.mjs +8 -5
- package/build-module/components/add-new-template/index.mjs.map +3 -3
- package/build-module/components/add-new-template/utils.mjs +84 -9
- package/build-module/components/add-new-template/utils.mjs.map +2 -2
- package/build-module/components/app/index.mjs +1 -1
- package/build-module/components/app/index.mjs.map +1 -1
- package/build-module/components/canvas-loader/index.mjs +1 -1
- package/build-module/components/canvas-loader/index.mjs.map +1 -1
- package/build-module/components/dataviews-actions/index.mjs +1 -53
- package/build-module/components/dataviews-actions/index.mjs.map +2 -2
- package/build-module/components/editor/index.mjs +1 -1
- package/build-module/components/editor/index.mjs.map +1 -1
- package/build-module/components/editor/site-preview.mjs +1 -1
- package/build-module/components/editor/site-preview.mjs.map +1 -1
- package/build-module/components/editor/use-adapt-editor-to-canvas.mjs +0 -11
- package/build-module/components/editor/use-adapt-editor-to-canvas.mjs.map +2 -2
- package/build-module/components/layout/index.mjs +3 -3
- package/build-module/components/layout/index.mjs.map +3 -3
- package/build-module/components/media/index.mjs +1 -1
- package/build-module/components/media/index.mjs.map +1 -1
- package/build-module/components/more-menu/index.mjs +1 -1
- package/build-module/components/more-menu/index.mjs.map +1 -1
- package/build-module/components/more-menu/welcome-guide-menu-item.mjs +11 -3
- package/build-module/components/more-menu/welcome-guide-menu-item.mjs.map +3 -3
- package/build-module/components/page-patterns/actions.mjs +1 -1
- package/build-module/components/page-patterns/actions.mjs.map +1 -1
- package/build-module/components/page-patterns/delete-category-menu-item.mjs +1 -1
- package/build-module/components/page-patterns/delete-category-menu-item.mjs.map +1 -1
- package/build-module/components/page-patterns/fields.mjs +1 -1
- package/build-module/components/page-patterns/fields.mjs.map +1 -1
- package/build-module/components/page-patterns/index.mjs +1 -1
- package/build-module/components/page-patterns/index.mjs.map +1 -1
- package/build-module/components/page-patterns/rename-category-menu-item.mjs +1 -1
- package/build-module/components/page-patterns/rename-category-menu-item.mjs.map +1 -1
- package/build-module/components/page-templates/fields.mjs +4 -130
- package/build-module/components/page-templates/fields.mjs.map +4 -4
- package/build-module/components/page-templates/index.mjs +53 -254
- package/build-module/components/page-templates/index.mjs.map +3 -3
- package/build-module/components/pagination/index.mjs +1 -1
- package/build-module/components/pagination/index.mjs.map +1 -1
- package/build-module/components/plugin-template-setting-panel/index.mjs +1 -1
- package/build-module/components/plugin-template-setting-panel/index.mjs.map +1 -1
- package/build-module/components/post-list/index.mjs +9 -19
- package/build-module/components/post-list/index.mjs.map +3 -3
- package/build-module/components/post-list/quick-edit-modal.mjs +1 -1
- package/build-module/components/post-list/quick-edit-modal.mjs.map +1 -1
- package/build-module/components/resizable-frame/index.mjs +1 -1
- package/build-module/components/resizable-frame/index.mjs.map +1 -1
- package/build-module/components/save-button/index.mjs +1 -1
- package/build-module/components/save-button/index.mjs.map +1 -1
- package/build-module/components/save-hub/index.mjs +1 -1
- package/build-module/components/save-hub/index.mjs.map +1 -1
- package/build-module/components/save-panel/index.mjs +1 -1
- package/build-module/components/save-panel/index.mjs.map +1 -1
- package/build-module/components/sidebar/index.mjs +1 -1
- package/build-module/components/sidebar/index.mjs.map +1 -1
- package/build-module/components/sidebar-button/index.mjs +1 -1
- package/build-module/components/sidebar-button/index.mjs.map +1 -1
- package/build-module/components/sidebar-dataviews/index.mjs +1 -1
- package/build-module/components/sidebar-dataviews/index.mjs.map +1 -1
- package/build-module/components/sidebar-global-styles/index.mjs +3 -3
- package/build-module/components/sidebar-global-styles/index.mjs.map +3 -3
- package/build-module/components/sidebar-identity/index.mjs +18 -23
- package/build-module/components/sidebar-identity/index.mjs.map +3 -3
- package/build-module/components/sidebar-navigation-item/index.mjs +2 -9
- package/build-module/components/sidebar-navigation-item/index.mjs.map +3 -3
- package/build-module/components/sidebar-navigation-screen/index.mjs +1 -1
- package/build-module/components/sidebar-navigation-screen/index.mjs.map +1 -1
- package/build-module/components/sidebar-navigation-screen-details-footer/index.mjs +1 -1
- package/build-module/components/sidebar-navigation-screen-details-footer/index.mjs.map +1 -1
- package/build-module/components/sidebar-navigation-screen-global-styles/content.mjs +1 -1
- package/build-module/components/sidebar-navigation-screen-global-styles/content.mjs.map +1 -1
- package/build-module/components/sidebar-navigation-screen-global-styles/index.mjs +1 -1
- package/build-module/components/sidebar-navigation-screen-global-styles/index.mjs.map +1 -1
- package/build-module/components/sidebar-navigation-screen-identity/index.mjs +1 -1
- package/build-module/components/sidebar-navigation-screen-identity/index.mjs.map +1 -1
- package/build-module/components/sidebar-navigation-screen-main/index.mjs +1 -1
- package/build-module/components/sidebar-navigation-screen-main/index.mjs.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.mjs +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.mjs.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/index.mjs +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/index.mjs.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.mjs +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.mjs.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.mjs +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.mjs.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.mjs +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.mjs.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.mjs +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.mjs.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.mjs.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menus/index.mjs +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menus/index.mjs.map +2 -2
- package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.mjs +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.mjs.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.mjs +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.mjs.map +2 -2
- package/build-module/components/sidebar-navigation-screen-patterns/category-item.mjs +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/category-item.mjs.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/index.mjs +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/index.mjs.map +1 -1
- package/build-module/components/sidebar-navigation-screen-templates-browse/content.mjs +43 -76
- package/build-module/components/sidebar-navigation-screen-templates-browse/content.mjs.map +3 -3
- package/build-module/components/sidebar-navigation-screen-templates-browse/index.mjs +2 -3
- package/build-module/components/sidebar-navigation-screen-templates-browse/index.mjs.map +3 -3
- package/build-module/components/sidebar-navigation-screen-unsupported/index.mjs +1 -1
- package/build-module/components/sidebar-navigation-screen-unsupported/index.mjs.map +1 -1
- package/build-module/components/site-editor-routes/home.mjs +1 -1
- package/build-module/components/site-editor-routes/home.mjs.map +1 -1
- package/build-module/components/site-editor-routes/identity.mjs +1 -1
- package/build-module/components/site-editor-routes/identity.mjs.map +1 -1
- package/build-module/components/site-editor-routes/navigation-item.mjs +1 -1
- package/build-module/components/site-editor-routes/navigation-item.mjs.map +1 -1
- package/build-module/components/site-editor-routes/navigation.mjs +1 -1
- package/build-module/components/site-editor-routes/navigation.mjs.map +1 -1
- package/build-module/components/site-editor-routes/notfound.mjs +1 -1
- package/build-module/components/site-editor-routes/notfound.mjs.map +1 -1
- package/build-module/components/site-editor-routes/page-item.mjs +1 -1
- package/build-module/components/site-editor-routes/page-item.mjs.map +1 -1
- package/build-module/components/site-editor-routes/pages.mjs +1 -1
- package/build-module/components/site-editor-routes/pages.mjs.map +1 -1
- package/build-module/components/site-editor-routes/pattern-item.mjs +1 -1
- package/build-module/components/site-editor-routes/pattern-item.mjs.map +1 -1
- package/build-module/components/site-editor-routes/patterns.mjs +1 -1
- package/build-module/components/site-editor-routes/patterns.mjs.map +1 -1
- package/build-module/components/site-editor-routes/stylebook.mjs +1 -1
- package/build-module/components/site-editor-routes/stylebook.mjs.map +1 -1
- package/build-module/components/site-editor-routes/styles.mjs +1 -1
- package/build-module/components/site-editor-routes/styles.mjs.map +1 -1
- package/build-module/components/site-editor-routes/template-item.mjs +1 -1
- package/build-module/components/site-editor-routes/template-item.mjs.map +1 -1
- package/build-module/components/site-editor-routes/template-part-item.mjs +1 -1
- package/build-module/components/site-editor-routes/template-part-item.mjs.map +1 -1
- package/build-module/components/site-editor-routes/templates.mjs +3 -5
- package/build-module/components/site-editor-routes/templates.mjs.map +3 -3
- package/build-module/components/site-hub/index.mjs +1 -1
- package/build-module/components/site-hub/index.mjs.map +1 -1
- package/build-module/components/welcome-guide/editor.mjs +1 -1
- package/build-module/components/welcome-guide/editor.mjs.map +1 -1
- package/build-module/components/welcome-guide/image.mjs +1 -1
- package/build-module/components/welcome-guide/image.mjs.map +1 -1
- package/build-module/components/welcome-guide/index.mjs +1 -1
- package/build-module/components/welcome-guide/index.mjs.map +1 -1
- package/build-module/components/welcome-guide/page.mjs +1 -1
- package/build-module/components/welcome-guide/page.mjs.map +1 -1
- package/build-module/components/welcome-guide/template.mjs +1 -1
- package/build-module/components/welcome-guide/template.mjs.map +1 -1
- package/build-module/deprecated.mjs +1 -1
- package/build-module/deprecated.mjs.map +1 -1
- package/build-module/index.mjs +1 -2
- package/build-module/index.mjs.map +3 -3
- package/build-style/style-rtl.css +38 -81
- package/build-style/style.css +38 -81
- package/package.json +42 -52
- package/src/components/add-new-template/style.scss +8 -21
- package/src/components/add-new-template/utils.js +118 -9
- package/src/components/dataviews-actions/index.js +0 -61
- package/src/components/editor/use-adapt-editor-to-canvas.js +0 -21
- package/src/components/layout/{index.js → index.jsx} +5 -2
- package/src/components/more-menu/{welcome-guide-menu-item.js → welcome-guide-menu-item.jsx} +8 -3
- package/src/components/page-templates/fields.jsx +51 -0
- package/src/components/page-templates/{index-legacy.js → index.jsx} +1 -1
- package/src/components/post-list/{index.js → index.jsx} +7 -20
- package/src/components/sidebar-global-styles/{index.js → index.jsx} +7 -5
- package/src/components/sidebar-global-styles/style.scss +6 -0
- package/src/components/sidebar-identity/{index.js → index.jsx} +23 -19
- package/src/components/sidebar-identity/style.scss +7 -0
- package/src/components/sidebar-navigation-item/{index.js → index.jsx} +1 -7
- package/src/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.js +1 -1
- package/src/components/sidebar-navigation-screen-navigation-menus/{index.js → index.jsx} +1 -1
- package/src/components/sidebar-navigation-screen-navigation-menus/{navigation-menu-content.js → navigation-menu-content.jsx} +1 -1
- package/src/components/sidebar-navigation-screen-templates-browse/{index.js → index.jsx} +1 -8
- package/src/components/site-editor-routes/{templates.js → templates.jsx} +2 -19
- package/src/components/welcome-guide/style.scss +1 -1
- package/src/{index.js → index.jsx} +0 -1
- package/src/style.scss +1 -1
- package/src/utils/test/get-filtered-template-parts.js +1 -0
- package/build/components/add-new-template-legacy/add-custom-generic-template-modal-content.cjs +0 -107
- package/build/components/add-new-template-legacy/add-custom-generic-template-modal-content.cjs.map +0 -7
- package/build/components/add-new-template-legacy/add-custom-template-modal-content.cjs +0 -327
- package/build/components/add-new-template-legacy/add-custom-template-modal-content.cjs.map +0 -7
- package/build/components/add-new-template-legacy/index.cjs +0 -390
- package/build/components/add-new-template-legacy/index.cjs.map +0 -7
- package/build/components/add-new-template-legacy/utils.cjs +0 -623
- package/build/components/add-new-template-legacy/utils.cjs.map +0 -7
- package/build/components/page-templates/hooks.cjs +0 -94
- package/build/components/page-templates/hooks.cjs.map +0 -7
- package/build/components/page-templates/index-legacy.cjs +0 -167
- package/build/components/page-templates/index-legacy.cjs.map +0 -7
- package/build/components/page-templates/view-utils.cjs +0 -79
- package/build/components/page-templates/view-utils.cjs.map +0 -7
- package/build/components/sidebar-navigation-screen-templates-browse/content-legacy.cjs +0 -78
- package/build/components/sidebar-navigation-screen-templates-browse/content-legacy.cjs.map +0 -7
- package/build-module/components/add-new-template-legacy/add-custom-generic-template-modal-content.mjs +0 -91
- package/build-module/components/add-new-template-legacy/add-custom-generic-template-modal-content.mjs.map +0 -7
- package/build-module/components/add-new-template-legacy/add-custom-template-modal-content.mjs +0 -315
- package/build-module/components/add-new-template-legacy/add-custom-template-modal-content.mjs.map +0 -7
- package/build-module/components/add-new-template-legacy/index.mjs +0 -391
- package/build-module/components/add-new-template-legacy/index.mjs.map +0 -7
- package/build-module/components/add-new-template-legacy/utils.mjs +0 -592
- package/build-module/components/add-new-template-legacy/utils.mjs.map +0 -7
- package/build-module/components/page-templates/hooks.mjs +0 -74
- package/build-module/components/page-templates/hooks.mjs.map +0 -7
- package/build-module/components/page-templates/index-legacy.mjs +0 -136
- package/build-module/components/page-templates/index-legacy.mjs.map +0 -7
- package/build-module/components/page-templates/view-utils.mjs +0 -52
- package/build-module/components/page-templates/view-utils.mjs.map +0 -7
- package/build-module/components/sidebar-navigation-screen-templates-browse/content-legacy.mjs +0 -52
- package/build-module/components/sidebar-navigation-screen-templates-browse/content-legacy.mjs.map +0 -7
- package/src/components/add-new-template/add-custom-generic-template-modal-content.js +0 -85
- package/src/components/add-new-template/add-custom-template-modal-content.js +0 -304
- package/src/components/add-new-template/index.js +0 -435
- package/src/components/add-new-template-legacy/utils.js +0 -757
- package/src/components/page-templates/fields.js +0 -195
- package/src/components/page-templates/hooks.js +0 -93
- package/src/components/page-templates/index.js +0 -369
- package/src/components/page-templates/view-utils.js +0 -50
- package/src/components/sidebar-navigation-screen-templates-browse/content.js +0 -87
- package/src/components/sidebar-navigation-screen-templates-browse/style.scss +0 -6
- /package/src/components/add-new-pattern/{index.js → index.jsx} +0 -0
- /package/src/components/add-new-post/{index.js → index.jsx} +0 -0
- /package/src/components/{add-new-template-legacy/add-custom-generic-template-modal-content.js → add-new-template/add-custom-generic-template-modal-content.jsx} +0 -0
- /package/src/components/{add-new-template-legacy/add-custom-template-modal-content.js → add-new-template/add-custom-template-modal-content.jsx} +0 -0
- /package/src/components/{add-new-template-legacy/index.js → add-new-template/index.jsx} +0 -0
- /package/src/components/app/{index.js → index.jsx} +0 -0
- /package/src/components/canvas-loader/{index.js → index.jsx} +0 -0
- /package/src/components/editor/{index.js → index.jsx} +0 -0
- /package/src/components/editor/{site-preview.js → site-preview.jsx} +0 -0
- /package/src/components/media/{index.js → index.jsx} +0 -0
- /package/src/components/more-menu/{index.js → index.jsx} +0 -0
- /package/src/components/page-patterns/{actions.js → actions.jsx} +0 -0
- /package/src/components/page-patterns/{delete-category-menu-item.js → delete-category-menu-item.jsx} +0 -0
- /package/src/components/page-patterns/{fields.js → fields.jsx} +0 -0
- /package/src/components/page-patterns/{index.js → index.jsx} +0 -0
- /package/src/components/page-patterns/{rename-category-menu-item.js → rename-category-menu-item.jsx} +0 -0
- /package/src/components/pagination/{index.js → index.jsx} +0 -0
- /package/src/components/plugin-template-setting-panel/{index.js → index.jsx} +0 -0
- /package/src/components/post-list/{quick-edit-modal.js → quick-edit-modal.jsx} +0 -0
- /package/src/components/resizable-frame/{index.js → index.jsx} +0 -0
- /package/src/components/save-button/{index.js → index.jsx} +0 -0
- /package/src/components/save-hub/{index.js → index.jsx} +0 -0
- /package/src/components/save-panel/{index.js → index.jsx} +0 -0
- /package/src/components/sidebar/{index.js → index.jsx} +0 -0
- /package/src/components/sidebar-button/{index.js → index.jsx} +0 -0
- /package/src/components/sidebar-dataviews/{index.js → index.jsx} +0 -0
- /package/src/components/sidebar-navigation-screen/{index.js → index.jsx} +0 -0
- /package/src/components/sidebar-navigation-screen-details-footer/{index.js → index.jsx} +0 -0
- /package/src/components/sidebar-navigation-screen-global-styles/{content.js → content.jsx} +0 -0
- /package/src/components/sidebar-navigation-screen-global-styles/{index.js → index.jsx} +0 -0
- /package/src/components/sidebar-navigation-screen-identity/{index.js → index.jsx} +0 -0
- /package/src/components/sidebar-navigation-screen-main/{index.js → index.jsx} +0 -0
- /package/src/components/sidebar-navigation-screen-navigation-menu/{delete-confirm-dialog.js → delete-confirm-dialog.jsx} +0 -0
- /package/src/components/sidebar-navigation-screen-navigation-menu/{index.js → index.jsx} +0 -0
- /package/src/components/sidebar-navigation-screen-navigation-menu/{more-menu.js → more-menu.jsx} +0 -0
- /package/src/components/sidebar-navigation-screen-navigation-menu/{navigation-menu-editor.js → navigation-menu-editor.jsx} +0 -0
- /package/src/components/sidebar-navigation-screen-navigation-menu/{rename-modal.js → rename-modal.jsx} +0 -0
- /package/src/components/sidebar-navigation-screen-navigation-menu/{single-navigation-menu.js → single-navigation-menu.jsx} +0 -0
- /package/src/components/sidebar-navigation-screen-navigation-menus/{leaf-more-menu.js → leaf-more-menu.jsx} +0 -0
- /package/src/components/sidebar-navigation-screen-patterns/{category-item.js → category-item.jsx} +0 -0
- /package/src/components/sidebar-navigation-screen-patterns/{index.js → index.jsx} +0 -0
- /package/src/components/sidebar-navigation-screen-templates-browse/{content-legacy.js → content.jsx} +0 -0
- /package/src/components/sidebar-navigation-screen-unsupported/{index.js → index.jsx} +0 -0
- /package/src/components/site-editor-routes/{home.js → home.jsx} +0 -0
- /package/src/components/site-editor-routes/{identity.js → identity.jsx} +0 -0
- /package/src/components/site-editor-routes/{navigation-item.js → navigation-item.jsx} +0 -0
- /package/src/components/site-editor-routes/{navigation.js → navigation.jsx} +0 -0
- /package/src/components/site-editor-routes/{notfound.js → notfound.jsx} +0 -0
- /package/src/components/site-editor-routes/{page-item.js → page-item.jsx} +0 -0
- /package/src/components/site-editor-routes/{pages.js → pages.jsx} +0 -0
- /package/src/components/site-editor-routes/{pattern-item.js → pattern-item.jsx} +0 -0
- /package/src/components/site-editor-routes/{patterns.js → patterns.jsx} +0 -0
- /package/src/components/site-editor-routes/{stylebook.js → stylebook.jsx} +0 -0
- /package/src/components/site-editor-routes/{styles.js → styles.jsx} +0 -0
- /package/src/components/site-editor-routes/{template-item.js → template-item.jsx} +0 -0
- /package/src/components/site-editor-routes/{template-part-item.js → template-part-item.jsx} +0 -0
- /package/src/components/site-hub/{index.js → index.jsx} +0 -0
- /package/src/components/welcome-guide/{editor.js → editor.jsx} +0 -0
- /package/src/components/welcome-guide/{image.js → image.jsx} +0 -0
- /package/src/components/welcome-guide/{index.js → index.jsx} +0 -0
- /package/src/components/welcome-guide/{page.js → page.jsx} +0 -0
- /package/src/components/welcome-guide/{template.js → template.jsx} +0 -0
- /package/src/{deprecated.js → deprecated.jsx} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 7.4.0 (2026-09-10)
|
|
6
|
+
|
|
7
|
+
### Enhancements
|
|
8
|
+
|
|
9
|
+
- Add New Template: Use the Button component's focus ring instead of the legacy `box-shadow` ones ([#80138](https://github.com/WordPress/gutenberg/issues/80138)).
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
- `Layout`: Add a root `ErrorBoundary`, so a throw outside the per-area ones no longer blanks the screen. ([#82486](https://github.com/WordPress/gutenberg/pull/82486))
|
|
14
|
+
- `WelcomeGuide`: Keep the modal close icon white on hover now that it is stroke-based. ([#78812](https://github.com/WordPress/gutenberg/pull/78812))
|
|
15
|
+
- `SidebarNavigationItem`: Stop forcing `style={ { fill: 'currentcolor' } }` on the icon. The explicit override was clobbering stroke-based icons' intrinsic styling. Colour is inherited via CSS `color` and the icon's own declared fills/strokes. ([#78808](https://github.com/WordPress/gutenberg/pull/78808))
|
|
16
|
+
- `AddNewTemplate`: Preserve the admin theme color on the Author template icon after it became stroke-based. ([#78808](https://github.com/WordPress/gutenberg/pull/78808))
|
|
17
|
+
|
|
18
|
+
### Internal
|
|
19
|
+
|
|
20
|
+
- `PostList`: Stop re-sorting the fetched page in memory when the view sorts by author. The author field now sorts by author id, the same order the REST API already returns for `orderby=author`, so the re-sort no longer changes anything ([#82559](https://github.com/WordPress/gutenberg/pull/82559)).
|
|
21
|
+
- Stop registering the `editorTool` preference default; the Write/Design tool that read it was removed in [#72193](https://github.com/WordPress/gutenberg/pull/72193) ([#82677](https://github.com/WordPress/gutenberg/pull/82677)).
|
|
22
|
+
- Remove the template activation (`active_templates`) experiment: the Templates page and its sidebar always use the previous (non-activation) implementations ([#82241](https://github.com/WordPress/gutenberg/pull/82241)).
|
|
23
|
+
- Remove the `showListViewByDefault` handling from `useAdaptEditorToCanvas`; the `editor` package now applies the preference on the preview ↔ edit transition itself.
|
|
24
|
+
- Remove unused dependencies `@wordpress/blob`, `@wordpress/date`, `@wordpress/escape-html`, etc. ([#82103](https://github.com/WordPress/gutenberg/pull/82103)).
|
|
25
|
+
- Use the `.jsx` extension for JavaScript source files that contain JSX ([#80990](https://github.com/WordPress/gutenberg/pull/80990)).
|
|
26
|
+
- Remove tsconfig project references to packages that are not dependencies ([#82106](https://github.com/WordPress/gutenberg/pull/82106)).
|
|
27
|
+
|
|
5
28
|
## 7.3.0 (2026-08-26)
|
|
6
29
|
|
|
7
30
|
### Enhancements
|
|
@@ -18,6 +41,8 @@
|
|
|
18
41
|
|
|
19
42
|
### Internal
|
|
20
43
|
|
|
44
|
+
- Seed content-surface `ThemeProvider` backgrounds with `#fcfcfc` instead of `#ffffff`, matching the design system default and preserving room for stronger and weaker neutral surface tokens ([#81646](https://github.com/WordPress/gutenberg/pull/81646)).
|
|
45
|
+
|
|
21
46
|
- Stop rendering `EditorKeyboardShortcutsRegister`, which the editor provider now renders itself ([#81580](https://github.com/WordPress/gutenberg/pull/81580)).
|
|
22
47
|
|
|
23
48
|
### Bug Fixes
|
|
@@ -17,7 +17,7 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
|
|
20
|
-
// packages/edit-site/src/components/add-new-pattern/index.
|
|
20
|
+
// packages/edit-site/src/components/add-new-pattern/index.jsx
|
|
21
21
|
var add_new_pattern_exports = {};
|
|
22
22
|
__export(add_new_pattern_exports, {
|
|
23
23
|
default: () => AddNewPattern
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/add-new-pattern/index.
|
|
3
|
+
"sources": ["../../../src/components/add-new-pattern/index.jsx"],
|
|
4
4
|
"sourcesContent": ["import { DropdownMenu } from '@wordpress/components';\nimport { useState, useRef } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { symbol, symbolFilled, upload } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport {\n\tprivateApis as editPatternsPrivateApis,\n\tstore as patternsStore,\n} from '@wordpress/patterns';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\nimport { unlock } from '../../lock-unlock';\nimport {\n\tPATTERN_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\n\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\nconst { CreatePatternModal, useAddPatternCategory } = unlock(\n\teditPatternsPrivateApis\n);\nconst { CreateTemplatePartModal } = unlock( editorPrivateApis );\n\nexport default function AddNewPattern() {\n\tconst history = useHistory();\n\tconst location = useLocation();\n\tconst [ showPatternModal, setShowPatternModal ] = useState( false );\n\tconst [ showTemplatePartModal, setShowTemplatePartModal ] =\n\t\tuseState( false );\n\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\tconst { createPatternFromFile } = unlock( useDispatch( patternsStore ) );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst patternUploadInputRef = useRef();\n\tconst {\n\t\tisBlockBasedTheme,\n\t\taddNewPatternLabel,\n\t\taddNewTemplatePartLabel,\n\t\tcanCreatePattern,\n\t\tcanCreateTemplatePart,\n\t} = useSelect( ( select ) => {\n\t\tconst { getCurrentTheme, getPostType, canUser } = select( coreStore );\n\t\treturn {\n\t\t\tisBlockBasedTheme: getCurrentTheme()?.is_block_theme,\n\t\t\taddNewPatternLabel: getPostType( PATTERN_TYPES.user )?.labels\n\t\t\t\t?.add_new_item,\n\t\t\taddNewTemplatePartLabel: getPostType( TEMPLATE_PART_POST_TYPE )\n\t\t\t\t?.labels?.add_new_item,\n\t\t\t// Blocks refers to the wp_block post type, this checks the ability to create a post of that type.\n\t\t\tcanCreatePattern: canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: PATTERN_TYPES.user,\n\t\t\t} ),\n\t\t\tcanCreateTemplatePart: canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: TEMPLATE_PART_POST_TYPE,\n\t\t\t} ),\n\t\t};\n\t}, [] );\n\n\tfunction handleCreatePattern( { pattern } ) {\n\t\tsetShowPatternModal( false );\n\t\thistory.navigate(\n\t\t\t`/${ PATTERN_TYPES.user }/${ pattern.id }?canvas=edit`\n\t\t);\n\t}\n\n\tfunction handleCreateTemplatePart( templatePart ) {\n\t\tsetShowTemplatePartModal( false );\n\t\thistory.navigate(\n\t\t\t`/${ TEMPLATE_PART_POST_TYPE }/${ templatePart.id }?canvas=edit`\n\t\t);\n\t}\n\n\tfunction handleError() {\n\t\tsetShowPatternModal( false );\n\t\tsetShowTemplatePartModal( false );\n\t}\n\n\tconst controls = [];\n\tif ( canCreatePattern ) {\n\t\tcontrols.push( {\n\t\t\ticon: symbol,\n\t\t\tonClick: () => setShowPatternModal( true ),\n\t\t\ttitle: addNewPatternLabel,\n\t\t} );\n\t}\n\n\tif ( isBlockBasedTheme && canCreateTemplatePart ) {\n\t\tcontrols.push( {\n\t\t\ticon: symbolFilled,\n\t\t\tonClick: () => setShowTemplatePartModal( true ),\n\t\t\ttitle: addNewTemplatePartLabel,\n\t\t} );\n\t}\n\n\tif ( canCreatePattern ) {\n\t\tcontrols.push( {\n\t\t\ticon: upload,\n\t\t\tonClick: () => {\n\t\t\t\tpatternUploadInputRef.current.click();\n\t\t\t},\n\t\t\ttitle: __( 'Import pattern from JSON' ),\n\t\t} );\n\t}\n\n\tconst { categoryMap, findOrCreateTerm } = useAddPatternCategory();\n\tif ( controls.length === 0 ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ addNewPatternLabel && (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\ticon={ null }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t\tshowTooltip: false,\n\t\t\t\t\t\tsize: 'compact',\n\t\t\t\t\t\t__next40pxDefaultSize: true,\n\t\t\t\t\t} }\n\t\t\t\t\ttext={ addNewPatternLabel }\n\t\t\t\t\tlabel={ addNewPatternLabel }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showPatternModal && (\n\t\t\t\t<CreatePatternModal\n\t\t\t\t\tonClose={ () => setShowPatternModal( false ) }\n\t\t\t\t\tonSuccess={ handleCreatePattern }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showTemplatePartModal && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tcloseModal={ () => setShowTemplatePartModal( false ) }\n\t\t\t\t\tblocks={ [] }\n\t\t\t\t\tonCreate={ handleCreateTemplatePart }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<input\n\t\t\t\ttype=\"file\"\n\t\t\t\taccept=\".json\"\n\t\t\t\thidden\n\t\t\t\tref={ patternUploadInputRef }\n\t\t\t\tonChange={ async ( event ) => {\n\t\t\t\t\tconst file = event.target.files?.[ 0 ];\n\t\t\t\t\tif ( ! file ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet currentCategoryId;\n\t\t\t\t\t\t// When we're not handling template parts, we should\n\t\t\t\t\t\t// add or create the proper pattern category.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tlocation.query.postType !== TEMPLATE_PART_POST_TYPE\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t/*\n\t\t\t\t\t\t\t * categoryMap.values() returns an iterator.\n\t\t\t\t\t\t\t * Iterator.prototype.find() is not yet widely supported.\n\t\t\t\t\t\t\t * Convert to array to use the Array.prototype.find method.\n\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\tconst currentCategory = Array.from(\n\t\t\t\t\t\t\t\tcategoryMap.values()\n\t\t\t\t\t\t\t).find(\n\t\t\t\t\t\t\t\t( term ) =>\n\t\t\t\t\t\t\t\t\tterm.name === location.query.categoryId\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif ( currentCategory ) {\n\t\t\t\t\t\t\t\tcurrentCategoryId =\n\t\t\t\t\t\t\t\t\tcurrentCategory.id ||\n\t\t\t\t\t\t\t\t\t( await findOrCreateTerm(\n\t\t\t\t\t\t\t\t\t\tcurrentCategory.label\n\t\t\t\t\t\t\t\t\t) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst pattern = await createPatternFromFile(\n\t\t\t\t\t\t\tfile,\n\t\t\t\t\t\t\tcurrentCategoryId\n\t\t\t\t\t\t\t\t? [ currentCategoryId ]\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// Navigate to the All patterns category for the newly created pattern\n\t\t\t\t\t\t// if we're not on that page already and if we're not in the `my-patterns`\n\t\t\t\t\t\t// category.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! currentCategoryId &&\n\t\t\t\t\t\t\tlocation.query.categoryId !== 'my-patterns'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\thistory.navigate(\n\t\t\t\t\t\t\t\t`/pattern?categoryId=${ PATTERN_DEFAULT_CATEGORY }`\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The imported pattern's title.\n\t\t\t\t\t\t\t\t__( 'Imported \"%s\" from JSON.' ),\n\t\t\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'import-pattern-success',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch ( err ) {\n\t\t\t\t\t\tcreateErrorNotice( err.message, {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'import-pattern-error',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tevent.target.value = '';\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["routerPrivateApis", "editPatternsPrivateApis", "editorPrivateApis", "patternsStore", "noticesStore", "coreStore"]
|
|
@@ -17,7 +17,7 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
|
|
20
|
-
// packages/edit-site/src/components/add-new-post/index.
|
|
20
|
+
// packages/edit-site/src/components/add-new-post/index.jsx
|
|
21
21
|
var add_new_post_exports = {};
|
|
22
22
|
__export(add_new_post_exports, {
|
|
23
23
|
default: () => AddNewPostModal
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/add-new-post/index.
|
|
3
|
+
"sources": ["../../../src/components/add-new-post/index.jsx"],
|
|
4
4
|
"sourcesContent": ["import {\n\tButton,\n\tModal,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tTextControl,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { serialize, synchronizeBlocksWithTemplate } from '@wordpress/blocks';\n\nexport default function AddNewPostModal( { postType, onSave, onClose } ) {\n\tconst labels = useSelect(\n\t\t( select ) => select( coreStore ).getPostType( postType )?.labels,\n\t\t[ postType ]\n\t);\n\tconst [ isCreatingPost, setIsCreatingPost ] = useState( false );\n\tconst [ title, setTitle ] = useState( '' );\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { resolveSelect } = useRegistry();\n\n\tasync function createPost( event ) {\n\t\tevent.preventDefault();\n\n\t\tif ( isCreatingPost ) {\n\t\t\treturn;\n\t\t}\n\t\tsetIsCreatingPost( true );\n\t\ttry {\n\t\t\tconst postTypeObject =\n\t\t\t\tawait resolveSelect( coreStore ).getPostType( postType );\n\t\t\tconst newPage = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\t{\n\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\ttitle,\n\t\t\t\t\tslug: title ?? undefined,\n\t\t\t\t\tcontent:\n\t\t\t\t\t\t!! postTypeObject.template &&\n\t\t\t\t\t\tpostTypeObject.template.length\n\t\t\t\t\t\t\t? serialize(\n\t\t\t\t\t\t\t\t\tsynchronizeBlocksWithTemplate(\n\t\t\t\t\t\t\t\t\t\t[],\n\t\t\t\t\t\t\t\t\t\tpostTypeObject.template\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\tonSave( newPage );\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: Title of the created post or template, e.g: \"Hello world\".\n\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\tdecodeEntities( newPage.title?.rendered || title ) ||\n\t\t\t\t\t\t__( '(no title)' )\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar' }\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the item.' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t} finally {\n\t\t\tsetIsCreatingPost( false );\n\t\t}\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={\n\t\t\t\t// translators: %s: post type singular_name label e.g: \"Page\".\n\t\t\t\tsprintf( __( 'Draft new: %s' ), labels?.singular_name )\n\t\t\t}\n\t\t\tonRequestClose={ onClose }\n\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t\tsize=\"small\"\n\t\t>\n\t\t\t<form onSubmit={ createPost }>\n\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ __( 'Title' ) }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\tplaceholder={ __( 'No title' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack spacing={ 2 } justify=\"end\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tisBusy={ isCreatingPost }\n\t\t\t\t\t\t\taria-disabled={ isCreatingPost }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Create draft' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAMO;AACP,kBAA4B;AAC5B,kBAAoD;AACpD,qBAAyB;AACzB,uBAAmC;AACnC,qBAAsC;AACtC,2BAA+B;AAC/B,oBAAyD;AAmFpD;AAjFU,SAAR,gBAAkC,EAAE,UAAU,QAAQ,QAAQ,GAAI;AACxE,QAAM,aAAS;AAAA,IACd,CAAE,WAAY,OAAQ,iBAAAA,KAAU,EAAE,YAAa,QAAS,GAAG;AAAA,IAC3D,CAAE,QAAS;AAAA,EACZ;AACA,QAAM,CAAE,gBAAgB,iBAAkB,QAAI,yBAAU,KAAM;AAC9D,QAAM,CAAE,OAAO,QAAS,QAAI,yBAAU,EAAG;AAEzC,QAAM,EAAE,iBAAiB,QAAI,yBAAa,iBAAAA,KAAU;AACpD,QAAM,EAAE,mBAAmB,oBAAoB,QAC9C,yBAAa,eAAAC,KAAa;AAC3B,QAAM,EAAE,cAAc,QAAI,yBAAY;AAEtC,iBAAe,WAAY,OAAQ;AAClC,UAAM,eAAe;AAErB,QAAK,gBAAiB;AACrB;AAAA,IACD;AACA,sBAAmB,IAAK;AACxB,QAAI;AACH,YAAM,iBACL,MAAM,cAAe,iBAAAD,KAAU,EAAE,YAAa,QAAS;AACxD,YAAM,UAAU,MAAM;AAAA,QACrB;AAAA,QACA;AAAA,QACA;AAAA,UACC,QAAQ;AAAA,UACR;AAAA,UACA,MAAM,SAAS;AAAA,UACf,SACC,CAAC,CAAE,eAAe,YAClB,eAAe,SAAS,aACrB;AAAA,gBACA;AAAA,cACC,CAAC;AAAA,cACD,eAAe;AAAA,YAChB;AAAA,UACA,IACA;AAAA,QACL;AAAA,QACA,EAAE,cAAc,KAAK;AAAA,MACtB;AAEA,aAAQ,OAAQ;AAEhB;AAAA,YACC;AAAA;AAAA,cAEC,gBAAI,4BAA6B;AAAA,cACjC,qCAAgB,QAAQ,OAAO,YAAY,KAAM,SAChD,gBAAI,YAAa;AAAA,QACnB;AAAA,QACA,EAAE,MAAM,WAAW;AAAA,MACpB;AAAA,IACD,SAAU,OAAQ;AACjB,YAAM,eACL,MAAM,WAAW,MAAM,SAAS,kBAC7B,MAAM,cACN,gBAAI,4CAA6C;AAErD,wBAAmB,cAAc;AAAA,QAChC,MAAM;AAAA,MACP,CAAE;AAAA,IACH,UAAE;AACD,wBAAmB,KAAM;AAAA,IAC1B;AAAA,EACD;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA;AAAA;AAAA,YAEC,yBAAS,gBAAI,eAAgB,GAAG,QAAQ,aAAc;AAAA;AAAA,MAEvD,gBAAiB;AAAA,MACjB,cAAa;AAAA,MACb,MAAK;AAAA,MAEL,sDAAC,UAAK,UAAW,YAChB,uDAAC,kBAAAE,sBAAA,EAAO,SAAU,GACjB;AAAA;AAAA,UAAC;AAAA;AAAA,YACA,WAAQ,gBAAI,OAAQ;AAAA,YACpB,UAAW;AAAA,YACX,iBAAc,gBAAI,UAAW;AAAA,YAC7B,OAAQ;AAAA;AAAA,QACT;AAAA,QACA,6CAAC,kBAAAC,sBAAA,EAAO,SAAU,GAAI,SAAQ,OAC7B;AAAA;AAAA,YAAC;AAAA;AAAA,cACA,uBAAqB;AAAA,cACrB,SAAQ;AAAA,cACR,SAAU;AAAA,cAER,8BAAI,QAAS;AAAA;AAAA,UAChB;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACA,uBAAqB;AAAA,cACrB,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,QAAS;AAAA,cACT,iBAAgB;AAAA,cAEd,8BAAI,cAAe;AAAA;AAAA,UACtB;AAAA,WACD;AAAA,SACD,GACD;AAAA;AAAA,EACD;AAEF;",
|
|
6
6
|
"names": ["coreStore", "noticesStore", "VStack", "HStack"]
|
|
@@ -17,7 +17,7 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
|
|
20
|
-
// packages/edit-site/src/components/add-new-template/add-custom-generic-template-modal-content.
|
|
20
|
+
// packages/edit-site/src/components/add-new-template/add-custom-generic-template-modal-content.jsx
|
|
21
21
|
var add_custom_generic_template_modal_content_exports = {};
|
|
22
22
|
__export(add_custom_generic_template_modal_content_exports, {
|
|
23
23
|
default: () => add_custom_generic_template_modal_content_default
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/add-new-template/add-custom-generic-template-modal-content.
|
|
3
|
+
"sources": ["../../../src/components/add-new-template/add-custom-generic-template-modal-content.jsx"],
|
|
4
4
|
"sourcesContent": ["import { paramCase as kebabCase } from 'change-case';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\nfunction AddCustomGenericTemplateModalContent( { createTemplate, onBack } ) {\n\tconst [ title, setTitle ] = useState( '' );\n\tconst defaultTitle = __( 'Custom Template' );\n\tconst [ isBusy, setIsBusy ] = useState( false );\n\tconst inputRef = useRef();\n\n\t// Set focus to the name input when the component mounts\n\tuseEffect( () => {\n\t\tif ( inputRef.current ) {\n\t\t\tinputRef.current.focus();\n\t\t}\n\t}, [] );\n\n\tasync function onCreateTemplate( event ) {\n\t\tevent.preventDefault();\n\t\tif ( isBusy ) {\n\t\t\treturn;\n\t\t}\n\t\tsetIsBusy( true );\n\t\ttry {\n\t\t\tawait createTemplate(\n\t\t\t\t{\n\t\t\t\t\tslug:\n\t\t\t\t\t\tkebabCase( title || defaultTitle ) ||\n\t\t\t\t\t\t'wp-custom-template',\n\t\t\t\t\ttitle: title || defaultTitle,\n\t\t\t\t},\n\t\t\t\tfalse\n\t\t\t);\n\t\t} finally {\n\t\t\tsetIsBusy( false );\n\t\t}\n\t}\n\treturn (\n\t\t<form onSubmit={ onCreateTemplate }>\n\t\t\t<VStack spacing={ 6 }>\n\t\t\t\t<TextControl\n\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\tvalue={ title }\n\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\tplaceholder={ defaultTitle }\n\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\tref={ inputRef }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t// eslint-disable-next-line no-restricted-syntax -- 'sidebar' is a common web design term for layouts\n\t\t\t\t\t\t'Describe the template, e.g. \"Post with sidebar\". A custom template can be manually applied to any post or page.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<HStack\n\t\t\t\t\tclassName=\"edit-site-custom-generic-template__modal-actions\"\n\t\t\t\t\tjustify=\"right\"\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ onBack }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Back' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\taria-disabled={ isBusy }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Create' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t</form>\n\t);\n}\n\nexport default AddCustomGenericTemplateModalContent;\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAuC;AACvC,qBAA4C;AAC5C,kBAAmB;AACnB,wBAKO;AAsCH;AApCJ,SAAS,qCAAsC,EAAE,gBAAgB,OAAO,GAAI;AAC3E,QAAM,CAAE,OAAO,QAAS,QAAI,yBAAU,EAAG;AACzC,QAAM,mBAAe,gBAAI,iBAAkB;AAC3C,QAAM,CAAE,QAAQ,SAAU,QAAI,yBAAU,KAAM;AAC9C,QAAM,eAAW,uBAAO;AAGxB,gCAAW,MAAM;AAChB,QAAK,SAAS,SAAU;AACvB,eAAS,QAAQ,MAAM;AAAA,IACxB;AAAA,EACD,GAAG,CAAC,CAAE;AAEN,iBAAe,iBAAkB,OAAQ;AACxC,UAAM,eAAe;AACrB,QAAK,QAAS;AACb;AAAA,IACD;AACA,cAAW,IAAK;AAChB,QAAI;AACH,YAAM;AAAA,QACL;AAAA,UACC,UACC,mBAAAA,WAAW,SAAS,YAAa,KACjC;AAAA,UACD,OAAO,SAAS;AAAA,QACjB;AAAA,QACA;AAAA,MACD;AAAA,IACD,UAAE;AACD,gBAAW,KAAM;AAAA,IAClB;AAAA,EACD;AACA,SACC,4CAAC,UAAK,UAAW,kBAChB,uDAAC,kBAAAC,sBAAA,EAAO,SAAU,GACjB;AAAA;AAAA,MAAC;AAAA;AAAA,QACA,WAAQ,gBAAI,MAAO;AAAA,QACnB,OAAQ;AAAA,QACR,UAAW;AAAA,QACX,aAAc;AAAA,QACd,UAAW;AAAA,QACX,KAAM;AAAA,QACN,UAAO;AAAA;AAAA,UAEN;AAAA,QACD;AAAA;AAAA,IACD;AAAA,IACA;AAAA,MAAC,kBAAAC;AAAA,MAAA;AAAA,QACA,WAAU;AAAA,QACV,SAAQ;AAAA,QAER;AAAA;AAAA,YAAC;AAAA;AAAA,cACA,uBAAqB;AAAA,cACrB,SAAQ;AAAA,cACR,SAAU;AAAA,cAER,8BAAI,MAAO;AAAA;AAAA,UACd;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACA,uBAAqB;AAAA,cACrB,SAAQ;AAAA,cACR,MAAK;AAAA,cACL;AAAA,cACA,iBAAgB;AAAA,cAEd,8BAAI,QAAS;AAAA;AAAA,UAChB;AAAA;AAAA;AAAA,IACD;AAAA,KACD,GACD;AAEF;AAEA,IAAO,oDAAQ;",
|
|
6
6
|
"names": ["kebabCase", "VStack", "HStack"]
|
|
@@ -17,7 +17,7 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
|
|
20
|
-
// packages/edit-site/src/components/add-new-template/add-custom-template-modal-content.
|
|
20
|
+
// packages/edit-site/src/components/add-new-template/add-custom-template-modal-content.jsx
|
|
21
21
|
var add_custom_template_modal_content_exports = {};
|
|
22
22
|
__export(add_custom_template_modal_content_exports, {
|
|
23
23
|
default: () => add_custom_template_modal_content_default
|
|
@@ -179,7 +179,9 @@ function AddCustomTemplateModalContent({
|
|
|
179
179
|
onBack,
|
|
180
180
|
containerRef
|
|
181
181
|
}) {
|
|
182
|
-
const [showSearchEntities, setShowSearchEntities] = (0, import_element.useState)(
|
|
182
|
+
const [showSearchEntities, setShowSearchEntities] = (0, import_element.useState)(
|
|
183
|
+
entityForSuggestions.hasGeneralTemplate
|
|
184
|
+
);
|
|
183
185
|
(0, import_element.useEffect)(() => {
|
|
184
186
|
if (containerRef.current) {
|
|
185
187
|
const [firstFocusable] = import_dom.focus.focusable.find(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/add-new-template/add-custom-template-modal-content.
|
|
4
|
-
"sourcesContent": ["import { useState, useMemo, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tFlex,\n\tFlexItem,\n\tSearchControl,\n\tTextHighlight,\n\tComposite,\n\t__experimentalText as WCText,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useDebouncedInput } from '@wordpress/compose';\nimport { focus } from '@wordpress/dom';\nimport { safeDecodeURI } from '@wordpress/url';\nimport { mapToIHasNameAndId } from './utils';\n\nconst EMPTY_ARRAY = [];\n\nfunction SuggestionListItem( {\n\tsuggestion,\n\tsearch,\n\tonSelect,\n\tentityForSuggestions,\n} ) {\n\tconst baseCssClass =\n\t\t'edit-site-custom-template-modal__suggestions_list__list-item';\n\treturn (\n\t\t<Composite.Item\n\t\t\trender={\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\trole=\"option\"\n\t\t\t\t\tclassName={ baseCssClass }\n\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\tentityForSuggestions.config.getSpecificTemplate(\n\t\t\t\t\t\t\t\tsuggestion\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<WCText\n\t\t\t\tsize=\"body\"\n\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\tweight=\"var(--wpds-typography-font-weight-emphasis, 600)\"\n\t\t\t\tclassName={ `${ baseCssClass }__title` }\n\t\t\t>\n\t\t\t\t<TextHighlight\n\t\t\t\t\ttext={ decodeEntities( suggestion.name ) }\n\t\t\t\t\thighlight={ search }\n\t\t\t\t/>\n\t\t\t</WCText>\n\t\t\t{ suggestion.link && (\n\t\t\t\t<WCText\n\t\t\t\t\tsize=\"body\"\n\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\tclassName={ `${ baseCssClass }__info` }\n\t\t\t\t>\n\t\t\t\t\t{ safeDecodeURI( suggestion.link ) }\n\t\t\t\t</WCText>\n\t\t\t) }\n\t\t</Composite.Item>\n\t);\n}\n\nfunction useSearchSuggestions( entityForSuggestions, search ) {\n\tconst { config } = entityForSuggestions;\n\tconst query = useMemo(\n\t\t() => ( {\n\t\t\torder: 'asc',\n\t\t\tcontext: 'view',\n\t\t\tsearch,\n\t\t\tper_page: search ? 20 : 10,\n\t\t\t...config.queryArgs( search ),\n\t\t} ),\n\t\t[ search, config ]\n\t);\n\tconst { records: searchResults, hasResolved: searchHasResolved } =\n\t\tuseEntityRecords(\n\t\t\tentityForSuggestions.type,\n\t\t\tentityForSuggestions.slug,\n\t\t\tquery\n\t\t);\n\tconst [ suggestions, setSuggestions ] = useState( EMPTY_ARRAY );\n\tuseEffect( () => {\n\t\tif ( ! searchHasResolved ) {\n\t\t\treturn;\n\t\t}\n\t\tlet newSuggestions = EMPTY_ARRAY;\n\t\tif ( searchResults?.length ) {\n\t\t\tnewSuggestions = searchResults;\n\t\t\tif ( config.recordNamePath ) {\n\t\t\t\tnewSuggestions = mapToIHasNameAndId(\n\t\t\t\t\tnewSuggestions,\n\t\t\t\t\tconfig.recordNamePath\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\t// Update suggestions only when the query has resolved, so as to keep\n\t\t// the previous results in the UI.\n\t\tsetSuggestions( newSuggestions );\n\t}, [ searchResults, searchHasResolved ] );\n\treturn suggestions;\n}\n\nfunction SuggestionList( { entityForSuggestions, onSelect } ) {\n\tconst [ search, setSearch, debouncedSearch ] = useDebouncedInput();\n\tconst suggestions = useSearchSuggestions(\n\t\tentityForSuggestions,\n\t\tdebouncedSearch\n\t);\n\tconst { labels } = entityForSuggestions;\n\tconst [ showSearchControl, setShowSearchControl ] = useState( false );\n\tif ( ! showSearchControl && suggestions?.length > 9 ) {\n\t\tsetShowSearchControl( true );\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ showSearchControl && (\n\t\t\t\t<SearchControl\n\t\t\t\t\tonChange={ setSearch }\n\t\t\t\t\tvalue={ search }\n\t\t\t\t\tlabel={ labels.search_items }\n\t\t\t\t\tplaceholder={ labels.search_items }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ !! suggestions?.length && (\n\t\t\t\t<Composite\n\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\tclassName=\"edit-site-custom-template-modal__suggestions_list\"\n\t\t\t\t\taria-label={ __( 'Suggestions list' ) }\n\t\t\t\t>\n\t\t\t\t\t{ suggestions.map( ( suggestion ) => (\n\t\t\t\t\t\t<SuggestionListItem\n\t\t\t\t\t\t\tkey={ suggestion.slug }\n\t\t\t\t\t\t\tsuggestion={ suggestion }\n\t\t\t\t\t\t\tsearch={ debouncedSearch }\n\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t</Composite>\n\t\t\t) }\n\t\t\t{ debouncedSearch && ! suggestions?.length && (\n\t\t\t\t<WCText\n\t\t\t\t\tas=\"p\"\n\t\t\t\t\tclassName=\"edit-site-custom-template-modal__no-results\"\n\t\t\t\t>\n\t\t\t\t\t{ labels.not_found }\n\t\t\t\t</WCText>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction AddCustomTemplateModalContent( {\n\tonSelect,\n\tentityForSuggestions,\n\tonBack,\n\tcontainerRef,\n} ) {\n\tconst [ showSearchEntities, setShowSearchEntities ] = useState();\n\n\t// Focus on the first focusable element when the modal opens.\n\t// We handle focus management in the parent modal, just need to focus on the first focusable element.\n\tuseEffect( () => {\n\t\tif ( containerRef.current ) {\n\t\t\tconst [ firstFocusable ] = focus.focusable.find(\n\t\t\t\tcontainerRef.current\n\t\t\t);\n\t\t\tfirstFocusable?.focus();\n\t\t}\n\t}, [ showSearchEntities ] );\n\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 4 }\n\t\t\tclassName=\"edit-site-custom-template-modal__contents-wrapper\"\n\t\t\talignment=\"left\"\n\t\t>\n\t\t\t{ ! showSearchEntities && (\n\t\t\t\t<>\n\t\t\t\t\t<WCText as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Select whether to create a single template for all items or a specific one.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</WCText>\n\t\t\t\t\t<Flex\n\t\t\t\t\t\tclassName=\"edit-site-custom-template-modal__contents\"\n\t\t\t\t\t\tgap=\"4\"\n\t\t\t\t\t\talign=\"initial\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\tdescription,\n\t\t\t\t\t\t\t\t\ttemplatePrefix,\n\t\t\t\t\t\t\t\t} = entityForSuggestions.template;\n\t\t\t\t\t\t\t\tonSelect( {\n\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\tdescription,\n\t\t\t\t\t\t\t\t\ttemplatePrefix,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<WCText\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tweight=\"var(--wpds-typography-font-weight-emphasis, 600)\"\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ entityForSuggestions.labels.all_items }\n\t\t\t\t\t\t\t</WCText>\n\t\t\t\t\t\t\t<WCText\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// translators: The user is given the choice to set up a template for all items of a post type or taxonomy, or just a specific one.\n\t\t\t\t\t\t\t\t\t__( 'For all items' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</WCText>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetShowSearchEntities( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<WCText\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tweight=\"var(--wpds-typography-font-weight-emphasis, 600)\"\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ entityForSuggestions.labels.singular_name }\n\t\t\t\t\t\t\t</WCText>\n\t\t\t\t\t\t\t<WCText\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// translators: The user is given the choice to set up a template for all items of a post type or taxonomy, or just a specific one.\n\t\t\t\t\t\t\t\t\t__( 'For a specific item' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</WCText>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t\t<Flex justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onBack }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Back' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Flex>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ showSearchEntities && (\n\t\t\t\t<>\n\t\t\t\t\t<WCText as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'This template will be used only for the specific item chosen.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</WCText>\n\t\t\t\t\t<SuggestionList\n\t\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t/>\n\t\t\t\t\t<Flex justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t// If general template exists, go directly back to main screen\n\t\t\t\t\t\t\t\t// instead of showing the choice screen\n\t\t\t\t\t\t\t\tif ( entityForSuggestions.hasGeneralTemplate ) {\n\t\t\t\t\t\t\t\t\tonBack();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsetShowSearchEntities( false );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Back' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Flex>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport default AddCustomTemplateModalContent;\n"],
|
|
5
|
-
"mappings": "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
|
|
3
|
+
"sources": ["../../../src/components/add-new-template/add-custom-template-modal-content.jsx"],
|
|
4
|
+
"sourcesContent": ["import { useState, useMemo, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tFlex,\n\tFlexItem,\n\tSearchControl,\n\tTextHighlight,\n\tComposite,\n\t__experimentalText as WCText,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useDebouncedInput } from '@wordpress/compose';\nimport { focus } from '@wordpress/dom';\nimport { safeDecodeURI } from '@wordpress/url';\nimport { mapToIHasNameAndId } from './utils';\n\nconst EMPTY_ARRAY = [];\n\nfunction SuggestionListItem( {\n\tsuggestion,\n\tsearch,\n\tonSelect,\n\tentityForSuggestions,\n} ) {\n\tconst baseCssClass =\n\t\t'edit-site-custom-template-modal__suggestions_list__list-item';\n\treturn (\n\t\t<Composite.Item\n\t\t\trender={\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\trole=\"option\"\n\t\t\t\t\tclassName={ baseCssClass }\n\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\tentityForSuggestions.config.getSpecificTemplate(\n\t\t\t\t\t\t\t\tsuggestion\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<WCText\n\t\t\t\tsize=\"body\"\n\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\tweight=\"var(--wpds-typography-font-weight-emphasis, 600)\"\n\t\t\t\tclassName={ `${ baseCssClass }__title` }\n\t\t\t>\n\t\t\t\t<TextHighlight\n\t\t\t\t\ttext={ decodeEntities( suggestion.name ) }\n\t\t\t\t\thighlight={ search }\n\t\t\t\t/>\n\t\t\t</WCText>\n\t\t\t{ suggestion.link && (\n\t\t\t\t<WCText\n\t\t\t\t\tsize=\"body\"\n\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\tclassName={ `${ baseCssClass }__info` }\n\t\t\t\t>\n\t\t\t\t\t{ safeDecodeURI( suggestion.link ) }\n\t\t\t\t</WCText>\n\t\t\t) }\n\t\t</Composite.Item>\n\t);\n}\n\nfunction useSearchSuggestions( entityForSuggestions, search ) {\n\tconst { config } = entityForSuggestions;\n\tconst query = useMemo(\n\t\t() => ( {\n\t\t\torder: 'asc',\n\t\t\tcontext: 'view',\n\t\t\tsearch,\n\t\t\tper_page: search ? 20 : 10,\n\t\t\t...config.queryArgs( search ),\n\t\t} ),\n\t\t[ search, config ]\n\t);\n\tconst { records: searchResults, hasResolved: searchHasResolved } =\n\t\tuseEntityRecords(\n\t\t\tentityForSuggestions.type,\n\t\t\tentityForSuggestions.slug,\n\t\t\tquery\n\t\t);\n\tconst [ suggestions, setSuggestions ] = useState( EMPTY_ARRAY );\n\tuseEffect( () => {\n\t\tif ( ! searchHasResolved ) {\n\t\t\treturn;\n\t\t}\n\t\tlet newSuggestions = EMPTY_ARRAY;\n\t\tif ( searchResults?.length ) {\n\t\t\tnewSuggestions = searchResults;\n\t\t\tif ( config.recordNamePath ) {\n\t\t\t\tnewSuggestions = mapToIHasNameAndId(\n\t\t\t\t\tnewSuggestions,\n\t\t\t\t\tconfig.recordNamePath\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\t// Update suggestions only when the query has resolved, so as to keep\n\t\t// the previous results in the UI.\n\t\tsetSuggestions( newSuggestions );\n\t}, [ searchResults, searchHasResolved ] );\n\treturn suggestions;\n}\n\nfunction SuggestionList( { entityForSuggestions, onSelect } ) {\n\tconst [ search, setSearch, debouncedSearch ] = useDebouncedInput();\n\tconst suggestions = useSearchSuggestions(\n\t\tentityForSuggestions,\n\t\tdebouncedSearch\n\t);\n\tconst { labels } = entityForSuggestions;\n\tconst [ showSearchControl, setShowSearchControl ] = useState( false );\n\tif ( ! showSearchControl && suggestions?.length > 9 ) {\n\t\tsetShowSearchControl( true );\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ showSearchControl && (\n\t\t\t\t<SearchControl\n\t\t\t\t\tonChange={ setSearch }\n\t\t\t\t\tvalue={ search }\n\t\t\t\t\tlabel={ labels.search_items }\n\t\t\t\t\tplaceholder={ labels.search_items }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ !! suggestions?.length && (\n\t\t\t\t<Composite\n\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\tclassName=\"edit-site-custom-template-modal__suggestions_list\"\n\t\t\t\t\taria-label={ __( 'Suggestions list' ) }\n\t\t\t\t>\n\t\t\t\t\t{ suggestions.map( ( suggestion ) => (\n\t\t\t\t\t\t<SuggestionListItem\n\t\t\t\t\t\t\tkey={ suggestion.slug }\n\t\t\t\t\t\t\tsuggestion={ suggestion }\n\t\t\t\t\t\t\tsearch={ debouncedSearch }\n\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t</Composite>\n\t\t\t) }\n\t\t\t{ debouncedSearch && ! suggestions?.length && (\n\t\t\t\t<WCText\n\t\t\t\t\tas=\"p\"\n\t\t\t\t\tclassName=\"edit-site-custom-template-modal__no-results\"\n\t\t\t\t>\n\t\t\t\t\t{ labels.not_found }\n\t\t\t\t</WCText>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction AddCustomTemplateModalContent( {\n\tonSelect,\n\tentityForSuggestions,\n\tonBack,\n\tcontainerRef,\n} ) {\n\tconst [ showSearchEntities, setShowSearchEntities ] = useState(\n\t\tentityForSuggestions.hasGeneralTemplate\n\t);\n\n\t// Focus on the first focusable element when the modal opens.\n\t// We handle focus management in the parent modal, just need to focus on the first focusable element.\n\tuseEffect( () => {\n\t\tif ( containerRef.current ) {\n\t\t\tconst [ firstFocusable ] = focus.focusable.find(\n\t\t\t\tcontainerRef.current\n\t\t\t);\n\t\t\tfirstFocusable?.focus();\n\t\t}\n\t}, [ showSearchEntities ] );\n\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 4 }\n\t\t\tclassName=\"edit-site-custom-template-modal__contents-wrapper\"\n\t\t\talignment=\"left\"\n\t\t>\n\t\t\t{ ! showSearchEntities && (\n\t\t\t\t<>\n\t\t\t\t\t<WCText as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Select whether to create a single template for all items or a specific one.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</WCText>\n\t\t\t\t\t<Flex\n\t\t\t\t\t\tclassName=\"edit-site-custom-template-modal__contents\"\n\t\t\t\t\t\tgap=\"4\"\n\t\t\t\t\t\talign=\"initial\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\tdescription,\n\t\t\t\t\t\t\t\t\ttemplatePrefix,\n\t\t\t\t\t\t\t\t} = entityForSuggestions.template;\n\t\t\t\t\t\t\t\tonSelect( {\n\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\tdescription,\n\t\t\t\t\t\t\t\t\ttemplatePrefix,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<WCText\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tweight=\"var(--wpds-typography-font-weight-emphasis, 600)\"\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ entityForSuggestions.labels.all_items }\n\t\t\t\t\t\t\t</WCText>\n\t\t\t\t\t\t\t<WCText\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// translators: The user is given the choice to set up a template for all items of a post type or taxonomy, or just a specific one.\n\t\t\t\t\t\t\t\t\t__( 'For all items' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</WCText>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetShowSearchEntities( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<WCText\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tweight=\"var(--wpds-typography-font-weight-emphasis, 600)\"\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ entityForSuggestions.labels.singular_name }\n\t\t\t\t\t\t\t</WCText>\n\t\t\t\t\t\t\t<WCText\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// translators: The user is given the choice to set up a template for all items of a post type or taxonomy, or just a specific one.\n\t\t\t\t\t\t\t\t\t__( 'For a specific item' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</WCText>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t\t<Flex justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onBack }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Back' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Flex>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ showSearchEntities && (\n\t\t\t\t<>\n\t\t\t\t\t<WCText as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'This template will be used only for the specific item chosen.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</WCText>\n\t\t\t\t\t<SuggestionList\n\t\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t/>\n\t\t\t\t\t<Flex justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t// If general template exists, go directly back to main screen\n\t\t\t\t\t\t\t\t// instead of showing the choice screen\n\t\t\t\t\t\t\t\tif ( entityForSuggestions.hasGeneralTemplate ) {\n\t\t\t\t\t\t\t\t\tonBack();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsetShowSearchEntities( false );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Back' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Flex>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport default AddCustomTemplateModalContent;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["WCText", "VStack"]
|
|
7
7
|
}
|
|
@@ -27,7 +27,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
|
|
30
|
-
// packages/edit-site/src/components/add-new-template/index.
|
|
30
|
+
// packages/edit-site/src/components/add-new-template/index.jsx
|
|
31
31
|
var add_new_template_exports = {};
|
|
32
32
|
__export(add_new_template_exports, {
|
|
33
33
|
default: () => add_new_template_default
|
|
@@ -192,9 +192,7 @@ function NewTemplateModal({ onClose }) {
|
|
|
192
192
|
status: "publish",
|
|
193
193
|
title,
|
|
194
194
|
// This adds a post meta field in template that is part of `is_custom` value calculation.
|
|
195
|
-
|
|
196
|
-
is_wp_suggestion: isWPSuggestion
|
|
197
|
-
}
|
|
195
|
+
is_wp_suggestion: isWPSuggestion
|
|
198
196
|
},
|
|
199
197
|
{ throwOnError: true }
|
|
200
198
|
);
|
|
@@ -344,9 +342,13 @@ function NewTemplate() {
|
|
|
344
342
|
] });
|
|
345
343
|
}
|
|
346
344
|
function useMissingTemplates(setEntityForSuggestions, onClick) {
|
|
345
|
+
const existingTemplates = (0, import_utils.useExistingTemplates)();
|
|
347
346
|
const defaultTemplateTypes = (0, import_utils.useDefaultTemplateTypes)();
|
|
347
|
+
const existingTemplateSlugs = (existingTemplates || []).map(
|
|
348
|
+
({ slug }) => slug
|
|
349
|
+
);
|
|
348
350
|
const missingDefaultTemplates = (defaultTemplateTypes || []).filter(
|
|
349
|
-
(template) => DEFAULT_TEMPLATE_SLUGS.includes(template.slug)
|
|
351
|
+
(template) => DEFAULT_TEMPLATE_SLUGS.includes(template.slug) && !existingTemplateSlugs.includes(template.slug)
|
|
350
352
|
);
|
|
351
353
|
const onClickMenuItem = (_entityForSuggestions) => {
|
|
352
354
|
onClick?.();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/add-new-template/index.
|
|
4
|
-
"sourcesContent": ["import clsx from 'clsx';\nimport {\n\tButton,\n\tModal,\n\t__experimentalGrid as Grid,\n\t__experimentalText as WCText,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tIcon as WCIcon,\n} from '@wordpress/components';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useState, memo, useRef, useEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tarchive,\n\tblockMeta,\n\tcalendar,\n\tcategory,\n\tcommentAuthorAvatar,\n\tpencil,\n\thome,\n\tlayout,\n\tlist,\n\tmedia,\n\tnotFound,\n\tpage,\n\tpin,\n\tverse,\n\tsearch,\n\ttag,\n} from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { focus } from '@wordpress/dom';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\nimport AddCustomTemplateModalContent from './add-custom-template-modal-content';\nimport {\n\tuseDefaultTemplateTypes,\n\tuseTaxonomiesMenuItems,\n\tusePostTypeMenuItems,\n\tuseAuthorMenuItem,\n\tusePostTypeArchiveMenuItems,\n} from './utils';\nimport AddCustomGenericTemplateModalContent from './add-custom-generic-template-modal-content';\nimport { unlock } from '../../lock-unlock';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nconst DEFAULT_TEMPLATE_SLUGS = [\n\t'front-page',\n\t'home',\n\t'single',\n\t'page',\n\t'index',\n\t'archive',\n\t'author',\n\t'category',\n\t'date',\n\t'tag',\n\t'search',\n\t'404',\n];\n\nconst TEMPLATE_ICONS = {\n\t'front-page': home,\n\thome: verse,\n\tsingle: pin,\n\tpage,\n\tarchive,\n\tsearch,\n\t404: notFound,\n\tindex: list,\n\tcategory,\n\tauthor: commentAuthorAvatar,\n\ttaxonomy: blockMeta,\n\tdate: calendar,\n\ttag,\n\tattachment: media,\n};\n\nfunction TemplateListItem( {\n\ttitle,\n\tdirection,\n\tclassName,\n\tdescription,\n\ticon,\n\tonClick,\n\tchildren,\n} ) {\n\treturn (\n\t\t<Button\n\t\t\t__next40pxDefaultSize\n\t\t\tclassName={ className }\n\t\t\tonClick={ onClick }\n\t\t\tlabel={ description }\n\t\t\tshowTooltip={ !! description }\n\t\t>\n\t\t\t<Flex\n\t\t\t\tas=\"span\"\n\t\t\t\tspacing={ 2 }\n\t\t\t\talign=\"center\"\n\t\t\t\tjustify=\"center\"\n\t\t\t\tstyle={ { width: '100%' } }\n\t\t\t\tdirection={ direction }\n\t\t\t>\n\t\t\t\t<div className=\"edit-site-add-new-template__template-icon\">\n\t\t\t\t\t<WCIcon icon={ icon } />\n\t\t\t\t</div>\n\t\t\t\t<VStack\n\t\t\t\t\tclassName=\"edit-site-add-new-template__template-name\"\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tspacing={ 0 }\n\t\t\t\t>\n\t\t\t\t\t<WCText\n\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\tweight=\"var(--wpds-typography-font-weight-emphasis, 600)\"\n\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</WCText>\n\t\t\t\t\t{ children }\n\t\t\t\t</VStack>\n\t\t\t</Flex>\n\t\t</Button>\n\t);\n}\n\nconst modalContentMap = {\n\ttemplatesList: 1,\n\tcustomTemplate: 2,\n\tcustomGenericTemplate: 3,\n};\n\nfunction NewTemplateModal( { onClose } ) {\n\tconst [ modalContent, setModalContent ] = useState(\n\t\tmodalContentMap.templatesList\n\t);\n\tconst [ entityForSuggestions, setEntityForSuggestions ] = useState( {} );\n\tconst [ isSubmitting, setIsSubmitting ] = useState( false );\n\tconst missingTemplates = useMissingTemplates( setEntityForSuggestions, () =>\n\t\tsetModalContent( modalContentMap.customTemplate )\n\t);\n\tconst history = useHistory();\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst containerRef = useRef( null );\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\n\tconst homeUrl = useSelect( ( select ) => {\n\t\t// Site index.\n\t\treturn select( coreStore ).getEntityRecord( 'root', '__unstableBase' )\n\t\t\t?.home;\n\t}, [] );\n\n\tconst TEMPLATE_SHORT_DESCRIPTIONS = {\n\t\t'front-page': homeUrl,\n\t\tdate: sprintf(\n\t\t\t// translators: %s: The homepage url.\n\t\t\t__( 'E.g. %s' ),\n\t\t\thomeUrl + '/' + new Date().getFullYear()\n\t\t),\n\t};\n\n\tuseEffect( () => {\n\t\t// Focus the first focusable element when component mounts or UI changes\n\t\t// We don't want to focus on the other modals because they have their own focus management.\n\t\tif (\n\t\t\tcontainerRef.current &&\n\t\t\tmodalContent === modalContentMap.templatesList\n\t\t) {\n\t\t\tconst [ firstFocusable ] = focus.focusable.find(\n\t\t\t\tcontainerRef.current\n\t\t\t);\n\t\t\tfirstFocusable?.focus();\n\t\t}\n\t}, [ modalContent ] );\n\n\tasync function createTemplate( template, isWPSuggestion = true ) {\n\t\tif ( isSubmitting ) {\n\t\t\treturn;\n\t\t}\n\t\tsetIsSubmitting( true );\n\t\ttry {\n\t\t\tconst { title, description, slug } = template;\n\t\t\tconst newTemplate = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tdescription,\n\t\t\t\t\t// Slugs need to be strings, so this is for template `404`\n\t\t\t\t\tslug: slug.toString(),\n\t\t\t\t\tstatus: 'publish',\n\t\t\t\t\ttitle,\n\t\t\t\t\t// This adds a post meta field in template that is part of `is_custom` value calculation.\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tis_wp_suggestion: isWPSuggestion,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\t// Navigate to the created template editor.\n\t\t\thistory.navigate(\n\t\t\t\t`/${ TEMPLATE_POST_TYPE }/${ newTemplate.id }?canvas=edit`\n\t\t\t);\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: Title of the created post or template, e.g: \"Hello world\".\n\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\tdecodeEntities( newTemplate.title?.rendered || title ) ||\n\t\t\t\t\t\t__( '(no title)' )\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the template.' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t} finally {\n\t\t\tsetIsSubmitting( false );\n\t\t}\n\t}\n\tconst onModalClose = () => {\n\t\tonClose();\n\t\tsetModalContent( modalContentMap.templatesList );\n\t};\n\n\tlet modalTitle = __( 'Add template' );\n\tif ( modalContent === modalContentMap.customTemplate ) {\n\t\tmodalTitle = sprintf(\n\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t__( 'Add template: %s' ),\n\t\t\tentityForSuggestions.labels.singular_name\n\t\t);\n\t} else if ( modalContent === modalContentMap.customGenericTemplate ) {\n\t\tmodalTitle = __( 'Create custom template' );\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ modalTitle }\n\t\t\tclassName={ clsx( 'edit-site-add-new-template__modal', {\n\t\t\t\t'edit-site-add-new-template__modal_template_list':\n\t\t\t\t\tmodalContent === modalContentMap.templatesList,\n\t\t\t\t'edit-site-custom-template-modal':\n\t\t\t\t\tmodalContent === modalContentMap.customTemplate,\n\t\t\t} ) }\n\t\t\tonRequestClose={ onModalClose }\n\t\t\toverlayClassName={\n\t\t\t\tmodalContent === modalContentMap.customGenericTemplate\n\t\t\t\t\t? 'edit-site-custom-generic-template__modal'\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tref={ containerRef }\n\t\t>\n\t\t\t{ modalContent === modalContentMap.templatesList && (\n\t\t\t\t<Grid\n\t\t\t\t\tcolumns={ isMobile ? 2 : 3 }\n\t\t\t\t\tgap={ 4 }\n\t\t\t\t\talign=\"flex-start\"\n\t\t\t\t\tjustify=\"center\"\n\t\t\t\t\tclassName=\"edit-site-add-new-template__template-list__contents\"\n\t\t\t\t>\n\t\t\t\t\t<Flex className=\"edit-site-add-new-template__template-list__prompt\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Select what the new template should apply to:'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Flex>\n\t\t\t\t\t{ missingTemplates.map( ( template ) => {\n\t\t\t\t\t\tconst { title, slug, onClick } = template;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<TemplateListItem\n\t\t\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\t\t\tdirection=\"column\"\n\t\t\t\t\t\t\t\tclassName=\"edit-site-add-new-template__template-button\"\n\t\t\t\t\t\t\t\tdescription={\n\t\t\t\t\t\t\t\t\tTEMPLATE_SHORT_DESCRIPTIONS[ slug ]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ticon={ TEMPLATE_ICONS[ slug ] || layout }\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tonClick\n\t\t\t\t\t\t\t\t\t\t? onClick( template )\n\t\t\t\t\t\t\t\t\t\t: createTemplate( template )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t\t<TemplateListItem\n\t\t\t\t\t\ttitle={ __( 'Custom template' ) }\n\t\t\t\t\t\tdirection=\"row\"\n\t\t\t\t\t\tclassName=\"edit-site-add-new-template__custom-template-button\"\n\t\t\t\t\t\ticon={ pencil }\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\tsetModalContent(\n\t\t\t\t\t\t\t\tmodalContentMap.customGenericTemplate\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<WCText\n\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'A custom template can be manually applied to any post or page.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</WCText>\n\t\t\t\t\t</TemplateListItem>\n\t\t\t\t</Grid>\n\t\t\t) }\n\t\t\t{ modalContent === modalContentMap.customTemplate && (\n\t\t\t\t<AddCustomTemplateModalContent\n\t\t\t\t\tonSelect={ createTemplate }\n\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t\tonBack={ () =>\n\t\t\t\t\t\tsetModalContent( modalContentMap.templatesList )\n\t\t\t\t\t}\n\t\t\t\t\tcontainerRef={ containerRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ modalContent === modalContentMap.customGenericTemplate && (\n\t\t\t\t<AddCustomGenericTemplateModalContent\n\t\t\t\t\tcreateTemplate={ createTemplate }\n\t\t\t\t\tonBack={ () =>\n\t\t\t\t\t\tsetModalContent( modalContentMap.templatesList )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Modal>\n\t);\n}\n\nfunction NewTemplate() {\n\tconst [ showModal, setShowModal ] = useState( false );\n\n\tconst { postType } = useSelect( ( select ) => {\n\t\tconst { getPostType } = select( coreStore );\n\n\t\treturn {\n\t\t\tpostType: getPostType( TEMPLATE_POST_TYPE ),\n\t\t};\n\t}, [] );\n\n\tif ( ! postType ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tonClick={ () => setShowModal( true ) }\n\t\t\t\tlabel={ postType.labels.add_new_item }\n\t\t\t\tsize=\"compact\"\n\t\t\t\t__next40pxDefaultSize\n\t\t\t>\n\t\t\t\t{ postType.labels.add_new_item }\n\t\t\t</Button>\n\t\t\t{ showModal && (\n\t\t\t\t<NewTemplateModal onClose={ () => setShowModal( false ) } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction useMissingTemplates( setEntityForSuggestions, onClick ) {\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\tconst missingDefaultTemplates = ( defaultTemplateTypes || [] ).filter(\n\t\t( template ) => DEFAULT_TEMPLATE_SLUGS.includes( template.slug )\n\t);\n\tconst onClickMenuItem = ( _entityForSuggestions ) => {\n\t\tonClick?.();\n\t\tsetEntityForSuggestions( _entityForSuggestions );\n\t};\n\t// We need to replace existing default template types with\n\t// the create specific template functionality. The original\n\t// info (title, description, etc.) is preserved in the\n\t// used hooks.\n\tconst enhancedMissingDefaultTemplateTypes = [ ...missingDefaultTemplates ];\n\tconst { defaultTaxonomiesMenuItems, taxonomiesMenuItems } =\n\t\tuseTaxonomiesMenuItems( onClickMenuItem );\n\tconst { defaultPostTypesMenuItems, postTypesMenuItems } =\n\t\tusePostTypeMenuItems( onClickMenuItem );\n\n\tconst authorMenuItem = useAuthorMenuItem( onClickMenuItem );\n\t[\n\t\t...defaultTaxonomiesMenuItems,\n\t\t...defaultPostTypesMenuItems,\n\t\tauthorMenuItem,\n\t].forEach( ( menuItem ) => {\n\t\tif ( ! menuItem ) {\n\t\t\treturn;\n\t\t}\n\t\tconst matchIndex = enhancedMissingDefaultTemplateTypes.findIndex(\n\t\t\t( template ) => template.slug === menuItem.slug\n\t\t);\n\t\t// Some default template types might have been filtered above from\n\t\t// `missingDefaultTemplates` because they only check for the general\n\t\t// template. So here we either replace or append the item, augmented\n\t\t// with the check if it has available specific item to create a\n\t\t// template for.\n\t\tif ( matchIndex > -1 ) {\n\t\t\tenhancedMissingDefaultTemplateTypes[ matchIndex ] = menuItem;\n\t\t} else {\n\t\t\tenhancedMissingDefaultTemplateTypes.push( menuItem );\n\t\t}\n\t} );\n\t// Update the sort order to match the DEFAULT_TEMPLATE_SLUGS order.\n\tenhancedMissingDefaultTemplateTypes?.sort( ( template1, template2 ) => {\n\t\treturn (\n\t\t\tDEFAULT_TEMPLATE_SLUGS.indexOf( template1.slug ) -\n\t\t\tDEFAULT_TEMPLATE_SLUGS.indexOf( template2.slug )\n\t\t);\n\t} );\n\tconst missingTemplates = [\n\t\t...enhancedMissingDefaultTemplateTypes,\n\t\t...usePostTypeArchiveMenuItems(),\n\t\t...postTypesMenuItems,\n\t\t...taxonomiesMenuItems,\n\t];\n\treturn missingTemplates;\n}\n\nexport default memo( NewTemplate );\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAiB;AACjB,wBAQO;AACP,2BAA+B;AAC/B,qBAAkD;AAClD,kBAAuC;AACvC,uBAAmC;AACnC,qBAAiC;AACjC,mBAiBO;AACP,kBAA4B;AAC5B,qBAAsC;AACtC,oBAAiD;AACjD,iBAAsB;AACtB,uBAAmC;AACnC,+CAA0C;AAC1C,
|
|
3
|
+
"sources": ["../../../src/components/add-new-template/index.jsx"],
|
|
4
|
+
"sourcesContent": ["import clsx from 'clsx';\nimport {\n\tButton,\n\tModal,\n\t__experimentalGrid as Grid,\n\t__experimentalText as WCText,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tIcon as WCIcon,\n} from '@wordpress/components';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useState, memo, useRef, useEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tarchive,\n\tblockMeta,\n\tcalendar,\n\tcategory,\n\tcommentAuthorAvatar,\n\tpencil,\n\thome,\n\tlayout,\n\tlist,\n\tmedia,\n\tnotFound,\n\tpage,\n\tpin,\n\tverse,\n\tsearch,\n\ttag,\n} from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { focus } from '@wordpress/dom';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\nimport AddCustomTemplateModalContent from './add-custom-template-modal-content';\nimport {\n\tuseExistingTemplates,\n\tuseDefaultTemplateTypes,\n\tuseTaxonomiesMenuItems,\n\tusePostTypeMenuItems,\n\tuseAuthorMenuItem,\n\tusePostTypeArchiveMenuItems,\n} from './utils';\nimport AddCustomGenericTemplateModalContent from './add-custom-generic-template-modal-content';\nimport { unlock } from '../../lock-unlock';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nconst DEFAULT_TEMPLATE_SLUGS = [\n\t'front-page',\n\t'home',\n\t'single',\n\t'page',\n\t'index',\n\t'archive',\n\t'author',\n\t'category',\n\t'date',\n\t'tag',\n\t'search',\n\t'404',\n];\n\nconst TEMPLATE_ICONS = {\n\t'front-page': home,\n\thome: verse,\n\tsingle: pin,\n\tpage,\n\tarchive,\n\tsearch,\n\t404: notFound,\n\tindex: list,\n\tcategory,\n\tauthor: commentAuthorAvatar,\n\ttaxonomy: blockMeta,\n\tdate: calendar,\n\ttag,\n\tattachment: media,\n};\n\nfunction TemplateListItem( {\n\ttitle,\n\tdirection,\n\tclassName,\n\tdescription,\n\ticon,\n\tonClick,\n\tchildren,\n} ) {\n\treturn (\n\t\t<Button\n\t\t\t__next40pxDefaultSize\n\t\t\tclassName={ className }\n\t\t\tonClick={ onClick }\n\t\t\tlabel={ description }\n\t\t\tshowTooltip={ !! description }\n\t\t>\n\t\t\t<Flex\n\t\t\t\tas=\"span\"\n\t\t\t\tspacing={ 2 }\n\t\t\t\talign=\"center\"\n\t\t\t\tjustify=\"center\"\n\t\t\t\tstyle={ { width: '100%' } }\n\t\t\t\tdirection={ direction }\n\t\t\t>\n\t\t\t\t<div className=\"edit-site-add-new-template__template-icon\">\n\t\t\t\t\t<WCIcon icon={ icon } />\n\t\t\t\t</div>\n\t\t\t\t<VStack\n\t\t\t\t\tclassName=\"edit-site-add-new-template__template-name\"\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tspacing={ 0 }\n\t\t\t\t>\n\t\t\t\t\t<WCText\n\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\tweight=\"var(--wpds-typography-font-weight-emphasis, 600)\"\n\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</WCText>\n\t\t\t\t\t{ children }\n\t\t\t\t</VStack>\n\t\t\t</Flex>\n\t\t</Button>\n\t);\n}\n\nconst modalContentMap = {\n\ttemplatesList: 1,\n\tcustomTemplate: 2,\n\tcustomGenericTemplate: 3,\n};\n\nfunction NewTemplateModal( { onClose } ) {\n\tconst [ modalContent, setModalContent ] = useState(\n\t\tmodalContentMap.templatesList\n\t);\n\tconst [ entityForSuggestions, setEntityForSuggestions ] = useState( {} );\n\tconst [ isSubmitting, setIsSubmitting ] = useState( false );\n\tconst missingTemplates = useMissingTemplates( setEntityForSuggestions, () =>\n\t\tsetModalContent( modalContentMap.customTemplate )\n\t);\n\tconst history = useHistory();\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst containerRef = useRef( null );\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\n\tconst homeUrl = useSelect( ( select ) => {\n\t\t// Site index.\n\t\treturn select( coreStore ).getEntityRecord( 'root', '__unstableBase' )\n\t\t\t?.home;\n\t}, [] );\n\n\tconst TEMPLATE_SHORT_DESCRIPTIONS = {\n\t\t'front-page': homeUrl,\n\t\tdate: sprintf(\n\t\t\t// translators: %s: The homepage url.\n\t\t\t__( 'E.g. %s' ),\n\t\t\thomeUrl + '/' + new Date().getFullYear()\n\t\t),\n\t};\n\n\tuseEffect( () => {\n\t\t// Focus the first focusable element when component mounts or UI changes\n\t\t// We don't want to focus on the other modals because they have their own focus management.\n\t\tif (\n\t\t\tcontainerRef.current &&\n\t\t\tmodalContent === modalContentMap.templatesList\n\t\t) {\n\t\t\tconst [ firstFocusable ] = focus.focusable.find(\n\t\t\t\tcontainerRef.current\n\t\t\t);\n\t\t\tfirstFocusable?.focus();\n\t\t}\n\t}, [ modalContent ] );\n\n\tasync function createTemplate( template, isWPSuggestion = true ) {\n\t\tif ( isSubmitting ) {\n\t\t\treturn;\n\t\t}\n\t\tsetIsSubmitting( true );\n\t\ttry {\n\t\t\tconst { title, description, slug } = template;\n\t\t\tconst newTemplate = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tdescription,\n\t\t\t\t\t// Slugs need to be strings, so this is for template `404`\n\t\t\t\t\tslug: slug.toString(),\n\t\t\t\t\tstatus: 'publish',\n\t\t\t\t\ttitle,\n\t\t\t\t\t// This adds a post meta field in template that is part of `is_custom` value calculation.\n\t\t\t\t\tis_wp_suggestion: isWPSuggestion,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\t// Navigate to the created template editor.\n\t\t\thistory.navigate(\n\t\t\t\t`/${ TEMPLATE_POST_TYPE }/${ newTemplate.id }?canvas=edit`\n\t\t\t);\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: Title of the created post or template, e.g: \"Hello world\".\n\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\tdecodeEntities( newTemplate.title?.rendered || title ) ||\n\t\t\t\t\t\t__( '(no title)' )\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the template.' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t} finally {\n\t\t\tsetIsSubmitting( false );\n\t\t}\n\t}\n\tconst onModalClose = () => {\n\t\tonClose();\n\t\tsetModalContent( modalContentMap.templatesList );\n\t};\n\n\tlet modalTitle = __( 'Add template' );\n\tif ( modalContent === modalContentMap.customTemplate ) {\n\t\tmodalTitle = sprintf(\n\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t__( 'Add template: %s' ),\n\t\t\tentityForSuggestions.labels.singular_name\n\t\t);\n\t} else if ( modalContent === modalContentMap.customGenericTemplate ) {\n\t\tmodalTitle = __( 'Create custom template' );\n\t}\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ modalTitle }\n\t\t\tclassName={ clsx( 'edit-site-add-new-template__modal', {\n\t\t\t\t'edit-site-add-new-template__modal_template_list':\n\t\t\t\t\tmodalContent === modalContentMap.templatesList,\n\t\t\t\t'edit-site-custom-template-modal':\n\t\t\t\t\tmodalContent === modalContentMap.customTemplate,\n\t\t\t} ) }\n\t\t\tonRequestClose={ onModalClose }\n\t\t\toverlayClassName={\n\t\t\t\tmodalContent === modalContentMap.customGenericTemplate\n\t\t\t\t\t? 'edit-site-custom-generic-template__modal'\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tref={ containerRef }\n\t\t>\n\t\t\t{ modalContent === modalContentMap.templatesList && (\n\t\t\t\t<Grid\n\t\t\t\t\tcolumns={ isMobile ? 2 : 3 }\n\t\t\t\t\tgap={ 4 }\n\t\t\t\t\talign=\"flex-start\"\n\t\t\t\t\tjustify=\"center\"\n\t\t\t\t\tclassName=\"edit-site-add-new-template__template-list__contents\"\n\t\t\t\t>\n\t\t\t\t\t<Flex className=\"edit-site-add-new-template__template-list__prompt\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Select what the new template should apply to:'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Flex>\n\t\t\t\t\t{ missingTemplates.map( ( template ) => {\n\t\t\t\t\t\tconst { title, slug, onClick } = template;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<TemplateListItem\n\t\t\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\t\t\tdirection=\"column\"\n\t\t\t\t\t\t\t\tclassName=\"edit-site-add-new-template__template-button\"\n\t\t\t\t\t\t\t\tdescription={\n\t\t\t\t\t\t\t\t\tTEMPLATE_SHORT_DESCRIPTIONS[ slug ]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ticon={ TEMPLATE_ICONS[ slug ] || layout }\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tonClick\n\t\t\t\t\t\t\t\t\t\t? onClick( template )\n\t\t\t\t\t\t\t\t\t\t: createTemplate( template )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t\t<TemplateListItem\n\t\t\t\t\t\ttitle={ __( 'Custom template' ) }\n\t\t\t\t\t\tdirection=\"row\"\n\t\t\t\t\t\tclassName=\"edit-site-add-new-template__custom-template-button\"\n\t\t\t\t\t\ticon={ pencil }\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\tsetModalContent(\n\t\t\t\t\t\t\t\tmodalContentMap.customGenericTemplate\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<WCText\n\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'A custom template can be manually applied to any post or page.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</WCText>\n\t\t\t\t\t</TemplateListItem>\n\t\t\t\t</Grid>\n\t\t\t) }\n\t\t\t{ modalContent === modalContentMap.customTemplate && (\n\t\t\t\t<AddCustomTemplateModalContent\n\t\t\t\t\tonSelect={ createTemplate }\n\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t\tonBack={ () =>\n\t\t\t\t\t\tsetModalContent( modalContentMap.templatesList )\n\t\t\t\t\t}\n\t\t\t\t\tcontainerRef={ containerRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ modalContent === modalContentMap.customGenericTemplate && (\n\t\t\t\t<AddCustomGenericTemplateModalContent\n\t\t\t\t\tcreateTemplate={ createTemplate }\n\t\t\t\t\tonBack={ () =>\n\t\t\t\t\t\tsetModalContent( modalContentMap.templatesList )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Modal>\n\t);\n}\n\nfunction NewTemplate() {\n\tconst [ showModal, setShowModal ] = useState( false );\n\n\tconst { postType } = useSelect( ( select ) => {\n\t\tconst { getPostType } = select( coreStore );\n\n\t\treturn {\n\t\t\tpostType: getPostType( TEMPLATE_POST_TYPE ),\n\t\t};\n\t}, [] );\n\n\tif ( ! postType ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tonClick={ () => setShowModal( true ) }\n\t\t\t\tlabel={ postType.labels.add_new_item }\n\t\t\t\tsize=\"compact\"\n\t\t\t\t__next40pxDefaultSize\n\t\t\t>\n\t\t\t\t{ postType.labels.add_new_item }\n\t\t\t</Button>\n\t\t\t{ showModal && (\n\t\t\t\t<NewTemplateModal onClose={ () => setShowModal( false ) } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction useMissingTemplates( setEntityForSuggestions, onClick ) {\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\tconst existingTemplateSlugs = ( existingTemplates || [] ).map(\n\t\t( { slug } ) => slug\n\t);\n\tconst missingDefaultTemplates = ( defaultTemplateTypes || [] ).filter(\n\t\t( template ) =>\n\t\t\tDEFAULT_TEMPLATE_SLUGS.includes( template.slug ) &&\n\t\t\t! existingTemplateSlugs.includes( template.slug )\n\t);\n\tconst onClickMenuItem = ( _entityForSuggestions ) => {\n\t\tonClick?.();\n\t\tsetEntityForSuggestions( _entityForSuggestions );\n\t};\n\t// We need to replace existing default template types with\n\t// the create specific template functionality. The original\n\t// info (title, description, etc.) is preserved in the\n\t// used hooks.\n\tconst enhancedMissingDefaultTemplateTypes = [ ...missingDefaultTemplates ];\n\tconst { defaultTaxonomiesMenuItems, taxonomiesMenuItems } =\n\t\tuseTaxonomiesMenuItems( onClickMenuItem );\n\tconst { defaultPostTypesMenuItems, postTypesMenuItems } =\n\t\tusePostTypeMenuItems( onClickMenuItem );\n\n\tconst authorMenuItem = useAuthorMenuItem( onClickMenuItem );\n\t[\n\t\t...defaultTaxonomiesMenuItems,\n\t\t...defaultPostTypesMenuItems,\n\t\tauthorMenuItem,\n\t].forEach( ( menuItem ) => {\n\t\tif ( ! menuItem ) {\n\t\t\treturn;\n\t\t}\n\t\tconst matchIndex = enhancedMissingDefaultTemplateTypes.findIndex(\n\t\t\t( template ) => template.slug === menuItem.slug\n\t\t);\n\t\t// Some default template types might have been filtered above from\n\t\t// `missingDefaultTemplates` because they only check for the general\n\t\t// template. So here we either replace or append the item, augmented\n\t\t// with the check if it has available specific item to create a\n\t\t// template for.\n\t\tif ( matchIndex > -1 ) {\n\t\t\tenhancedMissingDefaultTemplateTypes[ matchIndex ] = menuItem;\n\t\t} else {\n\t\t\tenhancedMissingDefaultTemplateTypes.push( menuItem );\n\t\t}\n\t} );\n\t// Update the sort order to match the DEFAULT_TEMPLATE_SLUGS order.\n\tenhancedMissingDefaultTemplateTypes?.sort( ( template1, template2 ) => {\n\t\treturn (\n\t\t\tDEFAULT_TEMPLATE_SLUGS.indexOf( template1.slug ) -\n\t\t\tDEFAULT_TEMPLATE_SLUGS.indexOf( template2.slug )\n\t\t);\n\t} );\n\tconst missingTemplates = [\n\t\t...enhancedMissingDefaultTemplateTypes,\n\t\t...usePostTypeArchiveMenuItems(),\n\t\t...postTypesMenuItems,\n\t\t...taxonomiesMenuItems,\n\t];\n\treturn missingTemplates;\n}\n\nexport default memo( NewTemplate );\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["routerPrivateApis", "WCIcon", "VStack", "WCText", "coreStore", "noticesStore", "clsx", "Grid", "AddCustomTemplateModalContent", "AddCustomGenericTemplateModalContent"]
|
|
7
7
|
}
|
|
@@ -165,6 +165,7 @@ function usePostTypeArchiveMenuItems() {
|
|
|
165
165
|
}
|
|
166
166
|
var usePostTypeMenuItems = (onClickMenuItem) => {
|
|
167
167
|
const publicPostTypes = usePublicPostTypes();
|
|
168
|
+
const existingTemplates = useExistingTemplates();
|
|
168
169
|
const defaultTemplateTypes = useDefaultTemplateTypes();
|
|
169
170
|
const templateLabels = (0, import_element.useMemo)(
|
|
170
171
|
() => publicPostTypes?.reduce((accumulator, { labels }) => {
|
|
@@ -193,6 +194,9 @@ var usePostTypeMenuItems = (onClickMenuItem) => {
|
|
|
193
194
|
[publicPostTypes]
|
|
194
195
|
);
|
|
195
196
|
const postTypesInfo = useEntitiesInfo("postType", templatePrefixes);
|
|
197
|
+
const existingTemplateSlugs = (existingTemplates || []).map(
|
|
198
|
+
({ slug }) => slug
|
|
199
|
+
);
|
|
196
200
|
const menuItems = (publicPostTypes || []).reduce(
|
|
197
201
|
(accumulator, postType) => {
|
|
198
202
|
const { slug, labels, icon } = postType;
|
|
@@ -200,6 +204,7 @@ var usePostTypeMenuItems = (onClickMenuItem) => {
|
|
|
200
204
|
const defaultTemplateType = defaultTemplateTypes?.find(
|
|
201
205
|
({ slug: _slug }) => _slug === generalTemplateSlug
|
|
202
206
|
);
|
|
207
|
+
const hasGeneralTemplate = existingTemplateSlugs?.includes(generalTemplateSlug);
|
|
203
208
|
const _needsUniqueIdentifier = needsUniqueIdentifier(postType);
|
|
204
209
|
let menuItemTitle = labels.template_name || (0, import_i18n.sprintf)(
|
|
205
210
|
// translators: %s: Name of the post type e.g: "Post".
|
|
@@ -267,11 +272,12 @@ var usePostTypeMenuItems = (onClickMenuItem) => {
|
|
|
267
272
|
}
|
|
268
273
|
},
|
|
269
274
|
labels,
|
|
275
|
+
hasGeneralTemplate,
|
|
270
276
|
template
|
|
271
277
|
});
|
|
272
278
|
};
|
|
273
279
|
}
|
|
274
|
-
if (hasEntities) {
|
|
280
|
+
if (!hasGeneralTemplate || hasEntities) {
|
|
275
281
|
accumulator.push(menuItem);
|
|
276
282
|
}
|
|
277
283
|
return accumulator;
|
|
@@ -474,11 +480,7 @@ function useAuthorMenuItem(onClickMenuItem) {
|
|
|
474
480
|
suggestion.slug
|
|
475
481
|
);
|
|
476
482
|
return {
|
|
477
|
-
title:
|
|
478
|
-
// translators: %s: Name of the author e.g: "Admin".
|
|
479
|
-
(0, import_i18n.__)("Author: %s"),
|
|
480
|
-
suggestion.name
|
|
481
|
-
),
|
|
483
|
+
title: templateSlug,
|
|
482
484
|
slug: templateSlug,
|
|
483
485
|
templatePrefix: "author"
|
|
484
486
|
};
|
|
@@ -499,11 +501,74 @@ function useAuthorMenuItem(onClickMenuItem) {
|
|
|
499
501
|
return authorMenuItem;
|
|
500
502
|
}
|
|
501
503
|
}
|
|
504
|
+
var useExistingTemplateSlugs = (templatePrefixes) => {
|
|
505
|
+
const existingTemplates = useExistingTemplates();
|
|
506
|
+
const existingSlugs = (0, import_element.useMemo)(() => {
|
|
507
|
+
return Object.entries(templatePrefixes || {}).reduce(
|
|
508
|
+
(accumulator, [slug, prefix]) => {
|
|
509
|
+
const slugsWithTemplates = (existingTemplates || []).reduce(
|
|
510
|
+
(_accumulator, existingTemplate) => {
|
|
511
|
+
const _prefix = `${prefix}-`;
|
|
512
|
+
if (existingTemplate.slug.startsWith(_prefix)) {
|
|
513
|
+
_accumulator.push(
|
|
514
|
+
existingTemplate.slug.substring(
|
|
515
|
+
_prefix.length
|
|
516
|
+
)
|
|
517
|
+
);
|
|
518
|
+
}
|
|
519
|
+
return _accumulator;
|
|
520
|
+
},
|
|
521
|
+
[]
|
|
522
|
+
);
|
|
523
|
+
if (slugsWithTemplates.length) {
|
|
524
|
+
accumulator[slug] = slugsWithTemplates;
|
|
525
|
+
}
|
|
526
|
+
return accumulator;
|
|
527
|
+
},
|
|
528
|
+
{}
|
|
529
|
+
);
|
|
530
|
+
}, [templatePrefixes, existingTemplates]);
|
|
531
|
+
return existingSlugs;
|
|
532
|
+
};
|
|
533
|
+
var useTemplatesToExclude = (entityName, templatePrefixes, additionalQueryParameters = {}) => {
|
|
534
|
+
const slugsToExcludePerEntity = useExistingTemplateSlugs(templatePrefixes);
|
|
535
|
+
const recordsToExcludePerEntity = (0, import_data.useSelect)(
|
|
536
|
+
(select) => {
|
|
537
|
+
return Object.entries(slugsToExcludePerEntity || {}).reduce(
|
|
538
|
+
(accumulator, [slug, slugsWithTemplates]) => {
|
|
539
|
+
const entitiesWithTemplates = select(
|
|
540
|
+
import_core_data.store
|
|
541
|
+
).getEntityRecords(entityName, slug, {
|
|
542
|
+
_fields: "id",
|
|
543
|
+
context: "view",
|
|
544
|
+
slug: slugsWithTemplates,
|
|
545
|
+
...additionalQueryParameters[slug]
|
|
546
|
+
});
|
|
547
|
+
if (entitiesWithTemplates?.length) {
|
|
548
|
+
accumulator[slug] = entitiesWithTemplates;
|
|
549
|
+
}
|
|
550
|
+
return accumulator;
|
|
551
|
+
},
|
|
552
|
+
{}
|
|
553
|
+
);
|
|
554
|
+
},
|
|
555
|
+
[slugsToExcludePerEntity]
|
|
556
|
+
);
|
|
557
|
+
return recordsToExcludePerEntity;
|
|
558
|
+
};
|
|
502
559
|
var useEntitiesInfo = (entityName, templatePrefixes, additionalQueryParameters = EMPTY_OBJECT) => {
|
|
560
|
+
const recordsToExcludePerEntity = useTemplatesToExclude(
|
|
561
|
+
entityName,
|
|
562
|
+
templatePrefixes,
|
|
563
|
+
additionalQueryParameters
|
|
564
|
+
);
|
|
503
565
|
const entitiesHasRecords = (0, import_data.useSelect)(
|
|
504
566
|
(select) => {
|
|
505
567
|
return Object.keys(templatePrefixes || {}).reduce(
|
|
506
568
|
(accumulator, slug) => {
|
|
569
|
+
const existingEntitiesIds = recordsToExcludePerEntity?.[slug]?.map(
|
|
570
|
+
({ id }) => id
|
|
571
|
+
) || [];
|
|
507
572
|
const records = select(import_core_data.store).getEntityRecords(
|
|
508
573
|
entityName,
|
|
509
574
|
slug,
|
|
@@ -511,6 +576,7 @@ var useEntitiesInfo = (entityName, templatePrefixes, additionalQueryParameters =
|
|
|
511
576
|
per_page: 1,
|
|
512
577
|
_fields: "id",
|
|
513
578
|
context: "view",
|
|
579
|
+
exclude: existingEntitiesIds,
|
|
514
580
|
...additionalQueryParameters[slug]
|
|
515
581
|
}
|
|
516
582
|
);
|
|
@@ -520,19 +586,28 @@ var useEntitiesInfo = (entityName, templatePrefixes, additionalQueryParameters =
|
|
|
520
586
|
{}
|
|
521
587
|
);
|
|
522
588
|
},
|
|
523
|
-
[
|
|
589
|
+
[
|
|
590
|
+
templatePrefixes,
|
|
591
|
+
recordsToExcludePerEntity,
|
|
592
|
+
entityName,
|
|
593
|
+
additionalQueryParameters
|
|
594
|
+
]
|
|
524
595
|
);
|
|
525
596
|
const entitiesInfo = (0, import_element.useMemo)(() => {
|
|
526
597
|
return Object.keys(templatePrefixes || {}).reduce(
|
|
527
598
|
(accumulator, slug) => {
|
|
599
|
+
const existingEntitiesIds = recordsToExcludePerEntity?.[slug]?.map(
|
|
600
|
+
({ id }) => id
|
|
601
|
+
) || [];
|
|
528
602
|
accumulator[slug] = {
|
|
529
|
-
hasEntities: entitiesHasRecords[slug]
|
|
603
|
+
hasEntities: entitiesHasRecords[slug],
|
|
604
|
+
existingEntitiesIds
|
|
530
605
|
};
|
|
531
606
|
return accumulator;
|
|
532
607
|
},
|
|
533
608
|
{}
|
|
534
609
|
);
|
|
535
|
-
}, [templatePrefixes, entitiesHasRecords]);
|
|
610
|
+
}, [templatePrefixes, recordsToExcludePerEntity, entitiesHasRecords]);
|
|
536
611
|
return entitiesInfo;
|
|
537
612
|
};
|
|
538
613
|
// Annotate the CommonJS export names for ESM import in node:
|