diff --git a/src/App.svelte b/src/App.svelte index e207267..b84e308 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -138,6 +138,7 @@ let collaborationInvites: Array<{ user_id: string; invited_at: string; status: string }> = []; let collaborationBusy = false; let collaborationError = ''; + let collaborationNotice = ''; let showCollaboration = false; let collaborationGuestId = ''; let collaborators: Array<{ twitch_user_id: string; display_name: string; favorite: boolean; last_invited_at: string | null }> = []; @@ -562,6 +563,7 @@ const response = await fetch(`${serverAddress}/api/v1/twitch/collaboration/session`, { method: 'POST', headers: { authorization: `Bearer ${sessionToken}` } }); if (!response.ok) throw new Error('Twitch could not start a Guest Star session.'); collaborationSession = await response.json(); + collaborationNotice = 'Guest Star session started.'; await loadCollaboration(); } catch (error) { collaborationError = error instanceof Error ? error.message : 'Collaboration session failed.'; @@ -580,6 +582,7 @@ if (!response.ok) throw new Error('Twitch could not end the Guest Star session.'); collaborationSession = null; collaborationInvites = []; + collaborationNotice = 'Guest Star session ended.'; } catch (error) { collaborationError = error instanceof Error ? error.message : 'Collaboration session could not end.'; } finally { @@ -596,6 +599,7 @@ const response = await fetch(`${serverAddress}/api/v1/twitch/collaboration/invites/send?${query}`, { method: 'POST', headers: { authorization: `Bearer ${sessionToken}` } }); if (!response.ok) throw new Error('Twitch could not send the collaboration invite.'); collaborationGuestId = ''; + collaborationNotice = 'Collaboration invite sent.'; await loadCollaboration(); } catch (error) { collaborationError = error instanceof Error ? error.message : 'Invite could not be sent.'; @@ -613,6 +617,7 @@ const query = `session_id=${encodeURIComponent(collaborationSession.id)}&guest_id=${encodeURIComponent(guestId)}`; const response = await fetch(`${serverAddress}/api/v1/twitch/collaboration/invites/cancel?${query}`, { method: 'POST', headers: { authorization: `Bearer ${sessionToken}` } }); if (!response.ok) throw new Error('Twitch could not cancel the collaboration invite.'); + collaborationNotice = 'Collaboration invite cancelled.'; await loadCollaboration(); } catch (error) { collaborationError = error instanceof Error ? error.message : 'Invite could not be cancelled.'; @@ -1490,7 +1495,7 @@
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.