Files
mattermost-mobile/app/hooks/android_back_handler.ts
Elias Nahum 7aa5bd0611 Update Dependencies and bug fixes (#7000)
* update dependencies

* update dependencies

* feedback review

* update @mattermost/react-native-turbo-mailer
2023-01-24 09:14:23 +02:00

29 lines
852 B
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {useEffect} from 'react';
import {BackHandler} from 'react-native';
import NavigationStore from '@store/navigation_store';
import type {AvailableScreens} from '@typings/screens/navigation';
const useAndroidHardwareBackHandler = (componentId: AvailableScreens | undefined, callback: () => void) => {
useEffect(() => {
const backHandler = BackHandler.addEventListener('hardwareBackPress', () => {
if (NavigationStore.getVisibleScreen() === componentId) {
callback();
return true;
}
return false;
});
return () => {
backHandler.remove();
};
}, [componentId]);
};
export default useAndroidHardwareBackHandler;