diff --git a/src/App.svelte b/src/App.svelte index ac126b8..67b12ca 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -145,6 +145,7 @@ let collaboratorSearchError = ''; let collaboratorSearchTimer: number | undefined; let sharedChatSession: { session_id: string; host_broadcaster_id: string; participants: Array<{ broadcaster_id: string }> } | null = null; + let collaborationSettings: { is_moderator_send_live_enabled: boolean; slot_count: number; is_browser_source_audio_enabled: boolean; group_layout: string; browser_source_token: string } | null = null; let oauthLink = ''; let oauthIdentity: 'streamer' | 'bot' = 'streamer'; let oauthBusy = false; @@ -361,6 +362,7 @@ chatMessages = []; collaborationSession = null; collaborationInvites = []; + collaborationSettings = null; showCollaboration = false; chatReplyParent = undefined; chatThreadRoot = undefined; @@ -450,9 +452,12 @@ } const sharedChat = await fetch(`${serverAddress}/api/v1/twitch/collaboration/shared-chat`, { headers: { authorization: `Bearer ${sessionToken}` } }); if (sharedChat.ok) sharedChatSession = await sharedChat.json(); + const settings = await fetch(`${serverAddress}/api/v1/twitch/collaboration/channel-settings`, { headers: { authorization: `Bearer ${sessionToken}` } }); + if (settings.ok) collaborationSettings = await settings.json(); } catch { collaborationSession = null; sharedChatSession = null; + collaborationSettings = null; } } @@ -1196,7 +1201,7 @@
ACTIVE COLLABORATION{collaborationSession.guests.length} GUESTS
GUEST STAR CALL
The call is controlled by Twitch

Twitch does not expose the call media as an embeddable Trixie API. Use Twitch for the live call controls while Trixie keeps the session, slots, invites, and shared-chat state synchronized.

-
PARTICIPANTS
{#each collaborationSession.guests as guest}
{guest.user_display_name || guest.user_id}{guest.is_live ? 'LIVE' : 'WAITING'}{guest.slot_id ? ` · SLOT ${guest.slot_id}` : ''}
{:else}
No participants have joined.
{/each}
SHARED CHAT
{#if sharedChatSession}
ACTIVE · {sharedChatSession.participants.length} CHANNELS
{:else}
Shared Chat is not active.
{/if}
+
PARTICIPANTS
{#each collaborationSession.guests as guest}
{guest.user_display_name || guest.user_id}{guest.is_live ? 'LIVE' : 'WAITING'}{guest.slot_id ? ` · SLOT ${guest.slot_id}` : ''}
{:else}
No participants have joined.
{/each}
SHARED CHAT
{#if sharedChatSession}
ACTIVE · {sharedChatSession.participants.length} CHANNELS
{:else}
Shared Chat is not active.
{/if}{#if collaborationSettings}
CHANNEL SETTINGS
{collaborationSettings.slot_count} SLOTS · {collaborationSettings.group_layout}
AUDIO {collaborationSettings.is_browser_source_audio_enabled ? 'ENABLED' : 'DISABLED'} · MODERATOR LIVE CONTROL {collaborationSettings.is_moderator_send_live_enabled ? 'ENABLED' : 'DISABLED'}
{/if}
{#if collaborationError}
{collaborationError}
{/if}