Skip to content

Commit 512ca8e

Browse files
author
Andrzej Antoni Kwaśniewski
committed
Merge branch 'next' into @akwasniewski/update-mocks
2 parents f01b525 + a716e12 commit 512ca8e

10 files changed

Lines changed: 27 additions & 15 deletions

File tree

packages/react-native-gesture-handler/android/noreanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedProxy.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,4 @@ class ReanimatedProxy {
99
fun <T : Event<T>> sendEvent(event: T, reactApplicationContext: ReactContext) {
1010
// no-op
1111
}
12-
13-
companion object {
14-
const val REANIMATED_INSTALLED = false
15-
}
1612
}

packages/react-native-gesture-handler/android/reanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedProxy.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,4 @@ class ReanimatedProxy {
1414

1515
reanimatedModule?.nodesManager?.onEventDispatch(event)
1616
}
17-
18-
companion object {
19-
const val REANIMATED_INSTALLED = true
20-
}
2117
}

packages/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import com.facebook.react.turbomodule.core.interfaces.BindingsInstallerHolder
1212
import com.facebook.react.turbomodule.core.interfaces.TurboModuleWithJSIBindings
1313
import com.facebook.soloader.SoLoader
1414
import com.swmansion.gesturehandler.NativeRNGestureHandlerModuleSpec
15-
import com.swmansion.gesturehandler.ReanimatedProxy
1615
import com.swmansion.gesturehandler.core.GestureHandler
1716
import com.swmansion.gesturehandler.react.events.RNGestureHandlerEventDispatcher
1817

@@ -29,6 +28,7 @@ class RNGestureHandlerModule(reactContext: ReactApplicationContext?) :
2928
@DoNotStrip
3029
@Suppress("unused")
3130
private var mHybridData: HybridData = initHybrid()
31+
private var isReanimatedAvailable = false
3232
private var uiRuntimeDecorated = false
3333
private val registry: RNGestureHandlerRegistry
3434
get() = registries[moduleId]!!
@@ -62,7 +62,7 @@ class RNGestureHandlerModule(reactContext: ReactApplicationContext?) :
6262

