UNPKG

react-native-modern-elements

Version:

A modern, customizable UI component library for React Native

23 lines (22 loc) 936 B
import { useState, useCallback } from "react"; import { BackHandler, ToastAndroid } from "react-native"; import { useFocusEffect } from "@react-navigation/native"; const useBackExit = () => { const [backPressed, setBackPressed] = useState(false); useFocusEffect(useCallback(() => { const backAction = () => { if (backPressed) { BackHandler.exitApp(); // Exit if already pressed once } else { setBackPressed(true); ToastAndroid.show("Press again to exit.", ToastAndroid.SHORT); setTimeout(() => setBackPressed(false), 2000); // Reset after 2 seconds } return true; }; const backHandler = BackHandler.addEventListener("hardwareBackPress", backAction); return () => backHandler.remove(); // Cleanup when navigating away }, [backPressed])); }; export default useBackExit;