@wordpress/edit-site 5.21.1-next.f8d8eceb.0 → 5.23.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 +4 -0
- package/build/components/actions/index.js +86 -4
- package/build/components/actions/index.js.map +1 -1
- package/build/components/add-new-template/new-template.js +0 -7
- package/build/components/add-new-template/new-template.js.map +1 -1
- package/build/components/block-editor/use-site-editor-settings.js +54 -63
- package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build/components/dataviews/add-filter.js +90 -0
- package/build/components/dataviews/add-filter.js.map +1 -0
- package/build/components/dataviews/dataviews.js +23 -4
- package/build/components/dataviews/dataviews.js.map +1 -1
- package/build/components/dataviews/filters.js +36 -32
- package/build/components/dataviews/filters.js.map +1 -1
- package/build/components/dataviews/in-filter.js +22 -20
- package/build/components/dataviews/in-filter.js.map +1 -1
- package/build/components/dataviews/index.js +9 -2
- package/build/components/dataviews/index.js.map +1 -1
- package/build/components/dataviews/item-actions.js +81 -13
- package/build/components/dataviews/item-actions.js.map +1 -1
- package/build/components/dataviews/pagination.js +3 -2
- package/build/components/dataviews/pagination.js.map +1 -1
- package/build/components/dataviews/reset-filters.js +33 -0
- package/build/components/dataviews/reset-filters.js.map +1 -0
- package/build/components/dataviews/search.js +1 -0
- package/build/components/dataviews/search.js.map +1 -1
- package/build/components/dataviews/view-actions.js +27 -10
- package/build/components/dataviews/view-actions.js.map +1 -1
- package/build/components/dataviews/view-list.js +126 -5
- package/build/components/dataviews/view-list.js.map +1 -1
- package/build/components/dataviews/view-side-by-side.js +20 -0
- package/build/components/dataviews/view-side-by-side.js.map +1 -0
- package/build/components/editor/index.js +53 -53
- package/build/components/editor/index.js.map +1 -1
- package/build/components/global-styles/screen-revisions/index.js +42 -21
- package/build/components/global-styles/screen-revisions/index.js.map +1 -1
- package/build/components/global-styles/screen-root.js +3 -3
- package/build/components/global-styles/screen-root.js.map +1 -1
- package/build/components/global-styles/ui.js +3 -3
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/global-styles-renderer/index.js +1 -1
- package/build/components/global-styles-renderer/index.js.map +1 -1
- package/build/components/header-edit-mode/document-tools/index.js +160 -0
- package/build/components/header-edit-mode/document-tools/index.js.map +1 -0
- package/build/components/header-edit-mode/index.js +48 -116
- package/build/components/header-edit-mode/index.js.map +1 -1
- package/build/components/header-edit-mode/more-menu/site-export.js +2 -6
- package/build/components/header-edit-mode/more-menu/site-export.js.map +1 -1
- package/build/components/layout/index.js +4 -19
- package/build/components/layout/index.js.map +1 -1
- package/build/components/list/added-by.js +1 -0
- package/build/components/list/added-by.js.map +1 -1
- package/build/components/page-content-focus-manager/back-to-page-notification.js +5 -10
- package/build/components/page-content-focus-manager/back-to-page-notification.js.map +1 -1
- package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js +36 -23
- package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
- package/build/components/page-main/index.js +2 -1
- package/build/components/page-main/index.js.map +1 -1
- package/build/components/page-pages/index.js +133 -78
- package/build/components/page-pages/index.js.map +1 -1
- package/build/components/page-pages/side-editor.js +25 -0
- package/build/components/page-pages/side-editor.js.map +1 -0
- package/build/components/page-patterns/grid-item.js +2 -2
- package/build/components/page-patterns/grid-item.js.map +1 -1
- package/build/components/page-patterns/patterns-list.js +3 -3
- package/build/components/page-patterns/patterns-list.js.map +1 -1
- package/build/components/page-patterns/rename-category-menu-item.js +27 -9
- package/build/components/page-patterns/rename-category-menu-item.js.map +1 -1
- package/build/components/page-patterns/use-patterns.js +1 -1
- package/build/components/page-patterns/use-patterns.js.map +1 -1
- package/build/components/page-templates/dataviews-templates.js +201 -0
- package/build/components/page-templates/dataviews-templates.js.map +1 -0
- package/build/components/page-templates/template-actions.js +168 -0
- package/build/components/page-templates/template-actions.js.map +1 -0
- package/build/components/save-button/index.js +4 -2
- package/build/components/save-button/index.js.map +1 -1
- package/build/components/sidebar/index.js +1 -2
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/sidebar-dataviews/add-new-view.js +124 -0
- package/build/components/sidebar-dataviews/add-new-view.js.map +1 -0
- package/build/components/sidebar-dataviews/custom-dataviews-list.js +189 -0
- package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -0
- package/build/components/sidebar-dataviews/dataview-item.js +71 -0
- package/build/components/sidebar-dataviews/dataview-item.js.map +1 -0
- package/build/components/sidebar-dataviews/default-views.js +60 -0
- package/build/components/sidebar-dataviews/default-views.js.map +1 -0
- package/build/components/sidebar-dataviews/index.js +22 -37
- package/build/components/sidebar-dataviews/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/default-sidebar.js +2 -6
- package/build/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/edit-template.js +11 -11
- package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/page-summary.js +2 -1
- package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +4 -12
- package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js +4 -12
- package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -1
- package/build/components/sidebar-edit-mode/plugin-sidebar/index.js +2 -6
- package/build/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/template-panel/hooks.js +3 -3
- package/build/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
- package/build/components/sidebar-navigation-screen-global-styles/index.js +1 -1
- package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js.map +1 -1
- package/build/components/sidebar-navigation-screen-page/page-details.js +4 -12
- package/build/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +1 -1
- package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
- package/build/components/site-hub/index.js +18 -6
- package/build/components/site-hub/index.js.map +1 -1
- package/build/components/start-template-options/index.js +12 -16
- package/build/components/start-template-options/index.js.map +1 -1
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +112 -49
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build/components/template-part-converter/convert-to-regular.js +1 -1
- package/build/components/template-part-converter/convert-to-regular.js.map +1 -1
- package/build/hooks/push-changes-to-global-styles/index.js +3 -1
- package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build/hooks/template-part-edit.js +6 -2
- package/build/hooks/template-part-edit.js.map +1 -1
- package/build/index.js +0 -3
- package/build/index.js.map +1 -1
- package/build/store/actions.js +35 -82
- package/build/store/actions.js.map +1 -1
- package/build/store/selectors.js +25 -63
- package/build/store/selectors.js.map +1 -1
- package/build/utils/constants.js +3 -3
- package/build/utils/constants.js.map +1 -1
- package/build/utils/use-activate-theme.js +8 -0
- package/build/utils/use-activate-theme.js.map +1 -1
- package/build-module/components/actions/index.js +85 -5
- package/build-module/components/actions/index.js.map +1 -1
- package/build-module/components/add-new-template/new-template.js +0 -7
- package/build-module/components/add-new-template/new-template.js.map +1 -1
- package/build-module/components/block-editor/use-site-editor-settings.js +54 -62
- package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build-module/components/dataviews/add-filter.js +83 -0
- package/build-module/components/dataviews/add-filter.js.map +1 -0
- package/build-module/components/dataviews/dataviews.js +22 -4
- package/build-module/components/dataviews/dataviews.js.map +1 -1
- package/build-module/components/dataviews/filters.js +34 -32
- package/build-module/components/dataviews/filters.js.map +1 -1
- package/build-module/components/dataviews/in-filter.js +20 -19
- package/build-module/components/dataviews/in-filter.js.map +1 -1
- package/build-module/components/dataviews/index.js +1 -1
- package/build-module/components/dataviews/index.js.map +1 -1
- package/build-module/components/dataviews/item-actions.js +84 -16
- package/build-module/components/dataviews/item-actions.js.map +1 -1
- package/build-module/components/dataviews/pagination.js +3 -2
- package/build-module/components/dataviews/pagination.js.map +1 -1
- package/build-module/components/dataviews/reset-filters.js +26 -0
- package/build-module/components/dataviews/reset-filters.js.map +1 -0
- package/build-module/components/dataviews/search.js +1 -0
- package/build-module/components/dataviews/search.js.map +1 -1
- package/build-module/components/dataviews/view-actions.js +28 -11
- package/build-module/components/dataviews/view-actions.js.map +1 -1
- package/build-module/components/dataviews/view-list.js +128 -7
- package/build-module/components/dataviews/view-list.js.map +1 -1
- package/build-module/components/dataviews/view-side-by-side.js +12 -0
- package/build-module/components/dataviews/view-side-by-side.js.map +1 -0
- package/build-module/components/editor/index.js +57 -57
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/index.js +42 -21
- package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
- package/build-module/components/global-styles/screen-root.js +3 -3
- package/build-module/components/global-styles/screen-root.js.map +1 -1
- package/build-module/components/global-styles/ui.js +3 -3
- package/build-module/components/global-styles/ui.js.map +1 -1
- package/build-module/components/global-styles-renderer/index.js +1 -1
- package/build-module/components/global-styles-renderer/index.js.map +1 -1
- package/build-module/components/header-edit-mode/document-tools/index.js +152 -0
- package/build-module/components/header-edit-mode/document-tools/index.js.map +1 -0
- package/build-module/components/header-edit-mode/index.js +52 -120
- package/build-module/components/header-edit-mode/index.js.map +1 -1
- package/build-module/components/header-edit-mode/more-menu/site-export.js +2 -6
- package/build-module/components/header-edit-mode/more-menu/site-export.js.map +1 -1
- package/build-module/components/layout/index.js +5 -20
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/list/added-by.js +1 -1
- package/build-module/components/list/added-by.js.map +1 -1
- package/build-module/components/page-content-focus-manager/back-to-page-notification.js +5 -10
- package/build-module/components/page-content-focus-manager/back-to-page-notification.js.map +1 -1
- package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js +36 -23
- package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
- package/build-module/components/page-main/index.js +2 -1
- package/build-module/components/page-main/index.js.map +1 -1
- package/build-module/components/page-pages/index.js +137 -80
- package/build-module/components/page-pages/index.js.map +1 -1
- package/build-module/components/page-pages/side-editor.js +17 -0
- package/build-module/components/page-pages/side-editor.js.map +1 -0
- package/build-module/components/page-patterns/grid-item.js +2 -2
- package/build-module/components/page-patterns/grid-item.js.map +1 -1
- package/build-module/components/page-patterns/patterns-list.js +4 -4
- package/build-module/components/page-patterns/patterns-list.js.map +1 -1
- package/build-module/components/page-patterns/rename-category-menu-item.js +25 -9
- package/build-module/components/page-patterns/rename-category-menu-item.js.map +1 -1
- package/build-module/components/page-patterns/use-patterns.js +2 -2
- package/build-module/components/page-patterns/use-patterns.js.map +1 -1
- package/build-module/components/page-templates/dataviews-templates.js +193 -0
- package/build-module/components/page-templates/dataviews-templates.js.map +1 -0
- package/build-module/components/page-templates/template-actions.js +157 -0
- package/build-module/components/page-templates/template-actions.js.map +1 -0
- 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/sidebar/index.js +1 -2
- package/build-module/components/sidebar/index.js.map +1 -1
- package/build-module/components/sidebar-dataviews/add-new-view.js +116 -0
- package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -0
- package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +180 -0
- package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -0
- package/build-module/components/sidebar-dataviews/dataview-item.js +63 -0
- package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -0
- package/build-module/components/sidebar-dataviews/default-views.js +52 -0
- package/build-module/components/sidebar-dataviews/default-views.js.map +1 -0
- package/build-module/components/sidebar-dataviews/index.js +23 -38
- package/build-module/components/sidebar-dataviews/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/default-sidebar.js +2 -6
- package/build-module/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +12 -12
- package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +3 -1
- package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +5 -13
- package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js +5 -13
- package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js +2 -6
- package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/template-panel/hooks.js +4 -4
- package/build-module/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-global-styles/index.js +1 -1
- package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-page/page-details.js +4 -12
- package/build-module/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +2 -2
- package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
- package/build-module/components/site-hub/index.js +19 -7
- package/build-module/components/site-hub/index.js.map +1 -1
- package/build-module/components/start-template-options/index.js +13 -16
- package/build-module/components/start-template-options/index.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +112 -50
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build-module/components/template-part-converter/convert-to-regular.js +1 -1
- package/build-module/components/template-part-converter/convert-to-regular.js.map +1 -1
- package/build-module/hooks/push-changes-to-global-styles/index.js +4 -2
- package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build-module/hooks/template-part-edit.js +6 -2
- package/build-module/hooks/template-part-edit.js.map +1 -1
- package/build-module/index.js +0 -3
- package/build-module/index.js.map +1 -1
- package/build-module/store/actions.js +33 -79
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/selectors.js +19 -58
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/constants.js +1 -1
- package/build-module/utils/constants.js.map +1 -1
- package/build-module/utils/use-activate-theme.js +8 -0
- package/build-module/utils/use-activate-theme.js.map +1 -1
- package/build-style/style-rtl.css +69 -119
- package/build-style/style.css +69 -119
- package/package.json +41 -41
- package/src/components/actions/index.js +113 -5
- package/src/components/add-new-template/new-template.js +0 -5
- package/src/components/block-editor/style.scss +0 -87
- package/src/components/block-editor/use-site-editor-settings.js +68 -89
- package/src/components/dataviews/README.md +77 -83
- package/src/components/dataviews/add-filter.js +111 -0
- package/src/components/dataviews/dataviews.js +20 -2
- package/src/components/dataviews/filters.js +56 -49
- package/src/components/dataviews/in-filter.js +35 -17
- package/src/components/dataviews/index.js +1 -1
- package/src/components/dataviews/item-actions.js +95 -20
- package/src/components/dataviews/pagination.js +5 -4
- package/src/components/dataviews/reset-filters.js +26 -0
- package/src/components/dataviews/search.js +1 -0
- package/src/components/dataviews/style.scss +5 -1
- package/src/components/dataviews/view-actions.js +39 -9
- package/src/components/dataviews/view-list.js +174 -3
- package/src/components/dataviews/view-side-by-side.js +9 -0
- package/src/components/editor/index.js +149 -121
- package/src/components/global-styles/screen-revisions/index.js +52 -25
- package/src/components/global-styles/screen-root.js +2 -1
- package/src/components/global-styles/ui.js +1 -1
- package/src/components/global-styles-renderer/index.js +1 -1
- package/src/components/header-edit-mode/document-tools/index.js +201 -0
- package/src/components/header-edit-mode/index.js +86 -184
- package/src/components/header-edit-mode/more-menu/site-export.js +2 -6
- package/src/components/header-edit-mode/style.scss +35 -2
- package/src/components/layout/index.js +4 -11
- package/src/components/layout/style.scss +6 -18
- package/src/components/list/added-by.js +1 -1
- package/src/components/page-content-focus-manager/back-to-page-notification.js +4 -15
- package/src/components/page-content-focus-manager/disable-non-page-content-blocks.js +38 -33
- package/src/components/page-main/index.js +6 -1
- package/src/components/page-pages/index.js +162 -81
- package/src/components/page-pages/side-editor.js +14 -0
- package/src/components/page-patterns/grid-item.js +3 -3
- package/src/components/page-patterns/patterns-list.js +10 -4
- package/src/components/page-patterns/rename-category-menu-item.js +29 -12
- package/src/components/page-patterns/use-patterns.js +3 -2
- package/src/components/page-templates/dataviews-templates.js +224 -0
- package/src/components/page-templates/template-actions.js +209 -0
- package/src/components/save-button/index.js +10 -5
- package/src/components/sidebar/index.js +1 -2
- package/src/components/sidebar-dataviews/add-new-view.js +141 -0
- package/src/components/sidebar-dataviews/custom-dataviews-list.js +227 -0
- package/src/components/sidebar-dataviews/dataview-item.js +67 -0
- package/src/components/sidebar-dataviews/default-views.js +54 -0
- package/src/components/sidebar-dataviews/index.js +36 -44
- package/src/components/sidebar-dataviews/style.scss +22 -0
- package/src/components/sidebar-edit-mode/default-sidebar.js +6 -6
- package/src/components/sidebar-edit-mode/page-panels/edit-template.js +14 -21
- package/src/components/sidebar-edit-mode/page-panels/page-summary.js +3 -0
- package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +10 -9
- package/src/components/sidebar-edit-mode/page-panels/style.scss +5 -0
- package/src/components/sidebar-edit-mode/page-panels/swap-template-button.js +10 -9
- package/src/components/sidebar-edit-mode/plugin-sidebar/index.js +6 -6
- package/src/components/sidebar-edit-mode/template-panel/hooks.js +11 -7
- package/src/components/sidebar-navigation-screen-global-styles/index.js +1 -1
- package/src/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js +1 -1
- package/src/components/sidebar-navigation-screen-page/page-details.js +7 -18
- package/src/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +2 -2
- package/src/components/site-hub/index.js +9 -8
- package/src/components/start-template-options/index.js +14 -12
- package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +117 -50
- package/src/components/template-part-converter/convert-to-regular.js +1 -1
- package/src/hooks/push-changes-to-global-styles/index.js +13 -6
- package/src/hooks/template-part-edit.js +4 -2
- package/src/index.js +0 -8
- package/src/store/actions.js +37 -95
- package/src/store/selectors.js +31 -91
- package/src/store/test/actions.js +11 -137
- package/src/store/test/selectors.js +0 -82
- package/src/style.scss +1 -0
- package/src/utils/constants.js +1 -1
- package/src/utils/use-activate-theme.js +5 -0
- package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js +0 -77
- package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +0 -1
- package/build/components/block-editor/block-editor-provider/index.js +0 -31
- package/build/components/block-editor/block-editor-provider/index.js.map +0 -1
- package/build/components/block-editor/block-editor-provider/navigation-block-editor-provider.js +0 -110
- package/build/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +0 -1
- package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js +0 -84
- package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +0 -1
- package/build/components/block-editor/index.js +0 -30
- package/build/components/block-editor/index.js.map +0 -1
- package/build/components/dataviews/context.js +0 -15
- package/build/components/dataviews/context.js.map +0 -1
- package/build/components/page-pages/default-views.js +0 -60
- package/build/components/page-pages/default-views.js.map +0 -1
- package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js +0 -69
- package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +0 -1
- package/build-module/components/block-editor/block-editor-provider/index.js +0 -23
- package/build-module/components/block-editor/block-editor-provider/index.js.map +0 -1
- package/build-module/components/block-editor/block-editor-provider/navigation-block-editor-provider.js +0 -102
- package/build-module/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +0 -1
- package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js +0 -78
- package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +0 -1
- package/build-module/components/block-editor/index.js +0 -22
- package/build-module/components/block-editor/index.js.map +0 -1
- package/build-module/components/dataviews/context.js +0 -7
- package/build-module/components/dataviews/context.js.map +0 -1
- package/build-module/components/page-pages/default-views.js +0 -53
- package/build-module/components/page-pages/default-views.js.map +0 -1
- package/src/components/block-editor/block-editor-provider/default-block-editor-provider.js +0 -75
- package/src/components/block-editor/block-editor-provider/index.js +0 -29
- package/src/components/block-editor/block-editor-provider/navigation-block-editor-provider.js +0 -114
- package/src/components/block-editor/block-editor-provider/test/use-page-content-blocks.js +0 -116
- package/src/components/block-editor/block-editor-provider/use-page-content-blocks.js +0 -90
- package/src/components/block-editor/index.js +0 -28
- package/src/components/dataviews/context.js +0 -7
- package/src/components/page-pages/default-views.js +0 -58
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { external, trash } from '@wordpress/icons';
|
|
4
|
+
import { external, trash, backup } from '@wordpress/icons';
|
|
5
5
|
import { addQueryArgs } from '@wordpress/url';
|
|
6
6
|
import { useDispatch } from '@wordpress/data';
|
|
7
7
|
import { decodeEntities } from '@wordpress/html-entities';
|
|
@@ -31,7 +31,7 @@ export function useTrashPostAction() {
|
|
|
31
31
|
isEligible( { status } ) {
|
|
32
32
|
return status !== 'trash';
|
|
33
33
|
},
|
|
34
|
-
async
|
|
34
|
+
async callback( post ) {
|
|
35
35
|
try {
|
|
36
36
|
await deleteEntityRecord(
|
|
37
37
|
'postType',
|
|
@@ -67,6 +67,114 @@ export function useTrashPostAction() {
|
|
|
67
67
|
);
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
+
export function usePermanentlyDeletePostAction() {
|
|
71
|
+
const { createSuccessNotice, createErrorNotice } =
|
|
72
|
+
useDispatch( noticesStore );
|
|
73
|
+
const { deleteEntityRecord } = useDispatch( coreStore );
|
|
74
|
+
|
|
75
|
+
return useMemo(
|
|
76
|
+
() => ( {
|
|
77
|
+
id: 'permanently-delete',
|
|
78
|
+
label: __( 'Permanently delete' ),
|
|
79
|
+
isPrimary: true,
|
|
80
|
+
icon: trash,
|
|
81
|
+
isEligible( { status } ) {
|
|
82
|
+
return status === 'trash';
|
|
83
|
+
},
|
|
84
|
+
async callback( post ) {
|
|
85
|
+
try {
|
|
86
|
+
await deleteEntityRecord(
|
|
87
|
+
'postType',
|
|
88
|
+
post.type,
|
|
89
|
+
post.id,
|
|
90
|
+
{ force: true },
|
|
91
|
+
{ throwOnError: true }
|
|
92
|
+
);
|
|
93
|
+
createSuccessNotice(
|
|
94
|
+
sprintf(
|
|
95
|
+
/* translators: The posts's title. */
|
|
96
|
+
__( '"%s" permanently deleted.' ),
|
|
97
|
+
decodeEntities( post.title.rendered )
|
|
98
|
+
),
|
|
99
|
+
{
|
|
100
|
+
type: 'snackbar',
|
|
101
|
+
id: 'edit-site-post-permanently-deleted',
|
|
102
|
+
}
|
|
103
|
+
);
|
|
104
|
+
} catch ( error ) {
|
|
105
|
+
const errorMessage =
|
|
106
|
+
error.message && error.code !== 'unknown_error'
|
|
107
|
+
? error.message
|
|
108
|
+
: __(
|
|
109
|
+
'An error occurred while permanently deleting the post.'
|
|
110
|
+
);
|
|
111
|
+
|
|
112
|
+
createErrorNotice( errorMessage, { type: 'snackbar' } );
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
} ),
|
|
116
|
+
[ createSuccessNotice, createErrorNotice, deleteEntityRecord ]
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export function useRestorePostAction() {
|
|
121
|
+
const { createSuccessNotice, createErrorNotice } =
|
|
122
|
+
useDispatch( noticesStore );
|
|
123
|
+
const { editEntityRecord, saveEditedEntityRecord } =
|
|
124
|
+
useDispatch( coreStore );
|
|
125
|
+
|
|
126
|
+
return useMemo(
|
|
127
|
+
() => ( {
|
|
128
|
+
id: 'restore',
|
|
129
|
+
label: __( 'Restore' ),
|
|
130
|
+
isPrimary: true,
|
|
131
|
+
icon: backup,
|
|
132
|
+
isEligible( { status } ) {
|
|
133
|
+
return status === 'trash';
|
|
134
|
+
},
|
|
135
|
+
async callback( post ) {
|
|
136
|
+
await editEntityRecord( 'postType', post.type, post.id, {
|
|
137
|
+
status: 'draft',
|
|
138
|
+
} );
|
|
139
|
+
try {
|
|
140
|
+
await saveEditedEntityRecord(
|
|
141
|
+
'postType',
|
|
142
|
+
post.type,
|
|
143
|
+
post.id,
|
|
144
|
+
{ throwOnError: true }
|
|
145
|
+
);
|
|
146
|
+
createSuccessNotice(
|
|
147
|
+
sprintf(
|
|
148
|
+
/* translators: The posts's title. */
|
|
149
|
+
__( '"%s" has been restored.' ),
|
|
150
|
+
decodeEntities( post.title.rendered )
|
|
151
|
+
),
|
|
152
|
+
{
|
|
153
|
+
type: 'snackbar',
|
|
154
|
+
id: 'edit-site-post-restored',
|
|
155
|
+
}
|
|
156
|
+
);
|
|
157
|
+
} catch ( error ) {
|
|
158
|
+
const errorMessage =
|
|
159
|
+
error.message && error.code !== 'unknown_error'
|
|
160
|
+
? error.message
|
|
161
|
+
: __(
|
|
162
|
+
'An error occurred while restoring the post.'
|
|
163
|
+
);
|
|
164
|
+
|
|
165
|
+
createErrorNotice( errorMessage, { type: 'snackbar' } );
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
} ),
|
|
169
|
+
[
|
|
170
|
+
createSuccessNotice,
|
|
171
|
+
createErrorNotice,
|
|
172
|
+
editEntityRecord,
|
|
173
|
+
saveEditedEntityRecord,
|
|
174
|
+
]
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
|
|
70
178
|
export const viewPostAction = {
|
|
71
179
|
id: 'view-post',
|
|
72
180
|
label: __( 'View' ),
|
|
@@ -75,7 +183,7 @@ export const viewPostAction = {
|
|
|
75
183
|
isEligible( post ) {
|
|
76
184
|
return post.status !== 'trash';
|
|
77
185
|
},
|
|
78
|
-
|
|
186
|
+
callback( post ) {
|
|
79
187
|
document.location.href = post.link;
|
|
80
188
|
},
|
|
81
189
|
};
|
|
@@ -89,7 +197,7 @@ export function useEditPostAction() {
|
|
|
89
197
|
isEligible( { status } ) {
|
|
90
198
|
return status !== 'trash';
|
|
91
199
|
},
|
|
92
|
-
|
|
200
|
+
callback( post ) {
|
|
93
201
|
history.push( {
|
|
94
202
|
postId: post.id,
|
|
95
203
|
postType: post.type,
|
|
@@ -114,7 +222,7 @@ export const postRevisionsAction = {
|
|
|
114
222
|
post?._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;
|
|
115
223
|
return lastRevisionId && revisionsCount > 1;
|
|
116
224
|
},
|
|
117
|
-
|
|
225
|
+
callback( post ) {
|
|
118
226
|
const href = addQueryArgs( 'revision.php', {
|
|
119
227
|
revision: post?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id,
|
|
120
228
|
} );
|
|
@@ -61,7 +61,6 @@ import {
|
|
|
61
61
|
} from './utils';
|
|
62
62
|
import AddCustomGenericTemplateModalContent from './add-custom-generic-template-modal-content';
|
|
63
63
|
import TemplateActionsLoadingScreen from './template-actions-loading-screen';
|
|
64
|
-
import { store as editSiteStore } from '../../store';
|
|
65
64
|
import { unlock } from '../../lock-unlock';
|
|
66
65
|
|
|
67
66
|
const { useHistory } = unlock( routerPrivateApis );
|
|
@@ -165,7 +164,6 @@ export default function NewTemplate( {
|
|
|
165
164
|
const { saveEntityRecord } = useDispatch( coreStore );
|
|
166
165
|
const { createErrorNotice, createSuccessNotice } =
|
|
167
166
|
useDispatch( noticesStore );
|
|
168
|
-
const { setTemplate } = unlock( useDispatch( editSiteStore ) );
|
|
169
167
|
|
|
170
168
|
const { homeUrl } = useSelect( ( select ) => {
|
|
171
169
|
const {
|
|
@@ -208,9 +206,6 @@ export default function NewTemplate( {
|
|
|
208
206
|
{ throwOnError: true }
|
|
209
207
|
);
|
|
210
208
|
|
|
211
|
-
// Set template before navigating away to avoid initial stale value.
|
|
212
|
-
setTemplate( newTemplate.id, newTemplate.slug );
|
|
213
|
-
|
|
214
209
|
// Navigate to the created template editor.
|
|
215
210
|
history.push( {
|
|
216
211
|
postId: newTemplate.id,
|
|
@@ -172,90 +172,3 @@
|
|
|
172
172
|
box-shadow: inset 0 0 0 2px var(--wp-admin-theme-color);
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
|
-
|
|
176
|
-
// Fixed contextual toolbar
|
|
177
|
-
@include editor-left(".edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed");
|
|
178
|
-
|
|
179
|
-
.edit-site-visual-editor .block-editor-block-contextual-toolbar.is-fixed {
|
|
180
|
-
position: sticky;
|
|
181
|
-
top: 0;
|
|
182
|
-
z-index: z-index(".block-editor-block-popover");
|
|
183
|
-
display: block;
|
|
184
|
-
width: 100%;
|
|
185
|
-
|
|
186
|
-
// on desktop and tablet viewports the toolbar is fixed
|
|
187
|
-
// on top of interface header
|
|
188
|
-
$toolbar-margin: $grid-unit-80 * 3 - 2 * $grid-unit + $grid-unit-05;
|
|
189
|
-
|
|
190
|
-
@include break-medium() {
|
|
191
|
-
// leave room for block inserter, undo and redo, list view
|
|
192
|
-
margin-left: $toolbar-margin;
|
|
193
|
-
// position on top of interface header
|
|
194
|
-
position: fixed;
|
|
195
|
-
top: $admin-bar-height;
|
|
196
|
-
// Don't fill up when empty
|
|
197
|
-
min-height: initial;
|
|
198
|
-
// has to be flex for collapse button to fit
|
|
199
|
-
display: flex;
|
|
200
|
-
|
|
201
|
-
// Mimic the height of the parent, vertically align center, and provide a max-height.
|
|
202
|
-
height: $header-height;
|
|
203
|
-
align-items: center;
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
// on tablet viewports the toolbar is fixed
|
|
207
|
-
// on top of interface header and covers the whole header
|
|
208
|
-
// except for the inserter on the left
|
|
209
|
-
width: calc(100% - #{$toolbar-margin});
|
|
210
|
-
|
|
211
|
-
&.is-collapsed {
|
|
212
|
-
width: initial;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
&:empty {
|
|
216
|
-
width: initial;
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
.is-fullscreen-mode & {
|
|
220
|
-
// leave room for block inserter, undo and redo, list view
|
|
221
|
-
// and some margin left
|
|
222
|
-
margin-left: $grid-unit-80 * 4 - 2 * $grid-unit;
|
|
223
|
-
|
|
224
|
-
top: 0;
|
|
225
|
-
|
|
226
|
-
&.is-collapsed {
|
|
227
|
-
width: initial;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
&:empty {
|
|
231
|
-
width: initial;
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
.show-icon-labels & {
|
|
236
|
-
margin-left: $grid-unit-80 + 2 * $grid-unit; // inserter and margin
|
|
237
|
-
width: calc(100% + 40px - #{$toolbar-margin}); //there are no undo, redo and list view buttons
|
|
238
|
-
|
|
239
|
-
.is-fullscreen-mode & {
|
|
240
|
-
margin-left: $grid-unit * 18; // site hub, inserter and margin
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
// on desktop viewports the toolbar is fixed
|
|
246
|
-
// on top of interface header and leaves room
|
|
247
|
-
// for the block inserter the publish button
|
|
248
|
-
@include break-large() {
|
|
249
|
-
width: auto;
|
|
250
|
-
.show-icon-labels & {
|
|
251
|
-
width: auto; //there are no undo, redo and list view buttons
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
.is-fullscreen-mode & {
|
|
255
|
-
// in full screen mode we need to account for
|
|
256
|
-
// the combined with of the tools at the right of the header and the margin left
|
|
257
|
-
// of the toolbar which includes four buttons
|
|
258
|
-
width: calc(100% - 280px - #{4 * $grid-unit-80});
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
}
|
|
@@ -4,12 +4,16 @@
|
|
|
4
4
|
import { useDispatch, useSelect } from '@wordpress/data';
|
|
5
5
|
import { useMemo } from '@wordpress/element';
|
|
6
6
|
import { store as coreStore } from '@wordpress/core-data';
|
|
7
|
+
import { privateApis as editorPrivateApis } from '@wordpress/editor';
|
|
8
|
+
import { store as preferencesStore } from '@wordpress/preferences';
|
|
9
|
+
|
|
7
10
|
/**
|
|
8
11
|
* Internal dependencies
|
|
9
12
|
*/
|
|
10
13
|
import { store as editSiteStore } from '../../store';
|
|
11
14
|
import { unlock } from '../../lock-unlock';
|
|
12
|
-
|
|
15
|
+
|
|
16
|
+
const { useBlockEditorSettings } = unlock( editorPrivateApis );
|
|
13
17
|
|
|
14
18
|
function useArchiveLabel( templateSlug ) {
|
|
15
19
|
const taxonomyMatches = templateSlug?.match(
|
|
@@ -83,42 +87,25 @@ function useArchiveLabel( templateSlug ) {
|
|
|
83
87
|
);
|
|
84
88
|
}
|
|
85
89
|
|
|
86
|
-
export
|
|
90
|
+
export function useSpecificEditorSettings() {
|
|
87
91
|
const { setIsInserterOpened } = useDispatch( editSiteStore );
|
|
88
|
-
const { storedSettings, canvasMode, templateType, siteSettings } =
|
|
89
|
-
useSelect(
|
|
90
|
-
( select ) => {
|
|
91
|
-
const { canUser, getEntityRecord } = select( coreStore );
|
|
92
|
-
const { getSettings, getCanvasMode, getEditedPostType } =
|
|
93
|
-
unlock( select( editSiteStore ) );
|
|
94
|
-
return {
|
|
95
|
-
storedSettings: getSettings( setIsInserterOpened ),
|
|
96
|
-
canvasMode: getCanvasMode(),
|
|
97
|
-
templateType: getEditedPostType(),
|
|
98
|
-
siteSettings: canUser( 'read', 'settings' )
|
|
99
|
-
? getEntityRecord( 'root', 'site' )
|
|
100
|
-
: undefined,
|
|
101
|
-
};
|
|
102
|
-
},
|
|
103
|
-
[ setIsInserterOpened ]
|
|
104
|
-
);
|
|
105
|
-
|
|
106
|
-
const settingsBlockPatterns =
|
|
107
|
-
storedSettings.__experimentalAdditionalBlockPatterns ?? // WP 6.0
|
|
108
|
-
storedSettings.__experimentalBlockPatterns; // WP 5.9
|
|
109
|
-
const settingsBlockPatternCategories =
|
|
110
|
-
storedSettings.__experimentalAdditionalBlockPatternCategories ?? // WP 6.0
|
|
111
|
-
storedSettings.__experimentalBlockPatternCategories; // WP 5.9
|
|
112
|
-
|
|
113
92
|
const {
|
|
114
|
-
restBlockPatterns,
|
|
115
|
-
restBlockPatternCategories,
|
|
116
93
|
templateSlug,
|
|
117
|
-
|
|
94
|
+
focusMode,
|
|
95
|
+
isDistractionFree,
|
|
96
|
+
hasFixedToolbar,
|
|
97
|
+
keepCaretInsideBlock,
|
|
98
|
+
canvasMode,
|
|
99
|
+
settings,
|
|
118
100
|
} = useSelect( ( select ) => {
|
|
119
|
-
const {
|
|
120
|
-
|
|
121
|
-
|
|
101
|
+
const {
|
|
102
|
+
getEditedPostType,
|
|
103
|
+
getEditedPostId,
|
|
104
|
+
getCanvasMode,
|
|
105
|
+
getSettings,
|
|
106
|
+
} = unlock( select( editSiteStore ) );
|
|
107
|
+
const { get: getPreference } = select( preferencesStore );
|
|
108
|
+
const { getEditedEntityRecord } = select( coreStore );
|
|
122
109
|
const usedPostType = getEditedPostType();
|
|
123
110
|
const usedPostId = getEditedPostId();
|
|
124
111
|
const _record = getEditedEntityRecord(
|
|
@@ -127,75 +114,67 @@ export default function useSiteEditorSettings() {
|
|
|
127
114
|
usedPostId
|
|
128
115
|
);
|
|
129
116
|
return {
|
|
130
|
-
restBlockPatterns: select( coreStore ).getBlockPatterns(),
|
|
131
|
-
restBlockPatternCategories:
|
|
132
|
-
select( coreStore ).getBlockPatternCategories(),
|
|
133
117
|
templateSlug: _record.slug,
|
|
134
|
-
|
|
118
|
+
focusMode: !! getPreference( 'core/edit-site', 'focusMode' ),
|
|
119
|
+
isDistractionFree: !! getPreference(
|
|
120
|
+
'core/edit-site',
|
|
121
|
+
'distractionFree'
|
|
122
|
+
),
|
|
123
|
+
hasFixedToolbar: !! getPreference(
|
|
124
|
+
'core/edit-site',
|
|
125
|
+
'fixedToolbar'
|
|
126
|
+
),
|
|
127
|
+
keepCaretInsideBlock: !! getPreference(
|
|
128
|
+
'core/edit-site',
|
|
129
|
+
'keepCaretInsideBlock'
|
|
130
|
+
),
|
|
131
|
+
canvasMode: getCanvasMode(),
|
|
132
|
+
settings: getSettings(),
|
|
135
133
|
};
|
|
136
134
|
}, [] );
|
|
137
135
|
const archiveLabels = useArchiveLabel( templateSlug );
|
|
138
136
|
|
|
139
|
-
const
|
|
140
|
-
() =>
|
|
141
|
-
[
|
|
142
|
-
...( settingsBlockPatterns || [] ),
|
|
143
|
-
...( restBlockPatterns || [] ),
|
|
144
|
-
]
|
|
145
|
-
.filter(
|
|
146
|
-
( x, index, arr ) =>
|
|
147
|
-
index === arr.findIndex( ( y ) => x.name === y.name )
|
|
148
|
-
)
|
|
149
|
-
.filter( ( { postTypes } ) => {
|
|
150
|
-
return (
|
|
151
|
-
! postTypes ||
|
|
152
|
-
( Array.isArray( postTypes ) &&
|
|
153
|
-
postTypes.includes( templateType ) )
|
|
154
|
-
);
|
|
155
|
-
} ),
|
|
156
|
-
[ settingsBlockPatterns, restBlockPatterns, templateType ]
|
|
157
|
-
);
|
|
158
|
-
|
|
159
|
-
const blockPatternCategories = useMemo(
|
|
160
|
-
() =>
|
|
161
|
-
[
|
|
162
|
-
...( settingsBlockPatternCategories || [] ),
|
|
163
|
-
...( restBlockPatternCategories || [] ),
|
|
164
|
-
].filter(
|
|
165
|
-
( x, index, arr ) =>
|
|
166
|
-
index === arr.findIndex( ( y ) => x.name === y.name )
|
|
167
|
-
),
|
|
168
|
-
[ settingsBlockPatternCategories, restBlockPatternCategories ]
|
|
169
|
-
);
|
|
170
|
-
return useMemo( () => {
|
|
171
|
-
const {
|
|
172
|
-
__experimentalAdditionalBlockPatterns,
|
|
173
|
-
__experimentalAdditionalBlockPatternCategories,
|
|
174
|
-
focusMode,
|
|
175
|
-
...restStoredSettings
|
|
176
|
-
} = storedSettings;
|
|
177
|
-
|
|
137
|
+
const defaultEditorSettings = useMemo( () => {
|
|
178
138
|
return {
|
|
179
|
-
...
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
__experimentalBlockPatternCategories: blockPatternCategories,
|
|
183
|
-
__experimentalUserPatternCategories: userPatternCategories,
|
|
139
|
+
...settings,
|
|
140
|
+
|
|
141
|
+
__experimentalSetIsInserterOpened: setIsInserterOpened,
|
|
184
142
|
focusMode: canvasMode === 'view' && focusMode ? false : focusMode,
|
|
143
|
+
isDistractionFree,
|
|
144
|
+
hasFixedToolbar,
|
|
145
|
+
keepCaretInsideBlock,
|
|
146
|
+
|
|
147
|
+
// I wonder if they should be set in the post editor too
|
|
185
148
|
__experimentalArchiveTitleTypeLabel: archiveLabels.archiveTypeLabel,
|
|
186
149
|
__experimentalArchiveTitleNameLabel: archiveLabels.archiveNameLabel,
|
|
187
|
-
pageOnFront: siteSettings?.page_on_front,
|
|
188
|
-
pageForPosts: siteSettings?.page_for_posts,
|
|
189
150
|
};
|
|
190
151
|
}, [
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
152
|
+
settings,
|
|
153
|
+
setIsInserterOpened,
|
|
154
|
+
focusMode,
|
|
155
|
+
isDistractionFree,
|
|
156
|
+
hasFixedToolbar,
|
|
157
|
+
keepCaretInsideBlock,
|
|
195
158
|
canvasMode,
|
|
196
159
|
archiveLabels.archiveTypeLabel,
|
|
197
160
|
archiveLabels.archiveNameLabel,
|
|
198
|
-
siteSettings?.page_on_front,
|
|
199
|
-
siteSettings?.page_for_posts,
|
|
200
161
|
] );
|
|
162
|
+
|
|
163
|
+
return defaultEditorSettings;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
export default function useSiteEditorSettings() {
|
|
167
|
+
const defaultEditorSettings = useSpecificEditorSettings();
|
|
168
|
+
const { postType, postId } = useSelect( ( select ) => {
|
|
169
|
+
const { getEditedPostType, getEditedPostId } = unlock(
|
|
170
|
+
select( editSiteStore )
|
|
171
|
+
);
|
|
172
|
+
const usedPostType = getEditedPostType();
|
|
173
|
+
const usedPostId = getEditedPostId();
|
|
174
|
+
return {
|
|
175
|
+
postType: usedPostType,
|
|
176
|
+
postId: usedPostId,
|
|
177
|
+
};
|
|
178
|
+
}, [] );
|
|
179
|
+
return useBlockEditorSettings( defaultEditorSettings, postType, postId );
|
|
201
180
|
}
|
|
@@ -5,7 +5,7 @@ This file documents the DataViews UI component, which provides an API to render
|
|
|
5
5
|
```js
|
|
6
6
|
<DataViews
|
|
7
7
|
data={ pages }
|
|
8
|
-
isLoading=
|
|
8
|
+
isLoading={ isLoadingPages }
|
|
9
9
|
view={ view }
|
|
10
10
|
onChangeView={ onChangeView }
|
|
11
11
|
fields={ fields }
|
|
@@ -16,7 +16,7 @@ This file documents the DataViews UI component, which provides an API to render
|
|
|
16
16
|
|
|
17
17
|
## Data
|
|
18
18
|
|
|
19
|
-
The dataset to work with, represented as a one-dimensional array.
|
|
19
|
+
The dataset to work with, represented as a one-dimensional array.
|
|
20
20
|
|
|
21
21
|
Example:
|
|
22
22
|
|
|
@@ -43,50 +43,73 @@ Example:
|
|
|
43
43
|
direction: 'desc',
|
|
44
44
|
},
|
|
45
45
|
search: '',
|
|
46
|
-
filters:
|
|
47
|
-
author: 2,
|
|
48
|
-
status: 'publish,
|
|
49
|
-
|
|
50
|
-
visibleFilters: [ 'author', 'status' ],
|
|
46
|
+
filters: [
|
|
47
|
+
{ field: 'author', operator: 'in', value: 2 },
|
|
48
|
+
{ field: 'status', operator: 'in', value: 'publish,draft' }
|
|
49
|
+
],
|
|
51
50
|
hiddenFields: [ 'date', 'featured-image' ],
|
|
52
51
|
layout: {},
|
|
53
52
|
}
|
|
54
53
|
```
|
|
55
54
|
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
55
|
+
- `type`: view type, one of `list` or `grid`.
|
|
56
|
+
- `perPage`: number of records to show per page.
|
|
57
|
+
- `page`: the page that is visible.
|
|
58
|
+
- `sort.field`: field used for sorting the dataset.
|
|
59
|
+
- `sort.direction`: the direction to use for sorting, one of `asc` or `desc`.
|
|
60
|
+
- `search`: the text search applied to the dataset.
|
|
61
|
+
- `filters`: the filters applied to the dataset. Each item describes:
|
|
62
|
+
- `field`: which field this filter is bound to.
|
|
63
|
+
- `operator`: which type of filter it is. Only `in` available at the moment.
|
|
64
|
+
- `value`: the actual value selected by the user.
|
|
65
|
+
- `hiddenFields`: the `id` of the fields that are hidden in the UI.
|
|
66
|
+
- `layout`: ...
|
|
66
67
|
|
|
67
|
-
|
|
68
|
+
### View <=> data
|
|
68
69
|
|
|
69
|
-
|
|
70
|
+
The view is a representation of the visible state of the dataset. Note, however, that it's the consumer's responsibility to work with the data provider to make sure the user options defined through the view's config (sort, pagination, filters, etc.) are respected.
|
|
71
|
+
|
|
72
|
+
The following example shows how a view object is used to query the WordPress REST API via the entities abstraction. The same can be done with any other data provider.
|
|
70
73
|
|
|
71
74
|
```js
|
|
72
|
-
function MyCustomPageList() {
|
|
75
|
+
function MyCustomPageList() {
|
|
73
76
|
const [ view, setView ] = useState( {
|
|
74
77
|
type: 'list',
|
|
78
|
+
perPage: 5,
|
|
75
79
|
page: 1,
|
|
76
|
-
|
|
80
|
+
sort: {
|
|
81
|
+
field: 'date',
|
|
82
|
+
direction: 'desc',
|
|
83
|
+
},
|
|
84
|
+
search: '',
|
|
85
|
+
filters: [
|
|
86
|
+
{ field: 'author', operator: 'in', value: 2 },
|
|
87
|
+
{ field: 'status', operator: 'in', value: 'publish,draft' }
|
|
88
|
+
],
|
|
89
|
+
hiddenFields: [ 'date', 'featured-image' ],
|
|
90
|
+
layout: {},
|
|
77
91
|
} );
|
|
78
92
|
|
|
79
|
-
const queryArgs = useMemo(
|
|
80
|
-
|
|
93
|
+
const queryArgs = useMemo( () => {
|
|
94
|
+
const filters = {};
|
|
95
|
+
view.filters.forEach( ( filter ) => {
|
|
96
|
+
if ( filter.field === 'status' && filter.operator === 'in' ) {
|
|
97
|
+
filters.status = filter.value;
|
|
98
|
+
}
|
|
99
|
+
if ( filter.field === 'author' && filter.operator === 'in' ) {
|
|
100
|
+
filters.author = filter.value;
|
|
101
|
+
}
|
|
102
|
+
} );
|
|
103
|
+
return {
|
|
81
104
|
per_page: view.perPage,
|
|
82
105
|
page: view.page,
|
|
106
|
+
_embed: 'author',
|
|
83
107
|
order: view.sort?.direction,
|
|
84
|
-
orderby: view.sort?.field
|
|
108
|
+
orderby: view.sort?.field,
|
|
85
109
|
search: view.search,
|
|
86
|
-
...
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
);
|
|
110
|
+
...filters,
|
|
111
|
+
};
|
|
112
|
+
}, [ view ] );
|
|
90
113
|
|
|
91
114
|
const {
|
|
92
115
|
records
|
|
@@ -119,7 +142,8 @@ Example:
|
|
|
119
142
|
return (
|
|
120
143
|
<time>{ getFormattedDate( item.date ) }</time>
|
|
121
144
|
);
|
|
122
|
-
}
|
|
145
|
+
},
|
|
146
|
+
enableHiding: false
|
|
123
147
|
},
|
|
124
148
|
{
|
|
125
149
|
id: 'author',
|
|
@@ -134,61 +158,31 @@ Example:
|
|
|
134
158
|
{ value: 1, label: 'Admin' }
|
|
135
159
|
{ value: 2, label: 'User' }
|
|
136
160
|
]
|
|
137
|
-
filters: [ '
|
|
161
|
+
filters: [ 'in' ],
|
|
162
|
+
enableSorting: false
|
|
138
163
|
}
|
|
139
164
|
]
|
|
140
165
|
```
|
|
141
166
|
|
|
142
|
-
-
|
|
143
|
-
-
|
|
144
|
-
-
|
|
145
|
-
-
|
|
146
|
-
-
|
|
147
|
-
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
A filter is an object that may contain the following properties:
|
|
167
|
-
|
|
168
|
-
- `id`: unique identifier for the filter. Matches the entity query param. Field filters may omit it, in which case the field's `id` will be used.
|
|
169
|
-
- `name`: nice looking name for the filter. Field filters may omit it, in which case the field's `header` will be used.
|
|
170
|
-
- `type`: the type of filter. Only `enumeration` is supported at the moment.
|
|
171
|
-
- `elements`: for filters of type `enumeration`, the list of options to show. A one-dimensional array of object with value/label keys, as in `[ { value: 1, label: "Value name" } ]`.
|
|
172
|
-
- `value`: what's serialized into the view's filters.
|
|
173
|
-
- `label`: nice-looking name for users.
|
|
174
|
-
- `resetValue`: for filters of type `enumeration`, this is the value for the reset option. If none is provided, `''` will be used.
|
|
175
|
-
- `resetLabel`: for filters of type `enumeration`, this is the label for the reset option. If none is provided, `All` will be used.
|
|
176
|
-
|
|
177
|
-
As a convenience, field's filter can provide abbreviated versions for the filter. All of following examples result in the same filter:
|
|
178
|
-
|
|
179
|
-
```js
|
|
180
|
-
const field = [
|
|
181
|
-
{
|
|
182
|
-
id: 'author',
|
|
183
|
-
header: __( 'Author' ),
|
|
184
|
-
elements: authors,
|
|
185
|
-
filters: [
|
|
186
|
-
'enumeration',
|
|
187
|
-
{ type: 'enumeration' },
|
|
188
|
-
{ id: 'author', type: 'enumeration' },
|
|
189
|
-
{ id: 'author', type: 'enumeration', name: __( 'Author' ) },
|
|
190
|
-
{ id: 'author', type: 'enumeration', name: __( 'Author' ), elements: authors },
|
|
191
|
-
],
|
|
192
|
-
}
|
|
193
|
-
];
|
|
194
|
-
```
|
|
167
|
+
- `id`: identifier for the field. Unique.
|
|
168
|
+
- `header`: the field's name to be shown in the UI.
|
|
169
|
+
- `getValue`: function that returns the value of the field.
|
|
170
|
+
- `render`: function that renders the field.
|
|
171
|
+
- `elements`: the set of valid values for the field's value.
|
|
172
|
+
- `filters`: what filter operators are available for the user to use over this field. Only `in` available at the moment.
|
|
173
|
+
- `enableSorting`: whether the data can be sorted by the given field. True by default.
|
|
174
|
+
- `enableHiding`: whether the field can be hidden. True by default.
|
|
175
|
+
|
|
176
|
+
## Actions
|
|
177
|
+
|
|
178
|
+
Array of operations that can be performed upon each record. Each action is an object with the following properties:
|
|
179
|
+
|
|
180
|
+
- `id`: string, required. Unique identifier of the action. For example, `move-to-trash`.
|
|
181
|
+
- `label`: string, required. User facing description of the action. For example, `Move to Trash`.
|
|
182
|
+
- `isPrimary`: boolean, optional. Whether the action should be listed inline (primary) or in hidden in the more actions menu (secondary).
|
|
183
|
+
- `icon`: icon to show for primary actions. It's required for a primary action, otherwise the action would be considered secondary.
|
|
184
|
+
- `isEligible`: function, optional. Whether the action can be performed for a given record. If not present, the action is considered to be eligible for all items. It takes the given record as input.
|
|
185
|
+
- `isDestructive`: boolean, optional. Whether the action can delete data, in which case the UI would communicate it via red color.
|
|
186
|
+
- `callback`: function, required. Callback function that takes the record as input and performs the required action.
|
|
187
|
+
- `RenderModal`: ReactElement, optional. If an action requires to render contents in a modal, can provide a component which takes as input the record and a `closeModal` function. If this prop is provided, the `callback` property would be ignored.
|
|
188
|
+
- `hideModalHeader`: boolean, optional. This property is used in combination with `RenderModal` and controls the visibility of the modal's header. If the action renders a modal and doesn't hide the header, the action's label is going to be used in the modal's header.
|