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

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

const React = require('react'); //React
const { View, Image } = require('react-native'); //Базовые компоненты
const { APP_LOGO, LOGO_SIZE_KEYS } = require('../../config/appAssets'); //Ресурсы приложения
const styles = require('../../styles/common/AppLogo.styles'); //Стили логотипа

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

//Возвращает стили контейнера в зависимости от размера
function getContainerStyleBySize(size) {
    switch (size) {
        case LOGO_SIZE_KEYS.SMALL:
            return styles.containerSmall;
        case LOGO_SIZE_KEYS.LARGE:
            return styles.containerLarge;
        case LOGO_SIZE_KEYS.MEDIUM:
        default:
            return styles.containerMedium;
    }
}

//Нормализация пропа size к допустимому значению
function normalizeSize(size) {
    if (size === LOGO_SIZE_KEYS.SMALL || size === LOGO_SIZE_KEYS.LARGE) {
        return size;
    }
    return LOGO_SIZE_KEYS.MEDIUM;
}

//Иконка/логотип приложения
function AppLogo({ size = LOGO_SIZE_KEYS.MEDIUM, style }) {
    const normalizedSize = normalizeSize(size);
    const containerSizeStyle = getContainerStyleBySize(normalizedSize);

    return (
        <View style={[styles.container, containerSizeStyle, style]}>
            <Image source={APP_LOGO} style={styles.image} resizeMode="contain" accessibilityLabel="Логотип приложения" />
        </View>
    );
}

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

module.exports = AppLogo;