6363
@ReactMethod
6464
override fun createGestureHandler(handlerName: String, handlerTagDouble: Double, config: ReadableMap): Boolean {
65-
if (ReanimatedProxy.REANIMATED_INSTALLED && !uiRuntimeDecorated) {
65+
if (isReanimatedAvailable && !uiRuntimeDecorated) {
6666
uiRuntimeDecorated = decorateUIRuntime()
6767
}
6868

@@ -124,6 +124,11 @@ class RNGestureHandlerModule(reactContext: ReactApplicationContext?) :
124124
@ReactMethod
125125
override fun flushOperations() = Unit
126126

127+
@ReactMethod
128+
override fun setReanimatedAvailable(isAvailable: Boolean) {
129+
isReanimatedAvailable = isAvailable
130+
}
131+
127132
@DoNotStrip
128133
@Suppress("unused")
129134
fun setGestureHandlerState(handlerTag: Int, newState: Int) {

packages/react-native-gesture-handler/apple/RNGestureHandlerModule.mm

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ @implementation RNGestureHandlerModule {
4242
jsi::Runtime *_rnRuntime;
4343
int _moduleId;
4444

45-
bool _checkedIfReanimatedIsAvailable;
4645
bool _isReanimatedAvailable;
4746
bool _uiRuntimeDecorated;
4847
}
@@ -121,10 +120,6 @@ - (bool)installUIRuntimeBindings
121120

122121
- (NSNumber *)createGestureHandler:(NSString *)handlerName handlerTag:(double)handlerTag config:(NSDictionary *)config
123122
{
124-
if (!_checkedIfReanimatedIsAvailable) {
125-
_isReanimatedAvailable = [self.moduleRegistry moduleForName:"ReanimatedModule"] != nil;
126-
}
127-
128123
if (_isReanimatedAvailable && !_uiRuntimeDecorated) {
129124
_uiRuntimeDecorated = [self installUIRuntimeBindings];
130125
}
@@ -191,6 +186,11 @@ - (void)flushOperations
191186
}];
192187
}
193188

189+
- (void)setReanimatedAvailable:(BOOL)isAvailable
190+
{
191+
_isReanimatedAvailable = isAvailable;
192+
}
193+
194194
- (void)setGestureState:(int)state forHandler:(int)handlerTag
195195
{
196196
if (RCTIsMainQueue()) {

packages/react-native-gesture-handler/src/RNGestureHandlerModule.web.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,4 +89,7 @@ export default {
8989
},
9090
// eslint-disable-next-line @typescript-eslint/no-empty-function
9191
flushOperations() {},
92+
setReanimatedAvailable(_isAvailable: boolean) {
93+
// No-op on web
94+
},
9295
};

packages/react-native-gesture-handler/src/handlers/gestures/reanimatedWrapper.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55
GestureUpdateEventWithHandlerData,
66
SharedValue,
77
} from '../../v3/types';
8+
import { NativeProxy } from '../../v3/NativeProxy';
89

910
export type ReanimatedContext<THandlerData> = {
1011
lastUpdateEvent: GestureUpdateEventWithHandlerData<THandlerData> | undefined;
@@ -80,6 +81,7 @@ let Reanimated:
8081

8182
try {
8283
Reanimated = require('react-native-reanimated');
84+
NativeProxy.setReanimatedAvailable(true);
8385
} catch (e) {
8486
// When 'react-native-reanimated' is not available we want to quietly continue
8587
// @ts-ignore TS demands the variable to be initialized
@@ -90,6 +92,7 @@ if (!Reanimated?.useSharedValue) {
9092
// @ts-ignore Make sure the loaded module is actually Reanimated, if it's not
9193
// reset the module to undefined so we can fallback to the default implementation
9294
Reanimated = undefined;
95+
NativeProxy.setReanimatedAvailable(false);
9396
}
9497

9598
if (Reanimated !== undefined && !Reanimated.setGestureState) {

packages/react-native-gesture-handler/src/mocks/module.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ const setGestureHandlerConfig = NOOP;
1111
const updateGestureHandlerConfig = NOOP;
1212
const flushOperations = NOOP;
1313
const configureRelations = NOOP;
14+
const setReanimatedAvailable = NOOP;
1415
const install = NOOP;
1516

1617
const PanGestureHandler = View;
@@ -29,6 +30,7 @@ export default {
2930
setGestureHandlerConfig,
3031
updateGestureHandlerConfig,
3132
configureRelations,
33+
setReanimatedAvailable,
3234
flushOperations,
3335
install,
3436
NativeViewGestureHandler,

packages/react-native-gesture-handler/src/specs/NativeRNGestureHandlerModule.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export interface Spec extends TurboModule {
2424
configureRelations: (handlerTag: Double, relations: Object) => void;
2525
dropGestureHandler: (handlerTag: Double) => void;
2626
flushOperations: () => void;
27+
setReanimatedAvailable: (isAvailable: boolean) => void;
2728
}
2829

2930
export default TurboModuleRegistry.getEnforcing<Spec>('RNGestureHandlerModule');

packages/react-native-gesture-handler/src/v3/NativeProxy.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,7 @@ export const NativeProxy = {
5151
RNGestureHandlerModule.configureRelations(handlerTag, relations);
5252
});
5353
},
54+
setReanimatedAvailable: (isAvailable: boolean) => {
55+
RNGestureHandlerModule.setReanimatedAvailable(isAvailable);
56+
},
5457
} as const;

packages/react-native-gesture-handler/src/v3/NativeProxy.web.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,7 @@ export const NativeProxy = {
3535
configureRelations: (handlerTag: number, relations: GestureRelations) => {
3636
RNGestureHandlerModule.configureRelations(handlerTag, relations);
3737
},
38+
setReanimatedAvailable: (isAvailable: boolean) => {
39+
RNGestureHandlerModule.setReanimatedAvailable(isAvailable);
40+
},
3841
} as const;

0 commit comments

Comments
 (0)