Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gallery block: ensure image attributes copy correctly between transforms #42796

Merged
merged 5 commits into from
Aug 22, 2022

Conversation

glendaviesnz
Copy link
Contributor

@glendaviesnz glendaviesnz commented Jul 29, 2022

What?

Modifies which Image block attributes are copied when transforming between Image blocks and Gallery block

Why?

Currently the size attribute is copied to Gallery images which caused layout issues which can't be fixed as size can't be altered currently on Gallery block images. Also some other attributes like rel and additional classnames are not copied between transforms
Fixes: #42755

How?

Updates which attribs are copied between transforms

Testing Instructions

  • Add an image block and set a fixed size. Also set the link destination, link rel, link CSS class, title attrib, HTML anchor and additional CSS class
  • Transform to a Gallery and make sure the fixed size attrib has been removed but link destination, link rel, link CSS class, title attrib, HTML anchor and additional CSS class all remain
  • Transform back to an image and make sure link destination, link rel, link CSS class, title attrib, HTML anchor and additional CSS class all remain

Screenshots

Before:

ia-before.mp4

After:

ia-after.mp4

@glendaviesnz glendaviesnz added [Status] In Progress Tracking issues with work in progress [Block] Image Affects the Image Block [Block] Gallery Affects the Gallery Block - used to display groups of images labels Jul 29, 2022
@github-actions
Copy link

github-actions bot commented Jul 29, 2022

Size Change: -21.8 kB (-2%)

Total Size: 1.24 MB

