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