@wordpress/block-library 8.7.0 → 8.9.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/column/index.js +2 -1
- package/build/column/index.js.map +1 -1
- package/build/columns/edit.js +24 -6
- package/build/columns/edit.js.map +1 -1
- package/build/columns/index.js +2 -1
- package/build/columns/index.js.map +1 -1
- package/build/columns/utils.js +4 -9
- package/build/columns/utils.js.map +1 -1
- package/build/cover/edit/index.js +46 -50
- package/build/cover/edit/index.js.map +1 -1
- package/build/cover/edit/{resizable-cover.js → resizable-cover-popover.js} +32 -6
- package/build/cover/edit/resizable-cover-popover.js.map +1 -0
- package/build/cover/index.js +12 -0
- package/build/cover/index.js.map +1 -1
- package/build/cover/transforms.js +10 -7
- package/build/cover/transforms.js.map +1 -1
- package/build/details/edit.js +67 -0
- package/build/details/edit.js.map +1 -0
- package/build/details/index.js +110 -0
- package/build/details/index.js.map +1 -0
- package/build/details/save.js +33 -0
- package/build/details/save.js.map +1 -0
- package/build/details-content/edit.js +34 -0
- package/build/details-content/edit.js.map +1 -0
- package/build/details-content/index.js +94 -0
- package/build/details-content/index.js.map +1 -0
- package/build/details-content/save.js +20 -0
- package/build/details-content/save.js.map +1 -0
- package/build/details-summary/edit.js +42 -0
- package/build/details-summary/edit.js.map +1 -0
- package/build/details-summary/index.js +97 -0
- package/build/details-summary/index.js.map +1 -0
- package/build/details-summary/save.js +24 -0
- package/build/details-summary/save.js.map +1 -0
- package/build/embed/deprecated.js +4 -1
- package/build/embed/deprecated.js.map +1 -1
- package/build/embed/embed-link-settings.native.js +1 -1
- package/build/embed/embed-link-settings.native.js.map +1 -1
- package/build/embed/embed-placeholder.js +1 -1
- package/build/embed/embed-placeholder.js.map +1 -1
- package/build/embed/index.js +4 -1
- package/build/embed/index.js.map +1 -1
- package/build/embed/transforms.js +4 -1
- package/build/embed/transforms.js.map +1 -1
- package/build/embed/util.js +4 -1
- package/build/embed/util.js.map +1 -1
- package/build/file/edit.native.js +0 -2
- package/build/file/edit.native.js.map +1 -1
- package/build/gallery/use-get-media.native.js +2 -1
- package/build/gallery/use-get-media.native.js.map +1 -1
- package/build/group/edit.js +3 -1
- package/build/group/edit.js.map +1 -1
- package/build/group/index.js +3 -0
- package/build/group/index.js.map +1 -1
- package/build/image/edit.js +16 -13
- package/build/image/edit.js.map +1 -1
- package/build/image/index.js +5 -3
- package/build/image/index.js.map +1 -1
- package/build/index.js +24 -6
- package/build/index.js.map +1 -1
- package/build/index.native.js +9 -5
- package/build/index.native.js.map +1 -1
- package/build/media-text/edit.js +4 -2
- package/build/media-text/edit.js.map +1 -1
- package/build/media-text/index.js +3 -0
- package/build/media-text/index.js.map +1 -1
- package/build/media-text/media-container.js +2 -6
- package/build/media-text/media-container.js.map +1 -1
- package/build/media-text/media-container.native.js +3 -3
- package/build/media-text/media-container.native.js.map +1 -1
- package/build/navigation/deprecated.js +8 -11
- package/build/navigation/deprecated.js.map +1 -1
- package/build/navigation/edit/index.js +32 -64
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +1 -14
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/post-author/index.js +0 -1
- package/build/post-author/index.js.map +1 -1
- package/build/post-date/edit.js +4 -2
- package/build/post-date/edit.js.map +1 -1
- package/build/post-excerpt/edit.js +2 -2
- package/build/post-excerpt/edit.js.map +1 -1
- package/build/post-featured-image/dimension-controls.js +2 -1
- package/build/post-featured-image/dimension-controls.js.map +1 -1
- package/build/post-featured-image/edit.js +16 -27
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-time-to-read/edit.js +1 -1
- package/build/post-time-to-read/edit.js.map +1 -1
- package/build/post-time-to-read/index.js +7 -0
- package/build/post-time-to-read/index.js.map +1 -1
- package/build/query/deprecated.js +8 -6
- package/build/query/deprecated.js.map +1 -1
- package/build/query/edit/inspector-controls/create-new-post-link.js +41 -0
- package/build/query/edit/inspector-controls/create-new-post-link.js.map +1 -0
- package/build/query/edit/inspector-controls/index.js +14 -6
- package/build/query/edit/inspector-controls/index.js.map +1 -1
- package/build/query/edit/pattern-selection-modal.js +2 -1
- package/build/query/edit/pattern-selection-modal.js.map +1 -1
- package/build/query/index.js +5 -12
- package/build/query/index.js.map +1 -1
- package/build/site-logo/edit.js +114 -16
- package/build/site-logo/edit.js.map +1 -1
- package/build/site-logo/index.js +1 -1
- package/build/social-link/icons/chain.js +1 -1
- package/build/social-link/icons/chain.js.map +1 -1
- package/build/social-link/icons/mail.js +1 -1
- package/build/social-link/icons/mail.js.map +1 -1
- package/build/spacer/controls.js +25 -6
- package/build/spacer/controls.js.map +1 -1
- package/build/spacer/edit.js +129 -13
- package/build/spacer/edit.js.map +1 -1
- package/build/spacer/save.js +2 -2
- package/build/spacer/save.js.map +1 -1
- package/build/table/state.js +35 -35
- package/build/table/state.js.map +1 -1
- package/build/template-part/edit/index.js +2 -1
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/utils/hooks.js +2 -2
- package/build/template-part/edit/utils/hooks.js.map +1 -1
- package/build/term-description/index.js +1 -2
- package/build/term-description/index.js.map +1 -1
- package/build/utils/migrate-font-family.js +12 -5
- package/build/utils/migrate-font-family.js.map +1 -1
- package/build/video/edit.native.js +4 -3
- package/build/video/edit.native.js.map +1 -1
- package/build-module/column/index.js +2 -1
- package/build-module/column/index.js.map +1 -1
- package/build-module/columns/edit.js +24 -6
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/columns/index.js +2 -1
- package/build-module/columns/index.js.map +1 -1
- package/build-module/columns/utils.js +4 -8
- package/build-module/columns/utils.js.map +1 -1
- package/build-module/cover/edit/index.js +48 -52
- package/build-module/cover/edit/index.js.map +1 -1
- package/build-module/cover/edit/{resizable-cover.js → resizable-cover-popover.js} +31 -6
- package/build-module/cover/edit/resizable-cover-popover.js.map +1 -0
- package/build-module/cover/index.js +12 -0
- package/build-module/cover/index.js.map +1 -1
- package/build-module/cover/transforms.js +5 -1
- package/build-module/cover/transforms.js.map +1 -1
- package/build-module/details/edit.js +52 -0
- package/build-module/details/edit.js.map +1 -0
- package/build-module/details/index.js +91 -0
- package/build-module/details/index.js.map +1 -0
- package/build-module/details/save.js +20 -0
- package/build-module/details/save.js.map +1 -0
- package/build-module/details-content/edit.js +23 -0
- package/build-module/details-content/edit.js.map +1 -0
- package/build-module/details-content/index.js +76 -0
- package/build-module/details-content/index.js.map +1 -0
- package/build-module/details-content/save.js +11 -0
- package/build-module/details-content/save.js.map +1 -0
- package/build-module/details-summary/edit.js +30 -0
- package/build-module/details-summary/edit.js.map +1 -0
- package/build-module/details-summary/index.js +79 -0
- package/build-module/details-summary/index.js.map +1 -0
- package/build-module/details-summary/save.js +16 -0
- package/build-module/details-summary/save.js.map +1 -0
- package/build-module/embed/deprecated.js +4 -1
- package/build-module/embed/deprecated.js.map +1 -1
- package/build-module/embed/embed-link-settings.native.js +1 -1
- package/build-module/embed/embed-link-settings.native.js.map +1 -1
- package/build-module/embed/embed-placeholder.js +1 -1
- package/build-module/embed/embed-placeholder.js.map +1 -1
- package/build-module/embed/index.js +4 -1
- package/build-module/embed/index.js.map +1 -1
- package/build-module/embed/transforms.js +4 -1
- package/build-module/embed/transforms.js.map +1 -1
- package/build-module/embed/util.js +4 -1
- package/build-module/embed/util.js.map +1 -1
- package/build-module/file/edit.native.js +0 -2
- package/build-module/file/edit.native.js.map +1 -1
- package/build-module/gallery/use-get-media.native.js +2 -1
- package/build-module/gallery/use-get-media.native.js.map +1 -1
- package/build-module/group/edit.js +3 -1
- package/build-module/group/edit.js.map +1 -1
- package/build-module/group/index.js +3 -0
- package/build-module/group/index.js.map +1 -1
- package/build-module/image/edit.js +16 -13
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/index.js +5 -3
- package/build-module/image/index.js.map +1 -1
- package/build-module/index.js +21 -6
- package/build-module/index.js.map +1 -1
- package/build-module/index.native.js +9 -5
- package/build-module/index.native.js.map +1 -1
- package/build-module/media-text/edit.js +4 -2
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/media-text/index.js +3 -0
- package/build-module/media-text/index.js.map +1 -1
- package/build-module/media-text/media-container.js +1 -5
- package/build-module/media-text/media-container.js.map +1 -1
- package/build-module/media-text/media-container.native.js +1 -1
- package/build-module/media-text/media-container.native.js.map +1 -1
- package/build-module/navigation/deprecated.js +8 -10
- package/build-module/navigation/deprecated.js.map +1 -1
- package/build-module/navigation/edit/index.js +31 -63
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +1 -14
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/post-author/index.js +0 -1
- package/build-module/post-author/index.js.map +1 -1
- package/build-module/post-date/edit.js +4 -2
- package/build-module/post-date/edit.js.map +1 -1
- package/build-module/post-excerpt/edit.js +2 -2
- package/build-module/post-excerpt/edit.js.map +1 -1
- package/build-module/post-featured-image/dimension-controls.js +2 -1
- package/build-module/post-featured-image/dimension-controls.js.map +1 -1
- package/build-module/post-featured-image/edit.js +16 -27
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-time-to-read/edit.js +1 -1
- package/build-module/post-time-to-read/edit.js.map +1 -1
- package/build-module/post-time-to-read/index.js +7 -0
- package/build-module/post-time-to-read/index.js.map +1 -1
- package/build-module/query/deprecated.js +5 -2
- package/build-module/query/deprecated.js.map +1 -1
- package/build-module/query/edit/inspector-controls/create-new-post-link.js +33 -0
- package/build-module/query/edit/inspector-controls/create-new-post-link.js.map +1 -0
- package/build-module/query/edit/inspector-controls/index.js +12 -7
- package/build-module/query/edit/inspector-controls/index.js.map +1 -1
- package/build-module/query/edit/pattern-selection-modal.js +2 -1
- package/build-module/query/edit/pattern-selection-modal.js.map +1 -1
- package/build-module/query/index.js +5 -10
- package/build-module/query/index.js.map +1 -1
- package/build-module/site-logo/edit.js +115 -18
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/site-logo/index.js +1 -1
- package/build-module/social-link/icons/chain.js +1 -1
- package/build-module/social-link/icons/chain.js.map +1 -1
- package/build-module/social-link/icons/mail.js +1 -1
- package/build-module/social-link/icons/mail.js.map +1 -1
- package/build-module/spacer/controls.js +27 -9
- package/build-module/spacer/controls.js.map +1 -1
- package/build-module/spacer/edit.js +129 -14
- package/build-module/spacer/edit.js.map +1 -1
- package/build-module/spacer/save.js +3 -3
- package/build-module/spacer/save.js.map +1 -1
- package/build-module/table/state.js +35 -33
- package/build-module/table/state.js.map +1 -1
- package/build-module/template-part/edit/index.js +2 -1
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/utils/hooks.js +2 -2
- package/build-module/template-part/edit/utils/hooks.js.map +1 -1
- package/build-module/term-description/index.js +1 -2
- package/build-module/term-description/index.js.map +1 -1
- package/build-module/utils/migrate-font-family.js +9 -1
- package/build-module/utils/migrate-font-family.js.map +1 -1
- package/build-module/video/edit.native.js +4 -3
- package/build-module/video/edit.native.js.map +1 -1
- package/build-style/columns/style-rtl.css +4 -1
- package/build-style/columns/style.css +4 -1
- package/build-style/common-rtl.css +1 -1
- package/build-style/common.css +1 -1
- package/build-style/cover/editor-rtl.css +9 -10
- package/build-style/cover/editor.css +9 -10
- package/build-style/cover/style-rtl.css +1 -1
- package/build-style/cover/style.css +1 -1
- package/build-style/details/style-rtl.css +91 -0
- package/build-style/details/style.css +91 -0
- package/build-style/details-summary/editor-rtl.css +91 -0
- package/build-style/details-summary/editor.css +91 -0
- package/build-style/details-summary/style-rtl.css +91 -0
- package/build-style/details-summary/style.css +91 -0
- package/build-style/editor-rtl.css +97 -74
- package/build-style/editor.css +97 -74
- package/build-style/file/style-rtl.css +4 -3
- package/build-style/file/style.css +4 -3
- package/build-style/html/editor-rtl.css +2 -2
- package/build-style/html/editor.css +2 -2
- package/build-style/image/editor-rtl.css +1 -1
- package/build-style/image/editor.css +1 -1
- package/build-style/post-excerpt/style-rtl.css +1 -1
- package/build-style/post-excerpt/style.css +1 -1
- package/build-style/pullquote/style-rtl.css +4 -1
- package/build-style/pullquote/style.css +4 -1
- package/build-style/query/editor-rtl.css +8 -12
- package/build-style/query/editor.css +8 -12
- package/build-style/search/style-rtl.css +2 -0
- package/build-style/search/style.css +2 -0
- package/build-style/shortcode/editor-rtl.css +15 -35
- package/build-style/shortcode/editor.css +15 -35
- package/build-style/site-logo/editor-rtl.css +46 -0
- package/build-style/site-logo/editor.css +46 -0
- package/build-style/spacer/editor-rtl.css +4 -2
- package/build-style/spacer/editor.css +4 -2
- package/build-style/style-rtl.css +25 -8
- package/build-style/style.css +25 -8
- package/build-style/template-part/editor-rtl.css +8 -12
- package/build-style/template-part/editor.css +8 -12
- package/package.json +31 -31
- package/src/buttons/test/__snapshots__/edit.native.js.snap +18 -0
- package/src/buttons/test/edit.native.js +123 -2
- package/src/column/block.json +2 -1
- package/src/columns/block.json +2 -1
- package/src/columns/edit.js +33 -9
- package/src/columns/style.scss +5 -1
- package/src/columns/utils.js +8 -9
- package/src/common.scss +1 -1
- package/src/cover/block.json +12 -0
- package/src/cover/edit/index.js +44 -37
- package/src/cover/edit/resizable-cover-popover.js +82 -0
- package/src/cover/editor.scss +20 -13
- package/src/cover/index.php +9 -10
- package/src/cover/style.scss +1 -1
- package/src/cover/test/edit.js +1 -1
- package/src/cover/transforms.js +4 -1
- package/src/details/block.json +54 -0
- package/src/details/edit.js +59 -0
- package/src/details/index.js +35 -0
- package/src/details/save.js +15 -0
- package/src/details/style.scss +3 -0
- package/src/details-content/block.json +50 -0
- package/src/details-content/edit.js +29 -0
- package/src/details-content/index.js +23 -0
- package/src/details-content/save.js +12 -0
- package/src/details-summary/block.json +53 -0
- package/src/details-summary/edit.js +27 -0
- package/src/details-summary/editor.scss +3 -0
- package/src/details-summary/index.js +23 -0
- package/src/details-summary/save.js +13 -0
- package/src/details-summary/style.scss +3 -0
- package/src/editor.scss +1 -0
- package/src/embed/block.json +4 -1
- package/src/embed/embed-link-settings.native.js +1 -1
- package/src/embed/embed-placeholder.js +1 -1
- package/src/file/edit.native.js +0 -2
- package/src/file/style.scss +5 -2
- package/src/gallery/test/index.native.js +4 -4
- package/src/gallery/test/use-get-media.native.js +24 -0
- package/src/gallery/use-get-media.native.js +1 -1
- package/src/group/block.json +3 -0
- package/src/group/edit.js +8 -2
- package/src/heading/test/__snapshots__/index.native.js.snap +12 -0
- package/src/heading/test/index.native.js +71 -0
- package/src/html/editor.scss +2 -21
- package/src/image/block.json +5 -3
- package/src/image/edit.js +21 -17
- package/src/image/editor.scss +1 -1
- package/src/index.js +13 -3
- package/src/index.native.js +9 -5
- package/src/list/test/edit.native.js +7 -7
- package/src/media-text/block.json +3 -0
- package/src/media-text/edit.js +2 -1
- package/src/media-text/media-container.js +1 -5
- package/src/media-text/media-container.native.js +1 -1
- package/src/navigation/deprecated.js +15 -19
- package/src/navigation/edit/index.js +32 -106
- package/src/navigation/edit/unsaved-inner-blocks.js +34 -46
- package/src/navigation/index.php +15 -12
- package/src/paragraph/test/edit.native.js +616 -1
- package/src/post-author/block.json +0 -1
- package/src/post-date/edit.js +4 -0
- package/src/post-date/index.php +17 -8
- package/src/post-excerpt/edit.js +1 -1
- package/src/post-excerpt/index.php +3 -3
- package/src/post-excerpt/style.scss +2 -1
- package/src/post-featured-image/dimension-controls.js +5 -1
- package/src/post-featured-image/edit.js +14 -34
- package/src/post-featured-image/index.php +1 -1
- package/src/post-time-to-read/block.json +7 -0
- package/src/post-time-to-read/edit.js +1 -1
- package/src/post-time-to-read/index.php +3 -3
- package/src/preformatted/test/__snapshots__/edit.native.js.snap +2 -2
- package/src/preformatted/test/edit.native.js +42 -2
- package/src/pullquote/style.scss +5 -1
- package/src/pullquote/test/edit.native.js +65 -0
- package/src/query/deprecated.js +4 -1
- package/src/query/edit/inspector-controls/create-new-post-link.js +26 -0
- package/src/query/edit/inspector-controls/index.js +13 -6
- package/src/query/edit/pattern-selection-modal.js +1 -0
- package/src/query/editor.scss +8 -11
- package/src/query/index.js +1 -7
- package/src/quote/test/edit.native.js +88 -0
- package/src/search/index.php +1 -1
- package/src/search/style.scss +3 -0
- package/src/shortcode/editor.scss +6 -5
- package/src/site-logo/block.json +1 -1
- package/src/site-logo/edit.js +123 -9
- package/src/site-logo/editor.scss +57 -0
- package/src/social-link/icons/chain.js +1 -1
- package/src/social-link/icons/mail.js +1 -1
- package/src/social-link/index.php +2 -2
- package/src/spacer/controls.js +42 -17
- package/src/spacer/edit.js +176 -18
- package/src/spacer/editor.scss +2 -1
- package/src/spacer/save.js +3 -3
- package/src/style.scss +2 -0
- package/src/table/state.js +83 -66
- package/src/template-part/edit/index.js +1 -0
- package/src/template-part/edit/utils/hooks.js +2 -2
- package/src/template-part/editor.scss +9 -11
- package/src/term-description/block.json +1 -2
- package/src/utils/migrate-font-family.js +8 -1
- package/src/verse/test/edit.native.js +28 -0
- package/src/video/edit.native.js +2 -2
- package/tsconfig.json +1 -0
- package/build/cover/edit/resizable-cover.js.map +0 -1
- package/build/media-text/media-container-icon.js +0 -27
- package/build/media-text/media-container-icon.js.map +0 -1
- package/build/query/hooks.js +0 -72
- package/build/query/hooks.js.map +0 -1
- package/build/utils/clean-empty-object.js +0 -34
- package/build/utils/clean-empty-object.js.map +0 -1
- package/build-module/cover/edit/resizable-cover.js.map +0 -1
- package/build-module/media-text/media-container-icon.js +0 -17
- package/build-module/media-text/media-container-icon.js.map +0 -1
- package/build-module/query/hooks.js +0 -59
- package/build-module/query/hooks.js.map +0 -1
- package/build-module/utils/clean-empty-object.js +0 -25
- package/build-module/utils/clean-empty-object.js.map +0 -1
- package/src/cover/edit/resizable-cover.js +0 -61
- package/src/media-text/media-container-icon.js +0 -12
- package/src/query/hooks.js +0 -53
- package/src/utils/clean-empty-object.js +0 -28
|
@@ -40,8 +40,8 @@ import {
|
|
|
40
40
|
} from '@wordpress/components';
|
|
41
41
|
import { __, sprintf } from '@wordpress/i18n';
|
|
42
42
|
import { speak } from '@wordpress/a11y';
|
|
43
|
-
import { createBlock } from '@wordpress/blocks';
|
|
44
43
|
import { close, Icon } from '@wordpress/icons';
|
|
44
|
+
import apiFetch from '@wordpress/api-fetch';
|
|
45
45
|
|
|
46
46
|
/**
|
|
47
47
|
* Internal dependencies
|
|
@@ -118,8 +118,7 @@ function Navigation( {
|
|
|
118
118
|
|
|
119
119
|
// Preload classic menus, so that they don't suddenly pop-in when viewing
|
|
120
120
|
// the Select Menu dropdown.
|
|
121
|
-
const { menus: classicMenus
|
|
122
|
-
useNavigationEntities();
|
|
121
|
+
const { menus: classicMenus } = useNavigationEntities();
|
|
123
122
|
|
|
124
123
|
const [ showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice ] =
|
|
125
124
|
useNavigationNotice( {
|
|
@@ -178,7 +177,6 @@ function Navigation( {
|
|
|
178
177
|
hasResolvedNavigationMenus,
|
|
179
178
|
isNavigationMenuResolved,
|
|
180
179
|
isNavigationMenuMissing,
|
|
181
|
-
navigationMenus,
|
|
182
180
|
canUserUpdateNavigationMenu,
|
|
183
181
|
hasResolvedCanUserUpdateNavigationMenu,
|
|
184
182
|
canUserDeleteNavigationMenu,
|
|
@@ -200,12 +198,6 @@ function Navigation( {
|
|
|
200
198
|
const isConvertingClassicMenu =
|
|
201
199
|
classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;
|
|
202
200
|
|
|
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;
|
|
208
|
-
|
|
209
201
|
const handleUpdateMenu = useCallback(
|
|
210
202
|
( menuId, options = { focusNavigationBlock: false } ) => {
|
|
211
203
|
const { focusNavigationBlock } = options;
|
|
@@ -217,41 +209,6 @@ function Navigation( {
|
|
|
217
209
|
[ selectBlock, clientId, setRef ]
|
|
218
210
|
);
|
|
219
211
|
|
|
220
|
-
// Attempt to retrieve and prioritize any existing navigation menu unless:
|
|
221
|
-
// - the are uncontrolled inner blocks already present in the block.
|
|
222
|
-
// - the user is creating a new menu.
|
|
223
|
-
// - there are no menus to choose from.
|
|
224
|
-
// This attempts to pick the first menu if there is a single Navigation Post. If more
|
|
225
|
-
// than 1 exists then use the most recent.
|
|
226
|
-
// The aim is for the block to "just work" from a user perspective using existing data.
|
|
227
|
-
useEffect( () => {
|
|
228
|
-
if (
|
|
229
|
-
hasUncontrolledInnerBlocks ||
|
|
230
|
-
isCreatingNavigationMenu ||
|
|
231
|
-
ref ||
|
|
232
|
-
! fallbackNavigationMenuId
|
|
233
|
-
) {
|
|
234
|
-
return;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
/**
|
|
238
|
-
* This fallback displays (both in editor and on front)
|
|
239
|
-
* a list of pages only if no menu (user assigned or
|
|
240
|
-
* automatically picked) is available.
|
|
241
|
-
* The fallback should not request a save (entity dirty state)
|
|
242
|
-
* nor to be undoable, hence why it is marked as non persistent
|
|
243
|
-
*/
|
|
244
|
-
__unstableMarkNextChangeAsNotPersistent();
|
|
245
|
-
setRef( fallbackNavigationMenuId );
|
|
246
|
-
}, [
|
|
247
|
-
ref,
|
|
248
|
-
setRef,
|
|
249
|
-
isCreatingNavigationMenu,
|
|
250
|
-
fallbackNavigationMenuId,
|
|
251
|
-
hasUncontrolledInnerBlocks,
|
|
252
|
-
__unstableMarkNextChangeAsNotPersistent,
|
|
253
|
-
] );
|
|
254
|
-
|
|
255
212
|
const isEntityAvailable =
|
|
256
213
|
! isNavigationMenuMissing && isNavigationMenuResolved;
|
|
257
214
|
|
|
@@ -264,54 +221,42 @@ function Navigation( {
|
|
|
264
221
|
const hasUnsavedBlocks = hasUncontrolledInnerBlocks && ! isEntityAvailable;
|
|
265
222
|
|
|
266
223
|
useEffect( () => {
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
fallbackNavigationMenuId ||
|
|
273
|
-
hasUnsavedBlocks ||
|
|
274
|
-
! classicMenus?.length
|
|
275
|
-
) {
|
|
224
|
+
// If:
|
|
225
|
+
// - there is an existing menu, OR
|
|
226
|
+
// - there are existing (uncontrolled) inner blocks
|
|
227
|
+
// ...then don't request a fallback menu.
|
|
228
|
+
if ( ref || hasUnsavedBlocks ) {
|
|
276
229
|
return;
|
|
277
230
|
}
|
|
278
231
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
232
|
+
apiFetch( { path: '/wp-block-editor/v1/navigation-fallback' } )
|
|
233
|
+
.then( ( fallbackNavigationMenu ) => {
|
|
234
|
+
if ( ! fallbackNavigationMenu?.id ) {
|
|
235
|
+
showNavigationMenuStatusNotice(
|
|
236
|
+
__( 'Unable to fetch a fallback Navigation Menu.' )
|
|
237
|
+
);
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* This fallback displays (both in editor and on front)
|
|
243
|
+
* The fallback should not request a save (entity dirty state)
|
|
244
|
+
* nor to be undoable, hence why it is marked as non persistent
|
|
245
|
+
*/
|
|
246
|
+
__unstableMarkNextChangeAsNotPersistent();
|
|
247
|
+
setRef( fallbackNavigationMenu.id );
|
|
248
|
+
} )
|
|
249
|
+
.catch( () => {
|
|
250
|
+
showNavigationMenuStatusNotice(
|
|
251
|
+
__( 'Unable to fetch a fallback Navigation Menu.' )
|
|
252
|
+
);
|
|
298
253
|
} );
|
|
299
|
-
convertClassicMenu(
|
|
300
|
-
classicMenus[ 0 ].id,
|
|
301
|
-
classicMenus[ 0 ].name,
|
|
302
|
-
'publish'
|
|
303
|
-
);
|
|
304
|
-
}
|
|
305
254
|
}, [
|
|
306
|
-
hasResolvedClassicMenus,
|
|
307
|
-
hasResolvedNavigationMenus,
|
|
308
|
-
hasUnsavedBlocks,
|
|
309
|
-
classicMenus,
|
|
310
|
-
convertClassicMenu,
|
|
311
|
-
createNavigationMenu,
|
|
312
|
-
fallbackNavigationMenuId,
|
|
313
|
-
isConvertingClassicMenu,
|
|
314
255
|
ref,
|
|
256
|
+
hasUnsavedBlocks,
|
|
257
|
+
setRef,
|
|
258
|
+
showNavigationMenuStatusNotice,
|
|
259
|
+
__unstableMarkNextChangeAsNotPersistent,
|
|
315
260
|
] );
|
|
316
261
|
|
|
317
262
|
const navRef = useRef();
|
|
@@ -332,25 +277,6 @@ function Navigation( {
|
|
|
332
277
|
classicMenus?.length === 0 &&
|
|
333
278
|
! hasUncontrolledInnerBlocks;
|
|
334
279
|
|
|
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
|
-
|
|
354
280
|
// "loading" state:
|
|
355
281
|
// - there is a menu creation process in progress.
|
|
356
282
|
// - there is a classic menu conversion process in progress.
|
|
@@ -120,53 +120,41 @@ export default function UnsavedInnerBlocks( {
|
|
|
120
120
|
const { hasResolvedNavigationMenus } = useNavigationMenu();
|
|
121
121
|
|
|
122
122
|
// Automatically save the uncontrolled blocks.
|
|
123
|
-
useEffect(
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
}
|
|
123
|
+
useEffect( () => {
|
|
124
|
+
// The block will be disabled when used in a BlockPreview.
|
|
125
|
+
// In this case avoid automatic creation of a wp_navigation post.
|
|
126
|
+
// Otherwise the user will be spammed with lots of menus!
|
|
127
|
+
//
|
|
128
|
+
// Also ensure other navigation menus have loaded so an
|
|
129
|
+
// accurate name can be created.
|
|
130
|
+
//
|
|
131
|
+
// Don't try saving when another save is already
|
|
132
|
+
// in progress.
|
|
133
|
+
//
|
|
134
|
+
// And finally only create the menu when the block is selected,
|
|
135
|
+
// which is an indication they want to start editing.
|
|
136
|
+
if (
|
|
137
|
+
isDisabled ||
|
|
138
|
+
isSaving ||
|
|
139
|
+
! hasResolvedDraftNavigationMenus ||
|
|
140
|
+
! hasResolvedNavigationMenus ||
|
|
141
|
+
! hasSelection ||
|
|
142
|
+
! innerBlocksAreDirty
|
|
143
|
+
) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
147
146
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
[
|
|
160
|
-
createNavigationMenu,
|
|
161
|
-
isDisabled,
|
|
162
|
-
isSaving,
|
|
163
|
-
hasResolvedDraftNavigationMenus,
|
|
164
|
-
hasResolvedNavigationMenus,
|
|
165
|
-
innerBlocksAreDirty,
|
|
166
|
-
hasSelection,
|
|
167
|
-
]
|
|
168
|
-
/* eslint-enable react-hooks/exhaustive-deps */
|
|
169
|
-
);
|
|
147
|
+
createNavigationMenu( null, blocks );
|
|
148
|
+
}, [
|
|
149
|
+
blocks,
|
|
150
|
+
createNavigationMenu,
|
|
151
|
+
isDisabled,
|
|
152
|
+
isSaving,
|
|
153
|
+
hasResolvedDraftNavigationMenus,
|
|
154
|
+
hasResolvedNavigationMenus,
|
|
155
|
+
innerBlocksAreDirty,
|
|
156
|
+
hasSelection,
|
|
157
|
+
] );
|
|
170
158
|
|
|
171
159
|
const Wrapper = isSaving ? Disabled : 'div';
|
|
172
160
|
|
package/src/navigation/index.php
CHANGED
|
@@ -79,6 +79,9 @@ if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) {
|
|
|
79
79
|
* @return array An array of parsed block data.
|
|
80
80
|
*/
|
|
81
81
|
function block_core_navigation_parse_blocks_from_menu_items( $menu_items, $menu_items_by_parent_id ) {
|
|
82
|
+
|
|
83
|
+
_deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback_Gutenberg::parse_blocks_from_menu_items' );
|
|
84
|
+
|
|
82
85
|
if ( empty( $menu_items ) ) {
|
|
83
86
|
return array();
|
|
84
87
|
}
|
|
@@ -254,6 +257,9 @@ function block_core_navigation_render_submenu_icon() {
|
|
|
254
257
|
* @return object WP_Term The classic navigation.
|
|
255
258
|
*/
|
|
256
259
|
function block_core_navigation_get_classic_menu_fallback() {
|
|
260
|
+
|
|
261
|
+
_deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback_Gutenberg::get_classic_menu_fallback' );
|
|
262
|
+
|
|
257
263
|
$classic_nav_menus = wp_get_nav_menus();
|
|
258
264
|
|
|
259
265
|
// If menus exist.
|
|
@@ -294,6 +300,9 @@ function block_core_navigation_get_classic_menu_fallback() {
|
|
|
294
300
|
* @return array the normalized parsed blocks.
|
|
295
301
|
*/
|
|
296
302
|
function block_core_navigation_get_classic_menu_fallback_blocks( $classic_nav_menu ) {
|
|
303
|
+
|
|
304
|
+
_deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback_Gutenberg::get_classic_menu_fallback_blocks' );
|
|
305
|
+
|
|
297
306
|
// BEGIN: Code that already exists in wp_nav_menu().
|
|
298
307
|
$menu_items = wp_get_nav_menu_items( $classic_nav_menu->term_id, array( 'update_post_term_cache' => false ) );
|
|
299
308
|
|
|
@@ -330,6 +339,9 @@ function block_core_navigation_get_classic_menu_fallback_blocks( $classic_nav_me
|
|
|
330
339
|
* @return array the normalized parsed blocks.
|
|
331
340
|
*/
|
|
332
341
|
function block_core_navigation_maybe_use_classic_menu_fallback() {
|
|
342
|
+
|
|
343
|
+
_deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback_Gutenberg::create_classic_menu_fallback' );
|
|
344
|
+
|
|
333
345
|
// See if we have a classic menu.
|
|
334
346
|
$classic_nav_menu = block_core_navigation_get_classic_menu_fallback();
|
|
335
347
|
|
|
@@ -371,6 +383,8 @@ function block_core_navigation_maybe_use_classic_menu_fallback() {
|
|
|
371
383
|
*/
|
|
372
384
|
function block_core_navigation_get_most_recently_published_navigation() {
|
|
373
385
|
|
|
386
|
+
_deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback_Gutenberg::get_most_recently_published_navigation' );
|
|
387
|
+
|
|
374
388
|
// Default to the most recently created menu.
|
|
375
389
|
$parsed_args = array(
|
|
376
390
|
'post_type' => 'wp_navigation',
|
|
@@ -452,14 +466,7 @@ function block_core_navigation_get_fallback_blocks() {
|
|
|
452
466
|
// If `core/page-list` is not registered then return empty blocks.
|
|
453
467
|
$fallback_blocks = $registry->is_registered( 'core/page-list' ) ? $page_list_fallback : array();
|
|
454
468
|
|
|
455
|
-
|
|
456
|
-
$navigation_post = block_core_navigation_get_most_recently_published_navigation();
|
|
457
|
-
|
|
458
|
-
// If there are no navigation posts then try to find a classic menu
|
|
459
|
-
// and convert it into a block based navigation menu.
|
|
460
|
-
if ( ! $navigation_post ) {
|
|
461
|
-
$navigation_post = block_core_navigation_maybe_use_classic_menu_fallback();
|
|
462
|
-
}
|
|
469
|
+
$navigation_post = WP_Navigation_Fallback_Gutenberg::get_fallback();
|
|
463
470
|
|
|
464
471
|
// Use the first non-empty Navigation as fallback if available.
|
|
465
472
|
if ( $navigation_post ) {
|
|
@@ -471,10 +478,6 @@ function block_core_navigation_get_fallback_blocks() {
|
|
|
471
478
|
$fallback_blocks = ! empty( $maybe_fallback ) ? $maybe_fallback : $fallback_blocks;
|
|
472
479
|
}
|
|
473
480
|
|
|
474
|
-
// Normalizing blocks may result in an empty array of blocks if they were all `null` blocks.
|
|
475
|
-
// In this case default empty blocks.
|
|
476
|
-
$fallback_blocks = ! empty( $maybe_fallback ) ? $maybe_fallback : array();
|
|
477
|
-
|
|
478
481
|
/**
|
|
479
482
|
* Filters the fallback experience for the Navigation block.
|
|
480
483
|
*
|