@wordpress/edit-site 5.22.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 +2 -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/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/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 +21 -38
- 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 +3 -11
- 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-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/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/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 +22 -39
- 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 +3 -11
- 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-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/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/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 -45
- 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 +4 -17
- 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/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/page-pages/default-views.js +0 -62
- 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/page-pages/default-views.js +0 -55
- 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/page-pages/default-views.js +0 -60
|
@@ -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.
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import {
|
|
5
|
+
privateApis as componentsPrivateApis,
|
|
6
|
+
Button,
|
|
7
|
+
Icon,
|
|
8
|
+
} from '@wordpress/components';
|
|
9
|
+
import { chevronRightSmall, plus } from '@wordpress/icons';
|
|
10
|
+
import { __ } from '@wordpress/i18n';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Internal dependencies
|
|
14
|
+
*/
|
|
15
|
+
import { unlock } from '../../lock-unlock';
|
|
16
|
+
import { OPERATOR_IN } from './in-filter';
|
|
17
|
+
|
|
18
|
+
const {
|
|
19
|
+
DropdownMenuV2,
|
|
20
|
+
DropdownSubMenuV2,
|
|
21
|
+
DropdownSubMenuTriggerV2,
|
|
22
|
+
DropdownMenuItemV2,
|
|
23
|
+
} = unlock( componentsPrivateApis );
|
|
24
|
+
|
|
25
|
+
const VALID_OPERATORS = [ OPERATOR_IN ];
|
|
26
|
+
|
|
27
|
+
export default function AddFilter( { fields, view, onChangeView } ) {
|
|
28
|
+
const filters = [];
|
|
29
|
+
fields.forEach( ( field ) => {
|
|
30
|
+
if ( ! field.filters ) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
field.filters.forEach( ( filter ) => {
|
|
35
|
+
if ( VALID_OPERATORS.some( ( operator ) => operator === filter ) ) {
|
|
36
|
+
filters.push( {
|
|
37
|
+
field: field.id,
|
|
38
|
+
name: field.header,
|
|
39
|
+
operator: filter,
|
|
40
|
+
elements: field.elements || [],
|
|
41
|
+
isVisible: view.filters.some(
|
|
42
|
+
( f ) => f.field === field.id && f.operator === filter
|
|
43
|
+
),
|
|
44
|
+
} );
|
|
45
|
+
}
|
|
46
|
+
} );
|
|
47
|
+
} );
|
|
48
|
+
|
|
49
|
+
if ( filters.length === 0 ) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return (
|
|
54
|
+
<DropdownMenuV2
|
|
55
|
+
label={ __( 'Add filter' ) }
|
|
56
|
+
trigger={
|
|
57
|
+
<Button
|
|
58
|
+
disabled={ filters.length === view.filters?.length }
|
|
59
|
+
__experimentalIsFocusable
|
|
60
|
+
icon={ plus }
|
|
61
|
+
variant="tertiary"
|
|
62
|
+
size="compact"
|
|
63
|
+
>
|
|
64
|
+
{ __( 'Add filter' ) }
|
|
65
|
+
</Button>
|
|
66
|
+
}
|
|
67
|
+
>
|
|
68
|
+
{ filters.map( ( filter ) => {
|
|
69
|
+
if ( filter.isVisible ) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return (
|
|
74
|
+
<DropdownSubMenuV2
|
|
75
|
+
key={ filter.field }
|
|
76
|
+
trigger={
|
|
77
|
+
<DropdownSubMenuTriggerV2
|
|
78
|
+
suffix={ <Icon icon={ chevronRightSmall } /> }
|
|
79
|
+
>
|
|
80
|
+
{ filter.name }
|
|
81
|
+
</DropdownSubMenuTriggerV2>
|
|
82
|
+
}
|
|
83
|
+
>
|
|
84
|
+
{ filter.elements.map( ( element ) => (
|
|
85
|
+
<DropdownMenuItemV2
|
|
86
|
+
key={ element.value }
|
|
87
|
+
onSelect={ () => {
|
|
88
|
+
onChangeView( ( currentView ) => ( {
|
|
89
|
+
...currentView,
|
|
90
|
+
page: 1,
|
|
91
|
+
filters: [
|
|
92
|
+
...currentView.filters,
|
|
93
|
+
{
|
|
94
|
+
field: filter.field,
|
|
95
|
+
operator: 'in',
|
|
96
|
+
value: element.value,
|
|
97
|
+
},
|
|
98
|
+
],
|
|
99
|
+
} ) );
|
|
100
|
+
} }
|
|
101
|
+
role="menuitemcheckbox"
|
|
102
|
+
>
|
|
103
|
+
{ element.label }
|
|
104
|
+
</DropdownMenuItemV2>
|
|
105
|
+
) ) }
|
|
106
|
+
</DropdownSubMenuV2>
|
|
107
|
+
);
|
|
108
|
+
} ) }
|
|
109
|
+
</DropdownMenuV2>
|
|
110
|
+
);
|
|
111
|
+
}
|
|
@@ -16,6 +16,22 @@ import ViewActions from './view-actions';
|
|
|
16
16
|
import Filters from './filters';
|
|
17
17
|
import Search from './search';
|
|
18
18
|
import { ViewGrid } from './view-grid';
|
|
19
|
+
import { ViewSideBySide } from './view-side-by-side';
|
|
20
|
+
|
|
21
|
+
// To do: convert to view type registry.
|
|
22
|
+
export const viewTypeSupportsMap = {
|
|
23
|
+
list: {},
|
|
24
|
+
grid: {},
|
|
25
|
+
'side-by-side': {
|
|
26
|
+
preview: true,
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const viewTypeMap = {
|
|
31
|
+
list: ViewList,
|
|
32
|
+
grid: ViewGrid,
|
|
33
|
+
'side-by-side': ViewSideBySide,
|
|
34
|
+
};
|
|
19
35
|
|
|
20
36
|
export default function DataViews( {
|
|
21
37
|
view,
|
|
@@ -27,8 +43,9 @@ export default function DataViews( {
|
|
|
27
43
|
data,
|
|
28
44
|
isLoading = false,
|
|
29
45
|
paginationInfo,
|
|
46
|
+
supportedLayouts,
|
|
30
47
|
} ) {
|
|
31
|
-
const ViewComponent = view.type
|
|
48
|
+
const ViewComponent = viewTypeMap[ view.type ];
|
|
32
49
|
const _fields = useMemo( () => {
|
|
33
50
|
return fields.map( ( field ) => ( {
|
|
34
51
|
...field,
|
|
@@ -53,11 +70,12 @@ export default function DataViews( {
|
|
|
53
70
|
onChangeView={ onChangeView }
|
|
54
71
|
/>
|
|
55
72
|
</HStack>
|
|
56
|
-
<HStack justify="end">
|
|
73
|
+
<HStack justify="end" expanded={ false }>
|
|
57
74
|
<ViewActions
|
|
58
75
|
fields={ fields }
|
|
59
76
|
view={ view }
|
|
60
77
|
onChangeView={ onChangeView }
|
|
78
|
+
supportedLayouts={ supportedLayouts }
|
|
61
79
|
/>
|
|
62
80
|
</HStack>
|
|
63
81
|
</HStack>
|