🐛 Fix medium-zoom not updating on component update #994
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
medium-zoom doesn't get attached to newly loaded images when the user navigates to other routes within a vuepress project. The problem is that medium-zoom gets attached to currently available images when the LayoutDistributor is mounted, but not when it's updated (e.g. when the user navigates to a new route).
My fix detaches all images from medium-zoom when the LayoutDistributor updates (as images could have been removed from the DOM) and attaches all current images in the DOM which match the provided selector.
What kind of change does this PR introduce? (check at least one)
If changing the UI of default theme, please provide the before/after screenshot:
Does this PR introduce a breaking change? (check one)
If yes, please describe the impact and migration path for existing applications:
The PR fulfills these requirements:
fix #xxx[,#xxx]
, where "xxx" is the issue number)You have tested in the following browsers: (Providing a detailed version will be better.)
If adding a new feature, the PR's description includes:
To avoid wasting your time, it's best to open a feature request issue first and wait for approval before working on it.
Other information:
I wanted to upgrade to medium-zoom v1.0.2 but the
vuepress build
command threw an error that the window object isn't defined. I don't understand why that happens as the window object is also used in v0.4.0. The error appears when medium-zoom tries to accesswindow.Promise
.