From d6e16073eb32c82efb9a2a35c26309b0c567e4ab Mon Sep 17 00:00:00 2001 From: Arnab Chatterjee <60937304+arn4b@users.noreply.github.com> Date: Thu, 12 Oct 2023 16:39:04 +0530 Subject: [PATCH] Arnab/livekit depl (#775) * refactor: added code for joining livekit room for listeners (#731) * feat: drop in livekit inplace of livepeer * feat: added microphone * feat: added mic * feat: added access control * feat: fixes for livekit API call * feat: meta messages added for joining * fix: add meta message for accept --------- Co-authored-by: Nilesh Gupta --- .../restapi/src/lib/space/acceptPromotionRequest.ts | 11 +++++++++++ .../space/SpaceWidget/LiveWidgetContent.tsx | 10 ++++++---- .../uiweb/src/lib/hooks/space/usePushSpaceSocket.tsx | 2 +- packages/uiweb/yarn.lock | 1 + 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/packages/restapi/src/lib/space/acceptPromotionRequest.ts b/packages/restapi/src/lib/space/acceptPromotionRequest.ts index 6ed125b25..3052f3228 100644 --- a/packages/restapi/src/lib/space/acceptPromotionRequest.ts +++ b/packages/restapi/src/lib/space/acceptPromotionRequest.ts @@ -1,11 +1,13 @@ import type Space from './Space'; import { addSpeakers } from './addSpeakers'; +import sendLiveSpaceData from './helpers/sendLiveSpaceData'; import { pCAIP10ToWallet } from '../helpers'; import { SPACE_ACCEPT_REQUEST_TYPE, SPACE_INVITE_ROLES, } from '../payloads/constants'; +import { META_ACTION } from '../types'; export interface IAcceptPromotionRequestType { signalData: any; @@ -35,6 +37,15 @@ export async function acceptPromotionRequest( env: this.env, }); + await sendLiveSpaceData({ + spaceId: this.spaceSpecificData.spaceId, + pgpPrivateKey: this.pgpPrivateKey, + env: this.env, + signer: this.signer, + // liveSpaceData: modifiedLiveSpaceData, + action: META_ACTION.PROMOTE_TO_SPEAKER, + }); + // accept the promotion request // this.acceptRequest({ // signalData, diff --git a/packages/uiweb/src/lib/components/space/SpaceWidget/LiveWidgetContent.tsx b/packages/uiweb/src/lib/components/space/SpaceWidget/LiveWidgetContent.tsx index ae5ee621e..58b7a118e 100644 --- a/packages/uiweb/src/lib/components/space/SpaceWidget/LiveWidgetContent.tsx +++ b/packages/uiweb/src/lib/components/space/SpaceWidget/LiveWidgetContent.tsx @@ -63,6 +63,7 @@ export const LiveWidgetContent: React.FC = ({ initSpaceObject, raisedHandInfo, } = useSpaceData(); + console.log("🚀 ~ file: LiveWidgetContent.tsx:66 ~ spaceObjectData:", spaceObjectData) console.log("🚀 ~ file: LiveWidgetContent.tsx:66 ~ raisedHandInfo:", raisedHandInfo) const isMicOn = spaceObjectData?.connectionData?.local?.audio; @@ -89,7 +90,8 @@ export const LiveWidgetContent: React.FC = ({ }, [isListener, isHost, spaceData]); useEffect(() => { - if (!spaceObjectData?.connectionData?.local?.stream || !isRequestedForMic) + // if (!spaceObjectData?.connectionData?.local?.stream || !isRequestedForMic) + if (!isRequestedForMic) return; const requestedForMicFromEffect = async () => { @@ -183,8 +185,8 @@ export const LiveWidgetContent: React.FC = ({ console.log('isListner', isListener); if ( isListener && - !isHost && - spaceObjectData.connectionData.local.address + !isHost + // && spaceObjectData.connectionData.local.address ) { console.log('joining as a listener'); await spacesObjectRef?.current?.join?.(); @@ -212,7 +214,7 @@ export const LiveWidgetContent: React.FC = ({ // joining as a speaker useEffect(() => { if ( - !spaceObjectData?.connectionData?.local?.stream || + // !spaceObjectData?.connectionData?.local?.stream || !isSpeaker || (spaceObjectData?.connectionData?.incoming?.length ?? 0) > 1 ) diff --git a/packages/uiweb/src/lib/hooks/space/usePushSpaceSocket.tsx b/packages/uiweb/src/lib/hooks/space/usePushSpaceSocket.tsx index e51d30329..eff7c5f63 100644 --- a/packages/uiweb/src/lib/hooks/space/usePushSpaceSocket.tsx +++ b/packages/uiweb/src/lib/hooks/space/usePushSpaceSocket.tsx @@ -55,7 +55,7 @@ export const usePushSpaceSocket = ({ pushSpaceSocket?.on('SPACES_MESSAGES', async (message: any) => { console.log('SPACES_MESSAGES RECEIVED', message); - if (message?.messageCategory === 'Request') { + if (message?.messageCategory === 'Request' || message?.messageCategory === 'Approve') { /* - Will be executed on host's end of a live space - When a listener joins this fires a meta message telling everyone the same diff --git a/packages/uiweb/yarn.lock b/packages/uiweb/yarn.lock index fe58dcd8b..1243a9ee0 100644 --- a/packages/uiweb/yarn.lock +++ b/packages/uiweb/yarn.lock @@ -2471,6 +2471,7 @@ clsx@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.0.0.tgz#12658f3fd98fafe62075595a5c30e43d18f3d00b" integrity sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q== + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"