first commit

This commit is contained in:
2026-03-10 16:18:05 +00:00
commit 11f9c069b5
31635 changed files with 3187747 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
import React from 'react';
import { GHContext } from '../contexts';
import ScreenGestureDetector from './ScreenGestureDetector';
function GHWrapper(props) {
return /*#__PURE__*/React.createElement(ScreenGestureDetector, props);
}
export default function GestureDetectorProvider(props) {
return /*#__PURE__*/React.createElement(GHContext.Provider, {
value: GHWrapper
}, props.children);
}
//# sourceMappingURL=GestureDetectorProvider.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["React","GHContext","ScreenGestureDetector","GHWrapper","props","createElement","GestureDetectorProvider","Provider","value","children"],"sourceRoot":"../../../src","sources":["gesture-handler/GestureDetectorProvider.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,SAAS,QAAQ,aAAa;AACvC,OAAOC,qBAAqB,MAAM,yBAAyB;AAE3D,SAASC,SAASA,CAACC,KAA2B,EAAE;EAC9C,oBAAOJ,KAAA,CAAAK,aAAA,CAACH,qBAAqB,EAAKE,KAAQ,CAAC;AAC7C;AAEA,eAAe,SAASE,uBAAuBA,CAACF,KAE/C,EAAE;EACD,oBACEJ,KAAA,CAAAK,aAAA,CAACJ,SAAS,CAACM,QAAQ;IAACC,KAAK,EAAEL;EAAU,GAAEC,KAAK,CAACK,QAA6B,CAAC;AAE/E","ignoreList":[]}

View File

@@ -0,0 +1,2 @@
export const RNScreensTurboModule = global.RNScreensTurboModule;
//# sourceMappingURL=RNScreensTurboModule.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["RNScreensTurboModule","global"],"sourceRoot":"../../../src","sources":["gesture-handler/RNScreensTurboModule.ts"],"mappings":"AAWA,OAAO,MAAMA,oBAA8C,GAAIC,MAAM,CAClED,oBAAoB","ignoreList":[]}

View File

