@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
|
@@ -0,0 +1,112 @@
|
|
|
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 = 'Media & Text';
|
|
13
|
+
const initialHtmlWithImage = `
|
|
14
|
+
<!-- wp:media-text {"mediaId":4674,"mediaType":"image","isStackedOnMobile":false,"className":"is-stacked-on-mobile"} -->
|
|
15
|
+
<div class="wp-block-media-text alignwide is-stacked-on-mobile"><figure class="wp-block-media-text__media"><img src="https://cldup.com/cXyG__fTLN.jpg" class="wp-image-4674 size-full"/></figure><div class="wp-block-media-text__content"><!-- wp:paragraph {"className":"has-large-font-size"} -->
|
|
16
|
+
<p class="has-large-font-size">Mountain</p>
|
|
17
|
+
<!-- /wp:paragraph --></div></div>
|
|
18
|
+
<!-- /wp:media-text -->`;
|
|
19
|
+
const initialHtmlWithVideo = `
|
|
20
|
+
<!-- wp:media-text {"mediaId":4675,"mediaType":"video","isStackedOnMobile":false,"className":"is-stacked-on-mobile"} -->
|
|
21
|
+
<div class="wp-block-media-text alignwide is-stacked-on-mobile"><figure class="wp-block-media-text__media"><video controls src="https://i.cloudup.com/YtZFJbuQCE.mov"></video></figure><div class="wp-block-media-text__content"><!-- wp:paragraph {"className":"has-large-font-size"} -->
|
|
22
|
+
<p class="has-large-font-size">Cloudup</p>
|
|
23
|
+
<!-- /wp:paragraph --></div></div>
|
|
24
|
+
<!-- /wp:media-text -->`;
|
|
25
|
+
|
|
26
|
+
const tranformsWithInnerBlocks = [ 'Columns', 'Group' ];
|
|
27
|
+
const blockTransformsWithImage = [
|
|
28
|
+
'Image',
|
|
29
|
+
'Cover',
|
|
30
|
+
...tranformsWithInnerBlocks,
|
|
31
|
+
];
|
|
32
|
+
const blockTransformsWithVideo = [
|
|
33
|
+
'Video',
|
|
34
|
+
'Cover',
|
|
35
|
+
...tranformsWithInnerBlocks,
|
|
36
|
+
];
|
|
37
|
+
|
|
38
|
+
setupCoreBlocks();
|
|
39
|
+
|
|
40
|
+
describe( `${ block } block transformations`, () => {
|
|
41
|
+
describe( 'with Image', () => {
|
|
42
|
+
test.each( blockTransformsWithImage )(
|
|
43
|
+
'to %s block',
|
|
44
|
+
async ( blockTransform ) => {
|
|
45
|
+
const screen = await initializeEditor( {
|
|
46
|
+
initialHtml: initialHtmlWithImage,
|
|
47
|
+
} );
|
|
48
|
+
const newBlock = await transformBlock(
|
|
49
|
+
screen,
|
|
50
|
+
block,
|
|
51
|
+
blockTransform,
|
|
52
|
+
{
|
|
53
|
+
isMediaBlock: true,
|
|
54
|
+
hasInnerBlocks:
|
|
55
|
+
tranformsWithInnerBlocks.includes( blockTransform ),
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
expect( newBlock ).toBeVisible();
|
|
59
|
+
expect( getEditorHtml() ).toMatchSnapshot();
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
it( 'matches expected transformation options', async () => {
|
|
64
|
+
const screen = await initializeEditor( {
|
|
65
|
+
initialHtml: initialHtmlWithImage,
|
|
66
|
+
} );
|
|
67
|
+
const transformOptions = await getBlockTransformOptions(
|
|
68
|
+
screen,
|
|
69
|
+
block
|
|
70
|
+
);
|
|
71
|
+
expect( transformOptions ).toHaveLength(
|
|
72
|
+
blockTransformsWithImage.length
|
|
73
|
+
);
|
|
74
|
+
} );
|
|
75
|
+
} );
|
|
76
|
+
|
|
77
|
+
describe( 'with Video', () => {
|
|
78
|
+
test.each( blockTransformsWithVideo )(
|
|
79
|
+
'to %s block',
|
|
80
|
+
async ( blockTransform ) => {
|
|
81
|
+
const screen = await initializeEditor( {
|
|
82
|
+
initialHtml: initialHtmlWithVideo,
|
|
83
|
+
} );
|
|
84
|
+
const newBlock = await transformBlock(
|
|
85
|
+
screen,
|
|
86
|
+
block,
|
|
87
|
+
blockTransform,
|
|
88
|
+
{
|
|
89
|
+
isMediaBlock: true,
|
|
90
|
+
hasInnerBlocks:
|
|
91
|
+
tranformsWithInnerBlocks.includes( blockTransform ),
|
|
92
|
+
}
|
|
93
|
+
);
|
|
94
|
+
expect( newBlock ).toBeVisible();
|
|
95
|
+
expect( getEditorHtml() ).toMatchSnapshot();
|
|
96
|
+
}
|
|
97
|
+
);
|
|
98
|
+
|
|
99
|
+
it( 'matches expected transformation options', async () => {
|
|
100
|
+
const screen = await initializeEditor( {
|
|
101
|
+
initialHtml: initialHtmlWithVideo,
|
|
102
|
+
} );
|
|
103
|
+
const transformOptions = await getBlockTransformOptions(
|
|
104
|
+
screen,
|
|
105
|
+
block
|
|
106
|
+
);
|
|
107
|
+
expect( transformOptions ).toHaveLength(
|
|
108
|
+
blockTransformsWithVideo.length
|
|
109
|
+
);
|
|
110
|
+
} );
|
|
111
|
+
} );
|
|
112
|
+
} );
|
|
@@ -42,6 +42,8 @@ const transforms = {
|
|
|
42
42
|
gradient,
|
|
43
43
|
id,
|
|
44
44
|
overlayColor,
|
|
45
|
+
style,
|
|
46
|
+
textColor,
|
|
45
47
|
url,
|
|
46
48
|
},
|
|
47
49
|
innerBlocks
|
|
@@ -66,6 +68,16 @@ const transforms = {
|
|
|
66
68
|
};
|
|
67
69
|
}
|
|
68
70
|
|
|
71
|
+
// Maintain custom text color block support value.
|
|
72
|
+
if ( style?.color?.text ) {
|
|
73
|
+
additionalAttributes.style = {
|
|
74
|
+
color: {
|
|
75
|
+
...additionalAttributes.style?.color,
|
|
76
|
+
text: style.color.text,
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
69
81
|
return createBlock(
|
|
70
82
|
'core/media-text',
|
|
71
83
|
{
|
|
@@ -77,6 +89,7 @@ const transforms = {
|
|
|
77
89
|
mediaId: id,
|
|
78
90
|
mediaType: backgroundType,
|
|
79
91
|
mediaUrl: url,
|
|
92
|
+
textColor,
|
|
80
93
|
...additionalAttributes,
|
|
81
94
|
},
|
|
82
95
|
innerBlocks
|
|
@@ -135,6 +148,8 @@ const transforms = {
|
|
|
135
148
|
) => {
|
|
136
149
|
const additionalAttributes = {};
|
|
137
150
|
|
|
151
|
+
// Migrate the background styles or gradient to Cover's custom
|
|
152
|
+
// gradient and overlay properties.
|
|
138
153
|
if ( style?.color?.gradient ) {
|
|
139
154
|
additionalAttributes.customGradient = style.color.gradient;
|
|
140
155
|
} else if ( style?.color?.background ) {
|
|
@@ -142,6 +157,13 @@ const transforms = {
|
|
|
142
157
|
style.color.background;
|
|
143
158
|
}
|
|
144
159
|
|
|
160
|
+
// Maintain custom text color support style.
|
|
161
|
+
if ( style?.color?.text ) {
|
|
162
|
+
additionalAttributes.style = {
|
|
163
|
+
color: { text: style.color.text },
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
|
|
145
167
|
const coverAttributes = {
|
|
146
168
|
align,
|
|
147
169
|
alt: mediaAlt,
|
|
@@ -152,64 +174,15 @@ const transforms = {
|
|
|
152
174
|
gradient,
|
|
153
175
|
id: mediaId,
|
|
154
176
|
overlayColor: backgroundColor,
|
|
177
|
+
textColor,
|
|
155
178
|
url: mediaUrl,
|
|
156
179
|
...additionalAttributes,
|
|
157
180
|
};
|
|
158
|
-
const customTextColor = style?.color?.text;
|
|
159
|
-
|
|
160
|
-
// Attempt to maintain any text color selection.
|
|
161
|
-
// Cover block's do not opt into color block support so we
|
|
162
|
-
// cannot directly copy the color attributes across.
|
|
163
|
-
if ( ! textColor && ! customTextColor ) {
|
|
164
|
-
return createBlock(
|
|
165
|
-
'core/cover',
|
|
166
|
-
coverAttributes,
|
|
167
|
-
innerBlocks
|
|
168
|
-
);
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
const coloredInnerBlocks = innerBlocks.map( ( innerBlock ) => {
|
|
172
|
-
const {
|
|
173
|
-
attributes: { style: innerStyle },
|
|
174
|
-
} = innerBlock;
|
|
175
|
-
|
|
176
|
-
// Only apply the media and text color if the inner block
|
|
177
|
-
// doesn't set its own color block support selection.
|
|
178
|
-
if (
|
|
179
|
-
innerBlock.attributes.textColor ||
|
|
180
|
-
innerStyle?.color?.text
|
|
181
|
-
) {
|
|
182
|
-
return innerBlock;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
const newAttributes = { textColor };
|
|
186
|
-
|
|
187
|
-
// Only add or extend inner block's style object if we have
|
|
188
|
-
// a custom text color from the media & text block.
|
|
189
|
-
if ( customTextColor ) {
|
|
190
|
-
newAttributes.style = {
|
|
191
|
-
...innerStyle,
|
|
192
|
-
color: {
|
|
193
|
-
...innerStyle?.color,
|
|
194
|
-
text: customTextColor,
|
|
195
|
-
},
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
return createBlock(
|
|
200
|
-
innerBlock.name,
|
|
201
|
-
{
|
|
202
|
-
...innerBlock.attributes,
|
|
203
|
-
...newAttributes,
|
|
204
|
-
},
|
|
205
|
-
innerBlock.innerBlocks
|
|
206
|
-
);
|
|
207
|
-
} );
|
|
208
181
|
|
|
209
182
|
return createBlock(
|
|
210
183
|
'core/cover',
|
|
211
184
|
coverAttributes,
|
|
212
|
-
|
|
185
|
+
innerBlocks
|
|
213
186
|
);
|
|
214
187
|
},
|
|
215
188
|
},
|
|
@@ -34,9 +34,27 @@ exports[`Missing block renders without crashing 1`] = `
|
|
|
34
34
|
onResponderTerminationRequest={[Function]}
|
|
35
35
|
onStartShouldSetResponder={[Function]}
|
|
36
36
|
>
|
|
37
|
-
Svg
|
|
37
|
+
<Svg
|
|
38
|
+
height={24}
|
|
39
|
+
label="Help icon"
|
|
40
|
+
style={{}}
|
|
41
|
+
viewBox="0 0 24 24"
|
|
42
|
+
width={24}
|
|
43
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
44
|
+
>
|
|
45
|
+
Path
|
|
46
|
+
</Svg>
|
|
38
47
|
</View>
|
|
39
|
-
Svg
|
|
48
|
+
<Svg
|
|
49
|
+
color="white"
|
|
50
|
+
height={24}
|
|
51
|
+
style={{}}
|
|
52
|
+
viewBox="0 0 24 24"
|
|
53
|
+
width={24}
|
|
54
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
55
|
+
>
|
|
56
|
+
Path
|
|
57
|
+
</Svg>
|
|
40
58
|
<Text>
|
|
41
59
|
missing/block/title
|
|
42
60
|
</Text>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`More 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:more -->
|
|
7
|
+
<!--more-->
|
|
8
|
+
<!-- /wp:more --></div>
|
|
9
|
+
<!-- /wp:column --></div>
|
|
10
|
+
<!-- /wp:columns -->"
|
|
11
|
+
`;
|
|
12
|
+
|
|
13
|
+
exports[`More block transforms to Group block 1`] = `
|
|
14
|
+
"<!-- wp:group {"layout":{"type":"constrained"}} -->
|
|
15
|
+
<div class="wp-block-group"><!-- wp:more -->
|
|
16
|
+
<!--more-->
|
|
17
|
+
<!-- /wp:more --></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 = 'More';
|
|
13
|
+
const initialHtml = `
|
|
14
|
+
<!-- wp:more -->
|
|
15
|
+
<!--more-->
|
|
16
|
+
<!-- /wp:more -->`;
|
|
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
|
+
} );
|
|
@@ -12,7 +12,6 @@ import {
|
|
|
12
12
|
useEffect,
|
|
13
13
|
useRef,
|
|
14
14
|
Platform,
|
|
15
|
-
useMemo,
|
|
16
15
|
} from '@wordpress/element';
|
|
17
16
|
import {
|
|
18
17
|
InspectorControls,
|
|
@@ -41,7 +40,7 @@ import {
|
|
|
41
40
|
} from '@wordpress/components';
|
|
42
41
|
import { __, sprintf } from '@wordpress/i18n';
|
|
43
42
|
import { speak } from '@wordpress/a11y';
|
|
44
|
-
import { createBlock
|
|
43
|
+
import { createBlock } from '@wordpress/blocks';
|
|
45
44
|
import { close, Icon } from '@wordpress/icons';
|
|
46
45
|
|
|
47
46
|
/**
|
|
@@ -107,16 +106,20 @@ function Navigation( {
|
|
|
107
106
|
|
|
108
107
|
const ref = attributes.ref;
|
|
109
108
|
|
|
110
|
-
const setRef = (
|
|
111
|
-
|
|
112
|
-
|
|
109
|
+
const setRef = useCallback(
|
|
110
|
+
( postId ) => {
|
|
111
|
+
setAttributes( { ref: postId } );
|
|
112
|
+
},
|
|
113
|
+
[ setAttributes ]
|
|
114
|
+
);
|
|
113
115
|
|
|
114
116
|
const recursionId = `navigationMenu/${ ref }`;
|
|
115
117
|
const hasAlreadyRendered = useHasRecursion( recursionId );
|
|
116
118
|
|
|
117
119
|
// Preload classic menus, so that they don't suddenly pop-in when viewing
|
|
118
120
|
// the Select Menu dropdown.
|
|
119
|
-
const { menus: classicMenus } =
|
|
121
|
+
const { menus: classicMenus, hasResolvedMenus: hasResolvedClassicMenus } =
|
|
122
|
+
useNavigationEntities();
|
|
120
123
|
|
|
121
124
|
const [ showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice ] =
|
|
122
125
|
useNavigationNotice( {
|
|
@@ -197,52 +200,22 @@ function Navigation( {
|
|
|
197
200
|
const isConvertingClassicMenu =
|
|
198
201
|
classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;
|
|
199
202
|
|
|
200
|
-
// Only
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
?.sort( ( menuA, menuB ) => {
|
|
206
|
-
const menuADate = new Date( menuA.date );
|
|
207
|
-
const menuBDate = new Date( menuB.date );
|
|
208
|
-
return menuADate.getTime() < menuBDate.getTime();
|
|
209
|
-
} ),
|
|
210
|
-
[ navigationMenus ]
|
|
211
|
-
);
|
|
203
|
+
// Only auto-fallback to the latest published menu.
|
|
204
|
+
// The REST API already returns items sorted by publishing date.
|
|
205
|
+
const fallbackNavigationMenuId = navigationMenus?.find(
|
|
206
|
+
( menu ) => menu.status === 'publish'
|
|
207
|
+
)?.id;
|
|
212
208
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
if ( fallbackNavigationMenus && isCreatingNavigationMenu ) {
|
|
220
|
-
speak( __( `Creating Navigation Menu.` ) );
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
if ( createNavigationMenuIsSuccess ) {
|
|
224
|
-
handleUpdateMenu( createNavigationMenuPost.id, {
|
|
225
|
-
focusNavigationBlock: true,
|
|
226
|
-
} );
|
|
227
|
-
|
|
228
|
-
if ( fallbackNavigationMenus ) {
|
|
229
|
-
showNavigationMenuStatusNotice(
|
|
230
|
-
__( `Navigation Menu successfully created.` )
|
|
231
|
-
);
|
|
209
|
+
const handleUpdateMenu = useCallback(
|
|
210
|
+
( menuId, options = { focusNavigationBlock: false } ) => {
|
|
211
|
+
const { focusNavigationBlock } = options;
|
|
212
|
+
setRef( menuId );
|
|
213
|
+
if ( focusNavigationBlock ) {
|
|
214
|
+
selectBlock( clientId );
|
|
232
215
|
}
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
showNavigationMenuStatusNotice(
|
|
237
|
-
__( 'Failed to create Navigation Menu.' )
|
|
238
|
-
);
|
|
239
|
-
}
|
|
240
|
-
}, [
|
|
241
|
-
createNavigationMenuStatus,
|
|
242
|
-
createNavigationMenuError,
|
|
243
|
-
createNavigationMenuPost,
|
|
244
|
-
fallbackNavigationMenus,
|
|
245
|
-
] );
|
|
216
|
+
},
|
|
217
|
+
[ selectBlock, clientId, setRef ]
|
|
218
|
+
);
|
|
246
219
|
|
|
247
220
|
// Attempt to retrieve and prioritize any existing navigation menu unless:
|
|
248
221
|
// - the are uncontrolled inner blocks already present in the block.
|
|
@@ -256,7 +229,7 @@ function Navigation( {
|
|
|
256
229
|
hasUncontrolledInnerBlocks ||
|
|
257
230
|
isCreatingNavigationMenu ||
|
|
258
231
|
ref ||
|
|
259
|
-
!
|
|
232
|
+
! fallbackNavigationMenuId
|
|
260
233
|
) {
|
|
261
234
|
return;
|
|
262
235
|
}
|
|
@@ -269,12 +242,14 @@ function Navigation( {
|
|
|
269
242
|
* nor to be undoable, hence why it is marked as non persistent
|
|
270
243
|
*/
|
|
271
244
|
__unstableMarkNextChangeAsNotPersistent();
|
|
272
|
-
setRef(
|
|
245
|
+
setRef( fallbackNavigationMenuId );
|
|
273
246
|
}, [
|
|
274
247
|
ref,
|
|
248
|
+
setRef,
|
|
275
249
|
isCreatingNavigationMenu,
|
|
276
|
-
|
|
250
|
+
fallbackNavigationMenuId,
|
|
277
251
|
hasUncontrolledInnerBlocks,
|
|
252
|
+
__unstableMarkNextChangeAsNotPersistent,
|
|
278
253
|
] );
|
|
279
254
|
|
|
280
255
|
const isEntityAvailable =
|
|
@@ -291,10 +266,12 @@ function Navigation( {
|
|
|
291
266
|
useEffect( () => {
|
|
292
267
|
if (
|
|
293
268
|
ref ||
|
|
269
|
+
! hasResolvedClassicMenus ||
|
|
294
270
|
! hasResolvedNavigationMenus ||
|
|
295
271
|
isConvertingClassicMenu ||
|
|
296
|
-
|
|
297
|
-
hasUnsavedBlocks
|
|
272
|
+
fallbackNavigationMenuId ||
|
|
273
|
+
hasUnsavedBlocks ||
|
|
274
|
+
! classicMenus?.length
|
|
298
275
|
) {
|
|
299
276
|
return;
|
|
300
277
|
}
|
|
@@ -303,46 +280,39 @@ function Navigation( {
|
|
|
303
280
|
// a classic menu with a `primary` location or slug,
|
|
304
281
|
// then create a new navigation menu based on it.
|
|
305
282
|
// Otherwise, use the most recently created classic menu.
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
(
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
);
|
|
283
|
+
const primaryMenus = classicMenus.filter(
|
|
284
|
+
( classicMenu ) =>
|
|
285
|
+
classicMenu.locations.includes( 'primary' ) ||
|
|
286
|
+
classicMenu.slug === 'primary'
|
|
287
|
+
);
|
|
312
288
|
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
} else {
|
|
320
|
-
classicMenus.sort( ( a, b ) => {
|
|
321
|
-
return b.id - a.id;
|
|
322
|
-
} );
|
|
323
|
-
convertClassicMenu(
|
|
324
|
-
classicMenus[ 0 ].id,
|
|
325
|
-
classicMenus[ 0 ].name,
|
|
326
|
-
'publish'
|
|
327
|
-
);
|
|
328
|
-
}
|
|
289
|
+
if ( primaryMenus.length ) {
|
|
290
|
+
convertClassicMenu(
|
|
291
|
+
primaryMenus[ 0 ].id,
|
|
292
|
+
primaryMenus[ 0 ].name,
|
|
293
|
+
'publish'
|
|
294
|
+
);
|
|
329
295
|
} else {
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
defaultBlocks = [ createBlock( 'core/page-list' ) ];
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
createNavigationMenu(
|
|
340
|
-
'Navigation', // TODO - use the template slug in future
|
|
341
|
-
defaultBlocks,
|
|
296
|
+
classicMenus.sort( ( a, b ) => {
|
|
297
|
+
return b.id - a.id;
|
|
298
|
+
} );
|
|
299
|
+
convertClassicMenu(
|
|
300
|
+
classicMenus[ 0 ].id,
|
|
301
|
+
classicMenus[ 0 ].name,
|
|
342
302
|
'publish'
|
|
343
303
|
);
|
|
344
304
|
}
|
|
345
|
-
}, [
|
|
305
|
+
}, [
|
|
306
|
+
hasResolvedClassicMenus,
|
|
307
|
+
hasResolvedNavigationMenus,
|
|
308
|
+
hasUnsavedBlocks,
|
|
309
|
+
classicMenus,
|
|
310
|
+
convertClassicMenu,
|
|
311
|
+
createNavigationMenu,
|
|
312
|
+
fallbackNavigationMenuId,
|
|
313
|
+
isConvertingClassicMenu,
|
|
314
|
+
ref,
|
|
315
|
+
] );
|
|
346
316
|
|
|
347
317
|
const navRef = useRef();
|
|
348
318
|
|
|
@@ -362,6 +332,25 @@ function Navigation( {
|
|
|
362
332
|
classicMenus?.length === 0 &&
|
|
363
333
|
! hasUncontrolledInnerBlocks;
|
|
364
334
|
|
|
335
|
+
useEffect( () => {
|
|
336
|
+
if ( isPlaceholder ) {
|
|
337
|
+
/**
|
|
338
|
+
* this fallback only displays (both in editor and on front)
|
|
339
|
+
* the list of pages block if no menu is available as a fallback.
|
|
340
|
+
* We don't want the fallback to request a save,
|
|
341
|
+
* nor to be undoable, hence we mark it non persistent.
|
|
342
|
+
*/
|
|
343
|
+
__unstableMarkNextChangeAsNotPersistent();
|
|
344
|
+
replaceInnerBlocks( clientId, [ createBlock( 'core/page-list' ) ] );
|
|
345
|
+
}
|
|
346
|
+
}, [
|
|
347
|
+
clientId,
|
|
348
|
+
isPlaceholder,
|
|
349
|
+
ref,
|
|
350
|
+
__unstableMarkNextChangeAsNotPersistent,
|
|
351
|
+
replaceInnerBlocks,
|
|
352
|
+
] );
|
|
353
|
+
|
|
365
354
|
// "loading" state:
|
|
366
355
|
// - there is a menu creation process in progress.
|
|
367
356
|
// - there is a classic menu conversion process in progress.
|
|
@@ -413,17 +402,6 @@ function Navigation( {
|
|
|
413
402
|
] = useState();
|
|
414
403
|
const [ detectedOverlayColor, setDetectedOverlayColor ] = useState();
|
|
415
404
|
|
|
416
|
-
const handleUpdateMenu = useCallback(
|
|
417
|
-
( menuId, options = { focusNavigationBlock: false } ) => {
|
|
418
|
-
const { focusNavigationBlock } = options;
|
|
419
|
-
setRef( menuId );
|
|
420
|
-
if ( focusNavigationBlock ) {
|
|
421
|
-
selectBlock( clientId );
|
|
422
|
-
}
|
|
423
|
-
},
|
|
424
|
-
[ selectBlock, clientId ]
|
|
425
|
-
);
|
|
426
|
-
|
|
427
405
|
const onSelectClassicMenu = async ( classicMenu ) => {
|
|
428
406
|
const navMenu = await convertClassicMenu(
|
|
429
407
|
classicMenu.id,
|
|
@@ -449,7 +427,7 @@ function Navigation( {
|
|
|
449
427
|
}
|
|
450
428
|
|
|
451
429
|
if ( createNavigationMenuIsSuccess ) {
|
|
452
|
-
handleUpdateMenu( createNavigationMenuPost
|
|
430
|
+
handleUpdateMenu( createNavigationMenuPost?.id, {
|
|
453
431
|
focusNavigationBlock: true,
|
|
454
432
|
} );
|
|
455
433
|
|
|
@@ -466,7 +444,7 @@ function Navigation( {
|
|
|
466
444
|
}, [
|
|
467
445
|
createNavigationMenuStatus,
|
|
468
446
|
createNavigationMenuError,
|
|
469
|
-
createNavigationMenuPost,
|
|
447
|
+
createNavigationMenuPost?.id,
|
|
470
448
|
createNavigationMenuIsError,
|
|
471
449
|
createNavigationMenuIsSuccess,
|
|
472
450
|
isCreatingNavigationMenu,
|
|
@@ -492,16 +470,12 @@ function Navigation( {
|
|
|
492
470
|
__( 'Classic menu import failed.' )
|
|
493
471
|
);
|
|
494
472
|
}
|
|
495
|
-
}, [
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
__unstableMarkNextChangeAsNotPersistent();
|
|
502
|
-
setAttributes( { orientation } );
|
|
503
|
-
}
|
|
504
|
-
}, [ orientation ] );
|
|
473
|
+
}, [
|
|
474
|
+
classicMenuConversionStatus,
|
|
475
|
+
classicMenuConversionError,
|
|
476
|
+
hideClassicMenuConversionNotice,
|
|
477
|
+
showClassicMenuConversionNotice,
|
|
478
|
+
] );
|
|
505
479
|
|
|
506
480
|
useEffect( () => {
|
|
507
481
|
if ( ! enableContrastChecking ) {
|
|
@@ -531,7 +505,11 @@ function Navigation( {
|
|
|
531
505
|
setDetectedOverlayBackgroundColor
|
|
532
506
|
);
|
|
533
507
|
}
|
|
534
|
-
}
|
|
508
|
+
}, [
|
|
509
|
+
enableContrastChecking,
|
|
510
|
+
overlayTextColor.color,
|
|
511
|
+
overlayBackgroundColor.color,
|
|
512
|
+
] );
|
|
535
513
|
|
|
536
514
|
useEffect( () => {
|
|
537
515
|
if ( ! isSelected && ! isInnerBlockSelected ) {
|
|
@@ -572,6 +550,9 @@ function Navigation( {
|
|
|
572
550
|
canUserCreateNavigationMenu,
|
|
573
551
|
hasResolvedCanUserCreateNavigationMenu,
|
|
574
552
|
ref,
|
|
553
|
+
hideNavigationMenuPermissionsNotice,
|
|
554
|
+
showNavigationMenuPermissionsNotice,
|
|
555
|
+
navMenuResolvedButMissing,
|
|
575
556
|
] );
|
|
576
557
|
|
|
577
558
|
const hasManagePermissions =
|
|
@@ -791,6 +772,7 @@ function Navigation( {
|
|
|
791
772
|
createNavigationMenuIsSuccess
|
|
792
773
|
}
|
|
793
774
|
createNavigationMenuIsError={ createNavigationMenuIsError }
|
|
775
|
+
currentMenuId={ ref }
|
|
794
776
|
isNavigationMenuMissing={ isNavigationMenuMissing }
|
|
795
777
|
isManageMenusButtonDisabled={ isManageMenusButtonDisabled }
|
|
796
778
|
onCreateNew={ createUntitledEmptyNavigationMenu }
|
|
@@ -898,7 +880,9 @@ function Navigation( {
|
|
|
898
880
|
|
|
899
881
|
{ isLoading && (
|
|
900
882
|
<TagName { ...blockProps }>
|
|
901
|
-
<
|
|
883
|
+
<div className="wp-block-navigation__loading-indicator-container">
|
|
884
|
+
<Spinner className="wp-block-navigation__loading-indicator" />
|
|
885
|
+
</div>
|
|
902
886
|
</TagName>
|
|
903
887
|
) }
|
|
904
888
|
|