From 256675b2dee02f7b156f836a4582e0d254dc7ae1 Mon Sep 17 00:00:00 2001 From: talksik Date: Mon, 16 May 2022 15:52:03 -0500 Subject: [PATCH] fixing sizing and stuff from messenger inspiration --- packages/desktop/src/components/lineIcon.tsx | 4 +- .../desktop/src/providers/StreamProvider.tsx | 69 +++++++++++++++++-- .../protected/terminal/panels/MainPanel.tsx | 2 +- .../protected/terminal/panels/SidePanel.tsx | 33 ++++----- 4 files changed, 79 insertions(+), 29 deletions(-) diff --git a/packages/desktop/src/components/lineIcon.tsx b/packages/desktop/src/components/lineIcon.tsx index 3514f4f..77edbc3 100644 --- a/packages/desktop/src/components/lineIcon.tsx +++ b/packages/desktop/src/components/lineIcon.tsx @@ -18,7 +18,7 @@ function LineIcon({ return ( <> {isMultiple ? ( -
+
{sourceImages.map((avatarSrc, index) => { if (index === 0) { return ( @@ -52,7 +52,7 @@ function LineIcon({ key={`lineIcon-${avatarSrc}-${index}`} src={avatarSrc} shape="square" - size={'default'} + size={'large'} className={`${grayscale && 'grayscale'} shadow-lg`} /> )) diff --git a/packages/desktop/src/providers/StreamProvider.tsx b/packages/desktop/src/providers/StreamProvider.tsx index 19c1aac..780d7d0 100644 --- a/packages/desktop/src/providers/StreamProvider.tsx +++ b/packages/desktop/src/providers/StreamProvider.tsx @@ -109,7 +109,26 @@ export function StreamProvider({ children }: { children: React.ReactChild }) { Object.entries(peerMap).map(([userId, peer]) => { if (incomingSignals[userId]) { - peer.signal(incomingSignals[userId]); + // ! hack: if they are alphabetically higher, then they are initiator + if (userId > user._id.toString()) { + console.log('creating a local peer as the receiver and replacing mine'); + + peer.destroy(); + + const peerForMeAndNewbie = new Peer({ + initiator: false, + trickle: false, // prevents the multiple tries on different ice servers and signal from getting called a bunch of times + }); + + peerForMeAndNewbie.signal(incomingSignals[userId]); + + updatePeerMap((draft) => { + draft[userId] = peerForMeAndNewbie; + }); + } else { + console.log('I won, just adding the signal to my local peer with that person'); + peer.signal(incomingSignals[userId]); + } updateIncomingSignals((draft) => { delete draft[userId]; @@ -117,7 +136,7 @@ export function StreamProvider({ children }: { children: React.ReactChild }) { } }); } - }, [peerMap, incomingSignals, updateIncomingSignals]); + }, [peerMap, incomingSignals, updateIncomingSignals, user, updatePeerMap]); useEffect(() => { $ws.on(ServerResponseChannels.RTC_RECEIVING_SIGNAL, (res: RtcReceiveSignalResponse) => { @@ -146,10 +165,15 @@ export function StreamProvider({ children }: { children: React.ReactChild }) { return ( -
-
{/* change to show only the broadcasters */} - + {/* */}