patch in unreleased upstream fix for jitter (#8952)
This commit is contained in:
@@ -0,0 +1,38 @@
|
|||||||
|
diff --git a/node_modules/react-native-drawer-layout/lib/module/views/Drawer.native.js b/node_modules/react-native-drawer-layout/lib/module/views/Drawer.native.js
|
||||||
|
index efa71f9..a23c624 100644
|
||||||
|
--- a/node_modules/react-native-drawer-layout/lib/module/views/Drawer.native.js
|
||||||
|
+++ b/node_modules/react-native-drawer-layout/lib/module/views/Drawer.native.js
|
||||||
|
@@ -124,15 +124,21 @@ export function Drawer({
|
||||||
|
}
|
||||||
|
onTransitionEnd?.(!open);
|
||||||
|
});
|
||||||
|
+ const animatingTo = useSharedValue(null)
|
||||||
|
const toggleDrawer = React.useCallback((open, velocity) => {
|
||||||
|
'worklet';
|
||||||
|
|
||||||
|
+ if (animatingTo.value === (open ? 'open' : 'close')) {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
const translateX = getDrawerTranslationX(open);
|
||||||
|
if (velocity === undefined) {
|
||||||
|
runOnJS(onAnimationStart)(open);
|
||||||
|
}
|
||||||
|
touchStartX.value = 0;
|
||||||
|
touchX.value = 0;
|
||||||
|
+ animatingTo.value = open ? 'open' : 'close';
|
||||||
|
translationX.value = withSpring(translateX, {
|
||||||
|
velocity,
|
||||||
|
stiffness: 1000,
|
||||||
|
@@ -142,7 +148,10 @@ export function Drawer({
|
||||||
|
restDisplacementThreshold: 0.01,
|
||||||
|
restSpeedThreshold: 0.01,
|
||||||
|
reduceMotion: ReduceMotion.Never
|
||||||
|
- }, finished => runOnJS(onAnimationEnd)(open, finished));
|
||||||
|
+ }, finished => {
|
||||||
|
+ animatingTo.value = null;
|
||||||
|
+ runOnJS(onAnimationEnd)(open, finished)
|
||||||
|
+ });
|
||||||
|
if (open) {
|
||||||
|
runOnJS(onOpen)();
|
||||||
|
} else {
|
||||||
Reference in New Issue
Block a user