46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
import type { ExpoConfig } from 'expo/config';
|
|
|
|
// Public runtime config only — real secrets stay server-side. The API/WS base
|
|
// URLs point at the same gateway the web client uses; override per environment
|
|
// with EXPO_PUBLIC_API_URL / EXPO_PUBLIC_WS_URL (e.g. a LAN IP for a device).
|
|
const apiUrl = process.env['EXPO_PUBLIC_API_URL'] ?? 'http://localhost:8080/api';
|
|
const wsUrl = process.env['EXPO_PUBLIC_WS_URL'] ?? 'ws://localhost:8080/connection/websocket';
|
|
|
|
const config: ExpoConfig = {
|
|
name: 'Zovi',
|
|
slug: 'zovi',
|
|
scheme: 'zovi',
|
|
version: '0.1.0',
|
|
orientation: 'portrait',
|
|
userInterfaceStyle: 'automatic',
|
|
newArchEnabled: true,
|
|
ios: {
|
|
supportsTablet: true,
|
|
bundleIdentifier: 'com.altricade.messenger',
|
|
},
|
|
android: {
|
|
package: 'com.altricade.messenger',
|
|
edgeToEdgeEnabled: true,
|
|
},
|
|
plugins: [
|
|
'expo-router',
|
|
'expo-secure-store',
|
|
['expo-audio', { microphonePermission: 'Zovi uses the microphone to record voice messages.' }],
|
|
'expo-video',
|
|
['expo-camera', { cameraPermission: 'Zovi uses the camera for video messages.' }],
|
|
[
|
|
'expo-image-picker',
|
|
{ photosPermission: 'Zovi accesses your photos to share images and videos.' },
|
|
],
|
|
'expo-notifications',
|
|
],
|
|
experiments: {
|
|
typedRoutes: true,
|
|
},
|
|
extra: {
|
|
apiUrl,
|
|
wsUrl,
|
|
},
|
|
};
|
|
|
|
export default config;
|