Skip to content

cherry-pick(4.5-stable): restore opacity for flaky entering animations under Reduce Motion on iOS (#9772)#9805

Merged
MatiPl01 merged 2 commits into
4.5-stablefrom
@matipl01/4.5-stable/cherry-pick-#9772
Jul 1, 2026
Merged

cherry-pick(4.5-stable): restore opacity for flaky entering animations under Reduce Motion on iOS (#9772)#9805
MatiPl01 merged 2 commits into
4.5-stablefrom
@matipl01/4.5-stable/cherry-pick-#9772

Conversation

@MatiPl01

@MatiPl01 MatiPl01 commented Jul 1, 2026

Copy link
Copy Markdown
Member

…n on iOS (#9772)

## Summary

Fixes #9771.

On iOS, a view with an `entering` animation stays invisible (stuck at
the temporary `opacity: 0`) when Reduce Motion is enabled and
`ENABLE_SHARED_ELEMENT_TRANSITIONS` is disabled.

The legacy proxy temporarily sets a newly entering view's opacity to 0
and restores it once the animation progresses. #9621 started skipping
ongoing-animation updates for settled animations. Under Reduce Motion
the entering animation settles in the same frame, so its opacity-restore
update is dropped and the view never becomes visible. Android is
unaffected because the `restoreOpacityInCaseOfFlakyEnteringAnimation`
safety net is gated `#ifdef ANDROID`.

This keeps applying the pending opacity for a settled entering animation
whose opacity hasn't been restored yet. Only entering animations carry
an opacity value, and on the normal path that value is cleared once the
view mounts, so regular entering and exiting animations are unaffected.

## Test plan

1. Enable Reduce Motion on an iOS simulator.
2. Set `ENABLE_SHARED_ELEMENT_TRANSITIONS: false` in the reanimated
`staticFeatureFlags`.
3. Render a view with an entering animation:
   ```tsx
   <Animated.View entering={FadeIn}>
     <Text>This text should be visible</Text>
   </Animated.View>
   ```

Before: the view is invisible. After: the view is visible.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
(cherry picked from commit 22fd8f8)
@MatiPl01 MatiPl01 self-assigned this Jul 1, 2026
@MatiPl01 MatiPl01 requested a review from tjzel July 1, 2026 11:27
@MatiPl01 MatiPl01 merged commit b19e4ec into 4.5-stable Jul 1, 2026
13 checks passed
@MatiPl01 MatiPl01 deleted the @matipl01/4.5-stable/cherry-pick-#9772 branch July 1, 2026 11:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants