From 7328e808255aa9680e6af4d2ffdda8b869c2e1f3 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Tue, 17 Jan 2023 21:01:52 -0600 Subject: Fix an issue that caused the shelf menu to show up at random --- src/view/shell/mobile/index.tsx | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/view/shell/mobile/index.tsx b/src/view/shell/mobile/index.tsx index ffb22bda9..54df5dd17 100644 --- a/src/view/shell/mobile/index.tsx +++ b/src/view/shell/mobile/index.tsx @@ -127,6 +127,7 @@ export const MobileShell: React.FC = observer(() => { const scrollElRef = useRef() const winDim = useWindowDimensions() const [menuSwipingDirection, setMenuSwipingDirection] = useState(0) + const constZeroInterp = useAnimatedValue(0) const swipeGestureInterp = useAnimatedValue(0) const minimalShellInterp = useAnimatedValue(0) const tabMenuInterp = useAnimatedValue(0) @@ -279,20 +280,20 @@ export const MobileShell: React.FC = observer(() => { const swipeTransform = store.nav.tab.canGoBack ? {transform: [{translateX: swipeTranslateX}]} : undefined + let shouldRenderMenu = false let menuTranslateX const menuDrawerWidth = winDim.width - 100 if (isMenuActive) { // menu is active, interpret swipes as closes menuTranslateX = Animated.multiply(swipeGestureInterp, menuDrawerWidth * -1) + shouldRenderMenu = true } else if (!store.nav.tab.canGoBack) { // at back of history, interpret swipes as opens menuTranslateX = Animated.subtract( menuDrawerWidth * -1, Animated.multiply(swipeGestureInterp, menuDrawerWidth), ) - } else { - // not at back of history, leave off screen - menuTranslateX = menuDrawerWidth * -1 + shouldRenderMenu = true } const menuSwipeTransform = { transform: [{translateX: menuTranslateX}], @@ -425,12 +426,14 @@ export const MobileShell: React.FC = observer(() => { ) : undefined} - - store.shell.setMainMenuOpen(false)} - /> - + {shouldRenderMenu && ( + + store.shell.setMainMenuOpen(false)} + /> + + )} {isTabsSelectorActive ? ( -- cgit 1.4.1