@wordpress/block-library 8.5.0 → 8.7.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/buttons/edit.native.js +1 -1
- package/build/buttons/edit.native.js.map +1 -1
- package/build/buttons/index.js +1 -0
- package/build/buttons/index.js.map +1 -1
- package/build/buttons/transforms.js +1 -0
- package/build/buttons/transforms.js.map +1 -1
- package/build/columns/edit.js +14 -10
- package/build/columns/edit.js.map +1 -1
- package/build/columns/edit.native.js +1 -1
- package/build/columns/edit.native.js.map +1 -1
- package/build/columns/index.js +4 -0
- package/build/columns/index.js.map +1 -1
- package/build/comments/edit/placeholder.js +8 -5
- package/build/comments/edit/placeholder.js.map +1 -1
- package/build/cover/edit/inspector-controls.js +2 -2
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/cover/index.js +13 -4
- package/build/cover/index.js.map +1 -1
- package/build/cover/variations.js +29 -0
- package/build/cover/variations.js.map +1 -0
- package/build/embed/edit.js +13 -14
- package/build/embed/edit.js.map +1 -1
- package/build/embed/edit.native.js +18 -14
- package/build/embed/edit.native.js.map +1 -1
- package/build/embed/util.js +39 -12
- package/build/embed/util.js.map +1 -1
- package/build/gallery/edit.js +9 -5
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/use-image-sizes.js +1 -1
- package/build/gallery/use-image-sizes.js.map +1 -1
- package/build/group/deprecated.js +4 -2
- package/build/group/deprecated.js.map +1 -1
- package/build/group/edit.js +22 -5
- package/build/group/edit.js.map +1 -1
- package/build/group/placeholder.js +11 -1
- package/build/group/placeholder.js.map +1 -1
- package/build/group/variations.js +23 -3
- package/build/group/variations.js.map +1 -1
- package/build/image/edit.js +1 -1
- package/build/image/edit.js.map +1 -1
- package/build/image/edit.native.js +1 -1
- package/build/image/edit.native.js.map +1 -1
- package/build/image/image.js +8 -6
- package/build/image/image.js.map +1 -1
- package/build/image/index.js +7 -2
- package/build/image/index.js.map +1 -1
- package/build/latest-posts/edit.js +11 -10
- package/build/latest-posts/edit.js.map +1 -1
- package/build/latest-posts/edit.native.js +3 -3
- package/build/latest-posts/edit.native.js.map +1 -1
- package/build/media-text/constants.js +17 -1
- package/build/media-text/constants.js.map +1 -1
- package/build/media-text/deprecated.js +228 -18
- package/build/media-text/deprecated.js.map +1 -1
- package/build/media-text/edit.js +10 -22
- package/build/media-text/edit.js.map +1 -1
- package/build/media-text/edit.native.js +6 -5
- package/build/media-text/edit.native.js.map +1 -1
- package/build/media-text/index.js +1 -1
- package/build/media-text/transforms.js +32 -44
- package/build/media-text/transforms.js.map +1 -1
- package/build/navigation/edit/index.js +55 -96
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/menu-inspector-controls.js +2 -5
- package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +26 -22
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +14 -1
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +2 -4
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build/navigation/edit/use-create-navigation-menu.js +1 -1
- package/build/navigation/edit/use-create-navigation-menu.js.map +1 -1
- package/build/navigation/edit/use-navigation-notice.js +1 -1
- package/build/navigation/edit/use-navigation-notice.js.map +1 -1
- package/build/navigation/index.js +0 -1
- package/build/navigation/index.js.map +1 -1
- package/build/navigation-link/edit.js +0 -11
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/link-ui.js +0 -1
- package/build/navigation-link/link-ui.js.map +1 -1
- package/build/navigation-submenu/edit.js +1 -13
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/page-list/edit.js +59 -45
- package/build/page-list/edit.js.map +1 -1
- package/build/page-list-item/edit.js +3 -2
- package/build/page-list-item/edit.js.map +1 -1
- package/build/post-content/edit.js +6 -1
- package/build/post-content/edit.js.map +1 -1
- package/build/post-date/edit.js +2 -1
- package/build/post-date/edit.js.map +1 -1
- package/build/post-date/index.js +4 -1
- package/build/post-date/index.js.map +1 -1
- package/build/post-date/variations.js +28 -0
- package/build/post-date/variations.js.map +1 -0
- package/build/post-excerpt/edit.js +39 -10
- package/build/post-excerpt/edit.js.map +1 -1
- package/build/post-featured-image/dimension-controls.js +2 -8
- package/build/post-featured-image/dimension-controls.js.map +1 -1
- package/build/post-featured-image/edit.js +1 -1
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-template/index.js +1 -1
- package/build/post-time-to-read/index.js +17 -1
- package/build/post-time-to-read/index.js.map +1 -1
- package/build/pullquote/deprecated.js +3 -3
- package/build/pullquote/deprecated.js.map +1 -1
- package/build/query/edit/query-placeholder.js +3 -2
- package/build/query/edit/query-placeholder.js.map +1 -1
- package/build/query/utils.js +26 -9
- package/build/query/utils.js.map +1 -1
- package/build/quote/index.js +1 -0
- package/build/quote/index.js.map +1 -1
- package/build/spacer/edit.js +16 -6
- package/build/spacer/edit.js.map +1 -1
- package/build/table/state.js +12 -4
- package/build/table/state.js.map +1 -1
- package/build/template-part/edit/import-controls.js +4 -24
- package/build/template-part/edit/import-controls.js.map +1 -1
- package/build/template-part/edit/utils/transformers.js +69 -19
- package/build/template-part/edit/utils/transformers.js.map +1 -1
- package/build/text-columns/edit.js +3 -7
- package/build/text-columns/edit.js.map +1 -1
- package/build/text-columns/save.js +11 -13
- package/build/text-columns/save.js.map +1 -1
- package/build-module/buttons/edit.native.js +1 -1
- package/build-module/buttons/edit.native.js.map +1 -1
- package/build-module/buttons/index.js +1 -0
- package/build-module/buttons/index.js.map +1 -1
- package/build-module/buttons/transforms.js +1 -0
- package/build-module/buttons/transforms.js.map +1 -1
- package/build-module/columns/edit.js +14 -9
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/columns/edit.native.js +1 -1
- package/build-module/columns/edit.native.js.map +1 -1
- package/build-module/columns/index.js +4 -0
- package/build-module/columns/index.js.map +1 -1
- package/build-module/comments/edit/placeholder.js +9 -5
- package/build-module/comments/edit/placeholder.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js +2 -2
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/cover/index.js +12 -4
- package/build-module/cover/index.js.map +1 -1
- package/build-module/cover/variations.js +19 -0
- package/build-module/cover/variations.js.map +1 -0
- package/build-module/embed/edit.js +14 -15
- package/build-module/embed/edit.js.map +1 -1
- package/build-module/embed/edit.native.js +19 -15
- package/build-module/embed/edit.native.js.map +1 -1
- package/build-module/embed/util.js +34 -10
- package/build-module/embed/util.js.map +1 -1
- package/build-module/gallery/edit.js +9 -5
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/use-image-sizes.js +1 -1
- package/build-module/gallery/use-image-sizes.js.map +1 -1
- package/build-module/group/deprecated.js +4 -2
- package/build-module/group/deprecated.js.map +1 -1
- package/build-module/group/edit.js +21 -5
- package/build-module/group/edit.js.map +1 -1
- package/build-module/group/placeholder.js +11 -1
- package/build-module/group/placeholder.js.map +1 -1
- package/build-module/group/variations.js +24 -1
- package/build-module/group/variations.js.map +1 -1
- package/build-module/image/edit.js +1 -1
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/edit.native.js +1 -1
- package/build-module/image/edit.native.js.map +1 -1
- package/build-module/image/image.js +8 -6
- package/build-module/image/image.js.map +1 -1
- package/build-module/image/index.js +7 -2
- package/build-module/image/index.js.map +1 -1
- package/build-module/latest-posts/edit.js +11 -9
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/latest-posts/edit.native.js +3 -3
- package/build-module/latest-posts/edit.native.js.map +1 -1
- package/build-module/media-text/constants.js +10 -0
- package/build-module/media-text/constants.js.map +1 -1
- package/build-module/media-text/deprecated.js +227 -18
- package/build-module/media-text/deprecated.js.map +1 -1
- package/build-module/media-text/edit.js +5 -17
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/media-text/edit.native.js +4 -3
- package/build-module/media-text/edit.native.js.map +1 -1
- package/build-module/media-text/index.js +1 -1
- package/build-module/media-text/transforms.js +32 -44
- package/build-module/media-text/transforms.js.map +1 -1
- package/build-module/navigation/edit/index.js +57 -98
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/menu-inspector-controls.js +2 -5
- package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +25 -22
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +14 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +2 -4
- package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build-module/navigation/edit/use-create-navigation-menu.js +1 -1
- package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -1
- package/build-module/navigation/edit/use-navigation-notice.js +1 -1
- package/build-module/navigation/edit/use-navigation-notice.js.map +1 -1
- package/build-module/navigation/index.js +0 -1
- package/build-module/navigation/index.js.map +1 -1
- package/build-module/navigation-link/edit.js +0 -11
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/link-ui.js +0 -1
- package/build-module/navigation-link/link-ui.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +1 -13
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/page-list/edit.js +61 -47
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/page-list-item/edit.js +3 -2
- package/build-module/page-list-item/edit.js.map +1 -1
- package/build-module/post-content/edit.js +6 -1
- package/build-module/post-content/edit.js.map +1 -1
- package/build-module/post-date/edit.js +2 -1
- package/build-module/post-date/edit.js.map +1 -1
- package/build-module/post-date/index.js +3 -1
- package/build-module/post-date/index.js.map +1 -1
- package/build-module/post-date/variations.js +18 -0
- package/build-module/post-date/variations.js.map +1 -0
- package/build-module/post-excerpt/edit.js +38 -11
- package/build-module/post-excerpt/edit.js.map +1 -1
- package/build-module/post-featured-image/dimension-controls.js +2 -8
- package/build-module/post-featured-image/dimension-controls.js.map +1 -1
- package/build-module/post-featured-image/edit.js +1 -1
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-template/index.js +1 -1
- package/build-module/post-time-to-read/index.js +17 -1
- package/build-module/post-time-to-read/index.js.map +1 -1
- package/build-module/pullquote/deprecated.js +3 -2
- package/build-module/pullquote/deprecated.js.map +1 -1
- package/build-module/query/edit/query-placeholder.js +4 -3
- package/build-module/query/edit/query-placeholder.js.map +1 -1
- package/build-module/query/utils.js +21 -6
- package/build-module/query/utils.js.map +1 -1
- package/build-module/quote/index.js +1 -0
- package/build-module/quote/index.js.map +1 -1
- package/build-module/spacer/edit.js +16 -6
- package/build-module/spacer/edit.js.map +1 -1
- package/build-module/table/state.js +13 -5
- package/build-module/table/state.js.map +1 -1
- package/build-module/template-part/edit/import-controls.js +4 -23
- package/build-module/template-part/edit/import-controls.js.map +1 -1
- package/build-module/template-part/edit/utils/transformers.js +69 -20
- package/build-module/template-part/edit/utils/transformers.js.map +1 -1
- package/build-module/text-columns/edit.js +3 -6
- package/build-module/text-columns/edit.js.map +1 -1
- package/build-module/text-columns/save.js +11 -12
- package/build-module/text-columns/save.js.map +1 -1
- package/build-style/categories/editor-rtl.css +5 -0
- package/build-style/categories/editor.css +5 -0
- package/build-style/categories/style-rtl.css +4 -0
- package/build-style/categories/style.css +4 -0
- package/build-style/cover/style-rtl.css +11 -5
- package/build-style/cover/style.css +11 -5
- package/build-style/editor-rtl.css +11 -1
- package/build-style/editor.css +11 -1
- package/build-style/navigation/editor-rtl.css +1 -1
- package/build-style/navigation/editor.css +1 -1
- package/build-style/navigation/style-rtl.css +2 -0
- package/build-style/navigation/style.css +2 -0
- package/build-style/page-list/editor-rtl.css +4 -0
- package/build-style/page-list/editor.css +4 -0
- package/build-style/post-featured-image/editor-rtl.css +1 -0
- package/build-style/post-featured-image/editor.css +1 -0
- package/build-style/post-featured-image/style-rtl.css +1 -0
- package/build-style/post-featured-image/style.css +1 -0
- package/build-style/post-template/style-rtl.css +1 -1
- package/build-style/post-template/style.css +1 -1
- package/build-style/post-time-to-read/style-rtl.css +91 -0
- package/build-style/post-time-to-read/style.css +91 -0
- package/build-style/search/style-rtl.css +8 -7
- package/build-style/search/style.css +8 -7
- package/build-style/style-rtl.css +31 -13
- package/build-style/style.css +31 -13
- package/package.json +31 -31
- package/src/audio/test/__snapshots__/edit.native.js.snap +44 -4
- package/src/audio/test/__snapshots__/transforms.native.js.snap +25 -0
- package/src/audio/test/transforms.native.js +42 -0
- package/src/block/test/__snapshots__/transforms.native.js.snap +15 -0
- package/src/block/test/transforms.native.js +40 -0
- package/src/buttons/block.json +1 -0
- package/src/buttons/edit.native.js +1 -1
- package/src/buttons/test/__snapshots__/transforms.native.js.snap +31 -0
- package/src/buttons/test/transforms.native.js +48 -0
- package/src/categories/editor.scss +5 -0
- package/src/categories/style.scss +4 -0
- package/src/columns/block.json +4 -0
- package/src/columns/edit.js +30 -18
- package/src/columns/edit.native.js +1 -1
- package/src/columns/test/__snapshots__/transforms.native.js.snap +61 -0
- package/src/columns/test/transforms.native.js +91 -0
- package/src/comment-template/index.php +1 -2
- package/src/comments/edit/placeholder.js +16 -4
- package/src/comments/index.php +1 -0
- package/src/cover/block.json +9 -3
- package/src/cover/edit/inspector-controls.js +4 -5
- package/src/cover/index.js +2 -0
- package/src/cover/style.scss +16 -7
- package/src/cover/test/__snapshots__/transforms.native.js.snap +73 -0
- package/src/cover/test/edit.js +324 -0
- package/src/cover/test/transforms.native.js +112 -0
- package/src/cover/variations.js +20 -0
- package/src/embed/edit.js +16 -12
- package/src/embed/edit.native.js +28 -18
- package/src/embed/test/__snapshots__/transforms.native.js.snap +23 -0
- package/src/embed/test/index.js +12 -0
- package/src/embed/test/transforms.native.js +44 -0
- package/src/embed/util.js +29 -8
- package/src/file/test/__snapshots__/edit.native.js.snap +18 -2
- package/src/file/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/file/test/transforms.native.js +42 -0
- package/src/freeform/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/freeform/test/transforms.native.js +39 -0
- package/src/gallery/edit.js +8 -2
- package/src/gallery/test/__snapshots__/transforms.native.js.snap +53 -0
- package/src/gallery/test/transforms.native.js +52 -0
- package/src/gallery/use-image-sizes.js +1 -1
- package/src/group/deprecated.js +4 -2
- package/src/group/edit.js +27 -9
- package/src/group/placeholder.js +13 -1
- package/src/group/test/__snapshots__/transforms.native.js.snap +35 -0
- package/src/group/test/transforms.native.js +75 -0
- package/src/group/variations.js +14 -1
- package/src/heading/test/__snapshots__/transforms.native.js.snap +47 -0
- package/src/heading/test/transforms.native.js +46 -0
- package/src/home-link/index.php +2 -2
- package/src/image/block.json +7 -2
- package/src/image/edit.js +1 -1
- package/src/image/edit.native.js +1 -1
- package/src/image/image.js +15 -7
- package/src/image/index.php +7 -2
- package/src/image/test/__snapshots__/transforms.native.js.snap +49 -0
- package/src/image/test/transforms.native.js +48 -0
- package/src/latest-comments/style.scss +1 -1
- package/src/latest-posts/edit.js +14 -16
- package/src/latest-posts/edit.native.js +3 -3
- package/src/latest-posts/test/__snapshots__/transforms.native.js.snap +15 -0
- package/src/latest-posts/test/transforms.native.js +61 -0
- package/src/list/test/__snapshots__/transforms.native.js.snap +85 -0
- package/src/list/test/transforms.native.js +56 -0
- package/src/media-text/block.json +1 -1
- package/src/media-text/constants.js +16 -0
- package/src/media-text/deprecated.js +235 -3
- package/src/media-text/edit.js +15 -24
- package/src/media-text/edit.native.js +3 -9
- package/src/media-text/test/__snapshots__/transforms.native.js.snap +73 -0
- package/src/media-text/test/transforms.native.js +112 -0
- package/src/media-text/transforms.js +24 -51
- package/src/missing/test/__snapshots__/edit.native.js.snap +20 -2
- package/src/more/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/more/test/transforms.native.js +42 -0
- package/src/navigation/block.json +0 -1
- package/src/navigation/edit/index.js +99 -115
- package/src/navigation/edit/menu-inspector-controls.js +2 -7
- package/src/navigation/edit/navigation-menu-selector.js +41 -25
- package/src/navigation/edit/unsaved-inner-blocks.js +46 -33
- package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +82 -83
- package/src/navigation/edit/use-create-navigation-menu.js +1 -1
- package/src/navigation/edit/use-navigation-notice.js +1 -1
- package/src/navigation/editor.scss +23 -20
- package/src/navigation/index.php +18 -39
- package/src/navigation/style.scss +6 -4
- package/src/navigation-link/edit.js +0 -9
- package/src/navigation-link/index.php +7 -9
- package/src/navigation-link/link-ui.js +0 -1
- package/src/navigation-submenu/edit.js +0 -10
- package/src/navigation-submenu/index.php +45 -74
- package/src/nextpage/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/nextpage/test/transforms.native.js +42 -0
- package/src/page-list/edit.js +78 -44
- package/src/page-list/editor.scss +6 -0
- package/src/page-list-item/edit.js +2 -3
- package/src/paragraph/test/__snapshots__/transforms.native.js.snap +59 -0
- package/src/paragraph/test/transforms.native.js +50 -0
- package/src/post-author/index.php +1 -1
- package/src/post-content/edit.js +5 -1
- package/src/post-date/edit.js +4 -1
- package/src/post-date/index.js +2 -0
- package/src/post-date/variations.js +20 -0
- package/src/post-excerpt/edit.js +48 -16
- package/src/post-excerpt/index.php +1 -2
- package/src/post-featured-image/dimension-controls.js +2 -10
- package/src/post-featured-image/edit.js +1 -1
- package/src/post-featured-image/editor.scss +1 -0
- package/src/post-featured-image/style.scss +1 -0
- package/src/post-template/block.json +1 -1
- package/src/post-template/style.scss +1 -1
- package/src/post-time-to-read/block.json +17 -1
- package/src/post-time-to-read/style.scss +4 -0
- package/src/preformatted/test/__snapshots__/transforms.native.js.snap +31 -0
- package/src/preformatted/test/transforms.native.js +42 -0
- package/src/pullquote/deprecated.js +2 -6
- package/src/pullquote/test/__snapshots__/transforms.native.js.snap +47 -0
- package/src/pullquote/test/transforms.native.js +46 -0
- package/src/query/edit/query-placeholder.js +10 -5
- package/src/query/test/utils.js +33 -1
- package/src/query/utils.js +19 -6
- package/src/query-title/index.php +2 -5
- package/src/quote/block.json +1 -0
- package/src/quote/test/__snapshots__/transforms.native.js.snap +39 -0
- package/src/quote/test/transforms.native.js +67 -0
- package/src/search/style.scss +16 -12
- package/src/search/test/__snapshots__/edit.native.js.snap +11 -1
- package/src/search/test/__snapshots__/transforms.native.js.snap +15 -0
- package/src/search/test/transforms.native.js +40 -0
- package/src/separator/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/separator/test/transforms.native.js +42 -0
- package/src/shortcode/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/shortcode/test/transforms.native.js +42 -0
- package/src/social-links/test/__snapshots__/transforms.native.js.snap +31 -0
- package/src/social-links/test/transforms.native.js +53 -0
- package/src/spacer/edit.js +18 -5
- package/src/spacer/test/__snapshots__/transforms.native.js.snap +19 -0
- package/src/spacer/test/transforms.native.js +42 -0
- package/src/style.scss +1 -0
- package/src/table/state.js +8 -17
- package/src/template-part/edit/import-controls.js +2 -29
- package/src/template-part/edit/utils/transformers.js +96 -19
- package/src/text-columns/edit.js +1 -6
- package/src/text-columns/save.js +1 -6
- package/src/verse/test/__snapshots__/transforms.native.js.snap +25 -0
- package/src/verse/test/transforms.native.js +42 -0
- package/src/video/test/__snapshots__/transforms.native.js.snap +41 -0
- package/src/video/test/transforms.native.js +48 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/src/cover/test/block-controls.js +0 -62
package/src/navigation/index.php
CHANGED
|
@@ -348,7 +348,7 @@ function block_core_navigation_maybe_use_classic_menu_fallback() {
|
|
|
348
348
|
$wp_insert_post_result = wp_insert_post(
|
|
349
349
|
array(
|
|
350
350
|
'post_content' => $classic_nav_menu_blocks,
|
|
351
|
-
'post_title' => $classic_nav_menu->
|
|
351
|
+
'post_title' => $classic_nav_menu->name,
|
|
352
352
|
'post_name' => $classic_nav_menu->slug,
|
|
353
353
|
'post_status' => 'publish',
|
|
354
354
|
'post_type' => 'wp_navigation',
|
|
@@ -431,37 +431,6 @@ function block_core_navigation_block_contains_core_navigation( $inner_blocks ) {
|
|
|
431
431
|
return false;
|
|
432
432
|
}
|
|
433
433
|
|
|
434
|
-
/**
|
|
435
|
-
* Create and returns a navigation menu containing a page-list as a fallback.
|
|
436
|
-
*
|
|
437
|
-
* @return array the newly created navigation menu.
|
|
438
|
-
*/
|
|
439
|
-
function block_core_navigation_get_default_pages_fallback() {
|
|
440
|
-
$registry = WP_Block_Type_Registry::get_instance();
|
|
441
|
-
|
|
442
|
-
// If `core/page-list` is not registered then use empty blocks.
|
|
443
|
-
$default_blocks = $registry->is_registered( 'core/page-list' ) ? '<!-- wp:page-list /-->' : '';
|
|
444
|
-
|
|
445
|
-
// Create a new navigation menu from the fallback blocks.
|
|
446
|
-
$wp_insert_post_result = wp_insert_post(
|
|
447
|
-
array(
|
|
448
|
-
'post_content' => $default_blocks,
|
|
449
|
-
'post_title' => 'Navigation', // TODO - use the template slug in future.
|
|
450
|
-
'post_name' => 'Navigation', // TODO - use the template slug in future.
|
|
451
|
-
'post_status' => 'publish',
|
|
452
|
-
'post_type' => 'wp_navigation',
|
|
453
|
-
),
|
|
454
|
-
true // So that we can check whether the result is an error.
|
|
455
|
-
);
|
|
456
|
-
|
|
457
|
-
if ( is_wp_error( $wp_insert_post_result ) ) {
|
|
458
|
-
return;
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
// Fetch the most recently published navigation which will be the default one created above.
|
|
462
|
-
return block_core_navigation_get_most_recently_published_navigation();
|
|
463
|
-
}
|
|
464
|
-
|
|
465
434
|
/**
|
|
466
435
|
* Retrieves the appropriate fallback to be used on the front of the
|
|
467
436
|
* site when there is no menu assigned to the Nav block.
|
|
@@ -472,7 +441,18 @@ function block_core_navigation_get_default_pages_fallback() {
|
|
|
472
441
|
* @return array the array of blocks to be used as a fallback.
|
|
473
442
|
*/
|
|
474
443
|
function block_core_navigation_get_fallback_blocks() {
|
|
475
|
-
|
|
444
|
+
$page_list_fallback = array(
|
|
445
|
+
array(
|
|
446
|
+
'blockName' => 'core/page-list',
|
|
447
|
+
),
|
|
448
|
+
);
|
|
449
|
+
|
|
450
|
+
$registry = WP_Block_Type_Registry::get_instance();
|
|
451
|
+
|
|
452
|
+
// If `core/page-list` is not registered then return empty blocks.
|
|
453
|
+
$fallback_blocks = $registry->is_registered( 'core/page-list' ) ? $page_list_fallback : array();
|
|
454
|
+
|
|
455
|
+
// Default to a list of Pages.
|
|
476
456
|
$navigation_post = block_core_navigation_get_most_recently_published_navigation();
|
|
477
457
|
|
|
478
458
|
// If there are no navigation posts then try to find a classic menu
|
|
@@ -481,15 +461,14 @@ function block_core_navigation_get_fallback_blocks() {
|
|
|
481
461
|
$navigation_post = block_core_navigation_maybe_use_classic_menu_fallback();
|
|
482
462
|
}
|
|
483
463
|
|
|
484
|
-
//
|
|
485
|
-
if ( ! $navigation_post ) {
|
|
486
|
-
$navigation_post = block_core_navigation_get_default_pages_fallback();
|
|
487
|
-
}
|
|
488
|
-
|
|
489
|
-
// Use the first non-empty Navigation as fallback, there should always be one.
|
|
464
|
+
// Use the first non-empty Navigation as fallback if available.
|
|
490
465
|
if ( $navigation_post ) {
|
|
491
466
|
$parsed_blocks = parse_blocks( $navigation_post->post_content );
|
|
492
467
|
$maybe_fallback = block_core_navigation_filter_out_empty_blocks( $parsed_blocks );
|
|
468
|
+
|
|
469
|
+
// Normalizing blocks may result in an empty array of blocks if they were all `null` blocks.
|
|
470
|
+
// In this case default to the (Page List) fallback.
|
|
471
|
+
$fallback_blocks = ! empty( $maybe_fallback ) ? $maybe_fallback : $fallback_blocks;
|
|
493
472
|
}
|
|
494
473
|
|
|
495
474
|
// Normalizing blocks may result in an empty array of blocks if they were all `null` blocks.
|
|
@@ -689,10 +689,12 @@ button.wp-block-navigation-item__content {
|
|
|
689
689
|
.wp-block-navigation__responsive-close {
|
|
690
690
|
width: 100%;
|
|
691
691
|
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
692
|
+
.has-modal-open & {
|
|
693
|
+
// Try to inherit wide-width when defined, so the X can align to a top-right aligned menu.
|
|
694
|
+
max-width: var(--wp--style--global--wide-size, 100%);
|
|
695
|
+
margin-left: auto;
|
|
696
|
+
margin-right: auto;
|
|
697
|
+
}
|
|
696
698
|
|
|
697
699
|
// This element is not keyboard accessible, and is focusable only using the mouse.
|
|
698
700
|
// It is part of the MicroModal library that adds a scrim outside of a modal dialog that is not fullscreen,
|
|
@@ -225,15 +225,6 @@ export default function NavigationLinkEdit( {
|
|
|
225
225
|
[ clientId ]
|
|
226
226
|
);
|
|
227
227
|
|
|
228
|
-
useEffect( () => {
|
|
229
|
-
// This side-effect should not create an undo level as those should
|
|
230
|
-
// only be created via user interactions. Mark this change as
|
|
231
|
-
// not persistent to avoid undo level creation.
|
|
232
|
-
// See https://github.com/WordPress/gutenberg/issues/34564.
|
|
233
|
-
__unstableMarkNextChangeAsNotPersistent();
|
|
234
|
-
setAttributes( { isTopLevelLink } );
|
|
235
|
-
}, [ isTopLevelLink ] );
|
|
236
|
-
|
|
237
228
|
/**
|
|
238
229
|
* Transform to submenu block.
|
|
239
230
|
*/
|
|
@@ -9,18 +9,17 @@
|
|
|
9
9
|
* Build an array with CSS classes and inline styles defining the colors
|
|
10
10
|
* which will be applied to the navigation markup in the front-end.
|
|
11
11
|
*
|
|
12
|
-
* @param array $context
|
|
13
|
-
* @param array $attributes
|
|
12
|
+
* @param array $context Navigation block context.
|
|
13
|
+
* @param array $attributes Block attributes.
|
|
14
|
+
* @param bool $is_sub_menu Whether the link is part of a sub-menu.
|
|
14
15
|
* @return array Colors CSS classes and inline styles.
|
|
15
16
|
*/
|
|
16
|
-
function block_core_navigation_link_build_css_colors( $context, $attributes ) {
|
|
17
|
+
function block_core_navigation_link_build_css_colors( $context, $attributes, $is_sub_menu = false ) {
|
|
17
18
|
$colors = array(
|
|
18
19
|
'css_classes' => array(),
|
|
19
20
|
'inline_styles' => '',
|
|
20
21
|
);
|
|
21
22
|
|
|
22
|
-
$is_sub_menu = isset( $attributes['isTopLevelLink'] ) ? ( ! $attributes['isTopLevelLink'] ) : false;
|
|
23
|
-
|
|
24
23
|
// Text color.
|
|
25
24
|
$named_text_color = null;
|
|
26
25
|
$custom_text_color = null;
|
|
@@ -174,17 +173,16 @@ function render_block_core_navigation_link( $attributes, $content, $block ) {
|
|
|
174
173
|
return '';
|
|
175
174
|
}
|
|
176
175
|
|
|
177
|
-
$colors = block_core_navigation_link_build_css_colors( $block->context, $attributes );
|
|
178
176
|
$font_sizes = block_core_navigation_link_build_css_font_sizes( $block->context );
|
|
179
177
|
$classes = array_merge(
|
|
180
|
-
$colors['css_classes'],
|
|
181
178
|
$font_sizes['css_classes']
|
|
182
179
|
);
|
|
183
|
-
$style_attribute =
|
|
180
|
+
$style_attribute = $font_sizes['inline_styles'];
|
|
184
181
|
|
|
185
182
|
$css_classes = trim( implode( ' ', $classes ) );
|
|
186
183
|
$has_submenu = count( $block->inner_blocks ) > 0;
|
|
187
|
-
$
|
|
184
|
+
$kind = empty( $attributes['kind'] ) ? 'post_type' : str_replace( '-', '_', $attributes['kind'] );
|
|
185
|
+
$is_active = ! empty( $attributes['id'] ) && get_queried_object_id() === (int) $attributes['id'] && ! empty( get_queried_object()->$kind );
|
|
188
186
|
|
|
189
187
|
$wrapper_attributes = get_block_wrapper_attributes(
|
|
190
188
|
array(
|
|
@@ -224,16 +224,6 @@ export default function NavigationSubmenuEdit( {
|
|
|
224
224
|
}
|
|
225
225
|
}, [] );
|
|
226
226
|
|
|
227
|
-
// Store the colors from context as attributes for rendering.
|
|
228
|
-
useEffect( () => {
|
|
229
|
-
// This side-effect should not create an undo level as those should
|
|
230
|
-
// only be created via user interactions. Mark this change as
|
|
231
|
-
// not persistent to avoid undo level creation.
|
|
232
|
-
// See https://github.com/WordPress/gutenberg/issues/34564.
|
|
233
|
-
__unstableMarkNextChangeAsNotPersistent();
|
|
234
|
-
setAttributes( { isTopLevelItem } );
|
|
235
|
-
}, [ isTopLevelItem ] );
|
|
236
|
-
|
|
237
227
|
/**
|
|
238
228
|
* The hook shouldn't be necessary but due to a focus loss happening
|
|
239
229
|
* when selecting a suggestion in the link popover, we force close on block unselection.
|
|
@@ -9,72 +9,11 @@
|
|
|
9
9
|
* Build an array with CSS classes and inline styles defining the colors
|
|
10
10
|
* which will be applied to the navigation markup in the front-end.
|
|
11
11
|
*
|
|
12
|
-
* @param array $context
|
|
13
|
-
* @param array $attributes
|
|
12
|
+
* @param array $context Navigation block context.
|
|
13
|
+
* @param array $attributes Block attributes.
|
|
14
|
+
* @param bool $is_sub_menu Whether the block is a sub-menu.
|
|
14
15
|
* @return array Colors CSS classes and inline styles.
|
|
15
16
|
*/
|
|
16
|
-
function block_core_navigation_submenu_build_css_colors( $context, $attributes ) {
|
|
17
|
-
$colors = array(
|
|
18
|
-
'css_classes' => array(),
|
|
19
|
-
'inline_styles' => '',
|
|
20
|
-
);
|
|
21
|
-
|
|
22
|
-
$is_sub_menu = isset( $attributes['isTopLevelItem'] ) ? ( ! $attributes['isTopLevelItem'] ) : false;
|
|
23
|
-
|
|
24
|
-
// Text color.
|
|
25
|
-
$named_text_color = null;
|
|
26
|
-
$custom_text_color = null;
|
|
27
|
-
|
|
28
|
-
if ( $is_sub_menu && array_key_exists( 'customOverlayTextColor', $context ) ) {
|
|
29
|
-
$custom_text_color = $context['customOverlayTextColor'];
|
|
30
|
-
} elseif ( $is_sub_menu && array_key_exists( 'overlayTextColor', $context ) ) {
|
|
31
|
-
$named_text_color = $context['overlayTextColor'];
|
|
32
|
-
} elseif ( array_key_exists( 'customTextColor', $context ) ) {
|
|
33
|
-
$custom_text_color = $context['customTextColor'];
|
|
34
|
-
} elseif ( array_key_exists( 'textColor', $context ) ) {
|
|
35
|
-
$named_text_color = $context['textColor'];
|
|
36
|
-
} elseif ( isset( $context['style']['color']['text'] ) ) {
|
|
37
|
-
$custom_text_color = $context['style']['color']['text'];
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
// If has text color.
|
|
41
|
-
if ( ! is_null( $named_text_color ) ) {
|
|
42
|
-
// Add the color class.
|
|
43
|
-
array_push( $colors['css_classes'], 'has-text-color', sprintf( 'has-%s-color', $named_text_color ) );
|
|
44
|
-
} elseif ( ! is_null( $custom_text_color ) ) {
|
|
45
|
-
// Add the custom color inline style.
|
|
46
|
-
$colors['css_classes'][] = 'has-text-color';
|
|
47
|
-
$colors['inline_styles'] .= sprintf( 'color: %s;', $custom_text_color );
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// Background color.
|
|
51
|
-
$named_background_color = null;
|
|
52
|
-
$custom_background_color = null;
|
|
53
|
-
|
|
54
|
-
if ( $is_sub_menu && array_key_exists( 'customOverlayBackgroundColor', $context ) ) {
|
|
55
|
-
$custom_background_color = $context['customOverlayBackgroundColor'];
|
|
56
|
-
} elseif ( $is_sub_menu && array_key_exists( 'overlayBackgroundColor', $context ) ) {
|
|
57
|
-
$named_background_color = $context['overlayBackgroundColor'];
|
|
58
|
-
} elseif ( array_key_exists( 'customBackgroundColor', $context ) ) {
|
|
59
|
-
$custom_background_color = $context['customBackgroundColor'];
|
|
60
|
-
} elseif ( array_key_exists( 'backgroundColor', $context ) ) {
|
|
61
|
-
$named_background_color = $context['backgroundColor'];
|
|
62
|
-
} elseif ( isset( $context['style']['color']['background'] ) ) {
|
|
63
|
-
$custom_background_color = $context['style']['color']['background'];
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// If has background color.
|
|
67
|
-
if ( ! is_null( $named_background_color ) ) {
|
|
68
|
-
// Add the background-color class.
|
|
69
|
-
array_push( $colors['css_classes'], 'has-background', sprintf( 'has-%s-background-color', $named_background_color ) );
|
|
70
|
-
} elseif ( ! is_null( $custom_background_color ) ) {
|
|
71
|
-
// Add the custom background-color inline style.
|
|
72
|
-
$colors['css_classes'][] = 'has-background';
|
|
73
|
-
$colors['inline_styles'] .= sprintf( 'background-color: %s;', $custom_background_color );
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
return $colors;
|
|
77
|
-
}
|
|
78
17
|
|
|
79
18
|
/**
|
|
80
19
|
* Build an array with CSS classes and inline styles defining the font sizes
|
|
@@ -130,7 +69,6 @@ function block_core_navigation_submenu_render_submenu_icon() {
|
|
|
130
69
|
* @return string Returns the post content with the legacy widget added.
|
|
131
70
|
*/
|
|
132
71
|
function render_block_core_navigation_submenu( $attributes, $content, $block ) {
|
|
133
|
-
|
|
134
72
|
$navigation_link_has_id = isset( $attributes['id'] ) && is_numeric( $attributes['id'] );
|
|
135
73
|
$is_post_type = isset( $attributes['kind'] ) && 'post-type' === $attributes['kind'];
|
|
136
74
|
$is_post_type = $is_post_type || isset( $attributes['type'] ) && ( 'post' === $attributes['type'] || 'page' === $attributes['type'] );
|
|
@@ -145,17 +83,13 @@ function render_block_core_navigation_submenu( $attributes, $content, $block ) {
|
|
|
145
83
|
return '';
|
|
146
84
|
}
|
|
147
85
|
|
|
148
|
-
$colors = block_core_navigation_submenu_build_css_colors( $block->context, $attributes );
|
|
149
86
|
$font_sizes = block_core_navigation_submenu_build_css_font_sizes( $block->context );
|
|
150
|
-
$
|
|
151
|
-
$colors['css_classes'],
|
|
152
|
-
$font_sizes['css_classes']
|
|
153
|
-
);
|
|
154
|
-
$style_attribute = ( $colors['inline_styles'] . $font_sizes['inline_styles'] );
|
|
87
|
+
$style_attribute = $font_sizes['inline_styles'];
|
|
155
88
|
|
|
156
|
-
$css_classes = trim( implode( ' ', $
|
|
89
|
+
$css_classes = trim( implode( ' ', $font_sizes['css_classes'] ) );
|
|
157
90
|
$has_submenu = count( $block->inner_blocks ) > 0;
|
|
158
|
-
$
|
|
91
|
+
$kind = empty( $attributes['kind'] ) ? 'post_type' : str_replace( '-', '_', $attributes['kind'] );
|
|
92
|
+
$is_active = ! empty( $attributes['id'] ) && get_queried_object_id() === (int) $attributes['id'] && ! empty( get_queried_object()->$kind );
|
|
159
93
|
|
|
160
94
|
$show_submenu_indicators = isset( $block->context['showSubmenuIcon'] ) && $block->context['showSubmenuIcon'];
|
|
161
95
|
$open_on_click = isset( $block->context['openSubmenusOnClick'] ) && $block->context['openSubmenusOnClick'];
|
|
@@ -250,6 +184,34 @@ function render_block_core_navigation_submenu( $attributes, $content, $block ) {
|
|
|
250
184
|
}
|
|
251
185
|
|
|
252
186
|
if ( $has_submenu ) {
|
|
187
|
+
// Copy some attributes from the parent block to this one.
|
|
188
|
+
// Ideally this would happen in the client when the block is created.
|
|
189
|
+
if ( array_key_exists( 'overlayTextColor', $block->context ) ) {
|
|
190
|
+
$attributes['textColor'] = $block->context['overlayTextColor'];
|
|
191
|
+
}
|
|
192
|
+
if ( array_key_exists( 'overlayBackgroundColor', $block->context ) ) {
|
|
193
|
+
$attributes['backgroundColor'] = $block->context['overlayBackgroundColor'];
|
|
194
|
+
}
|
|
195
|
+
if ( array_key_exists( 'customOverlayTextColor', $block->context ) ) {
|
|
196
|
+
$attributes['style']['color']['text'] = $block->context['customOverlayTextColor'];
|
|
197
|
+
}
|
|
198
|
+
if ( array_key_exists( 'customOverlayBackgroundColor', $block->context ) ) {
|
|
199
|
+
$attributes['style']['color']['background'] = $block->context['customOverlayBackgroundColor'];
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
// This allows us to be able to get a response from gutenberg_apply_colors_support.
|
|
203
|
+
$block->block_type->supports['color'] = true;
|
|
204
|
+
$colors_supports = gutenberg_apply_colors_support( $block->block_type, $attributes );
|
|
205
|
+
$css_classes = 'wp-block-navigation__submenu-container';
|
|
206
|
+
if ( array_key_exists( 'class', $colors_supports ) ) {
|
|
207
|
+
$css_classes .= ' ' . $colors_supports['class'];
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
$style_attribute = '';
|
|
211
|
+
if ( array_key_exists( 'style', $colors_supports ) ) {
|
|
212
|
+
$style_attribute = $colors_supports['style'];
|
|
213
|
+
}
|
|
214
|
+
|
|
253
215
|
$inner_blocks_html = '';
|
|
254
216
|
foreach ( $block->inner_blocks as $inner_block ) {
|
|
255
217
|
$inner_blocks_html .= $inner_block->render();
|
|
@@ -263,10 +225,19 @@ function render_block_core_navigation_submenu( $attributes, $content, $block ) {
|
|
|
263
225
|
$html = $tag_processor->get_updated_html();
|
|
264
226
|
}
|
|
265
227
|
|
|
228
|
+
$wrapper_attributes = get_block_wrapper_attributes(
|
|
229
|
+
array(
|
|
230
|
+
'class' => $css_classes,
|
|
231
|
+
'style' => $style_attribute,
|
|
232
|
+
)
|
|
233
|
+
);
|
|
234
|
+
|
|
266
235
|
$html .= sprintf(
|
|
267
|
-
'<ul
|
|
236
|
+
'<ul %s>%s</ul>',
|
|
237
|
+
$wrapper_attributes,
|
|
268
238
|
$inner_blocks_html
|
|
269
239
|
);
|
|
240
|
+
|
|
270
241
|
}
|
|
271
242
|
|
|
272
243
|
$html .= '</li>';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`Page Break block transforms to Columns block 1`] = `
|
|
4
|
+
"<!-- wp:columns -->
|
|
5
|
+
<div class="wp-block-columns"><!-- wp:column {"width":"100%"} -->
|
|
6
|
+
<div class="wp-block-column" style="flex-basis:100%"><!-- wp:nextpage -->
|
|
7
|
+
<!--nextpage-->
|
|
8
|
+
<!-- /wp:nextpage --></div>
|
|
9
|
+
<!-- /wp:column --></div>
|
|
10
|
+
<!-- /wp:columns -->"
|
|
11
|
+
`;
|
|
12
|
+
|
|
13
|
+
exports[`Page Break block transforms to Group block 1`] = `
|
|
14
|
+
"<!-- wp:group {"layout":{"type":"constrained"}} -->
|
|
15
|
+
<div class="wp-block-group"><!-- wp:nextpage -->
|
|
16
|
+
<!--nextpage-->
|
|
17
|
+
<!-- /wp:nextpage --></div>
|
|
18
|
+
<!-- /wp:group -->"
|
|
19
|
+
`;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import {
|
|
5
|
+
getEditorHtml,
|
|
6
|
+
initializeEditor,
|
|
7
|
+
setupCoreBlocks,
|
|
8
|
+
transformBlock,
|
|
9
|
+
getBlockTransformOptions,
|
|
10
|
+
} from 'test/helpers';
|
|
11
|
+
|
|
12
|
+
const block = 'Page Break';
|
|
13
|
+
const initialHtml = `
|
|
14
|
+
<!-- wp:nextpage -->
|
|
15
|
+
<!--nextpage-->
|
|
16
|
+
<!-- /wp:nextpage -->`;
|
|
17
|
+
|
|
18
|
+
const transformsWithInnerBlocks = [ 'Columns', 'Group' ];
|
|
19
|
+
const blockTransforms = [ ...transformsWithInnerBlocks ];
|
|
20
|
+
|
|
21
|
+
setupCoreBlocks();
|
|
22
|
+
|
|
23
|
+
describe( `${ block } block transforms`, () => {
|
|
24
|
+
test.each( blockTransforms )( 'to %s block', async ( blockTransform ) => {
|
|
25
|
+
const screen = await initializeEditor( { initialHtml } );
|
|
26
|
+
const newBlock = await transformBlock( screen, block, blockTransform, {
|
|
27
|
+
hasInnerBlocks:
|
|
28
|
+
transformsWithInnerBlocks.includes( blockTransform ),
|
|
29
|
+
} );
|
|
30
|
+
expect( newBlock ).toBeVisible();
|
|
31
|
+
expect( getEditorHtml() ).toMatchSnapshot();
|
|
32
|
+
} );
|
|
33
|
+
|
|
34
|
+
it( 'matches expected transformation options', async () => {
|
|
35
|
+
const screen = await initializeEditor( { initialHtml } );
|
|
36
|
+
const transformOptions = await getBlockTransformOptions(
|
|
37
|
+
screen,
|
|
38
|
+
block
|
|
39
|
+
);
|
|
40
|
+
expect( transformOptions ).toHaveLength( blockTransforms.length );
|
|
41
|
+
} );
|
|
42
|
+
} );
|
package/src/page-list/edit.js
CHANGED
|
@@ -25,9 +25,9 @@ import {
|
|
|
25
25
|
Button,
|
|
26
26
|
} from '@wordpress/components';
|
|
27
27
|
import { __, sprintf } from '@wordpress/i18n';
|
|
28
|
-
import { useMemo, useState, useEffect } from '@wordpress/element';
|
|
28
|
+
import { useMemo, useState, useEffect, useCallback } from '@wordpress/element';
|
|
29
29
|
import { useEntityRecords } from '@wordpress/core-data';
|
|
30
|
-
import { useSelect } from '@wordpress/data';
|
|
30
|
+
import { useSelect, useDispatch } from '@wordpress/data';
|
|
31
31
|
|
|
32
32
|
/**
|
|
33
33
|
* Internal dependencies
|
|
@@ -53,7 +53,9 @@ function BlockContent( {
|
|
|
53
53
|
if ( ! hasResolvedPages ) {
|
|
54
54
|
return (
|
|
55
55
|
<div { ...blockProps }>
|
|
56
|
-
<
|
|
56
|
+
<div className="wp-block-page-list__loading-indicator-container">
|
|
57
|
+
<Spinner className="wp-block-page-list__loading-indicator" />
|
|
58
|
+
</div>
|
|
57
59
|
</div>
|
|
58
60
|
);
|
|
59
61
|
}
|
|
@@ -111,29 +113,6 @@ function BlockContent( {
|
|
|
111
113
|
}
|
|
112
114
|
}
|
|
113
115
|
|
|
114
|
-
function ConvertToLinks( { onClick, disabled } ) {
|
|
115
|
-
const [ isOpen, setOpen ] = useState( false );
|
|
116
|
-
const openModal = () => setOpen( true );
|
|
117
|
-
const closeModal = () => setOpen( false );
|
|
118
|
-
|
|
119
|
-
return (
|
|
120
|
-
<>
|
|
121
|
-
<BlockControls group="other">
|
|
122
|
-
<ToolbarButton title={ __( 'Edit' ) } onClick={ openModal }>
|
|
123
|
-
{ __( 'Edit' ) }
|
|
124
|
-
</ToolbarButton>
|
|
125
|
-
</BlockControls>
|
|
126
|
-
{ isOpen && (
|
|
127
|
-
<ConvertToLinksModal
|
|
128
|
-
onClick={ onClick }
|
|
129
|
-
onClose={ closeModal }
|
|
130
|
-
disabled={ disabled }
|
|
131
|
-
/>
|
|
132
|
-
) }
|
|
133
|
-
</>
|
|
134
|
-
);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
116
|
export default function PageListEdit( {
|
|
138
117
|
context,
|
|
139
118
|
clientId,
|
|
@@ -141,6 +120,9 @@ export default function PageListEdit( {
|
|
|
141
120
|
setAttributes,
|
|
142
121
|
} ) {
|
|
143
122
|
const { parentPageID } = attributes;
|
|
123
|
+
const [ isOpen, setOpen ] = useState( false );
|
|
124
|
+
const openModal = useCallback( () => setOpen( true ), [] );
|
|
125
|
+
const closeModal = () => setOpen( false );
|
|
144
126
|
|
|
145
127
|
const { records: pages, hasResolved: hasResolvedPages } = useEntityRecords(
|
|
146
128
|
'postType',
|
|
@@ -218,7 +200,11 @@ export default function PageListEdit( {
|
|
|
218
200
|
const hasChildren = pagesByParentId.has( page.id );
|
|
219
201
|
const pageProps = {
|
|
220
202
|
id: page.id,
|
|
221
|
-
label:
|
|
203
|
+
label:
|
|
204
|
+
// translators: displayed when a page has an empty title.
|
|
205
|
+
page.title?.rendered?.trim() !== ''
|
|
206
|
+
? page.title?.rendered
|
|
207
|
+
: __( '(no title)' ),
|
|
222
208
|
title: page.title?.rendered,
|
|
223
209
|
link: page.url,
|
|
224
210
|
hasChildren,
|
|
@@ -261,34 +247,69 @@ export default function PageListEdit( {
|
|
|
261
247
|
parentPageID,
|
|
262
248
|
] );
|
|
263
249
|
|
|
264
|
-
const
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
value: blockList,
|
|
272
|
-
} );
|
|
273
|
-
|
|
274
|
-
const { isNested } = useSelect(
|
|
250
|
+
const {
|
|
251
|
+
isNested,
|
|
252
|
+
hasSelectedChild,
|
|
253
|
+
parentBlock,
|
|
254
|
+
hasDraggedChild,
|
|
255
|
+
isChildOfNavigation,
|
|
256
|
+
} = useSelect(
|
|
275
257
|
( select ) => {
|
|
276
|
-
const {
|
|
258
|
+
const {
|
|
259
|
+
getBlockParentsByBlockName,
|
|
260
|
+
hasSelectedInnerBlock,
|
|
261
|
+
getBlockRootClientId,
|
|
262
|
+
hasDraggedInnerBlock,
|
|
263
|
+
} = select( blockEditorStore );
|
|
277
264
|
const blockParents = getBlockParentsByBlockName(
|
|
278
265
|
clientId,
|
|
279
266
|
'core/navigation-submenu',
|
|
280
267
|
true
|
|
281
268
|
);
|
|
269
|
+
const navigationBlockParents = getBlockParentsByBlockName(
|
|
270
|
+
clientId,
|
|
271
|
+
'core/navigation',
|
|
272
|
+
true
|
|
273
|
+
);
|
|
282
274
|
return {
|
|
283
275
|
isNested: blockParents.length > 0,
|
|
276
|
+
isChildOfNavigation: navigationBlockParents.length > 0,
|
|
277
|
+
hasSelectedChild: hasSelectedInnerBlock( clientId, true ),
|
|
278
|
+
hasDraggedChild: hasDraggedInnerBlock( clientId, true ),
|
|
279
|
+
parentBlock: getBlockRootClientId( clientId ),
|
|
284
280
|
};
|
|
285
281
|
},
|
|
286
282
|
[ clientId ]
|
|
287
283
|
);
|
|
288
284
|
|
|
285
|
+
const innerBlocksProps = useInnerBlocksProps( blockProps, {
|
|
286
|
+
allowedBlocks: [ 'core/page-list-item' ],
|
|
287
|
+
renderAppender: false,
|
|
288
|
+
__unstableDisableDropZone: true,
|
|
289
|
+
templateLock: isChildOfNavigation ? false : 'all',
|
|
290
|
+
onInput: NOOP,
|
|
291
|
+
onChange: NOOP,
|
|
292
|
+
value: blockList,
|
|
293
|
+
} );
|
|
294
|
+
|
|
295
|
+
const { selectBlock } = useDispatch( blockEditorStore );
|
|
296
|
+
|
|
297
|
+
useEffect( () => {
|
|
298
|
+
if ( hasSelectedChild || hasDraggedChild ) {
|
|
299
|
+
openModal();
|
|
300
|
+
selectBlock( parentBlock );
|
|
301
|
+
}
|
|
302
|
+
}, [
|
|
303
|
+
hasSelectedChild,
|
|
304
|
+
hasDraggedChild,
|
|
305
|
+
parentBlock,
|
|
306
|
+
selectBlock,
|
|
307
|
+
openModal,
|
|
308
|
+
] );
|
|
309
|
+
|
|
289
310
|
useEffect( () => {
|
|
290
311
|
setAttributes( { isNested } );
|
|
291
|
-
}, [ isNested ] );
|
|
312
|
+
}, [ isNested, setAttributes ] );
|
|
292
313
|
|
|
293
314
|
return (
|
|
294
315
|
<>
|
|
@@ -323,10 +344,23 @@ export default function PageListEdit( {
|
|
|
323
344
|
) }
|
|
324
345
|
</InspectorControls>
|
|
325
346
|
{ allowConvertToLinks && (
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
347
|
+
<>
|
|
348
|
+
<BlockControls group="other">
|
|
349
|
+
<ToolbarButton
|
|
350
|
+
title={ __( 'Edit' ) }
|
|
351
|
+
onClick={ openModal }
|
|
352
|
+
>
|
|
353
|
+
{ __( 'Edit' ) }
|
|
354
|
+
</ToolbarButton>
|
|
355
|
+
</BlockControls>
|
|
356
|
+
{ isOpen && (
|
|
357
|
+
<ConvertToLinksModal
|
|
358
|
+
onClick={ convertToNavigationLinks }
|
|
359
|
+
onClose={ closeModal }
|
|
360
|
+
disabled={ ! hasResolvedPages }
|
|
361
|
+
/>
|
|
362
|
+
) }
|
|
363
|
+
</>
|
|
330
364
|
) }
|
|
331
365
|
<BlockContent
|
|
332
366
|
blockProps={ blockProps }
|
|
@@ -61,3 +61,9 @@
|
|
|
61
61
|
.wp-block-page-list .components-notice {
|
|
62
62
|
margin-left: 0;
|
|
63
63
|
}
|
|
64
|
+
|
|
65
|
+
// Space spinner to give it breathing
|
|
66
|
+
// room when block is selected and has focus outline.
|
|
67
|
+
.wp-block-page-list__loading-indicator-container {
|
|
68
|
+
padding: $grid-unit-10 $grid-unit-15;
|
|
69
|
+
}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import classnames from 'classnames';
|
|
5
|
-
|
|
6
5
|
/**
|
|
7
6
|
* WordPress dependencies
|
|
8
7
|
*/
|
|
@@ -36,7 +35,7 @@ function useFrontPageId() {
|
|
|
36
35
|
}
|
|
37
36
|
|
|
38
37
|
export default function PageListItemEdit( { context, attributes } ) {
|
|
39
|
-
const { id, label, link, hasChildren } = attributes;
|
|
38
|
+
const { id, label, link, hasChildren, title } = attributes;
|
|
40
39
|
const isNavigationChild = 'showSubmenuIcon' in context;
|
|
41
40
|
const frontPageId = useFrontPageId();
|
|
42
41
|
|
|
@@ -81,7 +80,7 @@ export default function PageListItemEdit( { context, attributes } ) {
|
|
|
81
80
|
} ) }
|
|
82
81
|
href={ link }
|
|
83
82
|
>
|
|
84
|
-
{ decodeEntities(
|
|
83
|
+
{ decodeEntities( title ) }
|
|
85
84
|
</a>
|
|
86
85
|
) }
|
|
87
86
|
{ hasChildren && (
|