@@ -0,0 +1,207 @@
import React, { useEffect } from 'react';
import { Dimensions, Platform, findNodeHandle } from 'react-native';
import { GestureDetector, Gesture } from 'react-native-gesture-handler';
import { useSharedValue, measure, startScreenTransition, finishScreenTransition, makeMutable, runOnUI } from 'react-native-reanimated';
import { getShadowNodeWrapperAndTagFromRef, isFabric } from './fabricUtils';
import { RNScreensTurboModule } from './RNScreensTurboModule';
import { DefaultEvent, DefaultScreenDimensions } from './defaults';
import { checkBoundaries, checkIfTransitionCancelled, getAnimationForTransition } from './constraints';
// The detector is disabled to work around issue with pressables
// losing focus. See https://github.com/software-mansion/react-native-screens/pull/2819
const EmptyGestureHandler = Gesture.Fling().enabled(false);
const ScreenGestureDetector = ({
children,
gestureDetectorBridge,
goBackGesture,
screenEdgeGesture,
transitionAnimation: customTransitionAnimation,
screensRefs,
currentScreenId
}) => {
const sharedEvent = useSharedValue(DefaultEvent);
const startingGesturePosition = useSharedValue(DefaultEvent);
const canPerformUpdates = makeMutable(false);
const transitionAnimation = getAnimationForTransition(goBackGesture, customTransitionAnimation);
const screenTransitionConfig = makeMutable({
stackTag: -1,
belowTopScreenId: -1,
topScreenId: -1,
sharedEvent,
startingGesturePosition,
screenTransition: transitionAnimation,
isTransitionCanceled: false,
goBackGesture: goBackGesture ?? 'swipeRight',
screenDimensions: DefaultScreenDimensions,
onFinishAnimation: () => {
'worklet';
}
});
const stackTag = makeMutable(-1);
const screenTagToNodeWrapperUI = makeMutable({});
const IS_FABRIC = isFabric();
gestureDetectorBridge.current.stackUseEffectCallback = stackRef => {
if (!goBackGesture) {
return;
}
stackTag.value = findNodeHandle(stackRef.current);
if (Platform.OS === 'ios') {
runOnUI(() => {
RNScreensTurboModule.disableSwipeBackForTopScreen(stackTag.value);
})();
}
};
useEffect(() => {
if (!IS_FABRIC || !goBackGesture || screensRefs === undefined) {
return;
}
const screenTagToNodeWrapper = {};
for (const key in screensRefs.current) {
const screenRef = screensRefs.current[key];
const screenData = getShadowNodeWrapperAndTagFromRef(screenRef.current);
if (screenData.tag && screenData.shadowNodeWrapper) {
screenTagToNodeWrapper[screenData.tag] = screenData.shadowNodeWrapper;
} else {
console.warn('[RNScreens] Failed to find tag for screen.');
}
}
screenTagToNodeWrapperUI.value = screenTagToNodeWrapper;
}, [currentScreenId, goBackGesture]);
function computeProgress(event) {
'worklet';
let progress = 0;
const screenDimensions = screenTransitionConfig.value.screenDimensions;
const startingPosition = startingGesturePosition.value;
if (goBackGesture === 'swipeRight') {
progress = event.translationX / (screenDimensions.width - startingPosition.absoluteX);
} else if (goBackGesture === 'swipeLeft') {
progress = -1 * event.translationX / startingPosition.absoluteX;
} else if (goBackGesture === 'swipeDown') {
progress = -1 * event.translationY / (screenDimensions.height - startingPosition.absoluteY);
} else if (goBackGesture === 'swipeUp') {
progress = event.translationY / startingPosition.absoluteY;
} else if (goBackGesture === 'horizontalSwipe') {
progress = Math.abs(event.translationX / screenDimensions.width / 2);
} else if (goBackGesture === 'verticalSwipe') {
progress = Math.abs(event.translationY / screenDimensions.height / 2);
} else if (goBackGesture === 'twoDimensionalSwipe') {
const progressX = Math.abs(event.translationX / screenDimensions.width / 2);
const progressY = Math.abs(event.translationY / screenDimensions.height / 2);
progress = Math.max(progressX, progressY);
}
return progress;
}
function onStart(event) {
'worklet';
sharedEvent.value = event;
const transitionConfig = screenTransitionConfig.value;
const transitionData = RNScreensTurboModule.startTransition(stackTag.value);
if (transitionData.canStartTransition === false) {
canPerformUpdates.value = false;
return;
}
if (IS_FABRIC) {
transitionConfig.topScreenId = screenTagToNodeWrapperUI.value[transitionData.topScreenTag];
transitionConfig.belowTopScreenId = screenTagToNodeWrapperUI.value[transitionData.belowTopScreenTag];
} else {
transitionConfig.topScreenId = transitionData.topScreenTag;
transitionConfig.belowTopScreenId = transitionData.belowTopScreenTag;
}
transitionConfig.stackTag = stackTag.value;
startingGesturePosition.value = event;
const animatedRefMock = () => {
return screenTransitionConfig.value.topScreenId;
};
const screenSize = measure(animatedRefMock);
if (screenSize == null) {
throw new Error('[RNScreens] Failed to measure screen.');
}
if (screenSize == null) {
canPerformUpdates.value = false;
RNScreensTurboModule.finishTransition(stackTag.value, true);
return;
}
transitionConfig.screenDimensions = screenSize;
// Gesture Handler added `pointerType` to event payload back in 2.16.0,
// see: https://github.com/software-mansion/react-native-gesture-handler/pull/2760
// and this causes type errors here. Proper solution would be to patch parameter types
// of this function in reanimated. This should not cause runtime errors as the payload
// has correct shape, only the types are incorrect.
// eslint-disable-next-line @typescript-eslint/no-explicit-any
startScreenTransition(transitionConfig);
canPerformUpdates.value = true;
}
function onUpdate(event) {
'worklet';
if (!canPerformUpdates.value) {
return;
}
checkBoundaries(goBackGesture, event);
const progress = computeProgress(event);
sharedEvent.value = event;
const stackTag = screenTransitionConfig.value.stackTag;
RNScreensTurboModule.updateTransition(stackTag, progress);
}
function onEnd(event) {
'worklet';
if (!canPerformUpdates.value) {
return;
}
const velocityFactor = 0.3;
const screenSize = screenTransitionConfig.value.screenDimensions;
const distanceX = event.translationX + Math.min(event.velocityX * velocityFactor, 100);
const distanceY = event.translationY + Math.min(event.velocityY * velocityFactor, 100);
const requiredXDistance = screenSize.width / 2;
const requiredYDistance = screenSize.height / 2;
const isTransitionCanceled = checkIfTransitionCancelled(goBackGesture, distanceX, requiredXDistance, distanceY, requiredYDistance);
const stackTag = screenTransitionConfig.value.stackTag;
screenTransitionConfig.value.onFinishAnimation = () => {
RNScreensTurboModule.finishTransition(stackTag, isTransitionCanceled);
};
screenTransitionConfig.value.isTransitionCanceled = isTransitionCanceled;
// Gesture Handler added `pointerType` to event payload back in 2.16.0,
// see: https://github.com/software-mansion/react-native-gesture-handler/pull/2760
// and this causes type errors here. Proper solution would be to patch parameter types
// of this function in reanimated. This should not cause runtime errors as the payload
// has correct shape, only the types are incorrect.
// eslint-disable-next-line @typescript-eslint/no-explicit-any
finishScreenTransition(screenTransitionConfig.value);
}
let panGesture = Gesture.Pan().onStart(onStart).onUpdate(onUpdate).onEnd(onEnd);
if (screenEdgeGesture) {
const HIT_SLOP_SIZE = 50;
const ACTIVATION_DISTANCE = 30;
if (goBackGesture === 'swipeRight') {
panGesture = panGesture.activeOffsetX(ACTIVATION_DISTANCE).hitSlop({
left: 0,
top: 0,
width: HIT_SLOP_SIZE
});
} else if (goBackGesture === 'swipeLeft') {
panGesture = panGesture.activeOffsetX(-ACTIVATION_DISTANCE).hitSlop({
right: 0,
top: 0,
width: HIT_SLOP_SIZE
});
} else if (goBackGesture === 'swipeDown') {
panGesture = panGesture.activeOffsetY(ACTIVATION_DISTANCE).hitSlop({
top: 0,
height: Dimensions.get('window').height * 0.2
});
// workaround, because we don't have access to header height
} else if (goBackGesture === 'swipeUp') {
panGesture = panGesture.activeOffsetY(-ACTIVATION_DISTANCE).hitSlop({
bottom: 0,
height: HIT_SLOP_SIZE
});
}
}
return /*#__PURE__*/React.createElement(GestureDetector, {
gesture: goBackGesture ? panGesture : EmptyGestureHandler
}, children);
};
export default ScreenGestureDetector;
//# sourceMappingURL=ScreenGestureDetector.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,56 @@
import { ScreenTransition } from 'react-native-reanimated';
import { AnimationForGesture } from './defaults';
const SupportedGestures = ['swipeRight', 'swipeLeft', 'swipeDown', 'swipeUp', 'horizontalSwipe', 'verticalSwipe', 'twoDimensionalSwipe'];
export function getAnimationForTransition(goBackGesture, customTransitionAnimation) {
let transitionAnimation = ScreenTransition.SwipeRight;
if (customTransitionAnimation) {
transitionAnimation = customTransitionAnimation;
if (!goBackGesture) {
throw new Error('[RNScreens] You have to specify `goBackGesture` when using `transitionAnimation`.');
}
} else {
if (!!goBackGesture && SupportedGestures.includes(goBackGesture)) {
transitionAnimation = AnimationForGesture[goBackGesture];
} else if (goBackGesture !== undefined) {
throw new Error(`[RNScreens] Unknown goBackGesture parameter has been specified: ${goBackGesture}.`);
}
}
return transitionAnimation;
}
export function checkBoundaries(goBackGesture, event) {
'worklet';
if (goBackGesture === 'swipeRight' && event.translationX < 0) {
event.translationX = 0;
} else if (goBackGesture === 'swipeLeft' && event.translationX > 0) {
event.translationX = 0;
} else if (goBackGesture === 'swipeDown' && event.translationY < 0) {
event.translationY = 0;
} else if (goBackGesture === 'swipeUp' && event.translationY > 0) {
event.translationY = 0;
}
}
export function checkIfTransitionCancelled(goBackGesture, distanceX, requiredXDistance, distanceY, requiredYDistance) {
'worklet';
let isTransitionCanceled = false;
if (goBackGesture === 'swipeRight') {
isTransitionCanceled = distanceX < requiredXDistance;
} else if (goBackGesture === 'swipeLeft') {
isTransitionCanceled = -distanceX < requiredXDistance;
} else if (goBackGesture === 'horizontalSwipe') {
isTransitionCanceled = Math.abs(distanceX) < requiredXDistance;
} else if (goBackGesture === 'swipeUp') {
isTransitionCanceled = -distanceY < requiredYDistance;
} else if (goBackGesture === 'swipeDown') {
isTransitionCanceled = distanceY < requiredYDistance;
} else if (goBackGesture === 'verticalSwipe') {
isTransitionCanceled = Math.abs(distanceY) < requiredYDistance;
} else if (goBackGesture === 'twoDimensionalSwipe') {
const isCanceledHorizontally = Math.abs(distanceX) < requiredXDistance;
const isCanceledVertically = Math.abs(distanceY) < requiredYDistance;
isTransitionCanceled = isCanceledHorizontally && isCanceledVertically;
}
return isTransitionCanceled;
}
//# sourceMappingURL=constraints.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["ScreenTransition","AnimationForGesture","SupportedGestures","getAnimationForTransition","goBackGesture","customTransitionAnimation","transitionAnimation","SwipeRight","Error","includes","undefined","checkBoundaries","event","translationX","translationY","checkIfTransitionCancelled","distanceX","requiredXDistance","distanceY","requiredYDistance","isTransitionCanceled","Math","abs","isCanceledHorizontally","isCanceledVertically"],"sourceRoot":"../../../src","sources":["gesture-handler/constraints.ts"],"mappings":"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","ignoreList":[]}

