Skip to content

Commit

Permalink
Image lightbox: Remove duplicate image when lightbox is opened (WordP…
Browse files Browse the repository at this point in the history
…ress#63381)

* Hide content image when lightbox is opened

* Handle duplicate image when closing lightbox as well

* Remove styling for prefers reduced motion

* Rename state getters

* Hide captions in galleries when opening lightbox

* Revert "Hide captions in galleries when opening lightbox"

This reverts commit 40c28b9.
  • Loading branch information
artemiomorales authored Jul 18, 2024
1 parent ce80338 commit 0a7e10d
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 1 deletion.
2 changes: 2 additions & 0 deletions packages/block-library/src/image/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,8 @@ function block_core_image_render_lightbox( $block_content, $block ) {
// contain a caption, and we don't want to trigger the lightbox when the
// caption is clicked.
$p->set_attribute( 'data-wp-on-async--click', 'actions.showLightbox' );
$p->set_attribute( 'data-wp-class--hide', 'state.isContentHidden' );
$p->set_attribute( 'data-wp-class--show', 'state.isContentVisible' );

$body_content = $p->get_updated_html();

Expand Down
22 changes: 22 additions & 0 deletions packages/block-library/src/image/style.scss
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,16 @@
max-width: 100%;
vertical-align: bottom;
box-sizing: border-box;

@media (prefers-reduced-motion: no-preference) {
&.hide {
visibility: hidden;
}

&.show {
animation: show-content-image 0.4s;
}
}
}

// The following style maintains border radius application for deprecated
Expand Down Expand Up @@ -319,6 +329,18 @@
}
}

@keyframes show-content-image {
0% {
visibility: hidden;
}
99% {
visibility: hidden;
}
100% {
visibility: visible;
}
}

@keyframes turn-on-visibility {
0% {
opacity: 0;
Expand Down
15 changes: 14 additions & 1 deletion packages/block-library/src/image/view.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,19 @@ const { state, actions, callbacks } = store(
const { imageId } = getContext();
return state.metadata[ imageId ].imageButtonTop;
},
get isContentHidden() {
const ctx = getContext();
return (
state.overlayEnabled && state.currentImageId === ctx.imageId
);
},
get isContentVisible() {
const ctx = getContext();
return (
! state.overlayEnabled &&
state.currentImageId === ctx.imageId
);
},
},
actions: {
showLightbox() {
Expand All @@ -84,8 +97,8 @@ const { state, actions, callbacks } = store(
state.scrollLeftReset = document.documentElement.scrollLeft;

// Sets the current expanded image in the state and enables the overlay.
state.currentImageId = imageId;
state.overlayEnabled = true;
state.currentImageId = imageId;

// Computes the styles of the overlay for the animation.
callbacks.setOverlayStyles();
Expand Down

0 comments on commit 0a7e10d

Please sign in to comment.