Files
llink/js/mobile/app.config.ts
T
96f5a727d6 feat(mobile): add support for huddles to mobile app (#219)
* feat(mobile): add huddles with LiveKit

Mirrors the desktop huddle window: tap the headphones button on a stream
to fetch a LiveKit token from Orion and join a video room. Active huddles
show a red badge on the stream card (participant count) and a red Join
pill in the stream top bar — both driven by huddle_active_participants
synced from the LiveKit webhook.

The HuddleScreen lives at its own route (not a modal/window): video tile
grid with placeholders for camera-off, mic/camera toggles, and a leave
button. Adds the LiveKit RN SDK plus the WebRTC + LiveKit Expo config
plugins for prebuild.

https://claude.ai/code/session_01Po5tAD17MXhnqGQ9hKh6PC

* fix(mobile): exiting from huddle

* fix: pause stream during huddle

---------

Co-authored-by: Claude <[email protected]>
2026-05-26 16:37:37 -07:00

79 lines
1.7 KiB
TypeScript

import type { ExpoConfig } from "expo/config";
const APP_ENV = (process.env.EXPO_PUBLIC_APP_ENV ?? "dev") as "dev" | "prod";
const config: ExpoConfig = {
name: "Flowy",
slug: "flowy",
version: "0.1.0",
orientation: "portrait",
icon: "./assets/icon.png",
scheme: "flowy",
userInterfaceStyle: "dark",
newArchEnabled: true,
splash: {
image: "./assets/icon.png",
resizeMode: "contain",
backgroundColor: "#000000",
},
ios: {
supportsTablet: true,
bundleIdentifier: "ai.flowylabs.llink",
infoPlist: {
ITSAppUsesNonExemptEncryption: false,
},
},
plugins: [
[
"expo-build-properties",
{
ios: {
deploymentTarget: "16.0",
},
},
],
"expo-secure-store",
[
"expo-camera",
{
cameraPermission:
"Flowy uses your camera to record video messages.",
microphonePermission:
"Flowy uses your microphone to record voice and video messages.",
recordAudioAndroid: true,
},
],
[
"expo-audio",
{
microphonePermission:
"Flowy uses your microphone to record voice messages.",
},
],
[
"expo-notifications",
{
icon: "./assets/icon.png",
color: "#000000",
},
],
// LiveKit needs WebRTC native modules. The two plugins below patch the
// iOS/Android prebuild so camera/mic permissions and the webrtc pod are
// wired up correctly for huddles.
"@config-plugins/react-native-webrtc",
"@livekit/react-native-expo-plugin",
],
experiments: {
typedRoutes: false,
},
extra: {
eas: {
projectId: "e902f7e5-e514-42bd-9591-75738e3494ed"
},
appEnv: APP_ENV,
},
};
export default config;