From 188b84ac072925b5781e524207676815ba8335b3 Mon Sep 17 00:00:00 2001 From: Krzysztof Piaskowy Date: Thu, 13 Jun 2024 13:24:14 +0200 Subject: [PATCH] Fix SET in Expo Go --- .../apple/LayoutReanimation/REASharedTransitionManager.m | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/react-native-reanimated/apple/LayoutReanimation/REASharedTransitionManager.m b/packages/react-native-reanimated/apple/LayoutReanimation/REASharedTransitionManager.m index efcb4ff4ae08..619d66790687 100644 --- a/packages/react-native-reanimated/apple/LayoutReanimation/REASharedTransitionManager.m +++ b/packages/react-native-reanimated/apple/LayoutReanimation/REASharedTransitionManager.m @@ -27,7 +27,6 @@ @implementation REASharedTransitionManager { NSMutableSet *_reattachedViews; BOOL _isStackDropped; BOOL _isAsyncSharedTransitionConfigured; - BOOL _isConfigured; BOOL _clearScreen; BOOL _isInteractive; REAUIView *_disappearingScreen; @@ -39,6 +38,14 @@ @implementation REASharedTransitionManager { different context of execution (self != REASharedTransitionManager) */ static REASharedTransitionManager *_sharedTransitionManager; +/* + It needs to be a static field because there is a possibility of instantiating + `REASharedTransitionManager` more than once, such as in Expo Go. Method swizzling + operates at the class level rather than the instance level, so `_isConfigured` + should also be a static field to inform every instance that the swizzling process + has occurred successfully. +*/ +static BOOL _isConfigured = NO; - (instancetype)initWithAnimationsManager:(REAAnimationsManager *)animationManager {