1import {useEffect, useRef} from 'react'; 2import {BackHandler, NativeEventSubscription} from 'react-native'; 3 4export default function ( 5 onHardwareBackPress: () => boolean | null | undefined, 6 deps: any[] = [], 7) { 8 const backHandlerRef = useRef<NativeEventSubscription>(); 9 useEffect(() => { 10 if (backHandlerRef.current) { 11 backHandlerRef.current.remove(); 12 backHandlerRef.current = undefined; 13 } 14 15 backHandlerRef.current = BackHandler.addEventListener( 16 'hardwareBackPress', 17 onHardwareBackPress, 18 ); 19 20 return () => { 21 if (backHandlerRef.current) { 22 backHandlerRef.current.remove(); 23 backHandlerRef.current = undefined; 24 } 25 }; 26 }, deps); 27} 28