Skip to content

Commit 0eacfc5

Browse files
refactor: use separate fns to extract common logic
1 parent 71dd56a commit 0eacfc5

File tree

1 file changed

+39
-9
lines changed
  • packages/block-library/src/image

1 file changed

+39
-9
lines changed

packages/block-library/src/image/view.js

Lines changed: 39 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,39 @@ let isTouching = false;
3030
*/
3131
let lastTouchTime = 0;
3232

33+
/**
34+
* Returns the appropriate src URL for an image
35+
*
36+
* @param {Object} imageMetadata Image metadata object
37+
* @return {string} The source URL
38+
*/
39+
function getImageSrc( imageMetadata ) {
40+
return (
41+
imageMetadata.uploadedSrc ||
42+
'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs='
43+
);
44+
}
45+
46+
/**
47+
* Returns the appropriate srcset for an image
48+
*
49+
* @param {Object} imageMetadata Image metadata object
50+
* @return {string} The srcset value
51+
*/
52+
function getImageSrcset( imageMetadata ) {
53+
return imageMetadata.lightboxSrcset || '';
54+
}
55+
56+
/**
57+
* Returns the appropriate sizes attribute for an image
58+
*
59+
* @param {Object} imageMetadata Image metadata object
60+
* @return {string} The sizes value, defaulting to 100vw
61+
*/
62+
function getImageSizes( imageMetadata ) {
63+
return imageMetadata.lightboxSizes || '100vw';
64+
}
65+
3366
const { state, actions, callbacks } = store(
3467
'core/image',
3568
{
@@ -50,16 +83,13 @@ const { state, actions, callbacks } = store(
5083
return state.overlayOpened ? 'true' : null;
5184
},
5285
get enlargedSrc() {
53-
return (
54-
state.currentImage.uploadedSrc ||
55-
'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs='
56-
);
86+
return getImageSrc( state.currentImage );
5787
},
5888
get enlargedSrcset() {
59-
return state.currentImage.lightboxSrcset || '';
89+
return getImageSrcset( state.currentImage );
6090
},
6191
get enlargedSizes() {
62-
return state.currentImage.lightboxSizes || '100vw';
92+
return getImageSizes( state.currentImage );
6393
},
6494
get figureStyles() {
6595
return (
@@ -216,15 +246,15 @@ const { state, actions, callbacks } = store(
216246
const imageLink = document.createElement( 'link' );
217247
imageLink.rel = 'preload';
218248
imageLink.as = 'image';
219-
imageLink.href = imageMetadata.uploadedSrc;
249+
imageLink.href = getImageSrc( imageMetadata );
220250

221251
// Apply srcset if available for responsive preloading
222-
const srcset = imageMetadata.lightboxSrcset;
252+
const srcset = getImageSrcset( imageMetadata );
223253
if ( srcset ) {
224254
imageLink.setAttribute( 'imagesrcset', srcset );
225255
imageLink.setAttribute(
226256
'imagesizes',
227-
imageMetadata.lightboxSizes || '100vw'
257+
getImageSizes( imageMetadata )
228258
);
229259
}
230260

0 commit comments

Comments
 (0)