@wordpress/block-library 7.19.0 → 8.0.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 +6 -0
- package/build/audio/edit.native.js +1 -3
- package/build/audio/edit.native.js.map +1 -1
- package/build/audio/index.js +2 -1
- package/build/audio/index.js.map +1 -1
- package/build/avatar/edit.js +1 -0
- package/build/avatar/edit.js.map +1 -1
- package/build/avatar/user-control.js +1 -0
- package/build/avatar/user-control.js.map +1 -1
- package/build/block/edit.js +14 -2
- package/build/block/edit.js.map +1 -1
- package/build/block/edit.native.js +14 -6
- package/build/block/edit.native.js.map +1 -1
- package/build/block/index.js +1 -2
- package/build/block/index.js.map +1 -1
- package/build/button/edit.native.js.map +1 -1
- package/build/code/transforms.js +1 -1
- package/build/code/transforms.js.map +1 -1
- package/build/columns/edit.js +1 -0
- package/build/columns/edit.js.map +1 -1
- package/build/columns/edit.native.js +13 -30
- package/build/columns/edit.native.js.map +1 -1
- package/build/comment-author-avatar/edit.js +1 -0
- package/build/comment-author-avatar/edit.js.map +1 -1
- package/build/cover/edit/inspector-controls.js +2 -0
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/cover/edit.native.js +24 -16
- package/build/cover/edit.native.js.map +1 -1
- package/build/embed/embed-controls.native.js +1 -0
- package/build/embed/embed-controls.native.js.map +1 -1
- package/build/embed/embed-preview.native.js +1 -3
- package/build/embed/embed-preview.native.js.map +1 -1
- package/build/file/inspector.js +1 -0
- package/build/file/inspector.js.map +1 -1
- package/build/gallery/edit.js +25 -13
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/gallery.native.js +1 -3
- package/build/gallery/gallery.native.js.map +1 -1
- package/build/gallery/shared.js +4 -10
- package/build/gallery/shared.js.map +1 -1
- package/build/gallery/transforms.js +1 -7
- package/build/gallery/transforms.js.map +1 -1
- package/build/gallery/use-get-media.js +1 -1
- package/build/gallery/use-get-media.js.map +1 -1
- package/build/gallery/use-get-media.native.js +3 -1
- package/build/gallery/use-get-media.native.js.map +1 -1
- package/build/gallery/v1/edit.js +22 -15
- package/build/gallery/v1/edit.js.map +1 -1
- package/build/gallery/v1/gallery.native.js +1 -3
- package/build/gallery/v1/gallery.native.js.map +1 -1
- package/build/gallery/v1/shared.js +4 -1
- package/build/gallery/v1/shared.js.map +1 -1
- package/build/group/edit.js +1 -2
- package/build/group/edit.js.map +1 -1
- package/build/group/index.js +3 -1
- package/build/group/index.js.map +1 -1
- package/build/group/placeholder.js +5 -26
- package/build/group/placeholder.js.map +1 -1
- package/build/heading/deprecated.js +152 -69
- package/build/heading/deprecated.js.map +1 -1
- package/build/heading/index.js +1 -2
- package/build/heading/index.js.map +1 -1
- package/build/heading/transforms.js +1 -2
- package/build/heading/transforms.js.map +1 -1
- package/build/html/index.js +1 -1
- package/build/image/edit.js +8 -5
- package/build/image/edit.js.map +1 -1
- package/build/image/edit.native.js +3 -2
- package/build/image/edit.native.js.map +1 -1
- package/build/image/image.js +12 -8
- package/build/image/image.js.map +1 -1
- package/build/index.js +3 -1
- package/build/index.js.map +1 -1
- package/build/latest-comments/edit.js +1 -0
- package/build/latest-comments/edit.js.map +1 -1
- package/build/latest-posts/edit.js +2 -0
- package/build/latest-posts/edit.js.map +1 -1
- package/build/list/transforms.js +1 -9
- package/build/list/transforms.js.map +1 -1
- package/build/list/utils.js +5 -2
- package/build/list/utils.js.map +1 -1
- package/build/list-item/index.js +4 -1
- package/build/list-item/index.js.map +1 -1
- package/build/list-item/transforms.js +22 -0
- package/build/list-item/transforms.js.map +1 -0
- package/build/list-item/utils.js +77 -1
- package/build/list-item/utils.js.map +1 -1
- package/build/media-text/edit.js +4 -2
- package/build/media-text/edit.js.map +1 -1
- package/build/navigation/edit/are-blocks-dirty.js +52 -0
- package/build/navigation/edit/are-blocks-dirty.js.map +1 -0
- package/build/navigation/edit/index.js +95 -116
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/menu-inspector-controls.js +72 -0
- package/build/navigation/edit/menu-inspector-controls.js.map +1 -0
- package/build/navigation/edit/navigation-menu-selector.js +5 -10
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +11 -7
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation/view-modal.js +6 -2
- package/build/navigation/view-modal.js.map +1 -1
- package/build/navigation-link/edit.js +42 -298
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/link-ui.js +222 -0
- package/build/navigation-link/link-ui.js.map +1 -0
- package/build/navigation-link/transforms.js +12 -0
- package/build/navigation-link/transforms.js.map +1 -1
- package/build/navigation-link/update-attributes.js +108 -0
- package/build/navigation-link/update-attributes.js.map +1 -0
- package/build/navigation-submenu/edit.js +42 -173
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/page-list/constants.js +15 -0
- package/build/page-list/constants.js.map +1 -0
- package/build/page-list/convert-to-links-modal.js +22 -86
- package/build/page-list/convert-to-links-modal.js.map +1 -1
- package/build/page-list/convert-to-navigation-links.js +76 -0
- package/build/page-list/convert-to-navigation-links.js.map +1 -0
- package/build/page-list/edit.js +142 -78
- package/build/page-list/edit.js.map +1 -1
- package/build/page-list/index.js +6 -1
- package/build/page-list/index.js.map +1 -1
- package/build/page-list-item/edit.js +87 -0
- package/build/page-list-item/edit.js.map +1 -0
- package/build/page-list-item/index.js +85 -0
- package/build/page-list-item/index.js.map +1 -0
- package/build/page-list-item/init.js +16 -0
- package/build/page-list-item/init.js.map +1 -0
- package/build/paragraph/index.js +1 -7
- package/build/paragraph/index.js.map +1 -1
- package/build/post-author/edit.js +3 -2
- package/build/post-author/edit.js.map +1 -1
- package/build/post-featured-image/overlay.js +1 -0
- package/build/post-featured-image/overlay.js.map +1 -1
- package/build/post-template/index.js +8 -0
- package/build/post-template/index.js.map +1 -1
- package/build/preformatted/transforms.js +3 -1
- package/build/preformatted/transforms.js.map +1 -1
- package/build/query/deprecated.js +192 -21
- package/build/query/deprecated.js.map +1 -1
- package/build/query/edit/inspector-controls/index.js +1 -0
- package/build/query/edit/inspector-controls/index.js.map +1 -1
- package/build/query/edit/query-placeholder.js +3 -19
- package/build/query/edit/query-placeholder.js.map +1 -1
- package/build/query/index.js +0 -8
- package/build/query/index.js.map +1 -1
- package/build/query/utils.js +0 -8
- package/build/query/utils.js.map +1 -1
- package/build/rss/edit.js +3 -0
- package/build/rss/edit.js.map +1 -1
- package/build/search/edit.native.js +22 -22
- package/build/search/edit.native.js.map +1 -1
- package/build/search/index.js +9 -1
- package/build/search/index.js.map +1 -1
- package/build/site-logo/edit.js +17 -9
- package/build/site-logo/edit.js.map +1 -1
- package/build/site-logo/index.js +1 -0
- package/build/site-logo/index.js.map +1 -1
- package/build/site-title/index.js +1 -0
- package/build/site-title/index.js.map +1 -1
- package/build/social-link/social-list.js +4 -12
- package/build/social-link/social-list.js.map +1 -1
- package/build/table/edit.js +3 -1
- package/build/table/edit.js.map +1 -1
- package/build/table/index.js +17 -1
- package/build/table/index.js.map +1 -1
- package/build/table/save.js +4 -2
- package/build/table/save.js.map +1 -1
- package/build/table/state.js +24 -12
- package/build/table/state.js.map +1 -1
- package/build/table/transforms.js +3 -2
- package/build/table/transforms.js.map +1 -1
- package/build/table-of-contents/edit.js +2 -2
- package/build/table-of-contents/edit.js.map +1 -1
- package/build/tag-cloud/edit.js +2 -1
- package/build/tag-cloud/edit.js.map +1 -1
- package/build/template-part/edit/selection-modal.js +5 -2
- package/build/template-part/edit/selection-modal.js.map +1 -1
- package/build/template-part/edit/utils/hooks.js +2 -6
- package/build/template-part/edit/utils/hooks.js.map +1 -1
- package/build/text-columns/edit.js +1 -0
- package/build/text-columns/edit.js.map +1 -1
- package/build/utils/transformation-categories.native.js +1 -1
- package/build/utils/transformation-categories.native.js.map +1 -1
- package/build/video/edit.js +1 -1
- package/build/video/edit.js.map +1 -1
- package/build/video/edit.native.js +1 -3
- package/build/video/edit.native.js.map +1 -1
- package/build-module/audio/edit.native.js +1 -2
- package/build-module/audio/edit.native.js.map +1 -1
- package/build-module/audio/index.js +2 -1
- package/build-module/audio/index.js.map +1 -1
- package/build-module/avatar/edit.js +1 -0
- package/build-module/avatar/edit.js.map +1 -1
- package/build-module/avatar/user-control.js +1 -0
- package/build-module/avatar/user-control.js.map +1 -1
- package/build-module/block/edit.js +14 -2
- package/build-module/block/edit.js.map +1 -1
- package/build-module/block/edit.native.js +14 -6
- package/build-module/block/edit.native.js.map +1 -1
- package/build-module/block/index.js +1 -2
- package/build-module/block/index.js.map +1 -1
- package/build-module/button/edit.native.js +2 -1
- package/build-module/button/edit.native.js.map +1 -1
- package/build-module/code/transforms.js +1 -1
- package/build-module/code/transforms.js.map +1 -1
- package/build-module/columns/edit.js +1 -0
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/columns/edit.native.js +13 -29
- package/build-module/columns/edit.native.js.map +1 -1
- package/build-module/comment-author-avatar/edit.js +1 -0
- package/build-module/comment-author-avatar/edit.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js +2 -0
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/cover/edit.native.js +22 -14
- package/build-module/cover/edit.native.js.map +1 -1
- package/build-module/embed/embed-controls.native.js +2 -1
- package/build-module/embed/embed-controls.native.js.map +1 -1
- package/build-module/embed/embed-preview.native.js +1 -2
- package/build-module/embed/embed-preview.native.js.map +1 -1
- package/build-module/file/inspector.js +1 -0
- package/build-module/file/inspector.js.map +1 -1
- package/build-module/gallery/edit.js +25 -12
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/gallery.native.js +1 -2
- package/build-module/gallery/gallery.native.js.map +1 -1
- package/build-module/gallery/shared.js +5 -11
- package/build-module/gallery/shared.js.map +1 -1
- package/build-module/gallery/transforms.js +1 -6
- package/build-module/gallery/transforms.js.map +1 -1
- package/build-module/gallery/use-get-media.js +1 -1
- package/build-module/gallery/use-get-media.js.map +1 -1
- package/build-module/gallery/use-get-media.native.js +3 -1
- package/build-module/gallery/use-get-media.native.js.map +1 -1
- package/build-module/gallery/v1/edit.js +23 -16
- package/build-module/gallery/v1/edit.js.map +1 -1
- package/build-module/gallery/v1/gallery.native.js +1 -2
- package/build-module/gallery/v1/gallery.native.js.map +1 -1
- package/build-module/gallery/v1/shared.js +5 -2
- package/build-module/gallery/v1/shared.js.map +1 -1
- package/build-module/group/edit.js +1 -3
- package/build-module/group/edit.js.map +1 -1
- package/build-module/group/index.js +3 -1
- package/build-module/group/index.js.map +1 -1
- package/build-module/group/placeholder.js +5 -26
- package/build-module/group/placeholder.js.map +1 -1
- package/build-module/heading/deprecated.js +152 -69
- package/build-module/heading/deprecated.js.map +1 -1
- package/build-module/heading/index.js +1 -2
- package/build-module/heading/index.js.map +1 -1
- package/build-module/heading/transforms.js +1 -2
- package/build-module/heading/transforms.js.map +1 -1
- package/build-module/html/index.js +1 -1
- package/build-module/image/edit.js +9 -6
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/edit.native.js +2 -1
- package/build-module/image/edit.native.js.map +1 -1
- package/build-module/image/image.js +13 -9
- package/build-module/image/image.js.map +1 -1
- package/build-module/index.js +2 -1
- package/build-module/index.js.map +1 -1
- package/build-module/latest-comments/edit.js +1 -0
- package/build-module/latest-comments/edit.js.map +1 -1
- package/build-module/latest-posts/edit.js +2 -0
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/list/transforms.js +1 -9
- package/build-module/list/transforms.js.map +1 -1
- package/build-module/list/utils.js +5 -2
- package/build-module/list/utils.js.map +1 -1
- package/build-module/list-item/index.js +3 -1
- package/build-module/list-item/index.js.map +1 -1
- package/build-module/list-item/transforms.js +13 -0
- package/build-module/list-item/transforms.js.map +1 -0
- package/build-module/list-item/utils.js +78 -1
- package/build-module/list-item/utils.js.map +1 -1
- package/build-module/media-text/edit.js +5 -3
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/navigation/edit/are-blocks-dirty.js +44 -0
- package/build-module/navigation/edit/are-blocks-dirty.js.map +1 -0
- package/build-module/navigation/edit/index.js +95 -117
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/menu-inspector-controls.js +59 -0
- package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -0
- package/build-module/navigation/edit/navigation-menu-selector.js +6 -11
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +9 -6
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/navigation/view-modal.js +6 -2
- package/build-module/navigation/view-modal.js.map +1 -1
- package/build-module/navigation-link/edit.js +46 -299
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/link-ui.js +206 -0
- package/build-module/navigation-link/link-ui.js.map +1 -0
- package/build-module/navigation-link/transforms.js +12 -0
- package/build-module/navigation-link/transforms.js.map +1 -1
- package/build-module/navigation-link/update-attributes.js +97 -0
- package/build-module/navigation-link/update-attributes.js.map +1 -0
- package/build-module/navigation-submenu/edit.js +47 -175
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/page-list/constants.js +6 -0
- package/build-module/page-list/constants.js.map +1 -0
- package/build-module/page-list/convert-to-links-modal.js +20 -81
- package/build-module/page-list/convert-to-links-modal.js.map +1 -1
- package/build-module/page-list/convert-to-navigation-links.js +66 -0
- package/build-module/page-list/convert-to-navigation-links.js.map +1 -0
- package/build-module/page-list/edit.js +144 -82
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/page-list/index.js +6 -1
- package/build-module/page-list/index.js.map +1 -1
- package/build-module/page-list-item/edit.js +74 -0
- package/build-module/page-list-item/edit.js.map +1 -0
- package/build-module/page-list-item/index.js +68 -0
- package/build-module/page-list-item/index.js.map +1 -0
- package/build-module/page-list-item/init.js +6 -0
- package/build-module/page-list-item/init.js.map +1 -0
- package/build-module/paragraph/index.js +1 -7
- package/build-module/paragraph/index.js.map +1 -1
- package/build-module/post-author/edit.js +3 -2
- package/build-module/post-author/edit.js.map +1 -1
- package/build-module/post-featured-image/overlay.js +1 -0
- package/build-module/post-featured-image/overlay.js.map +1 -1
- package/build-module/post-template/index.js +8 -0
- package/build-module/post-template/index.js.map +1 -1
- package/build-module/preformatted/transforms.js +3 -1
- package/build-module/preformatted/transforms.js.map +1 -1
- package/build-module/query/deprecated.js +185 -21
- package/build-module/query/deprecated.js.map +1 -1
- package/build-module/query/edit/inspector-controls/index.js +1 -0
- package/build-module/query/edit/inspector-controls/index.js.map +1 -1
- package/build-module/query/edit/query-placeholder.js +3 -19
- package/build-module/query/edit/query-placeholder.js.map +1 -1
- package/build-module/query/index.js +0 -8
- package/build-module/query/index.js.map +1 -1
- package/build-module/query/utils.js +0 -8
- package/build-module/query/utils.js.map +1 -1
- package/build-module/rss/edit.js +3 -0
- package/build-module/rss/edit.js.map +1 -1
- package/build-module/search/edit.native.js +20 -20
- package/build-module/search/edit.native.js.map +1 -1
- package/build-module/search/index.js +8 -1
- package/build-module/search/index.js.map +1 -1
- package/build-module/site-logo/edit.js +17 -8
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/site-logo/index.js +1 -0
- package/build-module/site-logo/index.js.map +1 -1
- package/build-module/site-title/index.js +1 -0
- package/build-module/site-title/index.js.map +1 -1
- package/build-module/social-link/social-list.js +2 -11
- package/build-module/social-link/social-list.js.map +1 -1
- package/build-module/table/edit.js +3 -1
- package/build-module/table/edit.js.map +1 -1
- package/build-module/table/index.js +17 -1
- package/build-module/table/index.js.map +1 -1
- package/build-module/table/save.js +4 -2
- package/build-module/table/save.js.map +1 -1
- package/build-module/table/state.js +25 -13
- package/build-module/table/state.js.map +1 -1
- package/build-module/table/transforms.js +3 -2
- package/build-module/table/transforms.js.map +1 -1
- package/build-module/table-of-contents/edit.js +2 -2
- package/build-module/table-of-contents/edit.js.map +1 -1
- package/build-module/tag-cloud/edit.js +3 -2
- package/build-module/tag-cloud/edit.js.map +1 -1
- package/build-module/template-part/edit/selection-modal.js +6 -3
- package/build-module/template-part/edit/selection-modal.js.map +1 -1
- package/build-module/template-part/edit/utils/hooks.js +3 -7
- package/build-module/template-part/edit/utils/hooks.js.map +1 -1
- package/build-module/text-columns/edit.js +1 -0
- package/build-module/text-columns/edit.js.map +1 -1
- package/build-module/utils/transformation-categories.native.js +1 -1
- package/build-module/utils/transformation-categories.native.js.map +1 -1
- package/build-module/video/edit.js +1 -1
- package/build-module/video/edit.js.map +1 -1
- package/build-module/video/edit.native.js +1 -2
- package/build-module/video/edit.native.js.map +1 -1
- package/build-style/archives/editor-rtl.css +12 -0
- package/build-style/archives/editor.css +12 -0
- package/build-style/archives/style-rtl.css +12 -0
- package/build-style/archives/style.css +12 -0
- package/build-style/audio/editor-rtl.css +12 -0
- package/build-style/audio/editor.css +12 -0
- package/build-style/audio/style-rtl.css +12 -0
- package/build-style/audio/style.css +12 -0
- package/build-style/audio/theme-rtl.css +12 -0
- package/build-style/audio/theme.css +12 -0
- package/build-style/avatar/editor-rtl.css +12 -0
- package/build-style/avatar/editor.css +12 -0
- package/build-style/avatar/style-rtl.css +12 -0
- package/build-style/avatar/style.css +12 -0
- package/build-style/block/editor-rtl.css +22 -0
- package/build-style/block/editor.css +22 -0
- package/build-style/button/editor-rtl.css +12 -0
- package/build-style/button/editor.css +12 -0
- package/build-style/button/style-rtl.css +12 -0
- package/build-style/button/style.css +12 -0
- package/build-style/buttons/editor-rtl.css +12 -0
- package/build-style/buttons/editor.css +12 -0
- package/build-style/buttons/style-rtl.css +12 -0
- package/build-style/buttons/style.css +12 -0
- package/build-style/calendar/style-rtl.css +12 -0
- package/build-style/calendar/style.css +12 -0
- package/build-style/categories/editor-rtl.css +12 -0
- package/build-style/categories/editor.css +12 -0
- package/build-style/categories/style-rtl.css +12 -0
- package/build-style/categories/style.css +12 -0
- package/build-style/classic-rtl.css +12 -0
- package/build-style/classic.css +12 -0
- package/build-style/code/editor-rtl.css +12 -0
- package/build-style/code/editor.css +12 -0
- package/build-style/code/style-rtl.css +12 -0
- package/build-style/code/style.css +12 -0
- package/build-style/code/theme-rtl.css +12 -0
- package/build-style/code/theme.css +12 -0
- package/build-style/columns/editor-rtl.css +12 -0
- package/build-style/columns/editor.css +12 -0
- package/build-style/columns/style-rtl.css +12 -0
- package/build-style/columns/style.css +12 -0
- package/build-style/comment-author-avatar/editor-rtl.css +12 -0
- package/build-style/comment-author-avatar/editor.css +12 -0
- package/build-style/comment-content/style-rtl.css +12 -0
- package/build-style/comment-content/style.css +12 -0
- package/build-style/comment-template/style-rtl.css +12 -0
- package/build-style/comment-template/style.css +12 -0
- package/build-style/comments/editor-rtl.css +12 -0
- package/build-style/comments/editor.css +12 -0
- package/build-style/comments/style-rtl.css +12 -0
- package/build-style/comments/style.css +12 -0
- package/build-style/comments-pagination/editor-rtl.css +12 -0
- package/build-style/comments-pagination/editor.css +12 -0
- package/build-style/comments-pagination/style-rtl.css +12 -0
- package/build-style/comments-pagination/style.css +12 -0
- package/build-style/comments-pagination-numbers/editor-rtl.css +12 -0
- package/build-style/comments-pagination-numbers/editor.css +12 -0
- package/build-style/comments-title/editor-rtl.css +12 -0
- package/build-style/comments-title/editor.css +12 -0
- package/build-style/common-rtl.css +17 -1
- package/build-style/common.css +17 -1
- package/build-style/cover/editor-rtl.css +12 -0
- package/build-style/cover/editor.css +12 -0
- package/build-style/cover/style-rtl.css +14 -1
- package/build-style/cover/style.css +14 -1
- package/build-style/editor-elements-rtl.css +12 -0
- package/build-style/editor-elements.css +12 -0
- package/build-style/editor-rtl.css +39 -20
- package/build-style/editor.css +39 -20
- package/build-style/elements-rtl.css +12 -0
- package/build-style/elements.css +12 -0
- package/build-style/embed/editor-rtl.css +12 -0
- package/build-style/embed/editor.css +12 -0
- package/build-style/embed/style-rtl.css +12 -0
- package/build-style/embed/style.css +12 -0
- package/build-style/embed/theme-rtl.css +12 -0
- package/build-style/embed/theme.css +12 -0
- package/build-style/file/editor-rtl.css +12 -0
- package/build-style/file/editor.css +12 -0
- package/build-style/file/style-rtl.css +12 -0
- package/build-style/file/style.css +12 -0
- package/build-style/freeform/editor-rtl.css +12 -0
- package/build-style/freeform/editor.css +12 -0
- package/build-style/gallery/editor-rtl.css +13 -1
- package/build-style/gallery/editor.css +13 -1
- package/build-style/gallery/style-rtl.css +16 -2
- package/build-style/gallery/style.css +16 -2
- package/build-style/gallery/theme-rtl.css +12 -0
- package/build-style/gallery/theme.css +12 -0
- package/build-style/group/editor-rtl.css +12 -0
- package/build-style/group/editor.css +12 -0
- package/build-style/group/style-rtl.css +12 -0
- package/build-style/group/style.css +12 -0
- package/build-style/group/theme-rtl.css +12 -0
- package/build-style/group/theme.css +12 -0
- package/build-style/heading/style-rtl.css +12 -0
- package/build-style/heading/style.css +12 -0
- package/build-style/html/editor-rtl.css +12 -0
- package/build-style/html/editor.css +12 -0
- package/build-style/image/editor-rtl.css +12 -9
- package/build-style/image/editor.css +12 -9
- package/build-style/image/style-rtl.css +12 -0
- package/build-style/image/style.css +12 -0
- package/build-style/image/theme-rtl.css +12 -0
- package/build-style/image/theme.css +12 -0
- package/build-style/latest-comments/style-rtl.css +12 -0
- package/build-style/latest-comments/style.css +12 -0
- package/build-style/latest-posts/editor-rtl.css +12 -0
- package/build-style/latest-posts/editor.css +12 -0
- package/build-style/latest-posts/style-rtl.css +12 -0
- package/build-style/latest-posts/style.css +12 -0
- package/build-style/list/style-rtl.css +12 -0
- package/build-style/list/style.css +12 -0
- package/build-style/media-text/editor-rtl.css +12 -0
- package/build-style/media-text/editor.css +12 -0
- package/build-style/media-text/style-rtl.css +12 -0
- package/build-style/media-text/style.css +12 -0
- package/build-style/more/editor-rtl.css +12 -0
- package/build-style/more/editor.css +12 -0
- package/build-style/navigation/editor-rtl.css +12 -0
- package/build-style/navigation/editor.css +12 -0
- package/build-style/navigation/style-rtl.css +12 -0
- package/build-style/navigation/style.css +12 -0
- package/build-style/navigation-link/editor-rtl.css +12 -0
- package/build-style/navigation-link/editor.css +12 -0
- package/build-style/navigation-link/style-rtl.css +12 -0
- package/build-style/navigation-link/style.css +12 -0
- package/build-style/navigation-submenu/editor-rtl.css +12 -0
- package/build-style/navigation-submenu/editor.css +12 -0
- package/build-style/nextpage/editor-rtl.css +12 -0
- package/build-style/nextpage/editor.css +12 -0
- package/build-style/page-list/editor-rtl.css +12 -0
- package/build-style/page-list/editor.css +12 -0
- package/build-style/page-list/style-rtl.css +12 -0
- package/build-style/page-list/style.css +12 -0
- package/build-style/paragraph/editor-rtl.css +12 -0
- package/build-style/paragraph/editor.css +12 -0
- package/build-style/paragraph/style-rtl.css +12 -0
- package/build-style/paragraph/style.css +12 -0
- package/build-style/post-author/style-rtl.css +12 -0
- package/build-style/post-author/style.css +12 -0
- package/build-style/post-comments-form/editor-rtl.css +12 -0
- package/build-style/post-comments-form/editor.css +12 -0
- package/build-style/post-comments-form/style-rtl.css +12 -0
- package/build-style/post-comments-form/style.css +12 -0
- package/build-style/post-date/style-rtl.css +12 -0
- package/build-style/post-date/style.css +12 -0
- package/build-style/post-excerpt/editor-rtl.css +12 -0
- package/build-style/post-excerpt/editor.css +12 -0
- package/build-style/post-excerpt/style-rtl.css +12 -0
- package/build-style/post-excerpt/style.css +12 -0
- package/build-style/post-featured-image/editor-rtl.css +12 -0
- package/build-style/post-featured-image/editor.css +12 -0
- package/build-style/post-featured-image/style-rtl.css +12 -0
- package/build-style/post-featured-image/style.css +12 -0
- package/build-style/post-navigation-link/style-rtl.css +12 -0
- package/build-style/post-navigation-link/style.css +12 -0
- package/build-style/post-template/editor-rtl.css +12 -0
- package/build-style/post-template/editor.css +12 -0
- package/build-style/post-template/style-rtl.css +12 -0
- package/build-style/post-template/style.css +12 -0
- package/build-style/post-terms/style-rtl.css +12 -0
- package/build-style/post-terms/style.css +12 -0
- package/build-style/post-title/style-rtl.css +12 -0
- package/build-style/post-title/style.css +12 -0
- package/build-style/preformatted/style-rtl.css +12 -0
- package/build-style/preformatted/style.css +12 -0
- package/build-style/pullquote/editor-rtl.css +12 -0
- package/build-style/pullquote/editor.css +12 -0
- package/build-style/pullquote/style-rtl.css +12 -0
- package/build-style/pullquote/style.css +12 -0
- package/build-style/pullquote/theme-rtl.css +12 -0
- package/build-style/pullquote/theme.css +12 -0
- package/build-style/query/editor-rtl.css +12 -0
- package/build-style/query/editor.css +12 -0
- package/build-style/query-pagination/editor-rtl.css +12 -0
- package/build-style/query-pagination/editor.css +12 -0
- package/build-style/query-pagination/style-rtl.css +12 -0
- package/build-style/query-pagination/style.css +12 -0
- package/build-style/query-pagination-numbers/editor-rtl.css +12 -0
- package/build-style/query-pagination-numbers/editor.css +12 -0
- package/build-style/query-title/style-rtl.css +12 -0
- package/build-style/query-title/style.css +12 -0
- package/build-style/quote/style-rtl.css +12 -0
- package/build-style/quote/style.css +12 -0
- package/build-style/quote/theme-rtl.css +12 -0
- package/build-style/quote/theme.css +12 -0
- package/build-style/read-more/style-rtl.css +12 -0
- package/build-style/read-more/style.css +12 -0
- package/build-style/reset-rtl.css +12 -0
- package/build-style/reset.css +12 -0
- package/build-style/rss/editor-rtl.css +12 -0
- package/build-style/rss/editor.css +12 -0
- package/build-style/rss/style-rtl.css +12 -0
- package/build-style/rss/style.css +12 -0
- package/build-style/search/editor-rtl.css +12 -0
- package/build-style/search/editor.css +12 -0
- package/build-style/search/style-rtl.css +12 -0
- package/build-style/search/style.css +12 -0
- package/build-style/search/theme-rtl.css +12 -0
- package/build-style/search/theme.css +12 -0
- package/build-style/separator/editor-rtl.css +12 -0
- package/build-style/separator/editor.css +12 -0
- package/build-style/separator/style-rtl.css +12 -0
- package/build-style/separator/style.css +12 -0
- package/build-style/separator/theme-rtl.css +12 -0
- package/build-style/separator/theme.css +12 -0
- package/build-style/shortcode/editor-rtl.css +13 -1
- package/build-style/shortcode/editor.css +13 -1
- package/build-style/site-logo/editor-rtl.css +12 -0
- package/build-style/site-logo/editor.css +12 -0
- package/build-style/site-logo/style-rtl.css +12 -0
- package/build-style/site-logo/style.css +12 -0
- package/build-style/site-tagline/editor-rtl.css +12 -0
- package/build-style/site-tagline/editor.css +12 -0
- package/build-style/site-title/editor-rtl.css +12 -0
- package/build-style/site-title/editor.css +12 -0
- package/build-style/site-title/style-rtl.css +12 -0
- package/build-style/site-title/style.css +12 -0
- package/build-style/social-link/editor-rtl.css +12 -0
- package/build-style/social-link/editor.css +12 -0
- package/build-style/social-links/editor-rtl.css +12 -0
- package/build-style/social-links/editor.css +12 -0
- package/build-style/social-links/style-rtl.css +12 -0
- package/build-style/social-links/style.css +12 -0
- package/build-style/spacer/editor-rtl.css +12 -0
- package/build-style/spacer/editor.css +12 -0
- package/build-style/spacer/style-rtl.css +12 -0
- package/build-style/spacer/style.css +12 -0
- package/build-style/style-rtl.css +23 -5
- package/build-style/style.css +23 -5
- package/build-style/table/editor-rtl.css +12 -8
- package/build-style/table/editor.css +12 -8
- package/build-style/table/style-rtl.css +12 -0
- package/build-style/table/style.css +12 -0
- package/build-style/table/theme-rtl.css +12 -0
- package/build-style/table/theme.css +12 -0
- package/build-style/tag-cloud/style-rtl.css +12 -0
- package/build-style/tag-cloud/style.css +12 -0
- package/build-style/template-part/editor-rtl.css +27 -1
- package/build-style/template-part/editor.css +27 -1
- package/build-style/template-part/theme-rtl.css +12 -0
- package/build-style/template-part/theme.css +12 -0
- package/build-style/text-columns/editor-rtl.css +12 -0
- package/build-style/text-columns/editor.css +12 -0
- package/build-style/text-columns/style-rtl.css +12 -0
- package/build-style/text-columns/style.css +12 -0
- package/build-style/theme-rtl.css +12 -0
- package/build-style/theme.css +12 -0
- package/build-style/verse/style-rtl.css +12 -0
- package/build-style/verse/style.css +12 -0
- package/build-style/video/editor-rtl.css +12 -0
- package/build-style/video/editor.css +12 -0
- package/build-style/video/style-rtl.css +14 -1
- package/build-style/video/style.css +14 -1
- package/build-style/video/theme-rtl.css +12 -0
- package/build-style/video/theme.css +12 -0
- package/package.json +32 -30
- package/src/audio/edit.native.js +1 -2
- package/src/audio/index.js +1 -0
- package/src/avatar/edit.js +1 -0
- package/src/avatar/user-control.js +1 -0
- package/src/block/block.json +1 -2
- package/src/block/edit.js +14 -3
- package/src/block/edit.native.js +24 -12
- package/src/block/editor.scss +17 -0
- package/src/block/index.php +1 -2
- package/src/block/test/edit.native.js +28 -32
- package/src/button/edit.native.js +1 -0
- package/src/buttons/test/edit.native.js +40 -51
- package/src/code/transforms.js +3 -1
- package/src/columns/edit.js +1 -0
- package/src/columns/edit.native.js +18 -26
- package/src/comment-author-avatar/edit.js +1 -0
- package/src/cover/edit/inspector-controls.js +2 -0
- package/src/cover/edit.native.js +32 -19
- package/src/cover/test/edit.native.js +73 -126
- package/src/embed/embed-controls.native.js +1 -0
- package/src/embed/embed-preview.native.js +1 -2
- package/src/embed/test/index.native.js +237 -231
- package/src/file/inspector.js +1 -0
- package/src/file/test/__snapshots__/edit.native.js.snap +2 -6
- package/src/gallery/edit.js +15 -5
- package/src/gallery/gallery.native.js +1 -2
- package/src/gallery/shared.js +7 -11
- package/src/gallery/transforms.js +1 -6
- package/src/gallery/use-get-media.js +1 -1
- package/src/gallery/use-get-media.native.js +2 -1
- package/src/gallery/v1/edit.js +8 -7
- package/src/gallery/v1/gallery.native.js +1 -2
- package/src/gallery/v1/shared.js +7 -2
- package/src/group/block.json +3 -1
- package/src/group/edit.js +2 -6
- package/src/group/placeholder.js +6 -25
- package/src/group/test/__snapshots__/edit.native.js.snap +1 -1
- package/src/heading/block.json +1 -2
- package/src/heading/deprecated.js +209 -136
- package/src/heading/index.php +52 -0
- package/src/heading/test/__snapshots__/index.native.js.snap +7 -0
- package/src/heading/test/index.native.js +44 -0
- package/src/home-link/index.php +1 -1
- package/src/html/block.json +1 -1
- package/src/image/edit.js +7 -2
- package/src/image/edit.native.js +2 -1
- package/src/image/editor.scss +0 -11
- package/src/image/image.js +13 -8
- package/src/image/test/edit.native.js +14 -10
- package/src/index.js +2 -0
- package/src/latest-comments/edit.js +1 -0
- package/src/latest-posts/edit.js +2 -0
- package/src/list/test/edit.native.js +53 -45
- package/src/list/transforms.js +0 -11
- package/src/list/utils.js +6 -2
- package/src/list-item/index.js +2 -0
- package/src/list-item/transforms.js +17 -0
- package/src/list-item/utils.js +10 -1
- package/src/media-text/edit.js +5 -3
- package/src/missing/test/edit-integration.native.js +10 -12
- package/src/navigation/edit/are-blocks-dirty.js +51 -0
- package/src/navigation/edit/index.js +230 -298
- package/src/navigation/edit/menu-inspector-controls.js +78 -0
- package/src/navigation/edit/navigation-menu-selector.js +5 -16
- package/src/navigation/edit/test/are-blocks-dirty.js +121 -0
- package/src/navigation/edit/unsaved-inner-blocks.js +12 -7
- package/src/navigation/index.php +57 -10
- package/src/navigation/view-modal.js +11 -1
- package/src/navigation-link/edit.js +58 -329
- package/src/navigation-link/index.php +32 -0
- package/src/navigation-link/link-ui.js +213 -0
- package/src/navigation-link/test/edit.js +23 -82
- package/src/navigation-link/transforms.js +14 -0
- package/src/navigation-link/update-attributes.js +99 -0
- package/src/navigation-submenu/edit.js +57 -177
- package/src/navigation-submenu/index.php +40 -0
- package/src/page-list/block.json +6 -1
- package/src/page-list/constants.js +8 -0
- package/src/page-list/convert-to-links-modal.js +19 -76
- package/src/page-list/convert-to-navigation-links.js +60 -0
- package/src/page-list/edit.js +179 -118
- package/src/page-list/index.php +9 -0
- package/src/page-list/test/convert-to-links-modal.js +28 -34
- package/src/page-list-item/block.json +51 -0
- package/src/page-list-item/edit.js +94 -0
- package/src/page-list-item/index.js +24 -0
- package/src/page-list-item/init.js +6 -0
- package/src/paragraph/index.js +0 -6
- package/src/post-author/edit.js +3 -2
- package/src/post-content/index.php +1 -2
- package/src/post-featured-image/index.php +7 -2
- package/src/post-featured-image/overlay.js +1 -0
- package/src/post-template/block.json +8 -0
- package/src/preformatted/transforms.js +4 -1
- package/src/query/block.json +0 -8
- package/src/query/deprecated.js +257 -86
- package/src/query/edit/inspector-controls/index.js +1 -0
- package/src/query/edit/query-placeholder.js +4 -16
- package/src/rss/edit.js +3 -0
- package/src/search/edit.native.js +31 -27
- package/src/search/index.js +5 -1
- package/src/shortcode/test/edit.native.js +15 -18
- package/src/site-logo/edit.js +13 -5
- package/src/site-logo/index.js +1 -0
- package/src/site-title/index.js +1 -0
- package/src/social-link/social-list.js +2 -7
- package/src/social-link/test/index.native.js +10 -16
- package/src/social-links/test/edit.native.js +4 -3
- package/src/spacer/test/index.native.js +39 -36
- package/src/table/block.json +15 -0
- package/src/table/edit.js +2 -1
- package/src/table/editor.scss +0 -4
- package/src/table/index.js +1 -0
- package/src/table/save.js +5 -1
- package/src/table/state.js +22 -7
- package/src/table/transforms.js +2 -1
- package/src/table-of-contents/edit.js +2 -2
- package/src/tag-cloud/edit.js +3 -2
- package/src/template-part/edit/selection-modal.js +4 -3
- package/src/template-part/edit/utils/hooks.js +7 -3
- package/src/template-part/editor.scss +20 -2
- package/src/template-part/index.php +1 -2
- package/src/text-columns/edit.js +1 -0
- package/src/utils/transformation-categories.native.js +1 -0
- package/src/video/edit.js +1 -1
- package/src/video/edit.native.js +1 -2
- package/test/babel-plugin.js +35 -35
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -29,6 +29,7 @@ import { requestPreview } from '@wordpress/react-native-bridge';
|
|
|
29
29
|
*/
|
|
30
30
|
import * as paragraph from '../../paragraph';
|
|
31
31
|
import * as embed from '..';
|
|
32
|
+
import { WebView } from 'react-native-webview';
|
|
32
33
|
|
|
33
34
|
// Override modal mock to prevent unmounting it when is not visible.
|
|
34
35
|
// This is required to be able to trigger onClose and onDismiss events when
|
|
@@ -121,55 +122,54 @@ const MOST_USED_PROVIDERS = embed.settings.variations.filter( ( { name } ) =>
|
|
|
121
122
|
|
|
122
123
|
// Return specified mocked responses for the oembed endpoint.
|
|
123
124
|
const mockEmbedResponses = ( mockedResponses ) => {
|
|
124
|
-
fetchRequest.mockImplementation( (
|
|
125
|
-
if ( path.startsWith( '/wp/v2/themes' ) ) {
|
|
126
|
-
return Promise.resolve( [
|
|
127
|
-
{ theme_supports: { 'responsive-embeds': true } },
|
|
128
|
-
] );
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
if ( path.startsWith( '/wp/v2/block-patterns/categories' ) ) {
|
|
132
|
-
return Promise.resolve( [] );
|
|
133
|
-
}
|
|
134
|
-
|
|
125
|
+
fetchRequest.mockImplementation( async ( req ) => {
|
|
135
126
|
const matchedEmbedResponse = mockedResponses.find(
|
|
136
127
|
( mockedResponse ) =>
|
|
137
|
-
path ===
|
|
128
|
+
req.path ===
|
|
138
129
|
`/oembed/1.0/proxy?url=${ encodeURIComponent(
|
|
139
130
|
mockedResponse.url
|
|
140
131
|
) }`
|
|
141
132
|
);
|
|
142
|
-
|
|
133
|
+
|
|
134
|
+
return matchedEmbedResponse || mockOtherResponses( req );
|
|
143
135
|
} );
|
|
144
136
|
};
|
|
145
137
|
|
|
138
|
+
async function mockOtherResponses( { path } ) {
|
|
139
|
+
if ( path.startsWith( '/wp/v2/themes' ) ) {
|
|
140
|
+
return [ { theme_supports: { 'responsive-embeds': true } } ];
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
if ( path.startsWith( '/wp/v2/block-patterns/patterns' ) ) {
|
|
144
|
+
return [];
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
if ( path.startsWith( '/wp/v2/block-patterns/categories' ) ) {
|
|
148
|
+
return [];
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
return {};
|
|
152
|
+
}
|
|
153
|
+
|
|
146
154
|
const insertEmbedBlock = async ( blockTitle = 'Embed' ) => {
|
|
147
|
-
const editor = await initializeEditor( {
|
|
148
|
-
initialHtml: '',
|
|
149
|
-
} );
|
|
150
|
-
const { getByLabelText, getByText } = editor;
|
|
155
|
+
const editor = await initializeEditor( { initialHtml: '' } );
|
|
151
156
|
|
|
152
157
|
// Open inserter menu.
|
|
153
|
-
fireEvent.press( await
|
|
158
|
+
fireEvent.press( await editor.findByLabelText( 'Add block' ) );
|
|
154
159
|
|
|
155
160
|
// Insert embed block.
|
|
156
|
-
fireEvent.press( await
|
|
161
|
+
fireEvent.press( await editor.findByText( blockTitle ) );
|
|
157
162
|
|
|
158
163
|
// Return the embed block.
|
|
159
|
-
const block = await
|
|
160
|
-
getByLabelText( /Embed Block\. Row 1/ )
|
|
161
|
-
);
|
|
164
|
+
const [ block ] = await editor.findAllByLabelText( /Embed Block\. Row 1/ );
|
|
162
165
|
|
|
163
166
|
return { ...editor, block };
|
|
164
167
|
};
|
|
165
168
|
|
|
166
169
|
const initializeWithEmbedBlock = async ( initialHtml, selectBlock = true ) => {
|
|
167
170
|
const editor = await initializeEditor( { initialHtml } );
|
|
168
|
-
const { getByLabelText } = editor;
|
|
169
171
|
|
|
170
|
-
const block = await
|
|
171
|
-
getByLabelText( /Embed Block\. Row 1/ )
|
|
172
|
-
);
|
|
172
|
+
const [ block ] = await editor.findAllByLabelText( /Embed Block\. Row 1/ );
|
|
173
173
|
|
|
174
174
|
if ( selectBlock ) {
|
|
175
175
|
// Select block.
|
|
@@ -232,10 +232,12 @@ describe( 'Embed block', () => {
|
|
|
232
232
|
|
|
233
233
|
describe( 'set URL upon block insertion', () => {
|
|
234
234
|
it( 'sets empty URL when dismissing edit URL modal', async () => {
|
|
235
|
-
const
|
|
235
|
+
const editor = await insertEmbedBlock();
|
|
236
236
|
|
|
237
237
|
// Wait for edit URL modal to be visible.
|
|
238
|
-
const embedEditURLModal = getByTestId(
|
|
238
|
+
const embedEditURLModal = editor.getByTestId(
|
|
239
|
+
'embed-edit-url-modal'
|
|
240
|
+
);
|
|
239
241
|
await waitFor( () => embedEditURLModal.props.isVisible );
|
|
240
242
|
|
|
241
243
|
// Dismiss the edit URL modal.
|
|
@@ -248,15 +250,16 @@ describe( 'Embed block', () => {
|
|
|
248
250
|
it( 'sets a valid URL when dismissing edit URL modal', async () => {
|
|
249
251
|
const expectedURL = 'https://twitter.com/notnownikki';
|
|
250
252
|
|
|
251
|
-
const
|
|
252
|
-
await insertEmbedBlock();
|
|
253
|
+
const editor = await insertEmbedBlock();
|
|
253
254
|
|
|
254
255
|
// Wait for edit URL modal to be visible.
|
|
255
|
-
const embedEditURLModal = getByTestId(
|
|
256
|
+
const embedEditURLModal = editor.getByTestId(
|
|
257
|
+
'embed-edit-url-modal'
|
|
258
|
+
);
|
|
256
259
|
await waitFor( () => embedEditURLModal.props.isVisible );
|
|
257
260
|
|
|
258
261
|
// Set an URL.
|
|
259
|
-
const linkTextInput = getByPlaceholderText( 'Add link' );
|
|
262
|
+
const linkTextInput = editor.getByPlaceholderText( 'Add link' );
|
|
260
263
|
fireEvent( linkTextInput, 'focus' );
|
|
261
264
|
fireEvent.changeText( linkTextInput, expectedURL );
|
|
262
265
|
|
|
@@ -264,8 +267,13 @@ describe( 'Embed block', () => {
|
|
|
264
267
|
fireEvent( embedEditURLModal, 'backdropPress' );
|
|
265
268
|
fireEvent( embedEditURLModal, MODAL_DISMISS_EVENT );
|
|
266
269
|
|
|
267
|
-
|
|
268
|
-
|
|
270
|
+
// Wait until the WebView with the rich preview appears
|
|
271
|
+
await waitFor( () => editor.UNSAFE_getByType( WebView ) );
|
|
272
|
+
// Wait until responsiveness settings appear, driven by `theme_supports.responsive-embeds`
|
|
273
|
+
await editor.findByText( 'Media settings' );
|
|
274
|
+
|
|
275
|
+
const blockSettingsModal = await editor.findByTestId(
|
|
276
|
+
'block-settings-modal'
|
|
269
277
|
);
|
|
270
278
|
// Get Twitter link field.
|
|
271
279
|
const twitterLinkField = within(
|
|
@@ -282,23 +290,26 @@ describe( 'Embed block', () => {
|
|
|
282
290
|
// Mock clipboard.
|
|
283
291
|
Clipboard.getString.mockResolvedValue( clipboardURL );
|
|
284
292
|
|
|
285
|
-
const
|
|
293
|
+
const editor = await insertEmbedBlock();
|
|
286
294
|
|
|
287
295
|
// Wait for edit URL modal to be visible.
|
|
288
|
-
const embedEditURLModal = getByTestId(
|
|
296
|
+
const embedEditURLModal = editor.getByTestId(
|
|
297
|
+
'embed-edit-url-modal'
|
|
298
|
+
);
|
|
289
299
|
await waitFor( () => embedEditURLModal.props.isVisible );
|
|
290
300
|
|
|
291
301
|
// Get embed link with auto-pasted URL.
|
|
292
|
-
const autopastedLinkField = await
|
|
293
|
-
getByText( clipboardURL )
|
|
294
|
-
);
|
|
302
|
+
const autopastedLinkField = await editor.findByText( clipboardURL );
|
|
295
303
|
|
|
296
304
|
// Dismiss the edit URL modal.
|
|
297
305
|
fireEvent( embedEditURLModal, 'backdropPress' );
|
|
298
306
|
fireEvent( embedEditURLModal, MODAL_DISMISS_EVENT );
|
|
299
307
|
|
|
300
|
-
|
|
301
|
-
|
|
308
|
+
await waitFor( () => editor.UNSAFE_getByType( WebView ) );
|
|
309
|
+
await editor.findByText( 'Media settings' );
|
|
310
|
+
|
|
311
|
+
const blockSettingsModal = await editor.findByTestId(
|
|
312
|
+
'block-settings-modal'
|
|
302
313
|
);
|
|
303
314
|
// Get Twitter link field.
|
|
304
315
|
const twitterLinkField = within(
|
|
@@ -315,15 +326,15 @@ describe( 'Embed block', () => {
|
|
|
315
326
|
|
|
316
327
|
describe( 'set URL when empty block', () => {
|
|
317
328
|
it( 'sets empty URL when dismissing edit URL modal', async () => {
|
|
318
|
-
const
|
|
319
|
-
EMPTY_EMBED_HTML
|
|
320
|
-
);
|
|
329
|
+
const editor = await initializeWithEmbedBlock( EMPTY_EMBED_HTML );
|
|
321
330
|
|
|
322
331
|
// Edit URL.
|
|
323
|
-
fireEvent.press( await
|
|
332
|
+
fireEvent.press( await editor.findByText( 'ADD LINK' ) );
|
|
324
333
|
|
|
325
334
|
// Wait for edit URL modal to be visible.
|
|
326
|
-
const embedEditURLModal = getByTestId(
|
|
335
|
+
const embedEditURLModal = editor.getByTestId(
|
|
336
|
+
'embed-edit-url-modal'
|
|
337
|
+
);
|
|
327
338
|
await waitFor( () => embedEditURLModal.props.isVisible );
|
|
328
339
|
|
|
329
340
|
// Dismiss the edit URL modal.
|
|
@@ -336,18 +347,19 @@ describe( 'Embed block', () => {
|
|
|
336
347
|
it( 'sets a valid URL when dismissing edit URL modal', async () => {
|
|
337
348
|
const expectedURL = 'https://twitter.com/notnownikki';
|
|
338
349
|
|
|
339
|
-
const
|
|
340
|
-
await initializeWithEmbedBlock( EMPTY_EMBED_HTML );
|
|
350
|
+
const editor = await initializeWithEmbedBlock( EMPTY_EMBED_HTML );
|
|
341
351
|
|
|
342
352
|
// Edit URL.
|
|
343
|
-
fireEvent.press( getByText( 'ADD LINK' ) );
|
|
353
|
+
fireEvent.press( editor.getByText( 'ADD LINK' ) );
|
|
344
354
|
|
|
345
355
|
// Wait for edit URL modal to be visible.
|
|
346
|
-
const embedEditURLModal = getByTestId(
|
|
356
|
+
const embedEditURLModal = editor.getByTestId(
|
|
357
|
+
'embed-edit-url-modal'
|
|
358
|
+
);
|
|
347
359
|
await waitFor( () => embedEditURLModal.props.isVisible );
|
|
348
360
|
|
|
349
361
|
// Set an URL.
|
|
350
|
-
const linkTextInput = getByPlaceholderText( 'Add link' );
|
|
362
|
+
const linkTextInput = editor.getByPlaceholderText( 'Add link' );
|
|
351
363
|
fireEvent( linkTextInput, 'focus' );
|
|
352
364
|
fireEvent.changeText( linkTextInput, expectedURL );
|
|
353
365
|
|
|
@@ -355,8 +367,11 @@ describe( 'Embed block', () => {
|
|
|
355
367
|
fireEvent( embedEditURLModal, 'backdropPress' );
|
|
356
368
|
fireEvent( embedEditURLModal, MODAL_DISMISS_EVENT );
|
|
357
369
|
|
|
358
|
-
|
|
359
|
-
|
|
370
|
+
await waitFor( () => editor.UNSAFE_getByType( WebView ) );
|
|
371
|
+
await editor.findByText( 'Media settings' );
|
|
372
|
+
|
|
373
|
+
const blockSettingsModal = await editor.findByTestId(
|
|
374
|
+
'block-settings-modal'
|
|
360
375
|
);
|
|
361
376
|
// Get Twitter link field.
|
|
362
377
|
const twitterLinkField = within(
|
|
@@ -373,26 +388,29 @@ describe( 'Embed block', () => {
|
|
|
373
388
|
// Mock clipboard.
|
|
374
389
|
Clipboard.getString.mockResolvedValue( clipboardURL );
|
|
375
390
|
|
|
376
|
-
const
|
|
377
|
-
EMPTY_EMBED_HTML
|
|
378
|
-
);
|
|
391
|
+
const editor = await initializeWithEmbedBlock( EMPTY_EMBED_HTML );
|
|
379
392
|
|
|
380
393
|
// Edit URL.
|
|
381
|
-
fireEvent.press( getByText( 'ADD LINK' ) );
|
|
394
|
+
fireEvent.press( editor.getByText( 'ADD LINK' ) );
|
|
382
395
|
|
|
383
396
|
// Wait for edit URL modal to be visible.
|
|
384
|
-
const embedEditURLModal = getByTestId(
|
|
397
|
+
const embedEditURLModal = editor.getByTestId(
|
|
398
|
+
'embed-edit-url-modal'
|
|
399
|
+
);
|
|
385
400
|
await waitFor( () => embedEditURLModal.props.isVisible );
|
|
386
401
|
|
|
387
402
|
// Get embed link.
|
|
388
|
-
const embedLink = await
|
|
403
|
+
const embedLink = await editor.findByText( clipboardURL );
|
|
389
404
|
|
|
390
405
|
// Dismiss the edit URL modal.
|
|
391
406
|
fireEvent( embedEditURLModal, 'backdropPress' );
|
|
392
407
|
fireEvent( embedEditURLModal, MODAL_DISMISS_EVENT );
|
|
393
408
|
|
|
394
|
-
|
|
395
|
-
|
|
409
|
+
await waitFor( () => editor.UNSAFE_getByType( WebView ) );
|
|
410
|
+
await editor.findByText( 'Media settings' );
|
|
411
|
+
|
|
412
|
+
const blockSettingsModal = await editor.findByTestId(
|
|
413
|
+
'block-settings-modal'
|
|
396
414
|
);
|
|
397
415
|
// Get Twitter link field.
|
|
398
416
|
const twitterLinkField = within(
|
|
@@ -409,16 +427,17 @@ describe( 'Embed block', () => {
|
|
|
409
427
|
|
|
410
428
|
describe( 'edit URL', () => {
|
|
411
429
|
it( 'keeps the previous URL if no URL is set', async () => {
|
|
412
|
-
const
|
|
413
|
-
|
|
430
|
+
const editor = await initializeWithEmbedBlock(
|
|
431
|
+
RICH_TEXT_EMBED_HTML
|
|
432
|
+
);
|
|
414
433
|
|
|
415
434
|
// Open Block Settings.
|
|
416
|
-
fireEvent.press(
|
|
417
|
-
await waitFor( () => getByLabelText( 'Open Settings' ) )
|
|
418
|
-
);
|
|
435
|
+
fireEvent.press( await editor.findByLabelText( 'Open Settings' ) );
|
|
419
436
|
|
|
420
437
|
// Wait for Block Settings to be visible.
|
|
421
|
-
const blockSettingsModal = getByTestId(
|
|
438
|
+
const blockSettingsModal = editor.getByTestId(
|
|
439
|
+
'block-settings-modal'
|
|
440
|
+
);
|
|
422
441
|
await waitFor( () => blockSettingsModal.props.isVisible );
|
|
423
442
|
|
|
424
443
|
// Dismiss the Block Settings modal.
|
|
@@ -432,16 +451,17 @@ describe( 'Embed block', () => {
|
|
|
432
451
|
const initialURL = 'https://twitter.com/notnownikki';
|
|
433
452
|
const expectedURL = 'https://www.youtube.com/watch?v=lXMskKTw3Bc';
|
|
434
453
|
|
|
435
|
-
const
|
|
436
|
-
|
|
454
|
+
const editor = await initializeWithEmbedBlock(
|
|
455
|
+
RICH_TEXT_EMBED_HTML
|
|
456
|
+
);
|
|
437
457
|
|
|
438
458
|
// Open Block Settings.
|
|
439
|
-
fireEvent.press(
|
|
440
|
-
await waitFor( () => getByLabelText( 'Open Settings' ) )
|
|
441
|
-
);
|
|
459
|
+
fireEvent.press( await editor.findByLabelText( 'Open Settings' ) );
|
|
442
460
|
|
|
443
461
|
// Wait for Block Settings to be visible.
|
|
444
|
-
const blockSettingsModal = getByTestId(
|
|
462
|
+
const blockSettingsModal = editor.getByTestId(
|
|
463
|
+
'block-settings-modal'
|
|
464
|
+
);
|
|
445
465
|
await waitFor( () => blockSettingsModal.props.isVisible );
|
|
446
466
|
|
|
447
467
|
// Start editing link.
|
|
@@ -452,7 +472,7 @@ describe( 'Embed block', () => {
|
|
|
452
472
|
);
|
|
453
473
|
|
|
454
474
|
// Replace URL.
|
|
455
|
-
const linkTextInput = getByDisplayValue( initialURL );
|
|
475
|
+
const linkTextInput = editor.getByDisplayValue( initialURL );
|
|
456
476
|
fireEvent( linkTextInput, 'focus' );
|
|
457
477
|
fireEvent.changeText( linkTextInput, expectedURL );
|
|
458
478
|
|
|
@@ -460,12 +480,13 @@ describe( 'Embed block', () => {
|
|
|
460
480
|
fireEvent( blockSettingsModal, 'backdropPress' );
|
|
461
481
|
fireEvent( blockSettingsModal, MODAL_DISMISS_EVENT );
|
|
462
482
|
|
|
483
|
+
await waitFor( () => editor.UNSAFE_getByType( WebView ) );
|
|
484
|
+
await editor.findByText( 'Media settings' );
|
|
485
|
+
|
|
463
486
|
// Get YouTube link field.
|
|
464
|
-
const youtubeLinkField = await
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
)
|
|
468
|
-
);
|
|
487
|
+
const youtubeLinkField = await within(
|
|
488
|
+
blockSettingsModal
|
|
489
|
+
).findByLabelText( `YouTube link, ${ expectedURL }` );
|
|
469
490
|
|
|
470
491
|
expect( youtubeLinkField ).toBeDefined();
|
|
471
492
|
expect( getEditorHtml() ).toMatchSnapshot();
|
|
@@ -475,20 +496,17 @@ describe( 'Embed block', () => {
|
|
|
475
496
|
const previousURL = 'https://twitter.com/notnownikki';
|
|
476
497
|
const invalidURL = 'http://';
|
|
477
498
|
|
|
478
|
-
const
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
getByTestId,
|
|
482
|
-
getByText,
|
|
483
|
-
} = await initializeWithEmbedBlock( RICH_TEXT_EMBED_HTML );
|
|
499
|
+
const editor = await initializeWithEmbedBlock(
|
|
500
|
+
RICH_TEXT_EMBED_HTML
|
|
501
|
+
);
|
|
484
502
|
|
|
485
503
|
// Open Block Settings.
|
|
486
|
-
fireEvent.press(
|
|
487
|
-
await waitFor( () => getByLabelText( 'Open Settings' ) )
|
|
488
|
-
);
|
|
504
|
+
fireEvent.press( await editor.findByLabelText( 'Open Settings' ) );
|
|
489
505
|
|
|
490
506
|
// Wait for Block Settings to be visible.
|
|
491
|
-
const blockSettingsModal = getByTestId(
|
|
507
|
+
const blockSettingsModal = editor.getByTestId(
|
|
508
|
+
'block-settings-modal'
|
|
509
|
+
);
|
|
492
510
|
await waitFor( () => blockSettingsModal.props.isVisible );
|
|
493
511
|
|
|
494
512
|
// Start editing link.
|
|
@@ -499,7 +517,7 @@ describe( 'Embed block', () => {
|
|
|
499
517
|
);
|
|
500
518
|
|
|
501
519
|
// Replace URL.
|
|
502
|
-
const linkTextInput = getByDisplayValue( previousURL );
|
|
520
|
+
const linkTextInput = editor.getByDisplayValue( previousURL );
|
|
503
521
|
fireEvent( linkTextInput, 'focus' );
|
|
504
522
|
fireEvent.changeText( linkTextInput, invalidURL );
|
|
505
523
|
|
|
@@ -507,8 +525,8 @@ describe( 'Embed block', () => {
|
|
|
507
525
|
fireEvent( blockSettingsModal, 'backdropPress' );
|
|
508
526
|
fireEvent( blockSettingsModal, MODAL_DISMISS_EVENT );
|
|
509
527
|
|
|
510
|
-
const errorNotice = await
|
|
511
|
-
|
|
528
|
+
const errorNotice = await editor.findByText(
|
|
529
|
+
'Invalid URL. Please enter a valid URL.'
|
|
512
530
|
);
|
|
513
531
|
|
|
514
532
|
expect( errorNotice ).toBeDefined();
|
|
@@ -518,20 +536,17 @@ describe( 'Embed block', () => {
|
|
|
518
536
|
it( 'sets empty state when setting an empty URL', async () => {
|
|
519
537
|
const previousURL = 'https://twitter.com/notnownikki';
|
|
520
538
|
|
|
521
|
-
const
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
getByTestId,
|
|
525
|
-
getByPlaceholderText,
|
|
526
|
-
} = await initializeWithEmbedBlock( RICH_TEXT_EMBED_HTML );
|
|
539
|
+
const editor = await initializeWithEmbedBlock(
|
|
540
|
+
RICH_TEXT_EMBED_HTML
|
|
541
|
+
);
|
|
527
542
|
|
|
528
543
|
// Open Block Settings.
|
|
529
|
-
fireEvent.press(
|
|
530
|
-
await waitFor( () => getByLabelText( 'Open Settings' ) )
|
|
531
|
-
);
|
|
544
|
+
fireEvent.press( await editor.findByLabelText( 'Open Settings' ) );
|
|
532
545
|
|
|
533
546
|
// Get Block Settings modal.
|
|
534
|
-
const blockSettingsModal = getByTestId(
|
|
547
|
+
const blockSettingsModal = editor.getByTestId(
|
|
548
|
+
'block-settings-modal'
|
|
549
|
+
);
|
|
535
550
|
|
|
536
551
|
// Start editing link.
|
|
537
552
|
fireEvent.press(
|
|
@@ -541,7 +556,7 @@ describe( 'Embed block', () => {
|
|
|
541
556
|
);
|
|
542
557
|
|
|
543
558
|
// Replace URL with empty value.
|
|
544
|
-
const linkTextInput = getByDisplayValue( previousURL );
|
|
559
|
+
const linkTextInput = editor.getByDisplayValue( previousURL );
|
|
545
560
|
fireEvent( linkTextInput, 'focus' );
|
|
546
561
|
fireEvent.changeText( linkTextInput, '' );
|
|
547
562
|
|
|
@@ -550,8 +565,8 @@ describe( 'Embed block', () => {
|
|
|
550
565
|
fireEvent( blockSettingsModal, MODAL_DISMISS_EVENT );
|
|
551
566
|
|
|
552
567
|
// Get empty embed link.
|
|
553
|
-
const emptyLinkTextInput = await
|
|
554
|
-
|
|
568
|
+
const emptyLinkTextInput = await editor.findByPlaceholderText(
|
|
569
|
+
'Add link'
|
|
555
570
|
);
|
|
556
571
|
|
|
557
572
|
expect( emptyLinkTextInput ).toBeDefined();
|
|
@@ -560,10 +575,12 @@ describe( 'Embed block', () => {
|
|
|
560
575
|
|
|
561
576
|
// This test case covers the bug fixed in PR #35460.
|
|
562
577
|
it( 'edits URL after dismissing two times the edit URL bottom sheet with empty value', async () => {
|
|
563
|
-
const
|
|
578
|
+
const editor = await insertEmbedBlock();
|
|
564
579
|
|
|
565
580
|
// Wait for edit URL modal to be visible.
|
|
566
|
-
const embedEditURLModal = getByTestId(
|
|
581
|
+
const embedEditURLModal = editor.getByTestId(
|
|
582
|
+
'embed-edit-url-modal'
|
|
583
|
+
);
|
|
567
584
|
await waitFor( () => embedEditURLModal.props.isVisible );
|
|
568
585
|
|
|
569
586
|
// Dismiss the edit URL modal.
|
|
@@ -571,10 +588,10 @@ describe( 'Embed block', () => {
|
|
|
571
588
|
fireEvent( embedEditURLModal, MODAL_DISMISS_EVENT );
|
|
572
589
|
|
|
573
590
|
// Select block.
|
|
574
|
-
fireEvent.press( block );
|
|
591
|
+
fireEvent.press( editor.block );
|
|
575
592
|
|
|
576
593
|
// Edit URL.
|
|
577
|
-
fireEvent.press( getByText( 'ADD LINK' ) );
|
|
594
|
+
fireEvent.press( editor.getByText( 'ADD LINK' ) );
|
|
578
595
|
|
|
579
596
|
// Wait for edit URL modal to be visible.
|
|
580
597
|
await waitFor( () => embedEditURLModal.props.isVisible );
|
|
@@ -584,7 +601,7 @@ describe( 'Embed block', () => {
|
|
|
584
601
|
fireEvent( embedEditURLModal, MODAL_DISMISS_EVENT );
|
|
585
602
|
|
|
586
603
|
// Edit URL.
|
|
587
|
-
fireEvent.press( getByText( 'ADD LINK' ) );
|
|
604
|
+
fireEvent.press( editor.getByText( 'ADD LINK' ) );
|
|
588
605
|
|
|
589
606
|
// Wait for edit URL modal to be visible.
|
|
590
607
|
const isVisibleThirdTime = await waitFor(
|
|
@@ -599,19 +616,16 @@ describe( 'Embed block', () => {
|
|
|
599
616
|
const badURL = 'https://youtu.be/BAD_URL';
|
|
600
617
|
const expectedURL = 'https://twitter.com/notnownikki';
|
|
601
618
|
|
|
602
|
-
const
|
|
603
|
-
getByLabelText,
|
|
604
|
-
getByDisplayValue,
|
|
605
|
-
getByPlaceholderText,
|
|
606
|
-
getByTestId,
|
|
607
|
-
} = await insertEmbedBlock();
|
|
619
|
+
const editor = await insertEmbedBlock();
|
|
608
620
|
|
|
609
621
|
// Wait for edit URL modal to be visible.
|
|
610
|
-
const embedEditURLModal = getByTestId(
|
|
622
|
+
const embedEditURLModal = editor.getByTestId(
|
|
623
|
+
'embed-edit-url-modal'
|
|
624
|
+
);
|
|
611
625
|
await waitFor( () => embedEditURLModal.props.isVisible );
|
|
612
626
|
|
|
613
627
|
// Set an bad URL.
|
|
614
|
-
let linkTextInput = getByPlaceholderText( 'Add link' );
|
|
628
|
+
let linkTextInput = editor.getByPlaceholderText( 'Add link' );
|
|
615
629
|
fireEvent( linkTextInput, 'focus' );
|
|
616
630
|
fireEvent.changeText( linkTextInput, badURL );
|
|
617
631
|
|
|
@@ -620,12 +634,12 @@ describe( 'Embed block', () => {
|
|
|
620
634
|
fireEvent( embedEditURLModal, MODAL_DISMISS_EVENT );
|
|
621
635
|
|
|
622
636
|
// Open Block Settings.
|
|
623
|
-
fireEvent.press(
|
|
624
|
-
await waitFor( () => getByLabelText( 'Open Settings' ) )
|
|
625
|
-
);
|
|
637
|
+
fireEvent.press( await editor.findByLabelText( 'Open Settings' ) );
|
|
626
638
|
|
|
627
639
|
// Wait for Block Settings to be visible.
|
|
628
|
-
const blockSettingsModal = getByTestId(
|
|
640
|
+
const blockSettingsModal = editor.getByTestId(
|
|
641
|
+
'block-settings-modal'
|
|
642
|
+
);
|
|
629
643
|
await waitFor( () => blockSettingsModal.props.isVisible );
|
|
630
644
|
|
|
631
645
|
// Start editing link.
|
|
@@ -636,7 +650,7 @@ describe( 'Embed block', () => {
|
|
|
636
650
|
);
|
|
637
651
|
|
|
638
652
|
// Replace URL.
|
|
639
|
-
linkTextInput = getByDisplayValue( badURL );
|
|
653
|
+
linkTextInput = editor.getByDisplayValue( badURL );
|
|
640
654
|
fireEvent( linkTextInput, 'focus' );
|
|
641
655
|
fireEvent.changeText( linkTextInput, expectedURL );
|
|
642
656
|
|
|
@@ -645,11 +659,9 @@ describe( 'Embed block', () => {
|
|
|
645
659
|
fireEvent( blockSettingsModal, MODAL_DISMISS_EVENT );
|
|
646
660
|
|
|
647
661
|
// Get Twitter link field.
|
|
648
|
-
const twitterLinkField = await
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
)
|
|
652
|
-
);
|
|
662
|
+
const twitterLinkField = await within(
|
|
663
|
+
blockSettingsModal
|
|
664
|
+
).findByLabelText( `Twitter link, ${ expectedURL }` );
|
|
653
665
|
|
|
654
666
|
expect( twitterLinkField ).toBeDefined();
|
|
655
667
|
expect( getEditorHtml() ).toMatchSnapshot();
|
|
@@ -665,18 +677,15 @@ describe( 'Embed block', () => {
|
|
|
665
677
|
'Full width',
|
|
666
678
|
].forEach( ( alignmentOption ) =>
|
|
667
679
|
it( `sets ${ alignmentOption } option`, async () => {
|
|
668
|
-
const
|
|
669
|
-
|
|
680
|
+
const editor = await initializeWithEmbedBlock(
|
|
681
|
+
RICH_TEXT_EMBED_HTML
|
|
682
|
+
);
|
|
670
683
|
|
|
671
684
|
// Open alignment options.
|
|
672
|
-
fireEvent.press(
|
|
673
|
-
await waitFor( () => getByLabelText( 'Align' ) )
|
|
674
|
-
);
|
|
685
|
+
fireEvent.press( await editor.findByLabelText( 'Align' ) );
|
|
675
686
|
|
|
676
687
|
// Select alignment option.
|
|
677
|
-
fireEvent.press(
|
|
678
|
-
await waitFor( () => getByText( alignmentOption ) )
|
|
679
|
-
);
|
|
688
|
+
fireEvent.press( await editor.findByText( alignmentOption ) );
|
|
680
689
|
|
|
681
690
|
expect( getEditorHtml() ).toMatchSnapshot();
|
|
682
691
|
} )
|
|
@@ -690,33 +699,33 @@ describe( 'Embed block', () => {
|
|
|
690
699
|
// Return bad response for the first request to oembed endpoint
|
|
691
700
|
// and success response for the rest of requests.
|
|
692
701
|
let isFirstEmbedRequest = true;
|
|
693
|
-
fetchRequest.mockImplementation( (
|
|
694
|
-
|
|
695
|
-
const isEmbedRequest = path.startsWith( '/oembed/1.0/proxy' );
|
|
696
|
-
if ( isEmbedRequest ) {
|
|
702
|
+
fetchRequest.mockImplementation( async ( req ) => {
|
|
703
|
+
if ( req.path.startsWith( '/oembed/1.0/proxy' ) ) {
|
|
697
704
|
if ( isFirstEmbedRequest ) {
|
|
698
705
|
isFirstEmbedRequest = false;
|
|
699
|
-
|
|
700
|
-
} else {
|
|
701
|
-
response = RICH_TEXT_EMBED_SUCCESS_RESPONSE;
|
|
706
|
+
return MOCK_BAD_WORDPRESS_RESPONSE;
|
|
702
707
|
}
|
|
708
|
+
return RICH_TEXT_EMBED_SUCCESS_RESPONSE;
|
|
703
709
|
}
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
}
|
|
707
|
-
return Promise.resolve( response );
|
|
710
|
+
|
|
711
|
+
return mockOtherResponses( req );
|
|
708
712
|
} );
|
|
709
713
|
|
|
710
|
-
const
|
|
714
|
+
const editor = await initializeWithEmbedBlock(
|
|
711
715
|
RICH_TEXT_EMBED_HTML
|
|
712
716
|
);
|
|
713
717
|
|
|
718
|
+
await editor.findByText( 'Unable to embed media' );
|
|
719
|
+
|
|
714
720
|
// Retry request.
|
|
715
|
-
fireEvent.press( getByText( 'More options' ) );
|
|
716
|
-
fireEvent.press( getByText( 'Retry' ) );
|
|
721
|
+
fireEvent.press( editor.getByText( 'More options' ) );
|
|
722
|
+
fireEvent.press( editor.getByText( 'Retry' ) );
|
|
723
|
+
|
|
724
|
+
await waitFor( () => editor.UNSAFE_getByType( WebView ) );
|
|
725
|
+
await editor.findByText( 'Media settings' );
|
|
717
726
|
|
|
718
|
-
const blockSettingsModal = await
|
|
719
|
-
|
|
727
|
+
const blockSettingsModal = await editor.findByTestId(
|
|
728
|
+
'block-settings-modal'
|
|
720
729
|
);
|
|
721
730
|
// Get Twitter link field.
|
|
722
731
|
const twitterLinkField = within(
|
|
@@ -729,26 +738,25 @@ describe( 'Embed block', () => {
|
|
|
729
738
|
|
|
730
739
|
it( 'converts to link if preview request failed', async () => {
|
|
731
740
|
// Return bad response for requests to oembed endpoint.
|
|
732
|
-
fetchRequest.mockImplementation( (
|
|
733
|
-
if ( path.startsWith( '/
|
|
734
|
-
return
|
|
741
|
+
fetchRequest.mockImplementation( async ( req ) => {
|
|
742
|
+
if ( req.path.startsWith( '/oembed/1.0/proxy' ) ) {
|
|
743
|
+
return MOCK_BAD_WORDPRESS_RESPONSE;
|
|
735
744
|
}
|
|
736
|
-
|
|
737
|
-
return
|
|
738
|
-
isEmbedRequest ? MOCK_BAD_WORDPRESS_RESPONSE : {}
|
|
739
|
-
);
|
|
745
|
+
|
|
746
|
+
return mockOtherResponses( req );
|
|
740
747
|
} );
|
|
741
748
|
|
|
742
|
-
const
|
|
743
|
-
|
|
749
|
+
const editor = await initializeWithEmbedBlock(
|
|
750
|
+
RICH_TEXT_EMBED_HTML
|
|
751
|
+
);
|
|
744
752
|
|
|
745
753
|
// Convert embed to link.
|
|
746
|
-
fireEvent.press( getByText( 'More options' ) );
|
|
747
|
-
fireEvent.press( getByText( 'Convert to link' ) );
|
|
754
|
+
fireEvent.press( editor.getByText( 'More options' ) );
|
|
755
|
+
fireEvent.press( editor.getByText( 'Convert to link' ) );
|
|
748
756
|
|
|
749
757
|
// Get paragraph block where the link is created.
|
|
750
|
-
const paragraphBlock = await
|
|
751
|
-
|
|
758
|
+
const [ paragraphBlock ] = await editor.findAllByLabelText(
|
|
759
|
+
/Paragraph Block\. Row 1/
|
|
752
760
|
);
|
|
753
761
|
|
|
754
762
|
expect( paragraphBlock ).toBeDefined();
|
|
@@ -760,50 +768,48 @@ describe( 'Embed block', () => {
|
|
|
760
768
|
const successURL = 'https://twitter.com/notnownikki';
|
|
761
769
|
|
|
762
770
|
// Return bad response for WordPress URL and success for Twitter URL.
|
|
763
|
-
fetchRequest.mockImplementation( (
|
|
771
|
+
fetchRequest.mockImplementation( async ( req ) => {
|
|
764
772
|
const matchesPath = ( url ) =>
|
|
765
|
-
path ===
|
|
773
|
+
req.path ===
|
|
766
774
|
`/oembed/1.0/proxy?url=${ encodeURIComponent( url ) }`;
|
|
767
775
|
|
|
768
|
-
let response = {};
|
|
769
776
|
if ( matchesPath( failURL ) ) {
|
|
770
|
-
|
|
771
|
-
} else if ( matchesPath( successURL ) ) {
|
|
772
|
-
response = RICH_TEXT_EMBED_SUCCESS_RESPONSE;
|
|
773
|
-
} else if (
|
|
774
|
-
path.startsWith( '/wp/v2/block-patterns/categories' )
|
|
775
|
-
) {
|
|
776
|
-
response = [];
|
|
777
|
+
return MOCK_BAD_WORDPRESS_RESPONSE;
|
|
777
778
|
}
|
|
778
779
|
|
|
779
|
-
|
|
780
|
+
if ( matchesPath( successURL ) ) {
|
|
781
|
+
return RICH_TEXT_EMBED_SUCCESS_RESPONSE;
|
|
782
|
+
}
|
|
783
|
+
|
|
784
|
+
return mockOtherResponses( req );
|
|
780
785
|
} );
|
|
781
786
|
|
|
782
|
-
const
|
|
783
|
-
getByLabelText,
|
|
784
|
-
getByText,
|
|
785
|
-
getByTestId,
|
|
786
|
-
getByDisplayValue,
|
|
787
|
-
} = await initializeWithEmbedBlock( WP_EMBED_HTML );
|
|
787
|
+
const editor = await initializeWithEmbedBlock( WP_EMBED_HTML );
|
|
788
788
|
|
|
789
|
-
fireEvent.press( getByText( 'More options' ) );
|
|
790
|
-
fireEvent.press( getByText( 'Edit link' ) );
|
|
789
|
+
fireEvent.press( editor.getByText( 'More options' ) );
|
|
790
|
+
fireEvent.press( editor.getByText( 'Edit link' ) );
|
|
791
791
|
|
|
792
792
|
// Start editing link.
|
|
793
|
-
fireEvent.press(
|
|
793
|
+
fireEvent.press(
|
|
794
|
+
editor.getByLabelText( `WordPress link, ${ failURL }` )
|
|
795
|
+
);
|
|
794
796
|
|
|
795
797
|
// Set an URL.
|
|
796
|
-
const linkTextInput = getByDisplayValue( failURL );
|
|
798
|
+
const linkTextInput = editor.getByDisplayValue( failURL );
|
|
797
799
|
fireEvent( linkTextInput, 'focus' );
|
|
798
800
|
fireEvent.changeText( linkTextInput, successURL );
|
|
799
801
|
|
|
800
802
|
// Dismiss the edit URL modal.
|
|
801
|
-
const embedEditURLModal = getByTestId(
|
|
803
|
+
const embedEditURLModal = editor.getByTestId(
|
|
804
|
+
'embed-edit-url-modal'
|
|
805
|
+
);
|
|
802
806
|
fireEvent( embedEditURLModal, 'backdropPress' );
|
|
803
807
|
fireEvent( embedEditURLModal, MODAL_DISMISS_EVENT );
|
|
804
808
|
|
|
805
|
-
|
|
806
|
-
|
|
809
|
+
await waitFor( () => editor.UNSAFE_getByType( WebView ) );
|
|
810
|
+
|
|
811
|
+
const blockSettingsModal = await editor.findByTestId(
|
|
812
|
+
'block-settings-modal'
|
|
807
813
|
);
|
|
808
814
|
// Get Twitter link field.
|
|
809
815
|
const twitterLinkField = within(
|
|
@@ -864,17 +870,13 @@ describe( 'Embed block', () => {
|
|
|
864
870
|
it( 'creates embed block when pasting URL in paragraph block', async () => {
|
|
865
871
|
const expectedURL = 'https://www.youtube.com/watch?v=lXMskKTw3Bc';
|
|
866
872
|
|
|
867
|
-
const {
|
|
868
|
-
getByLabelText,
|
|
869
|
-
getByPlaceholderText,
|
|
870
|
-
getByTestId,
|
|
871
|
-
getByText,
|
|
872
|
-
} = await initializeEditor( {
|
|
873
|
+
const editor = await initializeEditor( {
|
|
873
874
|
initialHtml: EMPTY_PARAGRAPH_HTML,
|
|
874
875
|
} );
|
|
875
876
|
|
|
876
877
|
// Paste URL in paragraph block.
|
|
877
|
-
const paragraphText =
|
|
878
|
+
const paragraphText =
|
|
879
|
+
editor.getByPlaceholderText( 'Start writing…' );
|
|
878
880
|
fireEvent( paragraphText, 'focus' );
|
|
879
881
|
fireEvent( paragraphText, 'paste', {
|
|
880
882
|
preventDefault: jest.fn(),
|
|
@@ -888,36 +890,37 @@ describe( 'Embed block', () => {
|
|
|
888
890
|
} );
|
|
889
891
|
|
|
890
892
|
// Wait for embed handler picker to be visible.
|
|
891
|
-
|
|
892
|
-
|
|
893
|
+
const embedHandlerPicker = editor.getByTestId(
|
|
894
|
+
'embed-handler-picker'
|
|
893
895
|
);
|
|
896
|
+
await waitFor( () => embedHandlerPicker.props.isVisible );
|
|
894
897
|
|
|
895
898
|
// Select create embed option.
|
|
896
|
-
fireEvent.press( getByText( 'Create embed' ) );
|
|
899
|
+
fireEvent.press( editor.getByText( 'Create embed' ) );
|
|
897
900
|
|
|
898
901
|
// Get the created embed block.
|
|
899
|
-
const embedBlock = await
|
|
900
|
-
|
|
902
|
+
const [ embedBlock ] = await editor.findAllByLabelText(
|
|
903
|
+
/Embed Block\. Row 1/
|
|
901
904
|
);
|
|
902
905
|
|
|
903
906
|
expect( embedBlock ).toBeDefined();
|
|
907
|
+
|
|
908
|
+
await waitFor( () => editor.UNSAFE_getByType( WebView ) );
|
|
909
|
+
await editor.findByText( 'Media settings' );
|
|
910
|
+
|
|
904
911
|
expect( getEditorHtml() ).toMatchSnapshot();
|
|
905
912
|
} );
|
|
906
913
|
|
|
907
914
|
it( 'creates link when pasting URL in paragraph block', async () => {
|
|
908
915
|
const expectedURL = 'https://www.youtube.com/watch?v=lXMskKTw3Bc';
|
|
909
916
|
|
|
910
|
-
const {
|
|
911
|
-
getByDisplayValue,
|
|
912
|
-
getByPlaceholderText,
|
|
913
|
-
getByTestId,
|
|
914
|
-
getByText,
|
|
915
|
-
} = await initializeEditor( {
|
|
917
|
+
const editor = await initializeEditor( {
|
|
916
918
|
initialHtml: EMPTY_PARAGRAPH_HTML,
|
|
917
919
|
} );
|
|
918
920
|
|
|
919
921
|
// Paste URL in paragraph block.
|
|
920
|
-
const paragraphText =
|
|
922
|
+
const paragraphText =
|
|
923
|
+
editor.getByPlaceholderText( 'Start writing…' );
|
|
921
924
|
fireEvent( paragraphText, 'focus' );
|
|
922
925
|
fireEvent( paragraphText, 'paste', {
|
|
923
926
|
preventDefault: jest.fn(),
|
|
@@ -931,16 +934,17 @@ describe( 'Embed block', () => {
|
|
|
931
934
|
} );
|
|
932
935
|
|
|
933
936
|
// Wait for embed handler picker to be visible.
|
|
934
|
-
|
|
935
|
-
|
|
937
|
+
const embedHandlerPicker = editor.getByTestId(
|
|
938
|
+
'embed-handler-picker'
|
|
936
939
|
);
|
|
940
|
+
await waitFor( () => embedHandlerPicker.props.isVisible );
|
|
937
941
|
|
|
938
942
|
// Select create link option.
|
|
939
|
-
fireEvent.press( getByText( 'Create link' ) );
|
|
943
|
+
fireEvent.press( editor.getByText( 'Create link' ) );
|
|
940
944
|
|
|
941
945
|
// Get the link text.
|
|
942
946
|
const linkText = await waitFor( () =>
|
|
943
|
-
getByDisplayValue(
|
|
947
|
+
editor.getByDisplayValue(
|
|
944
948
|
`<p><a href="${ expectedURL }">${ expectedURL }</a></p>`
|
|
945
949
|
)
|
|
946
950
|
);
|
|
@@ -953,10 +957,12 @@ describe( 'Embed block', () => {
|
|
|
953
957
|
describe( 'insert via slash inserter', () => {
|
|
954
958
|
it( 'insert generic embed block', async () => {
|
|
955
959
|
const embedBlockSlashInserter = '/Embed';
|
|
956
|
-
const
|
|
957
|
-
|
|
960
|
+
const editor = await initializeEditor( {
|
|
961
|
+
initialHtml: EMPTY_PARAGRAPH_HTML,
|
|
962
|
+
} );
|
|
958
963
|
|
|
959
|
-
const paragraphText =
|
|
964
|
+
const paragraphText =
|
|
965
|
+
editor.getByPlaceholderText( 'Start writing…' );
|
|
960
966
|
fireEvent( paragraphText, 'focus' );
|
|
961
967
|
// Trigger onSelectionChange to update both the current text and text selection.
|
|
962
968
|
// This event is required by the autocompleter, as it only displays the slash inserter
|
|
@@ -977,10 +983,10 @@ describe( 'Embed block', () => {
|
|
|
977
983
|
}
|
|
978
984
|
);
|
|
979
985
|
|
|
980
|
-
fireEvent.press( await
|
|
986
|
+
fireEvent.press( await editor.findByText( 'Embed' ) );
|
|
981
987
|
|
|
982
|
-
const block = await
|
|
983
|
-
|
|
988
|
+
const [ block ] = await editor.findAllByLabelText(
|
|
989
|
+
/Embed Block\. Row 1/
|
|
984
990
|
);
|
|
985
991
|
|
|
986
992
|
const blockName = within( block ).getByText( 'Embed' );
|
|
@@ -992,12 +998,12 @@ describe( 'Embed block', () => {
|
|
|
992
998
|
MOST_USED_PROVIDERS.forEach( ( { title } ) =>
|
|
993
999
|
it( `inserts ${ title } embed block`, async () => {
|
|
994
1000
|
const embedBlockSlashInserter = `/${ title }`;
|
|
995
|
-
const
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
} );
|
|
1001
|
+
const editor = await initializeEditor( {
|
|
1002
|
+
initialHtml: EMPTY_PARAGRAPH_HTML,
|
|
1003
|
+
} );
|
|
999
1004
|
|
|
1000
|
-
const paragraphText =
|
|
1005
|
+
const paragraphText =
|
|
1006
|
+
editor.getByPlaceholderText( 'Start writing…' );
|
|
1001
1007
|
fireEvent( paragraphText, 'focus' );
|
|
1002
1008
|
// Trigger onSelectionChange to update both the current text and text selection.
|
|
1003
1009
|
// This event is required by the autocompleter, as it only displays the slash inserter
|
|
@@ -1018,10 +1024,10 @@ describe( 'Embed block', () => {
|
|
|
1018
1024
|
}
|
|
1019
1025
|
);
|
|
1020
1026
|
|
|
1021
|
-
fireEvent.press( await
|
|
1027
|
+
fireEvent.press( await editor.findByText( title ) );
|
|
1022
1028
|
|
|
1023
|
-
const block = await
|
|
1024
|
-
|
|
1029
|
+
const [ block ] = await editor.findAllByLabelText(
|
|
1030
|
+
/Embed Block\. Row 1/
|
|
1025
1031
|
);
|
|
1026
1032
|
|
|
1027
1033
|
const blockName = within( block ).getByText( title );
|
|
@@ -1060,12 +1066,12 @@ describe( 'Embed block', () => {
|
|
|
1060
1066
|
|
|
1061
1067
|
it( 'displays cannot embed on the placeholder if preview data is null', async () => {
|
|
1062
1068
|
// Return null response for requests to oembed endpoint.
|
|
1063
|
-
fetchRequest.mockImplementation( (
|
|
1064
|
-
if ( path.startsWith( '/
|
|
1065
|
-
return
|
|
1069
|
+
fetchRequest.mockImplementation( async ( req ) => {
|
|
1070
|
+
if ( req.path.startsWith( '/oembed/1.0/proxy' ) ) {
|
|
1071
|
+
return EMBED_NULL_RESPONSE;
|
|
1066
1072
|
}
|
|
1067
|
-
|
|
1068
|
-
return
|
|
1073
|
+
|
|
1074
|
+
return mockOtherResponses( req );
|
|
1069
1075
|
} );
|
|
1070
1076
|
|
|
1071
1077
|
const { getByText } = await initializeWithEmbedBlock(
|