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.
First time contributor checklist
Contributor checklist
Screen.Recording.2025-12-24.at.3.17.56.PM.mov
Description
Fixes #6179, see it for context on the issue.
This bug is due to the fact that the parent message dimming animation is composed of a
fadeInand separate asyncfadeOut. When we tap in quick succession we calldimmerLayer.removeAllAnimations()to remove any old animation, but this doesn't include thefadeOutif the async hasn't fired yet. This means we end up with multiple old asyncfadeOuts causing the parent message to flicker once the tapping stops.The fix is to make this into one sync animation that contains the fade in and fade out. This way when the link is tapped again we clear the entire old animation including the fade out. This seems simpler and cleaner than tracking the async queue and clearing from there, and more logically correct to treat the animation as atomic.