From 13254150853f55105dee065a11d15a6d5b662722 Mon Sep 17 00:00:00 2001 From: ReaperOfVeriod Date: Sun, 25 Oct 2026 05:50:54 +0100 Subject: [PATCH] Show Guest Star channel settings --- src/App.svelte | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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}