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]>
This commit was merged in pull request #219.
This commit is contained in:
@@ -6,6 +6,7 @@ import { NetworkListScreen } from "@/features/networks/NetworkListScreen";
|
||||
import { StreamListScreen } from "@/features/streams/StreamListScreen";
|
||||
import { NewStreamScreen } from "@/features/streams/NewStreamScreen";
|
||||
import { StreamViewScreen } from "@/features/stream-view/StreamViewScreen";
|
||||
import { HuddleScreen } from "@/features/huddle/HuddleScreen";
|
||||
import { SettingsScreen } from "@/features/settings/SettingsScreen";
|
||||
import { AccountScreen } from "@/features/settings/AccountScreen";
|
||||
import type { RootStackParamList } from "./types";
|
||||
@@ -43,6 +44,11 @@ export function RootNavigator() {
|
||||
component={StreamViewScreen}
|
||||
options={{ animation: "fade", gestureEnabled: false }}
|
||||
/>
|
||||
<Stack.Screen
|
||||
name="Huddle"
|
||||
component={HuddleScreen}
|
||||
options={{ animation: "slide_from_bottom", gestureEnabled: false }}
|
||||
/>
|
||||
<Stack.Screen
|
||||
name="NewStream"
|
||||
component={NewStreamScreen}
|
||||
|
||||
@@ -7,6 +7,13 @@ export type RootStackParamList = {
|
||||
NetworkList: undefined;
|
||||
StreamList: { networkId: string };
|
||||
StreamView: { networkId: string; streamId: string };
|
||||
Huddle: {
|
||||
networkId: string;
|
||||
streamId: string;
|
||||
streamName: string;
|
||||
token: string;
|
||||
serverUrl: string;
|
||||
};
|
||||
NewStream: { networkId: string };
|
||||
Settings: undefined;
|
||||
Account: undefined;
|
||||
|
||||
Reference in New Issue
Block a user