dismiss overlay on tabPress

This commit is contained in:
Avinash Lingaloo
2022-04-28 16:59:07 +04:00
parent c7eef4b304
commit 9a57a0866f
2 changed files with 8 additions and 2 deletions

View File

@@ -162,7 +162,7 @@ function TabBar({state, descriptors, navigation, theme}: BottomTabBarProps & {th
target: route.key,
canPreventDefault: true,
});
DeviceEventEmitter.emit('tabPress');
if (!isFocused && !event.defaultPrevented) {
// The `merge: true` option makes sure that the params inside the tab screen are preserved
navigation.navigate({params: {direction}, name: route.name, merge: false});

View File

@@ -3,7 +3,7 @@
import React, {useCallback, useEffect, useMemo, useState} from 'react';
import {useIntl} from 'react-intl';
import {Text, TouchableOpacity, useWindowDimensions, ViewStyle} from 'react-native';
import {DeviceEventEmitter, Text, TouchableOpacity, useWindowDimensions, ViewStyle} from 'react-native';
import {Gesture, GestureDetector, GestureHandlerRootView} from 'react-native-gesture-handler';
import {Navigation} from 'react-native-navigation';
import Animated, {Extrapolation, interpolate, runOnJS, useAnimatedStyle, useSharedValue, withTiming} from 'react-native-reanimated';
@@ -171,9 +171,15 @@ const SnackBar = ({barType, componentId, onUndoPress, sourceScreen}: SnackBarPro
const screenDidDisappear = Navigation.events().registerComponentDidDisappearListener(() => {
animateHiding(true);
});
const tabPress = DeviceEventEmitter.addListener('tabPress', () => {
animateHiding(true);
});
return () => {
screenWillAppear.remove();
screenDidDisappear.remove();
tabPress.remove();
};
}, []);