Filename Size Change
build/block-directory/index.min.js 7.06 kB +473 B (+7%) 🔍
build/block-editor/index.min.js 159 kB +5.21 kB (+3%)
build/block-editor/style-rtl.css 15.1 kB +430 B (+3%)
build/block-editor/style.css 15 kB +425 B (+3%)
build/block-library/blocks/audio/style-rtl.css 122 B +19 B (+18%) ⚠️
build/block-library/blocks/audio/style.css 122 B +19 B (+18%) ⚠️
build/block-library/blocks/button/style-rtl.css 539 B -3 B (-1%)
build/block-library/blocks/button/style.css 539 B -3 B (-1%)
build/block-library/blocks/group/editor-rtl.css 412 B +79 B (+24%) 🚨
build/block-library/blocks/group/editor.css 412 B +79 B (+24%) 🚨
build/block-library/blocks/image/editor-rtl.css 876 B +140 B (+19%) ⚠️
build/block-library/blocks/image/editor.css 873 B +136 B (+18%) ⚠️
build/block-library/blocks/latest-posts/editor-rtl.css 213 B +14 B (+7%) 🔍
build/block-library/blocks/latest-posts/editor.css 212 B +14 B (+7%) 🔍
build/block-library/blocks/navigation/editor.css 2.04 kB -1 B (0%)
build/block-library/blocks/navigation/style-rtl.css 1.98 kB +17 B (+1%)
build/block-library/blocks/navigation/style.css 1.97 kB +19 B (+1%)
build/block-library/blocks/paragraph/editor-rtl.css 174 B +17 B (+11%) ⚠️
build/block-library/blocks/paragraph/editor.css 174 B +17 B (+11%) ⚠️
build/block-library/blocks/post-featured-image/editor-rtl.css 507 B -98 B (-16%) 👏
build/block-library/blocks/post-featured-image/editor.css 505 B -100 B (-17%) 👏
build/block-library/blocks/post-featured-image/style-rtl.css 166 B +13 B (+8%) 🔍
build/block-library/blocks/post-featured-image/style.css 166 B +13 B (+8%) 🔍
build/block-library/blocks/pullquote/editor-rtl.css 135 B -63 B (-32%) 🎉
build/block-library/blocks/pullquote/editor.css 135 B -63 B (-32%) 🎉
build/block-library/blocks/pullquote/style-rtl.css 326 B -44 B (-12%) 👏
build/block-library/blocks/pullquote/style.css 325 B -45 B (-12%) 👏
build/block-library/blocks/query-pagination/style-rtl.css 282 B +48 B (+21%) 🚨
build/block-library/blocks/query-pagination/style.css 278 B +47 B (+20%) 🚨
build/block-library/blocks/query/editor-rtl.css 439 B +74 B (+20%) 🚨
build/block-library/blocks/query/editor.css 439 B +75 B (+21%) 🚨
build/block-library/blocks/search/style-rtl.css 396 B +11 B (+3%)
build/block-library/blocks/search/style.css 393 B +7 B (+2%)
build/block-library/blocks/site-logo/editor-rtl.css 455 B -253 B (-36%) 🎉
build/block-library/blocks/site-logo/editor.css 455 B -253 B (-36%) 🎉
build/block-library/blocks/social-links/style-rtl.css 1.39 kB -1 B (0%)
build/block-library/blocks/social-links/style.css 1.38 kB -1 B (0%)
build/block-library/blocks/tag-cloud/style-rtl.css 239 B +13 B (+6%) 🔍
build/block-library/blocks/tag-cloud/style.css 239 B +12 B (+5%) 🔍
build/block-library/blocks/video/style-rtl.css 174 B +15 B (+9%) 🔍
build/block-library/blocks/video/style.css 174 B +15 B (+9%) 🔍
build/block-library/editor-rtl.css 11 kB +148 B (+1%)
build/block-library/editor.css 11 kB +140 B (+1%)
build/block-library/index.min.js 186 kB +1.32 kB (+1%)
build/block-library/style-rtl.css 11.8 kB +21 B (0%)
build/block-library/style.css 11.8 kB +22 B (0%)
build/blocks/index.min.js 49.5 kB +2.29 kB (+5%) 🔍
build/components/index.min.js 198 kB -32 kB (-14%) 👏
build/components/style-rtl.css 11.6 kB -2.39 kB (-17%) 👏
build/components/style.css 11.6 kB -2.39 kB (-17%) 👏
build/compose/index.min.js 12 kB +349 B (+3%)
build/core-data/index.min.js 15.4 kB +698 B (+5%) 🔍
build/customize-widgets/index.min.js 11.3 kB +44 B (0%)
build/data/index.min.js 8.03 kB +39 B (0%)
build/date/index.min.js 32 kB +5 B (0%)
build/dom/index.min.js 4.69 kB +1 B (0%)
build/edit-navigation/index.min.js 16 kB +28 B (0%)
build/edit-navigation/style-rtl.css 4 kB -18 B (0%)
build/edit-navigation/style.css 4.01 kB -19 B (0%)
build/edit-post/index.min.js 30.5 kB -5 B (0%)
build/edit-site/index.min.js 57.3 kB +2.21 kB (+4%)
build/edit-site/style-rtl.css 8.22 kB +10 B (0%)
build/edit-site/style.css 8.2 kB +9 B (0%)
build/edit-widgets/index.min.js 16.5 kB +18 B (0%)
build/editor/index.min.js 41.5 kB +215 B (+1%)
build/element/index.min.js 4.68 kB +407 B (+10%) ⚠️
build/keycodes/index.min.js 1.81 kB +421 B (+30%) 🚨
build/redux-routine/index.min.js 2.74 kB +59 B (+2%)
build/reusable-blocks/index.min.js 2.21 kB -4 B (0%)
build/rich-text/index.min.js 11.2 kB +33 B (0%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 982 B
build/annotations/index.min.js 2.76 kB
build/api-fetch/index.min.js 2.26 kB
build/autop/index.min.js 2.14 kB
build/blob/index.min.js 475 B
build/block-directory/style-rtl.css 990 B
build/block-directory/style.css 991 B
build/block-editor/default-editor-styles-rtl.css 378 B
build/block-editor/default-editor-styles.css 378 B
build/block-library/blocks/archives/editor-rtl.css 61 B
build/block-library/blocks/archives/editor.css 60 B
build/block-library/blocks/archives/style-rtl.css 65 B
build/block-library/blocks/archives/style.css 65 B
build/block-library/blocks/audio/editor-rtl.css 150 B
build/block-library/blocks/audio/editor.css 150 B
build/block-library/blocks/audio/theme-rtl.css 110 B
build/block-library/blocks/audio/theme.css 110 B
build/block-library/blocks/avatar/editor-rtl.css 116 B
build/block-library/blocks/avatar/editor.css 116 B
build/block-library/blocks/avatar/style-rtl.css 59 B
build/block-library/blocks/avatar/style.css 59 B
build/block-library/blocks/block/editor-rtl.css 161 B
build/block-library/blocks/block/editor.css 161 B
build/block-library/blocks/button/editor-rtl.css 441 B
build/block-library/blocks/button/editor.css 441 B
build/block-library/blocks/buttons/editor-rtl.css 292 B
build/block-library/blocks/buttons/editor.css 292 B
build/block-library/blocks/buttons/style-rtl.css 275 B
build/block-library/blocks/buttons/style.css 275 B
build/block-library/blocks/calendar/style-rtl.css 207 B
build/block-library/blocks/calendar/style.css 207 B
build/block-library/blocks/categories/editor-rtl.css 84 B
build/block-library/blocks/categories/editor.css 83 B
build/block-library/blocks/categories/style-rtl.css 79 B
build/block-library/blocks/categories/style.css 79 B
build/block-library/blocks/code/style-rtl.css 103 B
build/block-library/blocks/code/style.css 103 B
build/block-library/blocks/code/theme-rtl.css 124 B
build/block-library/blocks/code/theme.css 124 B
build/block-library/blocks/columns/editor-rtl.css 108 B
build/block-library/blocks/columns/editor.css 108 B
build/block-library/blocks/columns/style-rtl.css 406 B
build/block-library/blocks/columns/style.css 406 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 125 B
build/block-library/blocks/comment-author-avatar/editor.css 125 B
build/block-library/blocks/comment-content/style-rtl.css 92 B
build/block-library/blocks/comment-content/style.css 92 B
build/block-library/blocks/comment-template/style-rtl.css 187 B
build/block-library/blocks/comment-template/style.css 185 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 123 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 222 B
build/block-library/blocks/comments-pagination/editor.css 209 B
build/block-library/blocks/comments-pagination/style-rtl.css 235 B
build/block-library/blocks/comments-pagination/style.css 231 B
build/block-library/blocks/comments-title/editor-rtl.css 75 B
build/block-library/blocks/comments-title/editor.css 75 B
build/block-library/blocks/comments/editor-rtl.css 834 B
build/block-library/blocks/comments/editor.css 832 B
build/block-library/blocks/comments/style-rtl.css 632 B
build/block-library/blocks/comments/style.css 630 B
build/block-library/blocks/cover/editor-rtl.css 615 B
build/block-library/blocks/cover/editor.css 616 B
build/block-library/blocks/cover/style-rtl.css 1.55 kB
build/block-library/blocks/cover/style.css 1.55 kB
build/block-library/blocks/embed/editor-rtl.css 293 B
build/block-library/blocks/embed/editor.css 293 B
build/block-library/blocks/embed/style-rtl.css 410 B
build/block-library/blocks/embed/style.css 410 B
build/block-library/blocks/embed/theme-rtl.css 110 B
build/block-library/blocks/embed/theme.css 110 B
build/block-library/blocks/file/editor-rtl.css 300 B
build/block-library/blocks/file/editor.css 300 B
build/block-library/blocks/file/style-rtl.css 253 B
build/block-library/blocks/file/style.css 254 B
build/block-library/blocks/file/view.min.js 346 B
build/block-library/blocks/freeform/editor-rtl.css 2.44 kB
build/block-library/blocks/freeform/editor.css 2.44 kB
build/block-library/blocks/gallery/editor-rtl.css 948 B
build/block-library/blocks/gallery/editor.css 950 B
build/block-library/blocks/gallery/style-rtl.css 1.53 kB
build/block-library/blocks/gallery/style.css 1.53 kB
build/block-library/blocks/gallery/theme-rtl.css 108 B
build/block-library/blocks/gallery/theme.css 108 B
build/block-library/blocks/group/style-rtl.css 57 B
build/block-library/blocks/group/style.css 57 B
build/block-library/blocks/group/theme-rtl.css 78 B
build/block-library/blocks/group/theme.css 78 B
build/block-library/blocks/heading/style-rtl.css 76 B
build/block-library/blocks/heading/style.css 76 B
build/block-library/blocks/html/editor-rtl.css 327 B
build/block-library/blocks/html/editor.css 329 B
build/block-library/blocks/image/style-rtl.css 627 B
build/block-library/blocks/image/style.css 630 B
build/block-library/blocks/image/theme-rtl.css 110 B
build/block-library/blocks/image/theme.css 110 B
build/block-library/blocks/latest-comments/style-rtl.css 284 B
build/block-library/blocks/latest-comments/style.css 284 B
build/block-library/blocks/latest-posts/style-rtl.css 463 B
build/block-library/blocks/latest-posts/style.css 462 B
build/block-library/blocks/list/style-rtl.css 88 B
build/block-library/blocks/list/style.css 88 B
build/block-library/blocks/media-text/editor-rtl.css 266 B
build/block-library/blocks/media-text/editor.css 263 B
build/block-library/blocks/media-text/style-rtl.css 493 B
build/block-library/blocks/media-text/style.css 490 B
build/block-library/blocks/more/editor-rtl.css 431 B
build/block-library/blocks/more/editor.css 431 B
build/block-library/blocks/navigation-link/editor-rtl.css 705 B
build/block-library/blocks/navigation-link/editor.css 703 B
build/block-library/blocks/navigation-link/style-rtl.css 115 B
build/block-library/blocks/navigation-link/style.css 115 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 296 B
build/block-library/blocks/navigation-submenu/editor.css 295 B
build/block-library/blocks/navigation-submenu/view.min.js 423 B
build/block-library/blocks/navigation/editor-rtl.css 2.03 kB
build/block-library/blocks/navigation/view-modal.min.js 2.78 kB
build/block-library/blocks/navigation/view.min.js 443 B
build/block-library/blocks/nextpage/editor-rtl.css 395 B
build/block-library/blocks/nextpage/editor.css 395 B
build/block-library/blocks/page-list/editor-rtl.css 363 B
build/block-library/blocks/page-list/editor.css 363 B
build/block-library/blocks/page-list/style-rtl.css 175 B
build/block-library/blocks/page-list/style.css 175 B
build/block-library/blocks/paragraph/style-rtl.css 260 B
build/block-library/blocks/paragraph/style.css 260 B
build/block-library/blocks/post-author/style-rtl.css 175 B
build/block-library/blocks/post-author/style.css 176 B
build/block-library/blocks/post-comments-form/editor-rtl.css 96 B
build/block-library/blocks/post-comments-form/editor.css 96 B
build/block-library/blocks/post-comments-form/style-rtl.css 493 B
build/block-library/blocks/post-comments-form/style.css 493 B
build/block-library/blocks/post-excerpt/editor-rtl.css 73 B
build/block-library/blocks/post-excerpt/editor.css 73 B
build/block-library/blocks/post-excerpt/style-rtl.css 69 B
build/block-library/blocks/post-excerpt/style.css 69 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 282 B
build/block-library/blocks/post-template/style.css 282 B
build/block-library/blocks/post-terms/style-rtl.css 73 B
build/block-library/blocks/post-terms/style.css 73 B
build/block-library/blocks/post-title/style-rtl.css 80 B
build/block-library/blocks/post-title/style.css 80 B
build/block-library/blocks/preformatted/style-rtl.css 103 B
build/block-library/blocks/preformatted/style.css 103 B
build/block-library/blocks/pullquote/theme-rtl.css 167 B
build/block-library/blocks/pullquote/theme.css 167 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B
build/block-library/blocks/query-pagination/editor-rtl.css 221 B
build/block-library/blocks/query-pagination/editor.css 211 B
build/block-library/blocks/quote/style-rtl.css 213 B
build/block-library/blocks/quote/style.css 213 B
build/block-library/blocks/quote/theme-rtl.css 223 B
build/block-library/blocks/quote/theme.css 226 B
build/block-library/blocks/read-more/style-rtl.css 132 B
build/block-library/blocks/read-more/style.css 132 B
build/block-library/blocks/rss/editor-rtl.css 202 B
build/block-library/blocks/rss/editor.css 204 B
build/block-library/blocks/rss/style-rtl.css 289 B
build/block-library/blocks/rss/style.css 288 B
build/block-library/blocks/search/editor-rtl.css 165 B
build/block-library/blocks/search/editor.css 165 B
build/block-library/blocks/search/theme-rtl.css 114 B
build/block-library/blocks/search/theme.css 114 B
build/block-library/blocks/separator/editor-rtl.css 146 B
build/block-library/blocks/separator/editor.css 146 B
build/block-library/blocks/separator/style-rtl.css 233 B
build/block-library/blocks/separator/style.css 233 B
build/block-library/blocks/separator/theme-rtl.css 194 B
build/block-library/blocks/separator/theme.css 194 B
build/block-library/blocks/shortcode/editor-rtl.css 464 B
build/block-library/blocks/shortcode/editor.css 464 B
build/block-library/blocks/site-logo/style-rtl.css 192 B
build/block-library/blocks/site-logo/style.css 192 B
build/block-library/blocks/site-tagline/editor-rtl.css 86 B
build/block-library/blocks/site-tagline/editor.css 86 B
build/block-library/blocks/site-title/editor-rtl.css 84 B
build/block-library/blocks/site-title/editor.css 84 B
build/block-library/blocks/social-link/editor-rtl.css 184 B
build/block-library/blocks/social-link/editor.css 184 B
build/block-library/blocks/social-links/editor-rtl.css 674 B
build/block-library/blocks/social-links/editor.css 673 B
build/block-library/blocks/spacer/editor-rtl.css 322 B
build/block-library/blocks/spacer/editor.css 322 B
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/table/editor-rtl.css 494 B
build/block-library/blocks/table/editor.css 494 B
build/block-library/blocks/table/style-rtl.css 611 B
build/block-library/blocks/table/style.css 609 B
build/block-library/blocks/table/theme-rtl.css 175 B
build/block-library/blocks/table/theme.css 175 B
build/block-library/blocks/template-part/editor-rtl.css 235 B
build/block-library/blocks/template-part/editor.css 235 B
build/block-library/blocks/template-part/theme-rtl.css 101 B
build/block-library/blocks/template-part/theme.css 101 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B
build/block-library/blocks/text-columns/editor.css 95 B
build/block-library/blocks/text-columns/style-rtl.css 166 B
build/block-library/blocks/text-columns/style.css 166 B
build/block-library/blocks/verse/style-rtl.css 87 B
build/block-library/blocks/verse/style.css 87 B
build/block-library/blocks/video/editor-rtl.css 561 B
build/block-library/blocks/video/editor.css 563 B
build/block-library/blocks/video/theme-rtl.css 110 B
build/block-library/blocks/video/theme.css 110 B
build/block-library/common-rtl.css 1.01 kB
build/block-library/common.css 1 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/reset-rtl.css 478 B
build/block-library/reset.css 478 B
build/block-library/theme-rtl.css 695 B
build/block-library/theme.css 700 B
build/block-serialization-default-parser/index.min.js 1.11 kB
build/block-serialization-spec-parser/index.min.js 2.83 kB
build/customize-widgets/style-rtl.css 1.4 kB
build/customize-widgets/style.css 1.4 kB
build/data-controls/index.min.js 653 B
build/deprecated/index.min.js 507 B
build/dom-ready/index.min.js 324 B
build/edit-post/classic-rtl.css 546 B
build/edit-post/classic.css 547 B
build/edit-post/style-rtl.css 6.94 kB
build/edit-post/style.css 6.94 kB
build/edit-widgets/style-rtl.css 4.35 kB
build/edit-widgets/style.css 4.35 kB
build/editor/style-rtl.css 3.66 kB
build/editor/style.css 3.65 kB
build/escape-html/index.min.js 537 B
build/format-library/index.min.js 6.75 kB
build/format-library/style-rtl.css 571 B
build/format-library/style.css 571 B
build/hooks/index.min.js 1.64 kB
build/html-entities/index.min.js 448 B
build/i18n/index.min.js 3.77 kB
build/is-shallow-equal/index.min.js 527 B
build/keyboard-shortcuts/index.min.js 1.78 kB
build/list-reusable-blocks/index.min.js 1.74 kB
build/list-reusable-blocks/style-rtl.css 835 B
build/list-reusable-blocks/style.css 835 B
build/media-utils/index.min.js 2.93 kB
build/notices/index.min.js 953 B
build/nux/index.min.js 2.05 kB
build/nux/style-rtl.css 732 B
build/nux/style.css 728 B
build/plugins/index.min.js 1.94 kB
build/preferences-persistence/index.min.js 2.22 kB
build/preferences/index.min.js 1.3 kB
build/primitives/index.min.js 933 B
build/priority-queue/index.min.js 612 B
build/react-i18n/index.min.js 696 B
build/react-refresh-entry/index.min.js 8.44 kB
build/react-refresh-runtime/index.min.js 7.31 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/server-side-render/index.min.js 1.61 kB
build/shortcode/index.min.js 1.53 kB
build/token-list/index.min.js 644 B
build/url/index.min.js 3.61 kB
build/vendors/react-dom.min.js 38.5 kB
build/vendors/react.min.js 4.34 kB
build/viewport/index.min.js 1.08 kB
build/warning/index.min.js 268 B
build/widgets/index.min.js 7.19 kB
build/widgets/style-rtl.css 1.16 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.06 kB

compressed-size-action

@t-hamano
Copy link
Contributor

@glendaviesnz

I have made adjustments to ensure that all attributes are correctly carried over in the transformation between the image and the gallery block.
Could you check if there are any problems with this update?

@glendaviesnz glendaviesnz marked this pull request as ready for review July 31, 2022 23:17
@glendaviesnz glendaviesnz requested a review from geriux as a code owner July 31, 2022 23:17
@glendaviesnz glendaviesnz changed the title Remove an fixed height and width from image blocks before converting to Gallery block Gallery block: ensure image attributes copy correctly between transforms Jul 31, 2022
@glendaviesnz glendaviesnz added [Type] Bug An existing feature does not function as intended and removed [Status] In Progress Tracking issues with work in progress labels Jul 31, 2022
@glendaviesnz
Copy link
Contributor Author

Your changes tested well for me @t-hamano

@ramonjd
Copy link
Member

ramonjd commented Aug 5, 2022

I've run through the test steps a few times, and here's what I'm seeing:

Insert image

<!-- wp:image {"id":42,"width":591,"height":788,"sizeSlug":"large","linkDestination":"media","className":"bridge-kaputt"} -->
<figure class="wp-block-image size-large is-resized bridge-kaputt" id="bridge-kaputt"><a href="http://localhost:8888/wp-content/uploads/2022/07/bridge-kaputt-scaled.jpg" rel="test"><img src="http://localhost:8888/wp-content/uploads/2022/07/bridge-kaputt-768x1024.jpg" alt="bridge-kaputt" class="wp-image-42" width="591" height="788" title="bridge-kaputt"/></a><figcaption class="wp-element-caption">bridge-kaputt</figcaption></figure>
<!-- /wp:image -->

Covert image to gallery

<!-- wp:gallery {"linkTo":"none"} -->
<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><!-- wp:image {"id":42,"sizeSlug":"large","linkDestination":"media","className":"bridge-kaputt"} -->
<figure class="wp-block-image size-large bridge-kaputt" id="bridge-kaputt"><a href="http://localhost:8888/wp-content/uploads/2022/07/bridge-kaputt-scaled.jpg" rel="test"><img src="http://localhost:8888/wp-content/uploads/2022/07/bridge-kaputt-768x1024.jpg" alt="bridge-kaputt" class="wp-image-42" title="bridge-kaputt"/></a><figcaption class="wp-element-caption">bridge-kaputt</figcaption></figure>
<!-- /wp:image --></figure>
<!-- /wp:gallery -->

Covert gallery to image

<!-- wp:image {"id":42,"sizeSlug":"large","linkDestination":"none","className":"bridge-kaputt"} -->
<figure class="wp-block-image size-large bridge-kaputt" id="bridge-kaputt"><img src="http://localhost:8888/wp-content/uploads/2022/07/bridge-kaputt-768x1024.jpg" alt="bridge-kaputt" class="wp-image-42" title="bridge-kaputt"/><figcaption class="wp-element-caption">bridge-kaputt</figcaption></figure>
<!-- /wp:image -->
  • The <a /> tag is stripped in the last step
  • I wasn't sure how to add a link rel aside from manually (?)

@glendaviesnz
Copy link
Contributor Author

  • The <a /> tag is stripped in the last step

hmm, weird, I thought the link was kept full circle when I tested, but I get the same result as you now - will take look.

@glendaviesnz
Copy link
Contributor Author

@ramonjd this is a strange one, repeated your issue the first couple of times, and now I can't repeat it to try and debug - will take another look on Monday

@ramonjd
Copy link
Member

ramonjd commented Aug 5, 2022

repeated your issue the first couple of times, and now I can't repeat it to try and debug - will take another look on Monday

No worries!

I think it might have worked for me once. I might have hit Update or something, but I couldn't nail down the scenario exactly.

I'll take another look next week too!

@glendaviesnz
Copy link
Contributor Author

glendaviesnz commented Aug 8, 2022

@ramonjd this is weird - only seems to happen the first time you do a full circle transformation on a freshly added image, eg.

  1. Add a new image and link to media
  2. Tranform to Gallery - link still there
  3. Transform to Image - link gone

If at step 3 above you add the link to media back again and do the full circle transform again the link stays - in both cases the block markup at the point of going from Gallery back to Image is identical 🤔

@ramonjd
Copy link
Member

ramonjd commented Aug 8, 2022

only seems to happen the first time you do a full circle transformation on a freshly added image

Following the instructions you gave above, the link tag is also stripped for me at step 2 unless I save the post after step 1. 😕

If at step 3 above you add the link to media back again and do the full circle transform again the link stays - in both cases the block markup at the point of going from Gallery back to Image is identical

One difference I did notice, and one I can't explain, is that the href is empty for the first transform from Gallery back to image:

Screen Shot 2022-08-08 at 1 23 29 pm

But after linking again it's there:

Screen Shot 2022-08-08 at 1 25 20 pm

@glendaviesnz
Copy link
Contributor Author

Following the instructions you gave above, the link tag is also stripped for me at step 2 unless I save the post after step 1. 😕

Ah, I may have omitted the fact that I was adding a save - have added to the instructions

One difference I did notice, and one I can't explain, is that the href is empty for the first transform from Gallery back to image:

Yeh, that is what I am seeing as well - very strange as the block markup and attributes all appear to be identical each time apart from the missing href 🤔 I wonder if it is an edge case with pursuing at this point or if we merge this fix which is an improvement on the current state as it is?

@ramonjd
Copy link
Member

ramonjd commented Aug 8, 2022

I wonder if it is an edge case with pursuing at this point or if we merge this fix which is an improvement on the current state as it is?

I'd say it's okay to merge as is, but would definitely consider a follow up. What if there were a gallery, each of whose images had a custom link? Would a transform back to image wipe them?

@glendaviesnz
Copy link
Contributor Author

What if there were a gallery, each of whose images had a custom link? Would a transform back to image wipe them?

Good question, will do some more testing

@talldan
Copy link
Contributor

talldan commented Aug 15, 2022

Gave this a test, and I'm also seeing the link stripped when transforming from image to gallery. It was an external link, and I'd saved after step one.

Possibly the issue is getHrefAndDestination, which tries to determine the correct image attributes and uses the gallery block's linkTo (which is 'none'), so it returns no href. I'm only looking at the block for the first time in a long time, so I might be wrong.

@glendaviesnz
Copy link
Contributor Author

Possibly the issue is getHrefAndDestination,

Thanks @talldan, that did seem to be the issue - have updated this method to fall back to the Image block destination if the gallery block destination is undefined, and wasn't able to replicate the issue after doing that.

@ramonjd
Copy link
Member

ramonjd commented Aug 16, 2022

that did seem to be the issue - have updated this method to fall back to the Image block destination if the gallery block destination is undefined, and wasn't able to replicate the issue after doing that.

Is it just me? The link is still stripped when converting from Gallery to Image.

Saving the post makes a difference, as the linkDestination attribute survives the first transform, but the link is still stripped:

<!-- wp:image {"id":77,"width":300,"height":300,"sizeSlug":"large","linkDestination":"media","style":{"border":{"width":"26px"}},"className":"Flowers"} -->
<figure class="wp-block-image size-large is-resized has-custom-border Flowers" id="Flowers"><a href="http://localhost:8888/wp-content/uploads/2022/08/poppy.jpeg"><img src="http://localhost:8888/wp-content/uploads/2022/08/poppy-684x1024.jpeg" alt="Flowers" class="wp-image-77" style="border-width:26px" width="300" height="300" title="Flowers"/></a></figure>
<!-- /wp:image -->

<!-- Saved post, then coverted to gallery... -->

<!-- wp:gallery {"linkTo":"none"} -->
<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><!-- wp:image {"id":77,"sizeSlug":"large","linkDestination":"media","style":{"border":{"width":"26px"}},"className":"Flowers"} -->
    <figure class="wp-block-image size-large has-custom-border Flowers" id="Flowers"><a href="http://localhost:8888/wp-content/uploads/2022/08/poppy.jpeg"><img src="http://localhost:8888/wp-content/uploads/2022/08/poppy-684x1024.jpeg" alt="Flowers" class="wp-image-77" style="border-width:26px" title="Flowers"/></a></figure>
    <!-- /wp:image --></figure>
    <!-- /wp:gallery -->


<!-- Didn't save post, then coverted to image... -->


    <!-- wp:image {"id":77,"sizeSlug":"large","linkDestination":"none","className":"Flowers"} -->
<figure class="wp-block-image size-large Flowers" id="Flowers"><img src="http://localhost:8888/wp-content/uploads/2022/08/poppy-684x1024.jpeg" alt="Flowers" class="wp-image-77" title="Flowers"/></figure>
<!-- /wp:image -->

No saving:

<!-- wp:image {"id":79,"sizeSlug":"full","linkDestination":"attachment"} -->
<figure class="wp-block-image size-full"><a href="http://localhost:8888/?attachment_id=79"><img src="http://localhost:8888/wp-content/uploads/2022/08/black-neutral-ancient-greek-columns-wallpaper-mural-Plain-820x532-copy.jpg" alt="" class="wp-image-79"/></a></figure>
<!-- /wp:image -->

<!-- Didn't save post, then coverted to gallery... -->

<!-- wp:gallery {"linkTo":"none","sizeSlug":"full"} -->
<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><!-- wp:image {"id":79,"sizeSlug":"full","linkDestination":"none"} -->
    <figure class="wp-block-image size-full"><img src="http://localhost:8888/wp-content/uploads/2022/08/black-neutral-ancient-greek-columns-wallpaper-mural-Plain-820x532-copy.jpg" alt="" class="wp-image-79"/></figure>
    <!-- /wp:image --></figure>
    <!-- /wp:gallery -->


<!-- Didn't save post, then coverted to image... -->

    <!-- wp:image {"id":79,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="http://localhost:8888/wp-content/uploads/2022/08/black-neutral-ancient-greek-columns-wallpaper-mural-Plain-820x532-copy.jpg" alt="" class="wp-image-79"/></figure>
<!-- /wp:image -->

@ramonjd
Copy link
Member

ramonjd commented Aug 16, 2022

When I convert back to an Image from a Gallery, getHrefAndDestination() doesn't appear to be called at all. Not sure if this is expected or not, or even what the consequences are 😄

@glendaviesnz
Copy link
Contributor Author

Is it just me? The link is still stripped when converting from Gallery to Image.

Weird, I just tried with the markup you proved and the link survived the round trip both saving and not saving. @talldan when you get a minute are you able to give it a try please?

When I convert back to an Image from a Gallery, getHrefAndDestination() doesn't appear to be called at all

That is correct, this method is only used by the gallery to set the correct href and destination when an image is added to the gallery, not when it is transformed back to an image

@ramonjd
Copy link
Member

ramonjd commented Aug 17, 2022

I tried again, did a hard reset using the latest commit from this branch, cleaned out cache, deleted npm modules...

It's still happening for me. I think I'm special 😄 Let's see if others have better luck. Sorry!

@glendaviesnz
Copy link
Contributor Author

Looks like the link only gets stripped if you toggle between code and editor view to see of the link is present - checking the link via the block toolbar doesn't cause it to be stripped

…n to prevent previously set image links being wiped when switching between code and editor view
Copy link
Member

@ramonjd ramonjd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Retested this after the latest change. Thanks for tracking this down @glendaviesnz

Now the link and attributes survive transformation when:

  • toggling between code view and visual editor
  • saving or not saving

Image:

<!-- wp:image {"id":81,"width":303,"height":202,"sizeSlug":"medium","linkDestination":"media","className":"Poppy"} -->
<figure class="wp-block-image size-medium is-resized Poppy" id="Poppy"><a href="http://localhost:8888/wp-content/uploads/2022/08/poppy.jpg"><img src="http://localhost:8888/wp-content/uploads/2022/08/poppy-300x200.jpg" alt="Poppy" class="wp-image-81" width="303" height="202" title="Poppy"/></a><figcaption class="wp-element-caption">Several red poppy heads against a blue sky. Copy space for text.</figcaption></figure>
<!-- /wp:image -->

Image > Gallery

<!-- wp:gallery {"linkTo":"none","sizeSlug":"medium"} -->
<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><!-- wp:image {"id":81,"sizeSlug":"medium","linkDestination":"media","className":"Poppy"} -->
<figure class="wp-block-image size-medium Poppy" id="Poppy"><a href="http://localhost:8888/wp-content/uploads/2022/08/poppy.jpg"><img src="http://localhost:8888/wp-content/uploads/2022/08/poppy-300x200.jpg" alt="Poppy" class="wp-image-81" title="Poppy"/></a><figcaption class="wp-element-caption">Several red poppy heads against a blue sky. Copy space for text.</figcaption></figure>
<!-- /wp:image --></figure>
<!-- /wp:gallery -->

Gallery > image

<!-- wp:image {"id":81,"sizeSlug":"medium","linkDestination":"media","className":"Poppy"} -->
<figure class="wp-block-image size-medium Poppy" id="Poppy"><a href="http://localhost:8888/wp-content/uploads/2022/08/poppy.jpg"><img src="http://localhost:8888/wp-content/uploads/2022/08/poppy-300x200.jpg" alt="Poppy" class="wp-image-81" title="Poppy"/></a><figcaption class="wp-element-caption">Several red poppy heads against a blue sky. Copy space for text.</figcaption></figure>
<!-- /wp:image -->

@glendaviesnz glendaviesnz merged commit 5bc6d33 into trunk Aug 22, 2022
@glendaviesnz glendaviesnz deleted the fix/gallery-image-size-issue branch August 22, 2022 01:59
@github-actions github-actions bot added this to the Gutenberg 14.0 milestone Aug 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Block] Gallery Affects the Gallery Block - used to display groups of images [Block] Image Affects the Image Block [Type] Bug An existing feature does not function as intended
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Block Transform: Some attributes aren't carried successfully between image and gallery block
4 participants