@wordpress/edit-site 5.23.0 → 5.24.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 +56 -38
- package/build/components/actions/index.js.map +1 -1
- package/build/components/block-editor/site-editor-canvas.js +7 -2
- package/build/components/block-editor/site-editor-canvas.js.map +1 -1
- package/build/components/dataviews/add-filter.js +21 -20
- package/build/components/dataviews/add-filter.js.map +1 -1
- package/build/components/dataviews/constants.js +14 -0
- package/build/components/dataviews/constants.js.map +1 -0
- package/build/components/dataviews/dataviews.js +9 -7
- package/build/components/dataviews/dataviews.js.map +1 -1
- package/build/components/dataviews/filter-summary.js +62 -0
- package/build/components/dataviews/filter-summary.js.map +1 -0
- package/build/components/dataviews/filters.js +15 -30
- package/build/components/dataviews/filters.js.map +1 -1
- package/build/components/dataviews/item-actions.js +84 -30
- package/build/components/dataviews/item-actions.js.map +1 -1
- package/build/components/dataviews/pagination.js +4 -0
- package/build/components/dataviews/pagination.js.map +1 -1
- package/build/components/dataviews/view-actions.js +24 -24
- package/build/components/dataviews/view-actions.js.map +1 -1
- package/build/components/dataviews/view-grid.js +48 -25
- package/build/components/dataviews/view-grid.js.map +1 -1
- package/build/components/dataviews/view-list.js +28 -33
- package/build/components/dataviews/view-list.js.map +1 -1
- package/build/components/editor/index.js +23 -27
- package/build/components/editor/index.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
- package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/index.js +15 -2
- package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
- package/build/components/global-styles/header.js +4 -2
- package/build/components/global-styles/header.js.map +1 -1
- package/build/components/global-styles/screen-block-list.js +22 -16
- package/build/components/global-styles/screen-block-list.js.map +1 -1
- package/build/components/global-styles/screen-revisions/index.js +26 -5
- package/build/components/global-styles/screen-revisions/index.js.map +1 -1
- package/build/components/global-styles/screen-revisions/revisions-buttons.js +52 -24
- package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
- package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +9 -3
- package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
- package/build/components/global-styles/ui.js +28 -36
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/header-edit-mode/document-actions/index.js +21 -16
- package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
- package/build/components/header-edit-mode/index.js +2 -1
- package/build/components/header-edit-mode/index.js.map +1 -1
- package/build/components/header-edit-mode/more-menu/index.js +1 -1
- package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
- package/build/components/list/added-by.js +43 -54
- package/build/components/list/added-by.js.map +1 -1
- package/build/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +9 -8
- package/build/components/page-content-focus-notifications/back-to-page-notification.js.map +1 -0
- package/build/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
- package/build/components/page-content-focus-notifications/edit-template-notification.js.map +1 -0
- package/build/components/page-content-focus-notifications/index.js +22 -0
- package/build/components/page-content-focus-notifications/index.js.map +1 -0
- package/build/components/page-pages/index.js +9 -15
- package/build/components/page-pages/index.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 +166 -51
- package/build/components/page-templates/dataviews-templates.js.map +1 -1
- package/build/components/preferences-modal/index.js +1 -1
- package/build/components/preferences-modal/index.js.map +1 -1
- package/build/components/save-button/index.js +9 -6
- package/build/components/save-button/index.js.map +1 -1
- package/build/components/save-hub/index.js +14 -0
- package/build/components/save-hub/index.js.map +1 -1
- package/build/components/sidebar-dataviews/custom-dataviews-list.js +3 -1
- package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
- package/build/components/sidebar-dataviews/default-views.js +7 -2
- package/build/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build/components/sidebar-edit-mode/index.js +6 -5
- package/build/components/sidebar-edit-mode/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/edit-template.js +15 -26
- package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/hooks.js +22 -8
- package/build/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/page-status.js +8 -5
- package/build/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/page-summary.js +4 -8
- 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 +2 -2
- package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
- package/build/components/sidebar-edit-mode/settings-header/index.js +10 -6
- package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-page/index.js +23 -4
- package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
- package/build/components/style-book/index.js +22 -12
- package/build/components/style-book/index.js.map +1 -1
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +41 -9
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build/components/welcome-guide/page.js +2 -2
- package/build/components/welcome-guide/page.js.map +1 -1
- package/build/components/welcome-guide/template.js +6 -3
- package/build/components/welcome-guide/template.js.map +1 -1
- package/build/hooks/commands/use-edit-mode-commands.js +24 -14
- package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
- package/build/store/actions.js +4 -1
- package/build/store/actions.js.map +1 -1
- package/build/store/private-actions.js +2 -27
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +0 -23
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +1 -40
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +8 -4
- package/build/store/selectors.js.map +1 -1
- package/build/utils/constants.js +1 -12
- package/build/utils/constants.js.map +1 -1
- package/build-module/components/actions/index.js +55 -36
- package/build-module/components/actions/index.js.map +1 -1
- package/build-module/components/block-editor/site-editor-canvas.js +7 -2
- package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
- package/build-module/components/dataviews/add-filter.js +21 -20
- package/build-module/components/dataviews/add-filter.js.map +1 -1
- package/build-module/components/dataviews/constants.js +6 -0
- package/build-module/components/dataviews/constants.js.map +1 -0
- package/build-module/components/dataviews/dataviews.js +9 -7
- package/build-module/components/dataviews/dataviews.js.map +1 -1
- package/build-module/components/dataviews/filter-summary.js +55 -0
- package/build-module/components/dataviews/filter-summary.js.map +1 -0
- package/build-module/components/dataviews/filters.js +15 -28
- package/build-module/components/dataviews/filters.js.map +1 -1
- package/build-module/components/dataviews/item-actions.js +84 -30
- package/build-module/components/dataviews/item-actions.js.map +1 -1
- package/build-module/components/dataviews/pagination.js +4 -0
- package/build-module/components/dataviews/pagination.js.map +1 -1
- package/build-module/components/dataviews/view-actions.js +24 -24
- package/build-module/components/dataviews/view-actions.js.map +1 -1
- package/build-module/components/dataviews/view-grid.js +49 -26
- package/build-module/components/dataviews/view-grid.js.map +1 -1
- package/build-module/components/dataviews/view-list.js +28 -33
- package/build-module/components/dataviews/view-list.js.map +1 -1
- package/build-module/components/editor/index.js +26 -30
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/index.js +14 -2
- package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
- package/build-module/components/global-styles/header.js +4 -2
- package/build-module/components/global-styles/header.js.map +1 -1
- package/build-module/components/global-styles/screen-block-list.js +23 -17
- package/build-module/components/global-styles/screen-block-list.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/index.js +27 -6
- package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +51 -24
- package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +9 -3
- package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
- package/build-module/components/global-styles/ui.js +28 -36
- package/build-module/components/global-styles/ui.js.map +1 -1
- package/build-module/components/header-edit-mode/document-actions/index.js +21 -16
- package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
- package/build-module/components/header-edit-mode/index.js +2 -1
- package/build-module/components/header-edit-mode/index.js.map +1 -1
- package/build-module/components/header-edit-mode/more-menu/index.js +1 -1
- package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
- package/build-module/components/list/added-by.js +44 -55
- package/build-module/components/list/added-by.js.map +1 -1
- package/build-module/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +9 -8
- package/build-module/components/page-content-focus-notifications/back-to-page-notification.js.map +1 -0
- package/build-module/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
- package/build-module/components/page-content-focus-notifications/edit-template-notification.js.map +1 -0
- package/build-module/components/page-content-focus-notifications/index.js +14 -0
- package/build-module/components/page-content-focus-notifications/index.js.map +1 -0
- package/build-module/components/page-pages/index.js +10 -16
- package/build-module/components/page-pages/index.js.map +1 -1
- package/build-module/components/page-patterns/use-patterns.js +1 -1
- package/build-module/components/page-patterns/use-patterns.js.map +1 -1
- package/build-module/components/page-templates/dataviews-templates.js +168 -53
- package/build-module/components/page-templates/dataviews-templates.js.map +1 -1
- package/build-module/components/preferences-modal/index.js +1 -1
- package/build-module/components/preferences-modal/index.js.map +1 -1
- package/build-module/components/save-button/index.js +11 -8
- package/build-module/components/save-button/index.js.map +1 -1
- package/build-module/components/save-hub/index.js +14 -0
- package/build-module/components/save-hub/index.js.map +1 -1
- package/build-module/components/sidebar-dataviews/custom-dataviews-list.js +3 -1
- package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
- package/build-module/components/sidebar-dataviews/default-views.js +7 -2
- package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/index.js +6 -5
- package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +16 -27
- package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/hooks.js +21 -7
- package/build-module/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/page-status.js +9 -6
- package/build-module/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +5 -9
- 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 +3 -3
- package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/settings-header/index.js +10 -6
- package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-page/index.js +23 -4
- package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
- package/build-module/components/style-book/index.js +22 -12
- package/build-module/components/style-book/index.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +41 -9
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build-module/components/welcome-guide/page.js +2 -2
- package/build-module/components/welcome-guide/page.js.map +1 -1
- package/build-module/components/welcome-guide/template.js +6 -3
- package/build-module/components/welcome-guide/template.js.map +1 -1
- package/build-module/hooks/commands/use-edit-mode-commands.js +24 -14
- package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
- package/build-module/store/actions.js +4 -1
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +1 -25
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +0 -22
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +1 -38
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +8 -4
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/constants.js +0 -10
- package/build-module/utils/constants.js.map +1 -1
- package/build-style/style-rtl.css +152 -62
- package/build-style/style.css +152 -62
- package/package.json +41 -41
- package/src/components/actions/index.js +76 -48
- package/src/components/block-editor/site-editor-canvas.js +8 -2
- package/src/components/dataviews/README.md +14 -11
- package/src/components/dataviews/add-filter.js +21 -24
- package/src/components/dataviews/constants.js +5 -0
- package/src/components/dataviews/dataviews.js +10 -10
- package/src/components/dataviews/filter-summary.js +79 -0
- package/src/components/dataviews/filters.js +18 -35
- package/src/components/dataviews/item-actions.js +106 -42
- package/src/components/dataviews/pagination.js +4 -0
- package/src/components/dataviews/style.scss +84 -8
- package/src/components/dataviews/view-actions.js +39 -41
- package/src/components/dataviews/view-grid.js +63 -38
- package/src/components/dataviews/view-list.js +50 -57
- package/src/components/editor/index.js +18 -34
- package/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +1 -1
- package/src/components/global-styles/font-library-modal/utils/index.js +20 -9
- package/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js +46 -15
- package/src/components/global-styles/font-library-modal/utils/test/wpKebabCase.spec.js +28 -0
- package/src/components/global-styles/header.js +2 -1
- package/src/components/global-styles/screen-block-list.js +37 -26
- package/src/components/global-styles/screen-revisions/index.js +39 -10
- package/src/components/global-styles/screen-revisions/revisions-buttons.js +65 -45
- package/src/components/global-styles/screen-revisions/style.scss +52 -28
- package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +15 -6
- package/src/components/global-styles/style.scss +0 -11
- package/src/components/global-styles/ui.js +59 -74
- package/src/components/header-edit-mode/document-actions/index.js +20 -18
- package/src/components/header-edit-mode/index.js +1 -0
- package/src/components/header-edit-mode/more-menu/index.js +1 -1
- package/src/components/list/added-by.js +23 -63
- package/src/components/list/style.scss +11 -13
- package/src/components/{page-content-focus-manager → page-content-focus-notifications}/back-to-page-notification.js +12 -13
- package/src/components/{page-content-focus-manager → page-content-focus-notifications}/edit-template-notification.js +9 -13
- package/src/components/page-content-focus-notifications/index.js +14 -0
- package/src/components/page-pages/index.js +15 -20
- package/src/components/page-patterns/use-patterns.js +1 -1
- package/src/components/page-templates/dataviews-templates.js +169 -48
- package/src/components/page-templates/style.scss +13 -0
- package/src/components/preferences-modal/index.js +1 -1
- package/src/components/save-button/index.js +37 -24
- package/src/components/save-hub/index.js +15 -0
- package/src/components/save-hub/style.scss +7 -0
- package/src/components/sidebar-dataviews/custom-dataviews-list.js +2 -0
- package/src/components/sidebar-dataviews/default-views.js +7 -2
- package/src/components/sidebar-dataviews/style.scss +7 -0
- package/src/components/sidebar-edit-mode/index.js +13 -9
- package/src/components/sidebar-edit-mode/page-panels/edit-template.js +33 -52
- package/src/components/sidebar-edit-mode/page-panels/hooks.js +20 -9
- package/src/components/sidebar-edit-mode/page-panels/page-status.js +6 -6
- package/src/components/sidebar-edit-mode/page-panels/page-summary.js +8 -9
- package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +3 -3
- package/src/components/sidebar-edit-mode/page-panels/style.scss +9 -19
- package/src/components/sidebar-edit-mode/settings-header/index.js +8 -9
- package/src/components/sidebar-navigation-screen/style.scss +1 -0
- package/src/components/sidebar-navigation-screen-page/index.js +24 -3
- package/src/components/sidebar-navigation-screen-template/style.scss +6 -1
- package/src/components/style-book/index.js +48 -35
- package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +69 -17
- package/src/components/welcome-guide/page.js +2 -2
- package/src/components/welcome-guide/template.js +4 -2
- package/src/hooks/commands/use-edit-mode-commands.js +22 -16
- package/src/store/actions.js +5 -1
- package/src/store/private-actions.js +1 -24
- package/src/store/private-selectors.js +0 -22
- package/src/store/reducer.js +0 -39
- package/src/store/selectors.js +12 -4
- package/src/store/test/actions.js +3 -32
- package/src/store/test/reducer.js +0 -62
- package/src/store/test/selectors.js +0 -35
- package/src/style.scss +1 -0
- package/src/utils/constants.js +0 -10
- package/build/components/dataviews/in-filter.js +0 -51
- package/build/components/dataviews/in-filter.js.map +0 -1
- package/build/components/page-content-focus-manager/back-to-page-notification.js.map +0 -1
- package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -63
- package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +0 -1
- package/build/components/page-content-focus-manager/edit-template-notification.js.map +0 -1
- package/build/components/page-content-focus-manager/index.js +0 -61
- package/build/components/page-content-focus-manager/index.js.map +0 -1
- package/build/components/sidebar-edit-mode/page-panels/publish-date.js +0 -87
- package/build/components/sidebar-edit-mode/page-panels/publish-date.js.map +0 -1
- package/build-module/components/dataviews/in-filter.js +0 -42
- package/build-module/components/dataviews/in-filter.js.map +0 -1
- package/build-module/components/page-content-focus-manager/back-to-page-notification.js.map +0 -1
- package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -56
- package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +0 -1
- package/build-module/components/page-content-focus-manager/edit-template-notification.js.map +0 -1
- package/build-module/components/page-content-focus-manager/index.js +0 -52
- package/build-module/components/page-content-focus-manager/index.js.map +0 -1
- package/build-module/components/sidebar-edit-mode/page-panels/publish-date.js +0 -80
- package/build-module/components/sidebar-edit-mode/page-panels/publish-date.js.map +0 -1
- package/src/components/dataviews/in-filter.js +0 -63
- package/src/components/page-content-focus-manager/disable-non-page-content-blocks.js +0 -57
- package/src/components/page-content-focus-manager/index.js +0 -51
- package/src/components/sidebar-edit-mode/page-panels/publish-date.js +0 -94
|
@@ -9,7 +9,13 @@ import {
|
|
|
9
9
|
__experimentalHStack as HStack,
|
|
10
10
|
} from '@wordpress/components';
|
|
11
11
|
import { useSelect } from '@wordpress/data';
|
|
12
|
-
import {
|
|
12
|
+
import {
|
|
13
|
+
useState,
|
|
14
|
+
useEffect,
|
|
15
|
+
useRef,
|
|
16
|
+
useDeferredValue,
|
|
17
|
+
memo,
|
|
18
|
+
} from '@wordpress/element';
|
|
13
19
|
import {
|
|
14
20
|
BlockIcon,
|
|
15
21
|
privateApis as blockEditorPrivateApis,
|
|
@@ -99,22 +105,16 @@ function BlockMenuItem( { block } ) {
|
|
|
99
105
|
);
|
|
100
106
|
}
|
|
101
107
|
|
|
102
|
-
function
|
|
108
|
+
function BlockList( { filterValue } ) {
|
|
103
109
|
const sortedBlockTypes = useSortedBlockTypes();
|
|
104
|
-
const [ filterValue, setFilterValue ] = useState( '' );
|
|
105
110
|
const debouncedSpeak = useDebounce( speak, 500 );
|
|
106
|
-
const isMatchingSearchTerm = useSelect(
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
114
|
-
return sortedBlockTypes.filter( ( blockType ) =>
|
|
115
|
-
isMatchingSearchTerm( blockType, filterValue )
|
|
116
|
-
);
|
|
117
|
-
}, [ filterValue, sortedBlockTypes, isMatchingSearchTerm ] );
|
|
111
|
+
const { isMatchingSearchTerm } = useSelect( blocksStore );
|
|
112
|
+
|
|
113
|
+
const filteredBlockTypes = ! filterValue
|
|
114
|
+
? sortedBlockTypes
|
|
115
|
+
: sortedBlockTypes.filter( ( blockType ) =>
|
|
116
|
+
isMatchingSearchTerm( blockType, filterValue )
|
|
117
|
+
);
|
|
118
118
|
|
|
119
119
|
const blockTypesListRef = useRef();
|
|
120
120
|
|
|
@@ -140,6 +140,27 @@ function ScreenBlockList() {
|
|
|
140
140
|
debouncedSpeak( resultsFoundMessage, count );
|
|
141
141
|
}, [ filterValue, debouncedSpeak ] );
|
|
142
142
|
|
|
143
|
+
return (
|
|
144
|
+
<div
|
|
145
|
+
ref={ blockTypesListRef }
|
|
146
|
+
className="edit-site-block-types-item-list"
|
|
147
|
+
>
|
|
148
|
+
{ filteredBlockTypes.map( ( block ) => (
|
|
149
|
+
<BlockMenuItem
|
|
150
|
+
block={ block }
|
|
151
|
+
key={ 'menu-itemblock-' + block.name }
|
|
152
|
+
/>
|
|
153
|
+
) ) }
|
|
154
|
+
</div>
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
const MemoizedBlockList = memo( BlockList );
|
|
159
|
+
|
|
160
|
+
function ScreenBlockList() {
|
|
161
|
+
const [ filterValue, setFilterValue ] = useState( '' );
|
|
162
|
+
const deferredFilterValue = useDeferredValue( filterValue );
|
|
163
|
+
|
|
143
164
|
return (
|
|
144
165
|
<>
|
|
145
166
|
<ScreenHeader
|
|
@@ -156,17 +177,7 @@ function ScreenBlockList() {
|
|
|
156
177
|
label={ __( 'Search for blocks' ) }
|
|
157
178
|
placeholder={ __( 'Search' ) }
|
|
158
179
|
/>
|
|
159
|
-
<
|
|
160
|
-
ref={ blockTypesListRef }
|
|
161
|
-
className="edit-site-block-types-item-list"
|
|
162
|
-
>
|
|
163
|
-
{ filteredBlockTypes.map( ( block ) => (
|
|
164
|
-
<BlockMenuItem
|
|
165
|
-
block={ block }
|
|
166
|
-
key={ 'menu-itemblock-' + block.name }
|
|
167
|
-
/>
|
|
168
|
-
) ) }
|
|
169
|
-
</div>
|
|
180
|
+
<MemoizedBlockList filterValue={ deferredFilterValue } />
|
|
170
181
|
</>
|
|
171
182
|
);
|
|
172
183
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { __ } from '@wordpress/i18n';
|
|
4
|
+
import { __, sprintf } from '@wordpress/i18n';
|
|
5
5
|
import {
|
|
6
6
|
Button,
|
|
7
7
|
__experimentalUseNavigator as useNavigator,
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
__experimentalSpacer as Spacer,
|
|
11
11
|
} from '@wordpress/components';
|
|
12
12
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
13
|
+
import { store as coreStore } from '@wordpress/core-data';
|
|
13
14
|
import { useContext, useState, useEffect } from '@wordpress/element';
|
|
14
15
|
import {
|
|
15
16
|
privateApis as blockEditorPrivateApis,
|
|
@@ -35,14 +36,36 @@ function ScreenRevisions() {
|
|
|
35
36
|
const { goTo } = useNavigator();
|
|
36
37
|
const { user: currentEditorGlobalStyles, setUserConfig } =
|
|
37
38
|
useContext( GlobalStylesContext );
|
|
38
|
-
const { blocks, editorCanvasContainerView } = useSelect(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
39
|
+
const { blocks, editorCanvasContainerView, revisionsCount } = useSelect(
|
|
40
|
+
( select ) => {
|
|
41
|
+
const {
|
|
42
|
+
getEntityRecord,
|
|
43
|
+
__experimentalGetCurrentGlobalStylesId,
|
|
44
|
+
__experimentalGetDirtyEntityRecords,
|
|
45
|
+
} = select( coreStore );
|
|
46
|
+
const isDirty = __experimentalGetDirtyEntityRecords().length > 0;
|
|
47
|
+
const globalStylesId = __experimentalGetCurrentGlobalStylesId();
|
|
48
|
+
const globalStyles = globalStylesId
|
|
49
|
+
? getEntityRecord( 'root', 'globalStyles', globalStylesId )
|
|
50
|
+
: undefined;
|
|
51
|
+
let _revisionsCount =
|
|
52
|
+
globalStyles?._links?.[ 'version-history' ]?.[ 0 ]?.count || 0;
|
|
53
|
+
// one for the reset item.
|
|
54
|
+
_revisionsCount++;
|
|
55
|
+
// one for any dirty changes (unsaved).
|
|
56
|
+
if ( isDirty ) {
|
|
57
|
+
_revisionsCount++;
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
editorCanvasContainerView: unlock(
|
|
61
|
+
select( editSiteStore )
|
|
62
|
+
).getEditorCanvasContainerView(),
|
|
63
|
+
blocks: select( blockEditorStore ).getBlocks(),
|
|
64
|
+
revisionsCount: _revisionsCount,
|
|
65
|
+
};
|
|
66
|
+
},
|
|
67
|
+
[]
|
|
68
|
+
);
|
|
46
69
|
const { revisions, isLoading, hasUnsavedChanges } =
|
|
47
70
|
useGlobalStylesRevisions();
|
|
48
71
|
const [ currentlySelectedRevision, setCurrentlySelectedRevision ] =
|
|
@@ -61,6 +84,7 @@ function ScreenRevisions() {
|
|
|
61
84
|
|
|
62
85
|
const onCloseRevisions = () => {
|
|
63
86
|
goTo( '/' ); // Return to global styles main panel.
|
|
87
|
+
setEditorCanvasContainerView( undefined );
|
|
64
88
|
};
|
|
65
89
|
|
|
66
90
|
const restoreRevision = ( revision ) => {
|
|
@@ -119,10 +143,15 @@ function ScreenRevisions() {
|
|
|
119
143
|
return (
|
|
120
144
|
<>
|
|
121
145
|
<ScreenHeader
|
|
122
|
-
title={
|
|
146
|
+
title={
|
|
147
|
+
revisionsCount &&
|
|
148
|
+
// translators: %s: number of revisions.
|
|
149
|
+
sprintf( __( 'Revisions (%s)' ), revisionsCount )
|
|
150
|
+
}
|
|
123
151
|
description={ __(
|
|
124
152
|
'Click on previously saved styles to preview them. To restore a selected version to the editor, hit "Apply." When you\'re ready, use the Save button to save your changes.'
|
|
125
153
|
) }
|
|
154
|
+
onBack={ onCloseRevisions }
|
|
126
155
|
/>
|
|
127
156
|
{ isLoading && (
|
|
128
157
|
<Spinner className="edit-site-global-styles-screen-revisions__loading" />
|
|
@@ -12,20 +12,28 @@ import { dateI18n, getDate, humanTimeDiff, getSettings } from '@wordpress/date';
|
|
|
12
12
|
import { store as coreStore } from '@wordpress/core-data';
|
|
13
13
|
import { useSelect } from '@wordpress/data';
|
|
14
14
|
|
|
15
|
+
const DAY_IN_MILLISECONDS = 60 * 60 * 1000 * 24;
|
|
16
|
+
|
|
15
17
|
/**
|
|
16
18
|
* Returns a button label for the revision.
|
|
17
19
|
*
|
|
18
|
-
* @param {
|
|
20
|
+
* @param {string|number} id A revision object.
|
|
21
|
+
* @param {boolean} isLatest Whether the revision is the most current.
|
|
22
|
+
* @param {string} authorDisplayName Author name.
|
|
23
|
+
* @param {string} formattedModifiedDate Revision modified date formatted.
|
|
19
24
|
* @return {string} Translated label.
|
|
20
25
|
*/
|
|
21
|
-
function getRevisionLabel(
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
function getRevisionLabel(
|
|
27
|
+
id,
|
|
28
|
+
isLatest,
|
|
29
|
+
authorDisplayName,
|
|
30
|
+
formattedModifiedDate
|
|
31
|
+
) {
|
|
32
|
+
if ( 'parent' === id ) {
|
|
25
33
|
return __( 'Reset the styles to the theme defaults' );
|
|
26
34
|
}
|
|
27
35
|
|
|
28
|
-
if ( 'unsaved' ===
|
|
36
|
+
if ( 'unsaved' === id ) {
|
|
29
37
|
return sprintf(
|
|
30
38
|
/* translators: %s author display name */
|
|
31
39
|
__( 'Unsaved changes by %s' ),
|
|
@@ -33,23 +41,18 @@ function getRevisionLabel( revision ) {
|
|
|
33
41
|
);
|
|
34
42
|
}
|
|
35
43
|
|
|
36
|
-
|
|
37
|
-
getSettings().formats.datetimeAbbreviated,
|
|
38
|
-
getDate( revision?.modified )
|
|
39
|
-
);
|
|
40
|
-
|
|
41
|
-
return revision?.isLatest
|
|
44
|
+
return isLatest
|
|
42
45
|
? sprintf(
|
|
43
46
|
/* translators: %1$s author display name, %2$s: revision creation date */
|
|
44
47
|
__( 'Changes saved by %1$s on %2$s (current)' ),
|
|
45
48
|
authorDisplayName,
|
|
46
|
-
|
|
49
|
+
formattedModifiedDate
|
|
47
50
|
)
|
|
48
51
|
: sprintf(
|
|
49
52
|
/* translators: %1$s author display name, %2$s: revision creation date */
|
|
50
53
|
__( 'Changes saved by %1$s on %2$s' ),
|
|
51
54
|
authorDisplayName,
|
|
52
|
-
|
|
55
|
+
formattedModifiedDate
|
|
53
56
|
);
|
|
54
57
|
}
|
|
55
58
|
|
|
@@ -65,10 +68,18 @@ function getRevisionLabel( revision ) {
|
|
|
65
68
|
* @return {JSX.Element} The modal component.
|
|
66
69
|
*/
|
|
67
70
|
function RevisionsButtons( { userRevisions, selectedRevisionId, onChange } ) {
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
71
|
+
const { currentThemeName, currentUser } = useSelect( ( select ) => {
|
|
72
|
+
const { getCurrentTheme, getCurrentUser } = select( coreStore );
|
|
73
|
+
const currentTheme = getCurrentTheme();
|
|
74
|
+
return {
|
|
75
|
+
currentThemeName:
|
|
76
|
+
currentTheme?.name?.rendered || currentTheme?.stylesheet,
|
|
77
|
+
currentUser: getCurrentUser(),
|
|
78
|
+
};
|
|
79
|
+
}, [] );
|
|
80
|
+
const dateNowInMs = getDate().getTime();
|
|
81
|
+
const { date: dateFormat, datetimeAbbreviated } = getSettings().formats;
|
|
82
|
+
|
|
72
83
|
return (
|
|
73
84
|
<ol
|
|
74
85
|
className="edit-site-global-styles-screen-revisions__revisions-list"
|
|
@@ -76,14 +87,28 @@ function RevisionsButtons( { userRevisions, selectedRevisionId, onChange } ) {
|
|
|
76
87
|
role="group"
|
|
77
88
|
>
|
|
78
89
|
{ userRevisions.map( ( revision, index ) => {
|
|
79
|
-
const { id, author, modified } = revision;
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
const
|
|
90
|
+
const { id, isLatest, author, modified } = revision;
|
|
91
|
+
const isUnsaved = 'unsaved' === id;
|
|
92
|
+
// Unsaved changes are created by the current user.
|
|
93
|
+
const revisionAuthor = isUnsaved ? currentUser : author;
|
|
94
|
+
const authorDisplayName = revisionAuthor?.name || __( 'User' );
|
|
95
|
+
const authorAvatar = revisionAuthor?.avatar_urls?.[ '48' ];
|
|
83
96
|
const isSelected = selectedRevisionId
|
|
84
|
-
? selectedRevisionId ===
|
|
97
|
+
? selectedRevisionId === id
|
|
85
98
|
: index === 0;
|
|
86
|
-
const isReset = 'parent' ===
|
|
99
|
+
const isReset = 'parent' === id;
|
|
100
|
+
const modifiedDate = getDate( modified );
|
|
101
|
+
const displayDate =
|
|
102
|
+
modified &&
|
|
103
|
+
dateNowInMs - modifiedDate.getTime() > DAY_IN_MILLISECONDS
|
|
104
|
+
? dateI18n( dateFormat, modifiedDate )
|
|
105
|
+
: humanTimeDiff( modified );
|
|
106
|
+
const revisionLabel = getRevisionLabel(
|
|
107
|
+
id,
|
|
108
|
+
isLatest,
|
|
109
|
+
authorDisplayName,
|
|
110
|
+
dateI18n( datetimeAbbreviated, modifiedDate )
|
|
111
|
+
);
|
|
87
112
|
|
|
88
113
|
return (
|
|
89
114
|
<li
|
|
@@ -102,40 +127,35 @@ function RevisionsButtons( { userRevisions, selectedRevisionId, onChange } ) {
|
|
|
102
127
|
onClick={ () => {
|
|
103
128
|
onChange( revision );
|
|
104
129
|
} }
|
|
105
|
-
label={
|
|
130
|
+
label={ revisionLabel }
|
|
106
131
|
>
|
|
107
132
|
{ isReset ? (
|
|
108
133
|
<span className="edit-site-global-styles-screen-revisions__description">
|
|
109
134
|
{ __( 'Default styles' ) }
|
|
110
135
|
<span className="edit-site-global-styles-screen-revisions__meta">
|
|
111
|
-
{
|
|
112
|
-
currentTheme?.stylesheet }
|
|
136
|
+
{ currentThemeName }
|
|
113
137
|
</span>
|
|
114
138
|
</span>
|
|
115
139
|
) : (
|
|
116
140
|
<span className="edit-site-global-styles-screen-revisions__description">
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
141
|
+
{ isUnsaved ? (
|
|
142
|
+
<span className="edit-site-global-styles-screen-revisions__date">
|
|
143
|
+
{ __( '(Unsaved)' ) }
|
|
144
|
+
</span>
|
|
145
|
+
) : (
|
|
146
|
+
<time
|
|
147
|
+
className="edit-site-global-styles-screen-revisions__date"
|
|
148
|
+
dateTime={ modified }
|
|
149
|
+
>
|
|
150
|
+
{ displayDate }
|
|
151
|
+
</time>
|
|
152
|
+
) }
|
|
120
153
|
<span className="edit-site-global-styles-screen-revisions__meta">
|
|
121
|
-
{ isUnsaved
|
|
122
|
-
? sprintf(
|
|
123
|
-
/* translators: %s author display name */
|
|
124
|
-
__(
|
|
125
|
-
'Unsaved changes by %s'
|
|
126
|
-
),
|
|
127
|
-
authorDisplayName
|
|
128
|
-
)
|
|
129
|
-
: sprintf(
|
|
130
|
-
/* translators: %s author display name */
|
|
131
|
-
__( 'Changes saved by %s' ),
|
|
132
|
-
authorDisplayName
|
|
133
|
-
) }
|
|
134
|
-
|
|
135
154
|
<img
|
|
136
|
-
alt={
|
|
155
|
+
alt={ authorDisplayName }
|
|
137
156
|
src={ authorAvatar }
|
|
138
157
|
/>
|
|
158
|
+
{ authorDisplayName }
|
|
139
159
|
</span>
|
|
140
160
|
</span>
|
|
141
161
|
) }
|
|
@@ -8,62 +8,80 @@
|
|
|
8
8
|
margin: 0;
|
|
9
9
|
li {
|
|
10
10
|
margin-bottom: 0;
|
|
11
|
-
border-left: 1px solid $gray-300;
|
|
12
11
|
}
|
|
13
12
|
}
|
|
14
13
|
|
|
15
14
|
.edit-site-global-styles-screen-revisions__revision-item {
|
|
16
15
|
position: relative;
|
|
17
|
-
padding: $grid-unit-
|
|
16
|
+
padding-left: $grid-unit-20;
|
|
17
|
+
overflow: hidden;
|
|
18
|
+
cursor: pointer;
|
|
18
19
|
|
|
19
|
-
&:
|
|
20
|
-
|
|
20
|
+
&:hover {
|
|
21
|
+
background: rgba(var(--wp-admin-theme-color--rgb), 0.04);
|
|
22
|
+
.edit-site-global-styles-screen-revisions__date {
|
|
23
|
+
color: var(--wp-admin-theme-color);
|
|
24
|
+
}
|
|
21
25
|
}
|
|
22
26
|
|
|
23
|
-
|
|
24
|
-
|
|
27
|
+
&::before,
|
|
28
|
+
&::after {
|
|
29
|
+
position: absolute;
|
|
30
|
+
content: "\a";
|
|
31
|
+
display: block;
|
|
25
32
|
}
|
|
26
33
|
|
|
27
34
|
&::before {
|
|
28
35
|
background: $gray-300;
|
|
29
36
|
border-radius: 50%;
|
|
30
|
-
content: "\a";
|
|
31
|
-
display: inline-block;
|
|
32
37
|
height: $grid-unit-10;
|
|
33
38
|
width: $grid-unit-10;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
left: 0;
|
|
39
|
+
top: $grid-unit-20 + 2;
|
|
40
|
+
left: $grid-unit-20 + 1; // So the circle is centered on the line.
|
|
37
41
|
transform: translate(-50%, -50%);
|
|
42
|
+
z-index: 1;
|
|
38
43
|
}
|
|
39
44
|
&.is-selected::before {
|
|
40
45
|
background: var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));
|
|
41
46
|
}
|
|
42
|
-
}
|
|
43
47
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
48
|
+
&::after {
|
|
49
|
+
height: 100%;
|
|
50
|
+
left: $grid-unit-20;
|
|
51
|
+
top: 0;
|
|
52
|
+
width: 0;
|
|
53
|
+
border: 0.5px solid $gray-300;
|
|
54
|
+
}
|
|
49
55
|
|
|
50
|
-
&:
|
|
51
|
-
|
|
56
|
+
&:first-child::after {
|
|
57
|
+
top: $grid-unit-20 + 2;
|
|
58
|
+
}
|
|
52
59
|
|
|
53
|
-
|
|
54
|
-
|
|
60
|
+
&:last-child::after {
|
|
61
|
+
height: $grid-unit-20 + 2;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// Nested to override specificity of .components-button.
|
|
65
|
+
.edit-site-global-styles-screen-revisions__revision-button {
|
|
66
|
+
width: 100%;
|
|
67
|
+
height: auto;
|
|
68
|
+
display: block;
|
|
69
|
+
padding: $grid-unit-15 $grid-unit-15 $grid-unit-15 $grid-unit-30;
|
|
70
|
+
&:focus,
|
|
71
|
+
&:active {
|
|
72
|
+
outline: 0;
|
|
73
|
+
box-shadow: none;
|
|
55
74
|
}
|
|
56
75
|
}
|
|
57
76
|
}
|
|
58
77
|
|
|
59
78
|
.is-selected {
|
|
79
|
+
color: var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));
|
|
80
|
+
background: rgba(var(--wp-admin-theme-color--rgb), 0.04);
|
|
60
81
|
.edit-site-global-styles-screen-revisions__revision-button {
|
|
61
|
-
color: var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));
|
|
62
82
|
opacity: 1;
|
|
63
|
-
background: rgba(var(--wp-admin-theme-color--rgb), 0.04);
|
|
64
83
|
}
|
|
65
|
-
|
|
66
|
-
.edit-site-global-styles-screen-revisions__meta {
|
|
84
|
+
.edit-site-global-styles-screen-revisions__date {
|
|
67
85
|
color: var(--wp-admin-theme-color);
|
|
68
86
|
}
|
|
69
87
|
}
|
|
@@ -78,20 +96,26 @@
|
|
|
78
96
|
flex-direction: column;
|
|
79
97
|
align-items: flex-start;
|
|
80
98
|
gap: $grid-unit-10;
|
|
99
|
+
.edit-site-global-styles-screen-revisions__date {
|
|
100
|
+
text-transform: uppercase;
|
|
101
|
+
font-weight: 600;
|
|
102
|
+
font-size: 12px;
|
|
103
|
+
}
|
|
81
104
|
}
|
|
82
105
|
|
|
83
106
|
.edit-site-global-styles-screen-revisions__meta {
|
|
84
|
-
color: $gray-
|
|
107
|
+
color: $gray-600;
|
|
85
108
|
display: flex;
|
|
86
|
-
justify-content:
|
|
109
|
+
justify-content: start;
|
|
87
110
|
width: 100%;
|
|
88
111
|
align-items: center;
|
|
89
|
-
|
|
112
|
+
font-size: 12px;
|
|
90
113
|
|
|
91
114
|
img {
|
|
92
115
|
width: $grid-unit-20;
|
|
93
116
|
height: $grid-unit-20;
|
|
94
117
|
border-radius: 100%;
|
|
118
|
+
margin-right: $grid-unit-10;
|
|
95
119
|
}
|
|
96
120
|
}
|
|
97
121
|
|
|
@@ -32,24 +32,33 @@ export default function useGlobalStylesRevisions() {
|
|
|
32
32
|
__experimentalGetDirtyEntityRecords,
|
|
33
33
|
getCurrentUser,
|
|
34
34
|
getUsers,
|
|
35
|
-
|
|
35
|
+
getRevisions,
|
|
36
|
+
__experimentalGetCurrentGlobalStylesId,
|
|
36
37
|
isResolving,
|
|
37
38
|
} = select( coreStore );
|
|
38
39
|
const dirtyEntityRecords = __experimentalGetDirtyEntityRecords();
|
|
39
40
|
const _currentUser = getCurrentUser();
|
|
40
41
|
const _isDirty = dirtyEntityRecords.length > 0;
|
|
42
|
+
const query = {
|
|
43
|
+
per_page: 100,
|
|
44
|
+
};
|
|
45
|
+
const globalStylesId = __experimentalGetCurrentGlobalStylesId();
|
|
41
46
|
const globalStylesRevisions =
|
|
42
|
-
|
|
47
|
+
getRevisions( 'root', 'globalStyles', globalStylesId, query ) ||
|
|
48
|
+
EMPTY_ARRAY;
|
|
43
49
|
const _authors = getUsers( SITE_EDITOR_AUTHORS_QUERY ) || EMPTY_ARRAY;
|
|
44
|
-
|
|
50
|
+
const _isResolving = isResolving( 'getRevisions', [
|
|
51
|
+
'root',
|
|
52
|
+
'globalStyles',
|
|
53
|
+
globalStylesId,
|
|
54
|
+
query,
|
|
55
|
+
] );
|
|
45
56
|
return {
|
|
46
57
|
authors: _authors,
|
|
47
58
|
currentUser: _currentUser,
|
|
48
59
|
isDirty: _isDirty,
|
|
49
60
|
revisions: globalStylesRevisions,
|
|
50
|
-
isLoadingGlobalStylesRevisions:
|
|
51
|
-
'getCurrentThemeGlobalStylesRevisions'
|
|
52
|
-
),
|
|
61
|
+
isLoadingGlobalStylesRevisions: _isResolving,
|
|
53
62
|
};
|
|
54
63
|
}, [] );
|
|
55
64
|
return useMemo( () => {
|
|
@@ -191,14 +191,3 @@
|
|
|
191
191
|
.edit-site-global-styles-sidebar__panel .block-editor-block-icon svg {
|
|
192
192
|
fill: currentColor;
|
|
193
193
|
}
|
|
194
|
-
|
|
195
|
-
[class][class].edit-site-global-styles-sidebar__revisions-count-badge {
|
|
196
|
-
align-items: center;
|
|
197
|
-
background: $gray-800;
|
|
198
|
-
border-radius: 2px;
|
|
199
|
-
color: $white;
|
|
200
|
-
display: inline-flex;
|
|
201
|
-
justify-content: center;
|
|
202
|
-
min-height: $icon-size;
|
|
203
|
-
min-width: $icon-size;
|
|
204
|
-
}
|