/*
    Предрейсовые осмотры - мобильное приложение
    Константы стилей кнопок диалогов подтверждения
*/

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

const { APP_COLORS } = require('./theme');

//---------
//Константы
//---------

//Типы кнопок подтверждения в диалогах
const DIALOG_BUTTON_TYPE = {
    ERROR: 'error',
    WARNING: 'warning'
};

//Стили кнопки "Отмена" (нейтральная) — общие для всех диалогов
const DIALOG_CANCEL_BUTTON = {
    id: 'cancel',
    title: 'Отмена',
    onPress: () => {}
};

//Фабрика: стили и текст для кнопки подтверждения в диалоге
function getConfirmButtonOptions(type, title, onPress) {
    const base = {
        id: 'confirm',
        title: title || 'Подтвердить',
        onPress: typeof onPress === 'function' ? onPress : () => {}
    };

    if (type === DIALOG_BUTTON_TYPE.ERROR) {
        base.buttonStyle = { backgroundColor: APP_COLORS.error };
        base.textStyle = { color: APP_COLORS.white };
    } else if (type === DIALOG_BUTTON_TYPE.WARNING) {
        base.buttonStyle = { backgroundColor: APP_COLORS.warning };
        base.textStyle = { color: APP_COLORS.white };
    }

    return base;
}

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

module.exports = {
    DIALOG_BUTTON_TYPE,
    DIALOG_CANCEL_BUTTON,
    getConfirmButtonOptions
};
