/*
    Предрейсовые осмотры - мобильное приложение
    Общий компонент кнопки
*/

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

const React = require('react'); //React
const { Pressable, View } = require('react-native'); //Базовые компоненты
const AppText = require('./AppText'); //Общий текстовый компонент
const styles = require('../../styles/common/AppButton.styles'); //Стили кнопки

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

//Общая кнопка приложения
function AppButton({ title, onPress, disabled = false, style, textStyle }) {
    const handlePress = React.useCallback(() => {
        if (!disabled && typeof onPress === 'function') onPress();
    }, [disabled, onPress]);

    return (
        <Pressable
            onPress={handlePress}
            disabled={disabled}
            style={({ pressed }) => [styles.base, disabled && styles.disabled, pressed && !disabled && styles.pressed, style]}
        >
            <View style={styles.content}>
                <AppText style={[styles.text, textStyle]}>{title}</AppText>
            </View>
        </Pressable>
    );
}

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

module.exports = AppButton;
