/* eslint-disable max-lines-per-function */ import type { ConfigContext, ExpoConfig } from '@expo/config' import type { AppIconBadgeConfig } from 'app-icon-badge/types' import { ClientEnv, Env } from './env' const appIconBadgeConfig: AppIconBadgeConfig = { enabled: Env.APP_ENV !== 'production', badges: [ { text: Env.APP_ENV, type: 'banner', color: 'white', }, { text: Env.VERSION.toString(), type: 'ribbon', color: 'white', }, ], } export default ({ config }: ConfigContext): ExpoConfig => ({ ...config, name: Env.NAME, description: `${Env.NAME} Mobile App`, owner: Env.EXPO_ACCOUNT_OWNER, scheme: Env.SCHEME, slug: 'busybar', version: Env.VERSION.toString(), orientation: 'portrait', icon: './assets/icon.png', userInterfaceStyle: 'automatic', splash: { image: './assets/splash.png', resizeMode: 'cover', backgroundColor: '#2E3C4B', }, updates: { fallbackToCacheTimeout: 0, }, assetBundlePatterns: ['**/*'], ios: { supportsTablet: true, bundleIdentifier: Env.BUNDLE_ID, }, experiments: { typedRoutes: true, }, android: { adaptiveIcon: { foregroundImage: './assets/adaptive-icon.png', backgroundColor: '#2E3C4B', }, package: Env.PACKAGE, }, web: { favicon: './assets/favicon.png', bundler: 'metro', }, plugins: [ [ 'expo-font', { fonts: ['./assets/fonts/Inter.ttf'], }, ], 'expo-localization', 'expo-router', ['app-icon-badge', appIconBadgeConfig], [ 'expo-location', { locationAlwaysAndWhenInUsePermission: 'Allow $(PRODUCT_NAME) to use your location.', }, ], ], extra: { ...ClientEnv, eas: { projectId: Env.EAS_PROJECT_ID, }, }, })