View File

@@ -0,0 +1,38 @@
import { PointerType } from 'react-native-gesture-handler';
import { ScreenTransition } from 'react-native-reanimated';
export const DefaultEvent = {
absoluteX: 0,
absoluteY: 0,
handlerTag: 0,
numberOfPointers: 0,
state: 0,
translationX: 0,
translationY: 0,
velocityX: 0,
velocityY: 0,
x: 0,
y: 0,
// These two were added in recent versions of gesture handler
// and they are required to specify. This should be backward
// compatible unless they strictly parse the objects, which seems
// not likely. PointerType is present since 2.16.0, StylusData since 2.20.0
pointerType: PointerType.TOUCH
};
export const DefaultScreenDimensions = {
width: 0,
height: 0,
x: 0,
y: 0,
pageX: 0,
pageY: 0
};
export const AnimationForGesture = {
swipeRight: ScreenTransition.SwipeRight,
swipeLeft: ScreenTransition.SwipeLeft,
swipeDown: ScreenTransition.SwipeDown,
swipeUp: ScreenTransition.SwipeUp,
horizontalSwipe: ScreenTransition.Horizontal,
verticalSwipe: ScreenTransition.Vertical,
twoDimensionalSwipe: ScreenTransition.TwoDimensional
};
//# sourceMappingURL=defaults.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["PointerType","ScreenTransition","DefaultEvent","absoluteX","absoluteY","handlerTag","numberOfPointers","state","translationX","translationY","velocityX","velocityY","x","y","pointerType","TOUCH","DefaultScreenDimensions","width","height","pageX","pageY","AnimationForGesture","swipeRight","SwipeRight","swipeLeft","SwipeLeft","swipeDown","SwipeDown","swipeUp","SwipeUp","horizontalSwipe","Horizontal","verticalSwipe","Vertical","twoDimensionalSwipe","TwoDimensional"],"sourceRoot":"../../../src","sources":["gesture-handler/defaults.ts"],"mappings":"AAAA,SAGEA,WAAW,QACN,8BAA8B;AACrC,SAASC,gBAAgB,QAAQ,yBAAyB;AAE1D,OAAO,MAAMC,YAA+D,GAAG;EAC7EC,SAAS,EAAE,CAAC;EACZC,SAAS,EAAE,CAAC;EACZC,UAAU,EAAE,CAAC;EACbC,gBAAgB,EAAE,CAAC;EACnBC,KAAK,EAAE,CAAC;EACRC,YAAY,EAAE,CAAC;EACfC,YAAY,EAAE,CAAC;EACfC,SAAS,EAAE,CAAC;EACZC,SAAS,EAAE,CAAC;EACZC,CAAC,EAAE,CAAC;EACJC,CAAC,EAAE,CAAC;EAEJ;EACA;EACA;EACA;EACAC,WAAW,EAAEd,WAAW,CAACe;AAC3B,CAAC;AAED,OAAO,MAAMC,uBAAuB,GAAG;EACrCC,KAAK,EAAE,CAAC;EACRC,MAAM,EAAE,CAAC;EACTN,CAAC,EAAE,CAAC;EACJC,CAAC,EAAE,CAAC;EACJM,KAAK,EAAE,CAAC;EACRC,KAAK,EAAE;AACT,CAAC;AAED,OAAO,MAAMC,mBAAmB,GAAG;EACjCC,UAAU,EAAErB,gBAAgB,CAACsB,UAAU;EACvCC,SAAS,EAAEvB,gBAAgB,CAACwB,SAAS;EACrCC,SAAS,EAAEzB,gBAAgB,CAAC0B,SAAS;EACrCC,OAAO,EAAE3B,gBAAgB,CAAC4B,OAAO;EACjCC,eAAe,EAAE7B,gBAAgB,CAAC8B,UAAU;EAC5CC,aAAa,EAAE/B,gBAAgB,CAACgC,QAAQ;EACxCC,mBAAmB,EAAEjC,gBAAgB,CAACkC;AACxC,CAAC","ignoreList":[]}

