diff --git a/native/navigation/overlay-navigator.react.js b/native/navigation/overlay-navigator.react.js --- a/native/navigation/overlay-navigator.react.js +++ b/native/navigation/overlay-navigator.react.js @@ -480,18 +480,20 @@ easing: EasingNode.inOut(EasingNode.ease), toValue, }).start(); - positionV2.value = withTiming( - toValue, - { - duration, - easing: Easing.inOut(Easing.ease), - }, - () => { - if (positionV2.value <= 0) { - runOnJS(removeScreen)(key); - } - }, - ); + requestAnimationFrame(() => { + positionV2.value = withTiming( + toValue, + { + duration, + easing: Easing.inOut(Easing.ease), + }, + () => { + if (positionV2.value <= 0) { + runOnJS(removeScreen)(key); + } + }, + ); + }); } pendingAnimationsRef.current = {}; }, [positions, positionsV2, pendingAnimations]); diff --git a/patches/react-native-reanimated+2.12.0.patch b/patches/react-native-reanimated+2.12.0.patch --- a/patches/react-native-reanimated+2.12.0.patch +++ b/patches/react-native-reanimated+2.12.0.patch @@ -40,3 +40,22 @@ pre() { // allows adding custom globals such as host-functions if (this.opts != null && Array.isArray(this.opts.globals)) { +diff --git a/node_modules/react-native-reanimated/src/reanimated2/hook/utils.ts b/node_modules/react-native-reanimated/src/reanimated2/hook/utils.ts +index 075957d..2d3dfa4 100644 +--- a/node_modules/react-native-reanimated/src/reanimated2/hook/utils.ts ++++ b/node_modules/react-native-reanimated/src/reanimated2/hook/utils.ts +@@ -168,13 +168,7 @@ export function parseColors(updates: AnimatedStyle): void { + } + + export function canApplyOptimalisation(upadterFn: WorkletFunction): number { +- const FUNCTIONLESS_FLAG = 0b00000001; +- const STATEMENTLESS_FLAG = 0b00000010; +- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion +- const optimalization = upadterFn.__optimalization!; +- return ( +- optimalization & FUNCTIONLESS_FLAG && optimalization & STATEMENTLESS_FLAG +- ); ++ return 0; + } + + export function isAnimated(prop: NestedObjectValues): boolean {