From a0083ae0935ae8fd9861e1a1fd0de0a4af9c9e4f Mon Sep 17 00:00:00 2001 From: Max Goodhart Date: Sun, 15 Jun 2025 03:56:10 +0000 Subject: [PATCH] Share token link generation --- packages/streamwall-control-server/src/index.ts | 7 ++++++- packages/streamwall-control-ui/src/index.tsx | 6 +++++- packages/streamwall-shared/src/roles.ts | 12 ++++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/packages/streamwall-control-server/src/index.ts b/packages/streamwall-control-server/src/index.ts index 503310a..27a76bc 100644 --- a/packages/streamwall-control-server/src/index.ts +++ b/packages/streamwall-control-server/src/index.ts @@ -11,6 +11,7 @@ import { type AuthTokenInfo, type ControlCommandMessage, type ControlUpdateMessage, + inviteLink, roleCan, stateDiff, type StreamwallRole, @@ -456,7 +457,11 @@ async function initialInviteCodes({ ) console.log( '🔑 Admin invite:', - `${baseURL}/invite/${adminToken.tokenId}?token=${adminToken.secret}`, + inviteLink({ + baseURL, + tokenId: adminToken.tokenId, + secret: adminToken.secret, + }), ) } diff --git a/packages/streamwall-control-ui/src/index.tsx b/packages/streamwall-control-ui/src/index.tsx index d90fc91..f70ed8f 100644 --- a/packages/streamwall-control-ui/src/index.tsx +++ b/packages/streamwall-control-ui/src/index.tsx @@ -25,6 +25,7 @@ import { ControlCommand, idColor, idxInBox, + inviteLink, LocalStreamData, roleCan, StreamData, @@ -804,7 +805,10 @@ export function ControlUI({ Invite link created:{' '} "{newInvite.name}" diff --git a/packages/streamwall-shared/src/roles.ts b/packages/streamwall-shared/src/roles.ts index 26d6273..9f0af31 100644 --- a/packages/streamwall-shared/src/roles.ts +++ b/packages/streamwall-shared/src/roles.ts @@ -47,3 +47,15 @@ export function roleCan(role: StreamwallRole | null, action: StreamwallAction) { return false } + +export function inviteLink({ + baseURL = '', + tokenId, + secret, +}: { + baseURL?: string + tokenId: string + secret: string +}) { + return `${baseURL}/invite/${tokenId}?token=${secret}` +}