View File

@@ -0,0 +1,21 @@
'use strict';
/* eslint-disable */
export function isFabric() {
return !!global.RN$Bridgeless;
}
export function getShadowNodeWrapperAndTagFromRef(ref) {
if (!ref) {
return {
shadowNodeWrapper: null,
tag: -1
};
}
const internalRef = ref;
return {
shadowNodeWrapper: internalRef.__internalInstanceHandle.stateNode.node,
tag: internalRef.__nativeTag
};
}
//# sourceMappingURL=fabricUtils.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["isFabric","global","RN$Bridgeless","getShadowNodeWrapperAndTagFromRef","ref","shadowNodeWrapper","tag","internalRef","__internalInstanceHandle","stateNode","node","__nativeTag"],"sourceRoot":"../../../src","sources":["gesture-handler/fabricUtils.ts"],"mappings":"AAAA,YAAY;;AAIZ;;AAIA,OAAO,SAASA,QAAQA,CAAA,EAAG;EACzB,OAAO,CAAC,CAAEC,MAAM,CAAiBC,aAAa;AAChD;AAQA,OAAO,SAASC,iCAAiCA,CAACC,GAAgB,EAGhE;EACA,IAAI,CAACA,GAAG,EAAE;IACR,OAAO;MACLC,iBAAiB,EAAE,IAAI;MACvBC,GAAG,EAAE,CAAC;IACR,CAAC;EACH;EACA,MAAMC,WAAW,GAAGH,GAA8B;EAClD,OAAO;IACLC,iBAAiB,EAAEE,WAAW,CAACC,wBAAwB,CAACC,SAAS,CAACC,IAAI;IACtEJ,GAAG,EAAEC,WAAW,CAACI;EACnB,CAAC;AACH","ignoreList":[]}

View File

@@ -0,0 +1,10 @@
export function isFabric() {
return false;
}
export function getShadowNodeWrapperAndTagFromRef() {
return {
shadowNodeWrapper: undefined,
tag: undefined
};
}
//# sourceMappingURL=fabricUtils.web.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["isFabric","getShadowNodeWrapperAndTagFromRef","shadowNodeWrapper","undefined","tag"],"sourceRoot":"../../../src","sources":["gesture-handler/fabricUtils.web.ts"],"mappings":"AAAA,OAAO,SAASA,QAAQA,CAAA,EAAG;EACzB,OAAO,KAAK;AACd;AAEA,OAAO,SAASC,iCAAiCA,CAAA,EAAG;EAClD,OAAO;IACLC,iBAAiB,EAAEC,SAAS;IAC5BC,GAAG,EAAED;EACP,CAAC;AACH","ignoreList":[]}

View File

@@ -0,0 +1,5 @@
/*
* Providers
*/
export { default as GestureDetectorProvider } from './GestureDetectorProvider';
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["default","GestureDetectorProvider"],"sourceRoot":"../../../src","sources":["gesture-handler/index.tsx"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAO,IAAIC,uBAAuB,QAAQ,2BAA2B","ignoreList":[]}