@wordpress/edit-site 5.26.0 → 5.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/components/actions/index.js +139 -36
- package/build/components/actions/index.js.map +1 -1
- package/build/components/editor-canvas-container/index.js +1 -1
- package/build/components/editor-canvas-container/index.js.map +1 -1
- package/build/components/global-styles/font-families.js +3 -2
- package/build/components/global-styles/font-families.js.map +1 -1
- package/build/components/global-styles/font-family-item.js +3 -4
- package/build/components/global-styles/font-family-item.js.map +1 -1
- package/build/components/global-styles/font-library-modal/context.js +80 -41
- package/build/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build/components/global-styles/font-library-modal/font-collection.js +49 -22
- package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build/components/global-styles/font-library-modal/fonts-grid.js +4 -1
- package/build/components/global-styles/font-library-modal/fonts-grid.js.map +1 -1
- package/build/components/global-styles/font-library-modal/index.js +4 -4
- package/build/components/global-styles/font-library-modal/index.js.map +1 -1
- package/build/components/global-styles/font-library-modal/installed-fonts.js +16 -8
- package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build/components/global-styles/font-library-modal/library-font-card.js +1 -1
- package/build/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
- package/build/components/global-styles/font-library-modal/library-font-variant.js +2 -2
- package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
- package/build/components/global-styles/font-library-modal/local-fonts.js +13 -4
- package/build/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
- package/build/components/global-styles/font-library-modal/resolvers.js +49 -20
- package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/filter-fonts.js +17 -2
- package/build/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/index.js +103 -17
- package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/preview-styles.js +4 -3
- package/build/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
- package/build/components/global-styles/screen-typography.js +4 -1
- package/build/components/global-styles/screen-typography.js.map +1 -1
- package/build/components/layout/hooks.js +6 -5
- package/build/components/layout/hooks.js.map +1 -1
- package/build/components/layout/index.js +19 -28
- package/build/components/layout/index.js.map +1 -1
- package/build/components/layout/router.js +135 -0
- package/build/components/layout/router.js.map +1 -0
- package/build/components/page-pages/index.js +92 -69
- package/build/components/page-pages/index.js.map +1 -1
- package/build/components/page-patterns/dataviews-pattern-actions.js +11 -6
- package/build/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
- package/build/components/page-patterns/index.js +295 -15
- package/build/components/page-patterns/index.js.map +1 -1
- package/build/components/{page-templates/template-actions.js → page-templates-template-parts/actions.js} +51 -23
- package/build/components/page-templates-template-parts/actions.js.map +1 -0
- package/build/components/page-templates-template-parts/add-new-template-part.js.map +1 -0
- package/build/components/page-templates-template-parts/index.js +395 -0
- package/build/components/page-templates-template-parts/index.js.map +1 -0
- package/build/components/preferences-modal/index.js +9 -134
- package/build/components/preferences-modal/index.js.map +1 -1
- package/build/components/revisions/index.js +1 -1
- package/build/components/revisions/index.js.map +1 -1
- package/build/components/save-button/index.js +4 -2
- package/build/components/save-button/index.js.map +1 -1
- package/build/components/save-panel/index.js +6 -5
- package/build/components/save-panel/index.js.map +1 -1
- package/build/components/sidebar/index.js +3 -1
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/sidebar-dataviews/dataview-item.js +3 -1
- package/build/components/sidebar-dataviews/dataview-item.js.map +1 -1
- package/build/components/sidebar-dataviews/default-views.js +4 -2
- package/build/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build/components/sidebar-dataviews/index.js +2 -2
- package/build/components/sidebar-dataviews/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen/index.js +8 -7
- package/build/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pages/index.js +2 -10
- package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pages-dataviews/index.js +26 -3
- package/build/components/sidebar-navigation-screen-pages-dataviews/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-templates/index.js +63 -8
- package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-templates-browse/content.js +76 -0
- package/build/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -0
- package/build/components/sidebar-navigation-screen-templates-browse/index.js +9 -2
- package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
- package/build/components/site-hub/index.js +3 -1
- package/build/components/site-hub/index.js.map +1 -1
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +47 -12
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build/components/sync-state-with-url/use-sync-path-with-url.js +25 -2
- package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
- package/build/hooks/commands/use-edit-mode-commands.js +33 -5
- package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
- package/build/hooks/push-changes-to-global-styles/index.js +13 -6
- package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build/hooks/template-part-edit.js +7 -6
- package/build/hooks/template-part-edit.js.map +1 -1
- package/build/index.js +1 -1
- package/build/index.js.map +1 -1
- package/build/store/actions.js +11 -29
- package/build/store/actions.js.map +1 -1
- package/build/store/private-actions.js +85 -1
- package/build/store/private-actions.js.map +1 -1
- package/build/store/selectors.js +2 -2
- package/build/store/selectors.js.map +1 -1
- package/build/utils/get-is-list-page.js +1 -1
- package/build/utils/get-is-list-page.js.map +1 -1
- package/build/utils/use-actual-current-theme.js +32 -0
- package/build/utils/use-actual-current-theme.js.map +1 -0
- package/build-module/components/actions/index.js +139 -36
- package/build-module/components/actions/index.js.map +1 -1
- package/build-module/components/editor-canvas-container/index.js +1 -1
- package/build-module/components/editor-canvas-container/index.js.map +1 -1
- package/build-module/components/global-styles/font-families.js +3 -2
- package/build-module/components/global-styles/font-families.js.map +1 -1
- package/build-module/components/global-styles/font-family-item.js +4 -5
- package/build-module/components/global-styles/font-family-item.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/context.js +82 -42
- package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/font-collection.js +49 -22
- package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/fonts-grid.js +4 -1
- package/build-module/components/global-styles/font-library-modal/fonts-grid.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/index.js +4 -4
- package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js +16 -8
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/library-font-card.js +1 -1
- package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/library-font-variant.js +2 -2
- package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/local-fonts.js +13 -4
- package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/resolvers.js +45 -18
- package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js +17 -2
- package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/index.js +99 -16
- package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js +4 -3
- package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
- package/build-module/components/global-styles/screen-typography.js +4 -1
- package/build-module/components/global-styles/screen-typography.js.map +1 -1
- package/build-module/components/layout/hooks.js +6 -5
- package/build-module/components/layout/hooks.js.map +1 -1
- package/build-module/components/layout/index.js +19 -28
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/layout/router.js +127 -0
- package/build-module/components/layout/router.js.map +1 -0
- package/build-module/components/page-pages/index.js +91 -70
- package/build-module/components/page-pages/index.js.map +1 -1
- package/build-module/components/page-patterns/dataviews-pattern-actions.js +11 -6
- package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
- package/build-module/components/page-patterns/index.js +296 -16
- package/build-module/components/page-patterns/index.js.map +1 -1
- package/build-module/components/{page-templates/template-actions.js → page-templates-template-parts/actions.js} +52 -24
- package/build-module/components/page-templates-template-parts/actions.js.map +1 -0
- package/build-module/components/page-templates-template-parts/add-new-template-part.js.map +1 -0
- package/build-module/components/page-templates-template-parts/index.js +385 -0
- package/build-module/components/page-templates-template-parts/index.js.map +1 -0
- package/build-module/components/preferences-modal/index.js +12 -136
- package/build-module/components/preferences-modal/index.js.map +1 -1
- package/build-module/components/revisions/index.js +1 -1
- package/build-module/components/revisions/index.js.map +1 -1
- package/build-module/components/save-button/index.js +4 -2
- package/build-module/components/save-button/index.js.map +1 -1
- package/build-module/components/save-panel/index.js +7 -6
- package/build-module/components/save-panel/index.js.map +1 -1
- package/build-module/components/sidebar/index.js +3 -1
- package/build-module/components/sidebar/index.js.map +1 -1
- package/build-module/components/sidebar-dataviews/dataview-item.js +3 -1
- package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -1
- package/build-module/components/sidebar-dataviews/default-views.js +4 -2
- package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build-module/components/sidebar-dataviews/index.js +2 -2
- package/build-module/components/sidebar-dataviews/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen/index.js +8 -7
- package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pages/index.js +2 -10
- package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js +27 -4
- package/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-templates/index.js +64 -9
- package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-templates-browse/content.js +68 -0
- package/build-module/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -0
- package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +9 -2
- package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
- package/build-module/components/site-hub/index.js +3 -1
- package/build-module/components/site-hub/index.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +47 -11
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +25 -2
- package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
- package/build-module/hooks/commands/use-edit-mode-commands.js +33 -5
- package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
- package/build-module/hooks/push-changes-to-global-styles/index.js +13 -6
- package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build-module/hooks/template-part-edit.js +7 -6
- package/build-module/hooks/template-part-edit.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/store/actions.js +13 -30
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +83 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/selectors.js +2 -2
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/get-is-list-page.js +1 -1
- package/build-module/utils/get-is-list-page.js.map +1 -1
- package/build-module/utils/use-actual-current-theme.js +24 -0
- package/build-module/utils/use-actual-current-theme.js.map +1 -0
- package/build-style/style-rtl.css +302 -188
- package/build-style/style.css +302 -188
- package/package.json +42 -42
- package/src/components/actions/index.js +236 -84
- package/src/components/editor-canvas-container/index.js +1 -1
- package/src/components/global-styles/font-families.js +14 -8
- package/src/components/global-styles/font-family-item.js +7 -4
- package/src/components/global-styles/font-library-modal/context.js +156 -50
- package/src/components/global-styles/font-library-modal/font-collection.js +56 -21
- package/src/components/global-styles/font-library-modal/fonts-grid.js +6 -2
- package/src/components/global-styles/font-library-modal/index.js +4 -4
- package/src/components/global-styles/font-library-modal/installed-fonts.js +18 -8
- package/src/components/global-styles/font-library-modal/library-font-card.js +2 -1
- package/src/components/global-styles/font-library-modal/library-font-variant.js +10 -9
- package/src/components/global-styles/font-library-modal/local-fonts.js +14 -4
- package/src/components/global-styles/font-library-modal/resolvers.js +50 -17
- package/src/components/global-styles/font-library-modal/style.scss +1 -0
- package/src/components/global-styles/font-library-modal/utils/filter-fonts.js +19 -2
- package/src/components/global-styles/font-library-modal/utils/index.js +136 -29
- package/src/components/global-styles/font-library-modal/utils/preview-styles.js +7 -3
- package/src/components/global-styles/font-library-modal/utils/test/filter-fonts.spec.js +40 -10
- package/src/components/global-styles/font-library-modal/utils/test/preview-styles.spec.js +5 -5
- package/src/components/global-styles/screen-typography.js +9 -3
- package/src/components/global-styles/style.scss +4 -0
- package/src/components/header-edit-mode/style.scss +15 -5
- package/src/components/layout/hooks.js +6 -5
- package/src/components/layout/index.js +80 -96
- package/src/components/layout/router.js +121 -0
- package/src/components/layout/style.scss +13 -16
- package/src/components/page/style.scss +1 -8
- package/src/components/page-pages/index.js +142 -148
- package/src/components/page-pages/style.scss +41 -2
- package/src/components/page-patterns/dataviews-pattern-actions.js +11 -6
- package/src/components/page-patterns/index.js +392 -14
- package/src/components/page-patterns/style.scss +36 -2
- package/src/components/{page-templates/template-actions.js → page-templates-template-parts/actions.js} +90 -37
- package/src/components/{page-templates → page-templates-template-parts}/index.js +198 -169
- package/src/components/page-templates-template-parts/style.scss +44 -0
- package/src/components/preferences-modal/index.js +8 -211
- package/src/components/revisions/index.js +1 -1
- package/src/components/save-button/index.js +7 -4
- package/src/components/save-panel/index.js +13 -12
- package/src/components/sidebar/index.js +4 -5
- package/src/components/sidebar-dataviews/dataview-item.js +2 -1
- package/src/components/sidebar-dataviews/default-views.js +4 -2
- package/src/components/sidebar-dataviews/index.js +8 -6
- package/src/components/sidebar-navigation-item/style.scss +1 -1
- package/src/components/sidebar-navigation-screen/index.js +19 -10
- package/src/components/sidebar-navigation-screen-pages/index.js +2 -10
- package/src/components/sidebar-navigation-screen-pages-dataviews/index.js +32 -6
- package/src/components/sidebar-navigation-screen-templates/index.js +85 -28
- package/src/components/sidebar-navigation-screen-templates/style.scss +9 -0
- package/src/components/sidebar-navigation-screen-templates-browse/content.js +73 -0
- package/src/components/sidebar-navigation-screen-templates-browse/index.js +10 -1
- package/src/components/site-hub/index.js +4 -1
- package/src/components/site-hub/style.scss +1 -12
- package/src/components/site-icon/style.scss +1 -1
- package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +40 -10
- package/src/components/sync-state-with-url/use-sync-path-with-url.js +32 -0
- package/src/hooks/commands/use-edit-mode-commands.js +50 -3
- package/src/hooks/push-changes-to-global-styles/index.js +29 -23
- package/src/hooks/template-part-edit.js +12 -12
- package/src/index.js +1 -1
- package/src/store/actions.js +17 -51
- package/src/store/private-actions.js +133 -0
- package/src/store/selectors.js +2 -4
- package/src/style.scss +2 -1
- package/src/utils/get-is-list-page.js +3 -2
- package/src/utils/use-actual-current-theme.js +27 -0
- package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +0 -58
- package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +0 -1
- package/build/components/global-styles/font-library-modal/utils/get-notice-from-response.js +0 -71
- package/build/components/global-styles/font-library-modal/utils/get-notice-from-response.js.map +0 -1
- package/build/components/page-main/index.js +0 -44
- package/build/components/page-main/index.js.map +0 -1
- package/build/components/page-patterns/dataviews-patterns.js +0 -307
- package/build/components/page-patterns/dataviews-patterns.js.map +0 -1
- package/build/components/page-template-parts/add-new-template-part.js.map +0 -1
- package/build/components/page-template-parts/index.js +0 -81
- package/build/components/page-template-parts/index.js.map +0 -1
- package/build/components/page-templates/index.js +0 -352
- package/build/components/page-templates/index.js.map +0 -1
- package/build/components/page-templates/template-actions.js.map +0 -1
- package/build/components/post-preview/index.js +0 -29
- package/build/components/post-preview/index.js.map +0 -1
- package/build/components/preferences-modal/enable-feature.js +0 -36
- package/build/components/preferences-modal/enable-feature.js.map +0 -1
- package/build/components/preferences-modal/enable-panel-option.js +0 -33
- package/build/components/preferences-modal/enable-panel-option.js.map +0 -1
- package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +0 -52
- package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +0 -1
- package/build-module/components/global-styles/font-library-modal/utils/get-notice-from-response.js +0 -63
- package/build-module/components/global-styles/font-library-modal/utils/get-notice-from-response.js.map +0 -1
- package/build-module/components/page-main/index.js +0 -36
- package/build-module/components/page-main/index.js.map +0 -1
- package/build-module/components/page-patterns/dataviews-patterns.js +0 -299
- package/build-module/components/page-patterns/dataviews-patterns.js.map +0 -1
- package/build-module/components/page-template-parts/add-new-template-part.js.map +0 -1
- package/build-module/components/page-template-parts/index.js +0 -73
- package/build-module/components/page-template-parts/index.js.map +0 -1
- package/build-module/components/page-templates/index.js +0 -344
- package/build-module/components/page-templates/index.js.map +0 -1
- package/build-module/components/page-templates/template-actions.js.map +0 -1
- package/build-module/components/post-preview/index.js +0 -21
- package/build-module/components/post-preview/index.js.map +0 -1
- package/build-module/components/preferences-modal/enable-feature.js +0 -29
- package/build-module/components/preferences-modal/enable-feature.js.map +0 -1
- package/build-module/components/preferences-modal/enable-panel-option.js +0 -26
- package/build-module/components/preferences-modal/enable-panel-option.js.map +0 -1
- package/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +0 -58
- package/src/components/global-styles/font-library-modal/utils/get-notice-from-response.js +0 -62
- package/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js +0 -271
- package/src/components/global-styles/font-library-modal/utils/test/makeFormDataFromFontFamily.spec.js +0 -58
- package/src/components/page-main/index.js +0 -38
- package/src/components/page-patterns/dataviews-patterns.js +0 -380
- package/src/components/page-template-parts/index.js +0 -99
- package/src/components/page-templates/style.scss +0 -13
- package/src/components/post-preview/index.js +0 -16
- package/src/components/preferences-modal/enable-feature.js +0 -31
- package/src/components/preferences-modal/enable-panel-option.js +0 -23
- /package/build/components/{page-template-parts → page-templates-template-parts}/add-new-template-part.js +0 -0
- /package/build-module/components/{page-template-parts → page-templates-template-parts}/add-new-template-part.js +0 -0
- /package/src/components/{page-template-parts → page-templates-template-parts}/add-new-template-part.js +0 -0
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
__experimentalView as View,
|
|
6
|
-
__experimentalVStack as VStack,
|
|
7
|
-
Button,
|
|
8
|
-
} from '@wordpress/components';
|
|
4
|
+
import { Button } from '@wordpress/components';
|
|
9
5
|
import { __ } from '@wordpress/i18n';
|
|
10
6
|
import { useEntityRecords, store as coreStore } from '@wordpress/core-data';
|
|
11
7
|
import { decodeEntities } from '@wordpress/html-entities';
|
|
@@ -14,13 +10,12 @@ import { dateI18n, getDate, getSettings } from '@wordpress/date';
|
|
|
14
10
|
import { privateApis as routerPrivateApis } from '@wordpress/router';
|
|
15
11
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
16
12
|
import { DataViews } from '@wordpress/dataviews';
|
|
17
|
-
import { ENTER, SPACE } from '@wordpress/keycodes';
|
|
18
13
|
|
|
19
14
|
/**
|
|
20
15
|
* Internal dependencies
|
|
21
16
|
*/
|
|
22
17
|
import Page from '../page';
|
|
23
|
-
import Link from '../routes/link';
|
|
18
|
+
import { default as Link, useLink } from '../routes/link';
|
|
24
19
|
import {
|
|
25
20
|
DEFAULT_VIEWS,
|
|
26
21
|
DEFAULT_CONFIG_PER_VIEW_TYPE,
|
|
@@ -42,21 +37,35 @@ import {
|
|
|
42
37
|
viewPostAction,
|
|
43
38
|
useEditPostAction,
|
|
44
39
|
} from '../actions';
|
|
45
|
-
import PostPreview from '../post-preview';
|
|
46
40
|
import AddNewPageModal from '../add-new-page';
|
|
47
41
|
import Media from '../media';
|
|
48
42
|
import { unlock } from '../../lock-unlock';
|
|
43
|
+
|
|
49
44
|
const { useLocation, useHistory } = unlock( routerPrivateApis );
|
|
50
45
|
|
|
51
46
|
const EMPTY_ARRAY = [];
|
|
47
|
+
const SUPPORTED_LAYOUTS = window?.__experimentalAdminViews
|
|
48
|
+
? [ LAYOUT_GRID, LAYOUT_TABLE, LAYOUT_LIST ]
|
|
49
|
+
: [ LAYOUT_GRID, LAYOUT_TABLE ];
|
|
52
50
|
|
|
53
|
-
function useView(
|
|
54
|
-
const {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const selectedDefaultView =
|
|
58
|
-
|
|
59
|
-
|
|
51
|
+
function useView( postType ) {
|
|
52
|
+
const { params } = useLocation();
|
|
53
|
+
const { activeView = 'all', isCustom = 'false', layout } = params;
|
|
54
|
+
const history = useHistory();
|
|
55
|
+
const selectedDefaultView = useMemo( () => {
|
|
56
|
+
const defaultView =
|
|
57
|
+
isCustom === 'false' &&
|
|
58
|
+
DEFAULT_VIEWS[ postType ].find(
|
|
59
|
+
( { slug } ) => slug === activeView
|
|
60
|
+
)?.view;
|
|
61
|
+
if ( isCustom === 'false' && layout ) {
|
|
62
|
+
return {
|
|
63
|
+
...defaultView,
|
|
64
|
+
type: layout,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return defaultView;
|
|
68
|
+
}, [ isCustom, activeView, layout, postType ] );
|
|
60
69
|
const [ view, setView ] = useState( selectedDefaultView );
|
|
61
70
|
|
|
62
71
|
useEffect( () => {
|
|
@@ -82,10 +91,21 @@ function useView( type ) {
|
|
|
82
91
|
const { editEntityRecord } = useDispatch( coreStore );
|
|
83
92
|
|
|
84
93
|
const customView = useMemo( () => {
|
|
85
|
-
|
|
86
|
-
editedViewRecord?.content &&
|
|
87
|
-
|
|
94
|
+
const storedView =
|
|
95
|
+
editedViewRecord?.content &&
|
|
96
|
+
JSON.parse( editedViewRecord?.content );
|
|
97
|
+
if ( ! storedView ) {
|
|
98
|
+
return storedView;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return {
|
|
102
|
+
...storedView,
|
|
103
|
+
layout: {
|
|
104
|
+
...( DEFAULT_CONFIG_PER_VIEW_TYPE[ storedView?.type ] || {} ),
|
|
105
|
+
},
|
|
106
|
+
};
|
|
88
107
|
}, [ editedViewRecord?.content ] );
|
|
108
|
+
|
|
89
109
|
const setCustomView = useCallback(
|
|
90
110
|
( viewToSet ) => {
|
|
91
111
|
editEntityRecord(
|
|
@@ -100,13 +120,26 @@ function useView( type ) {
|
|
|
100
120
|
[ editEntityRecord, editedViewRecord?.id ]
|
|
101
121
|
);
|
|
102
122
|
|
|
123
|
+
const setDefaultViewAndUpdateUrl = useCallback(
|
|
124
|
+
( viewToSet ) => {
|
|
125
|
+
if ( viewToSet.type !== view?.type ) {
|
|
126
|
+
history.push( {
|
|
127
|
+
...params,
|
|
128
|
+
layout: viewToSet.type,
|
|
129
|
+
} );
|
|
130
|
+
}
|
|
131
|
+
setView( viewToSet );
|
|
132
|
+
},
|
|
133
|
+
[ params, view?.type, history ]
|
|
134
|
+
);
|
|
135
|
+
|
|
103
136
|
if ( isCustom === 'false' ) {
|
|
104
|
-
return [ view,
|
|
137
|
+
return [ view, setDefaultViewAndUpdateUrl ];
|
|
105
138
|
} else if ( isCustom === 'true' && customView ) {
|
|
106
139
|
return [ customView, setCustomView ];
|
|
107
140
|
}
|
|
108
141
|
// Loading state where no the view was not found on custom views or default views.
|
|
109
|
-
return [ DEFAULT_VIEWS[
|
|
142
|
+
return [ DEFAULT_VIEWS[ postType ][ 0 ].view, setDefaultViewAndUpdateUrl ];
|
|
110
143
|
}
|
|
111
144
|
|
|
112
145
|
// See https://github.com/WordPress/gutenberg/issues/55886
|
|
@@ -121,27 +154,59 @@ const STATUSES = [
|
|
|
121
154
|
];
|
|
122
155
|
const DEFAULT_STATUSES = 'draft,future,pending,private,publish'; // All but 'trash'.
|
|
123
156
|
|
|
157
|
+
function FeaturedImage( { item, viewType } ) {
|
|
158
|
+
const { onClick } = useLink( {
|
|
159
|
+
postId: item.id,
|
|
160
|
+
postType: item.type,
|
|
161
|
+
canvas: 'edit',
|
|
162
|
+
} );
|
|
163
|
+
const hasMedia = !! item.featured_media;
|
|
164
|
+
return (
|
|
165
|
+
<span
|
|
166
|
+
className={ {
|
|
167
|
+
'edit-site-page-pages__media-wrapper':
|
|
168
|
+
viewType === LAYOUT_TABLE,
|
|
169
|
+
} }
|
|
170
|
+
>
|
|
171
|
+
<button
|
|
172
|
+
className="page-pages-preview-field__button"
|
|
173
|
+
type="button"
|
|
174
|
+
onClick={ onClick }
|
|
175
|
+
aria-label={ item.title?.rendered || __( '(no title)' ) }
|
|
176
|
+
>
|
|
177
|
+
{ hasMedia && (
|
|
178
|
+
<Media
|
|
179
|
+
className="edit-site-page-pages__featured-image"
|
|
180
|
+
id={ item.featured_media }
|
|
181
|
+
size={
|
|
182
|
+
viewType === LAYOUT_GRID
|
|
183
|
+
? [ 'large', 'full', 'medium', 'thumbnail' ]
|
|
184
|
+
: [ 'thumbnail', 'medium', 'large', 'full' ]
|
|
185
|
+
}
|
|
186
|
+
/>
|
|
187
|
+
) }
|
|
188
|
+
</button>
|
|
189
|
+
</span>
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
|
|
124
193
|
export default function PagePages() {
|
|
125
194
|
const postType = 'page';
|
|
126
195
|
const [ view, setView ] = useView( postType );
|
|
127
|
-
const [ pageId, setPageId ] = useState( null );
|
|
128
196
|
const history = useHistory();
|
|
197
|
+
const { params } = useLocation();
|
|
198
|
+
const { isCustom = 'false' } = params;
|
|
129
199
|
|
|
130
200
|
const onSelectionChange = useCallback(
|
|
131
|
-
( items ) => setPageId( items?.length === 1 ? items[ 0 ].id : null ),
|
|
132
|
-
[ setPageId ]
|
|
133
|
-
);
|
|
134
|
-
|
|
135
|
-
const onDetailsChange = useCallback(
|
|
136
201
|
( items ) => {
|
|
137
|
-
if (
|
|
202
|
+
if ( isCustom === 'false' && view?.type === LAYOUT_LIST ) {
|
|
138
203
|
history.push( {
|
|
139
|
-
|
|
140
|
-
|
|
204
|
+
...params,
|
|
205
|
+
postId: items.length === 1 ? items[ 0 ].id : undefined,
|
|
141
206
|
} );
|
|
142
207
|
}
|
|
143
208
|
},
|
|
144
|
-
[ history,
|
|
209
|
+
[ history, params, view?.type, isCustom ]
|
|
145
210
|
);
|
|
146
211
|
|
|
147
212
|
const queryArgs = useMemo( () => {
|
|
@@ -205,18 +270,9 @@ export default function PagePages() {
|
|
|
205
270
|
id: 'featured-image',
|
|
206
271
|
header: __( 'Featured Image' ),
|
|
207
272
|
getValue: ( { item } ) => item.featured_media,
|
|
208
|
-
render: ( { item } ) =>
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
className="edit-site-page-pages__featured-image"
|
|
212
|
-
id={ item.featured_media }
|
|
213
|
-
size={
|
|
214
|
-
view.type === LAYOUT_GRID
|
|
215
|
-
? [ 'large', 'full', 'medium', 'thumbnail' ]
|
|
216
|
-
: [ 'thumbnail', 'medium', 'large', 'full' ]
|
|
217
|
-
}
|
|
218
|
-
/>
|
|
219
|
-
) : null,
|
|
273
|
+
render: ( { item } ) => (
|
|
274
|
+
<FeaturedImage item={ item } viewType={ view.type } />
|
|
275
|
+
),
|
|
220
276
|
enableSorting: false,
|
|
221
277
|
},
|
|
222
278
|
{
|
|
@@ -224,32 +280,22 @@ export default function PagePages() {
|
|
|
224
280
|
id: 'title',
|
|
225
281
|
getValue: ( { item } ) => item.title?.rendered,
|
|
226
282
|
render: ( { item } ) => {
|
|
227
|
-
return (
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
{ decodeEntities(
|
|
244
|
-
item.title?.rendered
|
|
245
|
-
) || __( '(no title)' ) }
|
|
246
|
-
</Link>
|
|
247
|
-
) : (
|
|
248
|
-
decodeEntities( item.title?.rendered ) ||
|
|
249
|
-
__( '(no title)' )
|
|
250
|
-
) }
|
|
251
|
-
</View>
|
|
252
|
-
</VStack>
|
|
283
|
+
return [ LAYOUT_TABLE, LAYOUT_GRID ].includes(
|
|
284
|
+
view.type
|
|
285
|
+
) ? (
|
|
286
|
+
<Link
|
|
287
|
+
params={ {
|
|
288
|
+
postId: item.id,
|
|
289
|
+
postType: item.type,
|
|
290
|
+
canvas: 'edit',
|
|
291
|
+
} }
|
|
292
|
+
>
|
|
293
|
+
{ decodeEntities( item.title?.rendered ) ||
|
|
294
|
+
__( '(no title)' ) }
|
|
295
|
+
</Link>
|
|
296
|
+
) : (
|
|
297
|
+
decodeEntities( item.title?.rendered ) ||
|
|
298
|
+
__( '(no title)' )
|
|
253
299
|
);
|
|
254
300
|
},
|
|
255
301
|
maxWidth: 400,
|
|
@@ -350,85 +396,33 @@ export default function PagePages() {
|
|
|
350
396
|
|
|
351
397
|
// TODO: we need to handle properly `data={ data || EMPTY_ARRAY }` for when `isLoading`.
|
|
352
398
|
return (
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
view={ view }
|
|
382
|
-
onChangeView={ onChangeView }
|
|
383
|
-
onSelectionChange={ onSelectionChange }
|
|
384
|
-
onDetailsChange={ onDetailsChange }
|
|
385
|
-
/>
|
|
386
|
-
</Page>
|
|
387
|
-
{ view.type === LAYOUT_LIST && (
|
|
388
|
-
<Page>
|
|
389
|
-
<div
|
|
390
|
-
className="edit-site-page-pages-preview"
|
|
391
|
-
tabIndex={ 0 }
|
|
392
|
-
role="button"
|
|
393
|
-
onKeyDown={ ( event ) => {
|
|
394
|
-
const { keyCode } = event;
|
|
395
|
-
if ( keyCode === ENTER || keyCode === SPACE ) {
|
|
396
|
-
history.push( {
|
|
397
|
-
postId: pageId,
|
|
398
|
-
postType,
|
|
399
|
-
canvas: 'edit',
|
|
400
|
-
} );
|
|
401
|
-
}
|
|
402
|
-
} }
|
|
403
|
-
onClick={ () =>
|
|
404
|
-
history.push( {
|
|
405
|
-
postId: pageId,
|
|
406
|
-
postType,
|
|
407
|
-
canvas: 'edit',
|
|
408
|
-
} )
|
|
409
|
-
}
|
|
410
|
-
>
|
|
411
|
-
{ pageId !== null ? (
|
|
412
|
-
<PostPreview
|
|
413
|
-
postId={ pageId }
|
|
414
|
-
postType={ postType }
|
|
415
|
-
/>
|
|
416
|
-
) : (
|
|
417
|
-
<div
|
|
418
|
-
style={ {
|
|
419
|
-
display: 'flex',
|
|
420
|
-
flexDirection: 'column',
|
|
421
|
-
justifyContent: 'center',
|
|
422
|
-
textAlign: 'center',
|
|
423
|
-
height: '100%',
|
|
424
|
-
} }
|
|
425
|
-
>
|
|
426
|
-
<p>{ __( 'Select a page to preview' ) }</p>
|
|
427
|
-
</div>
|
|
428
|
-
) }
|
|
429
|
-
</div>
|
|
430
|
-
</Page>
|
|
431
|
-
) }
|
|
432
|
-
</>
|
|
399
|
+
<Page
|
|
400
|
+
title={ __( 'Pages' ) }
|
|
401
|
+
actions={
|
|
402
|
+
<>
|
|
403
|
+
<Button variant="primary" onClick={ openModal }>
|
|
404
|
+
{ __( 'Add new page' ) }
|
|
405
|
+
</Button>
|
|
406
|
+
{ showAddPageModal && (
|
|
407
|
+
<AddNewPageModal
|
|
408
|
+
onSave={ handleNewPage }
|
|
409
|
+
onClose={ closeModal }
|
|
410
|
+
/>
|
|
411
|
+
) }
|
|
412
|
+
</>
|
|
413
|
+
}
|
|
414
|
+
>
|
|
415
|
+
<DataViews
|
|
416
|
+
paginationInfo={ paginationInfo }
|
|
417
|
+
fields={ fields }
|
|
418
|
+
actions={ actions }
|
|
419
|
+
data={ pages || EMPTY_ARRAY }
|
|
420
|
+
isLoading={ isLoadingPages || isLoadingAuthors }
|
|
421
|
+
view={ view }
|
|
422
|
+
onChangeView={ onChangeView }
|
|
423
|
+
onSelectionChange={ onSelectionChange }
|
|
424
|
+
supportedLayouts={ SUPPORTED_LAYOUTS }
|
|
425
|
+
/>
|
|
426
|
+
</Page>
|
|
433
427
|
);
|
|
434
428
|
}
|
|
@@ -1,6 +1,45 @@
|
|
|
1
|
-
.edit-site-page-
|
|
2
|
-
border-radius: $grid-unit-05;
|
|
1
|
+
.edit-site-page-pages__media-wrapper {
|
|
3
2
|
width: $grid-unit-50;
|
|
4
3
|
height: $grid-unit-50;
|
|
5
4
|
display: block;
|
|
5
|
+
border-radius: $grid-unit-05;
|
|
6
|
+
position: relative;
|
|
7
|
+
background-color: $gray-100;
|
|
8
|
+
overflow: hidden;
|
|
9
|
+
|
|
10
|
+
.edit-site-page-pages__featured-image {
|
|
11
|
+
height: 100%;
|
|
12
|
+
object-fit: cover;
|
|
13
|
+
width: 100%;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
&::after {
|
|
17
|
+
border-radius: 4px;
|
|
18
|
+
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
|
|
19
|
+
content: "";
|
|
20
|
+
height: 100%;
|
|
21
|
+
left: 0;
|
|
22
|
+
position: absolute;
|
|
23
|
+
top: 0;
|
|
24
|
+
width: 100%;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.page-pages-preview-field__button {
|
|
29
|
+
box-shadow: none;
|
|
30
|
+
border: none;
|
|
31
|
+
padding: 0;
|
|
32
|
+
background-color: unset;
|
|
33
|
+
box-sizing: border-box;
|
|
34
|
+
cursor: pointer;
|
|
35
|
+
overflow: hidden;
|
|
36
|
+
height: 100%;
|
|
37
|
+
width: 100%;
|
|
38
|
+
border-radius: 3px 3px 0 0;
|
|
39
|
+
|
|
40
|
+
&:focus-visible {
|
|
41
|
+
box-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
|
|
42
|
+
// Windows High Contrast mode will show this outline, but not the box-shadow.
|
|
43
|
+
outline: 2px solid transparent;
|
|
44
|
+
}
|
|
6
45
|
}
|
|
@@ -45,7 +45,7 @@ export const exportJSONaction = {
|
|
|
45
45
|
id: 'export-pattern',
|
|
46
46
|
label: __( 'Export as JSON' ),
|
|
47
47
|
isEligible: ( item ) => item.type === PATTERN_TYPES.user,
|
|
48
|
-
callback: ( item ) => {
|
|
48
|
+
callback: ( [ item ] ) => {
|
|
49
49
|
const json = {
|
|
50
50
|
__file: item.type,
|
|
51
51
|
title: item.title || item.name,
|
|
@@ -71,7 +71,8 @@ export const renameAction = {
|
|
|
71
71
|
const hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;
|
|
72
72
|
return isCustomPattern && ! hasThemeFile;
|
|
73
73
|
},
|
|
74
|
-
RenderModal: ( {
|
|
74
|
+
RenderModal: ( { items, closeModal } ) => {
|
|
75
|
+
const [ item ] = items;
|
|
75
76
|
const [ title, setTitle ] = useState( () => item.title );
|
|
76
77
|
const { editEntityRecord, saveEditedEntityRecord } =
|
|
77
78
|
useDispatch( coreStore );
|
|
@@ -160,7 +161,8 @@ export const deleteAction = {
|
|
|
160
161
|
return canDeleteOrReset( item ) && ! hasThemeFile;
|
|
161
162
|
},
|
|
162
163
|
hideModalHeader: true,
|
|
163
|
-
RenderModal: ( {
|
|
164
|
+
RenderModal: ( { items, closeModal } ) => {
|
|
165
|
+
const [ item ] = items;
|
|
164
166
|
const { __experimentalDeleteReusableBlock } =
|
|
165
167
|
useDispatch( reusableBlocksStore );
|
|
166
168
|
const { createErrorNotice, createSuccessNotice } =
|
|
@@ -224,7 +226,8 @@ export const resetAction = {
|
|
|
224
226
|
return canDeleteOrReset( item ) && hasThemeFile;
|
|
225
227
|
},
|
|
226
228
|
hideModalHeader: true,
|
|
227
|
-
RenderModal: ( {
|
|
229
|
+
RenderModal: ( { items, closeModal } ) => {
|
|
230
|
+
const [ item ] = items;
|
|
228
231
|
const { removeTemplate } = useDispatch( editSiteStore );
|
|
229
232
|
return (
|
|
230
233
|
<VStack spacing="5">
|
|
@@ -254,7 +257,8 @@ export const duplicatePatternAction = {
|
|
|
254
257
|
label: _x( 'Duplicate', 'action label' ),
|
|
255
258
|
isEligible: ( item ) => item.type !== TEMPLATE_PART_POST_TYPE,
|
|
256
259
|
modalHeader: _x( 'Duplicate pattern', 'action label' ),
|
|
257
|
-
RenderModal: ( {
|
|
260
|
+
RenderModal: ( { items, closeModal } ) => {
|
|
261
|
+
const [ item ] = items;
|
|
258
262
|
const { categoryId = PATTERN_DEFAULT_CATEGORY } = getQueryArgs(
|
|
259
263
|
window.location.href
|
|
260
264
|
);
|
|
@@ -288,7 +292,8 @@ export const duplicateTemplatePartAction = {
|
|
|
288
292
|
label: _x( 'Duplicate', 'action label' ),
|
|
289
293
|
isEligible: ( item ) => item.type === TEMPLATE_PART_POST_TYPE,
|
|
290
294
|
modalHeader: _x( 'Duplicate template part', 'action label' ),
|
|
291
|
-
RenderModal: ( {
|
|
295
|
+
RenderModal: ( { items, closeModal } ) => {
|
|
296
|
+
const [ item ] = items;
|
|
292
297
|
const { createSuccessNotice } = useDispatch( noticesStore );
|
|
293
298
|
const { categoryId = PATTERN_DEFAULT_CATEGORY } = getQueryArgs(
|
|
294
299
|
window.location.href
|