97 lines
3.0 KiB
JavaScript
97 lines
3.0 KiB
JavaScript
/*
|
||
Предрейсовые осмотры - мобильное приложение
|
||
Конфигурация приложения
|
||
*/
|
||
|
||
//---------------------
|
||
//Подключение библиотек
|
||
//---------------------
|
||
|
||
const { responsiveSize, isTablet } = require('../utils/responsive'); //Адаптивные утилиты
|
||
const { Platform } = require('react-native');
|
||
|
||
//---------
|
||
//Константы
|
||
//---------
|
||
|
||
//Настройки сервера приложений
|
||
const SYSTEM = {
|
||
//Адрес сервера приложений
|
||
SERVER: '',
|
||
|
||
//Таймаут сетевых запросов (мс)
|
||
REQUEST_TIMEOUT: 30000,
|
||
|
||
//Минимальная версия Android для работы с SQLite
|
||
MIN_ANDROID_VERSION: 7.0,
|
||
|
||
//Минимальная версия iOS для работы с SQLite
|
||
MIN_IOS_VERSION: 11.0
|
||
};
|
||
|
||
//Настройки локального хранилища
|
||
const LOCAL_DB = {
|
||
//Ключ для хранения данных предрейсовых осмотров
|
||
INSPECTIONS_KEY: 'pretrip_inspections',
|
||
|
||
//Резервное хранилище для старых устройств (AsyncStorage)
|
||
FALLBACK_STORAGE_KEY: 'pretrip_fallback_storage'
|
||
};
|
||
|
||
//Настройки интерфейса
|
||
const UI = {
|
||
//Отступы по умолчанию (адаптивные)
|
||
PADDING: responsiveSize(isTablet() ? 24 : 16),
|
||
|
||
//Радиус скругления по умолчанию (адаптивный)
|
||
BORDER_RADIUS: responsiveSize(isTablet() ? 12 : 8),
|
||
|
||
//Размеры шрифтов
|
||
FONT_SIZE_XS: responsiveSize(12),
|
||
FONT_SIZE_SM: responsiveSize(14),
|
||
FONT_SIZE_MD: responsiveSize(16),
|
||
FONT_SIZE_LG: responsiveSize(18),
|
||
FONT_SIZE_XL: responsiveSize(20),
|
||
FONT_SIZE_2XL: responsiveSize(24),
|
||
|
||
//Высоты элементов
|
||
BUTTON_HEIGHT: responsiveSize(Platform.OS === 'ios' ? 48 : 44),
|
||
INPUT_HEIGHT: responsiveSize(Platform.OS === 'ios' ? 48 : 44),
|
||
HEADER_HEIGHT: responsiveSize(isTablet() ? 80 : Platform.OS === 'ios' ? 70 : 56)
|
||
};
|
||
|
||
//Проверка совместимости устройства
|
||
const COMPATIBILITY = {
|
||
//Проверяем версию Android
|
||
isAndroidCompatible: () => {
|
||
if (Platform.OS !== 'android') return true;
|
||
|
||
const majorVersion = parseInt(Platform.Version, 10);
|
||
return majorVersion >= 24; // Android 7.0 = API 24
|
||
},
|
||
|
||
//Проверяем версию iOS
|
||
isIOSCompatible: () => {
|
||
if (Platform.OS !== 'ios') return true;
|
||
|
||
const majorVersion = parseInt(Platform.Version, 10);
|
||
return majorVersion >= 11; // iOS 11.0
|
||
},
|
||
|
||
//Общая проверка совместимости
|
||
isDeviceCompatible: () => {
|
||
return COMPATIBILITY.isAndroidCompatible() && COMPATIBILITY.isIOSCompatible();
|
||
}
|
||
};
|
||
|
||
//----------------
|
||
//Интерфейс модуля
|
||
//----------------
|
||
|
||
module.exports = {
|
||
SYSTEM,
|
||
LOCAL_DB,
|
||
UI,
|
||
COMPATIBILITY
|
||
};
|