Skip to content

Commit a2298ef

Browse files
committed
Merge branch 'next' into @mbert/components-new-api
2 parents 06428d4 + d77d1f7 commit a2298ef

13 files changed

Lines changed: 45 additions & 29 deletions

File tree

packages/react-native-gesture-handler/apple/RNGestureHandlerDetector.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ NS_ASSUME_NONNULL_BEGIN
1818

1919
- (void)dispatchGestureEvent:(RNGestureHandlerDetectorEventEmitter::OnGestureHandlerEvent)event;
2020

21+
- (void)dispatchAnimatedGestureEvent:(RNGestureHandlerDetectorEventEmitter::OnGestureHandlerEvent)event;
22+
2123
- (void)dispatchTouchEvent:(RNGestureHandlerDetectorEventEmitter::OnGestureHandlerTouchEvent)event;
2224

2325
- (void)dispatchReanimatedStateChangeEvent:

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,17 @@ - (void)dispatchGestureEvent:(RNGestureHandlerDetectorEventEmitter::OnGestureHan
9292
}
9393
}
9494

95+
- (void)dispatchAnimatedGestureEvent:(RNGestureHandlerDetectorEventEmitter::OnGestureHandlerEvent)event
96+
{
97+
if (_eventEmitter != nullptr) {
98+
std::dynamic_pointer_cast<const RNGestureHandlerDetectorEventEmitter>(_eventEmitter)->onGestureHandlerAnimatedEvent({
99+
.state = event.state,
100+
.handlerTag = event.handlerTag,
101+
.handlerData = event.handlerData,
102+
});
103+
}
104+
}
105+
95106
- (void)dispatchTouchEvent:(RNGestureHandlerDetectorEventEmitter::OnGestureHandlerTouchEvent)event
96107
{
97108
if (_eventEmitter != nullptr) {

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

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -464,18 +464,21 @@ - (void)sendNativeOrVirtualEvent:(RNGestureHandlerStateChange *)event
464464
forView:(RNGHUIView *)detectorView
465465
{
466466
if ([event isKindOfClass:[RNGestureHandlerEvent class]]) {
467+
RNGestureHandlerEvent *gestureEvent = (RNGestureHandlerEvent *)event;
468+
467469
switch (eventHandlerType) {
468-
case RNGestureHandlerEventHandlerTypeAnimated:
470+
case RNGestureHandlerEventHandlerTypeAnimated: {
469471
[self sendEventForNativeAnimatedEvent:event];
472+
auto nativeEvent = [gestureEvent getNativeEvent];
473+
[(RNGestureHandlerDetector *)detectorView dispatchAnimatedGestureEvent:nativeEvent];
470474
break;
475+
}
471476
case RNGestureHandlerEventHandlerTypeReanimated: {
472-
RNGestureHandlerEvent *gestureEvent = (RNGestureHandlerEvent *)event;
473477
auto nativeEvent = [gestureEvent getReanimatedNativeEvent];
474478
[(RNGestureHandlerDetector *)detectorView dispatchReanimatedGestureEvent:nativeEvent];
475479
break;
476480
}
477481
case RNGestureHandlerEventHandlerTypeJS: {
478-
RNGestureHandlerEvent *gestureEvent = (RNGestureHandlerEvent *)event;
479482
auto nativeEvent = [gestureEvent getNativeEvent];
480483
[(RNGestureHandlerDetector *)detectorView dispatchGestureEvent:nativeEvent];
481484
break;

packages/react-native-gesture-handler/src/__tests__/RelationsTraversal.test.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { tagMessage } from '../utils';
22
import {
33
useExclusiveGestures,
4-
useMultipleGestures,
4+
useCompetingGestures,
55
useSimultaneousGestures,
66
} from '../v3/hooks/composition';
77
import { useGesture } from '../v3/hooks/useGesture';
@@ -39,7 +39,7 @@ describe('Ensure only one leaf node', () => {
3939
});
4040

4141
test('useRace', () => {
42-
expect(() => useMultipleGestures(pan1, pan1)).toThrow(errorMessage);
42+
expect(() => useCompetingGestures(pan1, pan1)).toThrow(errorMessage);
4343
});
4444

4545
test('Complex composition', () => {
@@ -93,7 +93,7 @@ describe('Simple relations', () => {
9393
});
9494

9595
test('useRace', () => {
96-
const composedGesture = renderHook(() => useMultipleGestures(pan1, pan2))
96+
const composedGesture = renderHook(() => useCompetingGestures(pan1, pan2))
9797
.result.current;
9898

9999
configureRelations(composedGesture);

packages/react-native-gesture-handler/src/components/ReanimatedDrawerLayout.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -501,7 +501,7 @@ const DrawerLayout = forwardRef<DrawerLayoutMethods, DrawerLayoutProps>(
501501

502502
const overlayDismissGesture = useTapGesture({
503503
maxDistance: 25,
504-
onEnd: () => {
504+
onDeactivate: () => {
505505
'worklet';
506506
if (
507507
isDrawerOpen.value &&
@@ -535,7 +535,7 @@ const DrawerLayout = forwardRef<DrawerLayoutMethods, DrawerLayoutProps>(
535535
(drawerOpened
536536
? drawerLockMode !== DrawerLockMode.LOCKED_OPEN
537537
: drawerLockMode !== DrawerLockMode.LOCKED_CLOSED),
538-
onStart: () => {
538+
onActivate: () => {
539539
'worklet';
540540
emitStateChanged(DrawerState.DRAGGING, false);
541541
runOnJS(setDrawerState)(DrawerState.DRAGGING);
@@ -577,7 +577,7 @@ const DrawerLayout = forwardRef<DrawerLayoutMethods, DrawerLayoutProps>(
577577
Extrapolation.CLAMP
578578
);
579579
},
580-
onEnd: handleRelease,
580+
onDeactivate: handleRelease,
581581
});
582582

583583
// When using RTL, row and row-reverse flex directions are flipped.

packages/react-native-gesture-handler/src/components/ReanimatedSwipeable/ReanimatedSwipeable.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -460,7 +460,7 @@ const Swipeable = (props: SwipeableProps) => {
460460
simultaneousWith: simultaneousWithExternalGesture,
461461
requireToFail: requireExternalGestureToFail,
462462
block: blocksExternalGesture,
463-
onStart: () => {
463+
onActivate: () => {
464464
'worklet';
465465
if (rowState.value !== 0) {
466466
close();
@@ -476,7 +476,7 @@ const Swipeable = (props: SwipeableProps) => {
476476
requireToFail: requireExternalGestureToFail,
477477
block: blocksExternalGesture,
478478
hitSlop: hitSlop,
479-
onStart: updateElementWidths,
479+
onActivate: updateElementWidths,
480480
onUpdate: (event: PanGestureUpdateEvent) => {
481481
'worklet';
482482
userDrag.value = event.translationX;
@@ -501,7 +501,7 @@ const Swipeable = (props: SwipeableProps) => {
501501

502502
updateAnimatedEvent();
503503
},
504-
onEnd: (event: PanGestureStateChangeEvent) => {
504+
onDeactivate: (event: PanGestureStateChangeEvent) => {
505505
'worklet';
506506
handleRelease(event);
507507
},

packages/react-native-gesture-handler/src/v3/hooks/callbacks/js/useGestureStateChangeEvent.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { useMemo } from 'react';
22
import { BaseGestureConfig } from '../../../types';
33
import { prepareStateChangeHandlers } from '../../utils';
44
import { getStateChangeHandler } from '../stateChangeHandler';
5-
import { ReanimatedContext } from 'packages/react-native-gesture-handler/src/handlers/gestures/reanimatedWrapper';
5+
import { ReanimatedContext } from '../../../../handlers/gestures/reanimatedWrapper';
66

77
export function useGestureStateChangeEvent<THandlerData, TConfig>(
88
handlerTag: number,
@@ -12,16 +12,16 @@ export function useGestureStateChangeEvent<THandlerData, TConfig>(
1212
return useMemo(() => {
1313
const handlers = prepareStateChangeHandlers({
1414
onBegin: config.onBegin,
15-
onStart: config.onStart,
16-
onEnd: config.onEnd,
15+
onActivate: config.onActivate,
16+
onDeactivate: config.onDeactivate,
1717
onFinalize: config.onFinalize,
1818
});
1919
return getStateChangeHandler(handlerTag, handlers, context);
2020
}, [
2121
handlerTag,
2222
config.onBegin,
23-
config.onStart,
24-
config.onEnd,
23+
config.onActivate,
24+
config.onDeactivate,
2525
config.onFinalize,
2626
context,
2727
]);

packages/react-native-gesture-handler/src/v3/hooks/callbacks/stateChangeHandler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ReanimatedContext } from 'packages/react-native-gesture-handler/src/handlers/gestures/reanimatedWrapper';
1+
import { ReanimatedContext } from '../../../handlers/gestures/reanimatedWrapper';
22
import { CALLBACK_TYPE } from '../../../handlers/gestures/gesture';
33
import { State } from '../../../State';
44
import {
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
export { useSimultaneousGestures } from './useSimultaneousGestures';
22
export { useExclusiveGestures } from './useExclusiveGestures';
3-
export { useMultipleGestures } from './useMultipleGestures';
3+
export { useCompetingGestures } from './useCompetingGestures';

packages/react-native-gesture-handler/src/v3/hooks/composition/useMultipleGestures.ts renamed to packages/react-native-gesture-handler/src/v3/hooks/composition/useCompetingGestures.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { AnyGesture, ComposedGestureName } from '../../types';
22
import { useComposedGesture } from './useComposedGesture';
33

4-
export function useMultipleGestures(...gestures: AnyGesture[]) {
4+
export function useCompetingGestures(...gestures: AnyGesture[]) {
55
return useComposedGesture(ComposedGestureName.Race, ...gestures);
66
}

0 commit comments

Comments
 (0)