Something went wrong. Try again.
Bluesky app fork with some witchin' additions 💫
Something went wrong. Try again.
1.2 kB · 38 lines
123456789101112131415161718192021222324252627282930313233343536373839diff --git a/lib/module/views/Drawer.native.js b/lib/module/views/Drawer.native.jsindex 40fdcdb..770fd67 100644--- a/lib/module/views/Drawer.native.js+++ b/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 {