/*
    Предрейсовые осмотры - мобильное приложение
    Хук обработки аппаратной кнопки "Назад" (Android)
*/

//---------------------
//Подключение библиотек
//---------------------

const React = require('react'); //React и хуки
const { BackHandler, Platform } = require('react-native'); //BackHandler и платформа

//-----------
//Тело модуля
//-----------

//Хук обработки аппаратной кнопки "Назад"
const useHardwareBackPress = (handler, deps = []) => {
    React.useEffect(() => {
        //BackHandler работает только на Android
        if (Platform.OS !== 'android') {
            return;
        }

        //Обработчик нажатия кнопки "Назад"
        const backHandler = () => {
            if (typeof handler === 'function') {
                return handler();
            }
            return false;
        };

        //Подписка на событие
        const subscription = BackHandler.addEventListener('hardwareBackPress', backHandler);

        //Отписка при размонтировании
        return () => {
            subscription.remove();
        };
        // eslint-disable-next-line react-hooks/exhaustive-deps
    }, deps);
};

//----------------
//Интерфейс модуля
//----------------

module.exports = useHardwareBackPress;
