From 329012ce59b1fb736d8fe30821e48dbe8b217031 Mon Sep 17 00:00:00 2001 From: talksik Date: Wed, 18 May 2022 18:24:53 -0500 Subject: [PATCH] passing down the user local stream to show in the header --- .../desktop/src/providers/StreamProvider.tsx | 34 ++------------ .../protected/terminal/panels/SidePanel.tsx | 44 ++++++++++++++----- 2 files changed, 37 insertions(+), 41 deletions(-) diff --git a/packages/desktop/src/providers/StreamProvider.tsx b/packages/desktop/src/providers/StreamProvider.tsx index 144f1b6..f6ddc30 100644 --- a/packages/desktop/src/providers/StreamProvider.tsx +++ b/packages/desktop/src/providers/StreamProvider.tsx @@ -38,6 +38,7 @@ type PeerMap = { }; interface IStreamProvider { peerMap: PeerMap; + userLocalStream?: MediaStream; } const StreamProviderContext = React.createContext({ @@ -54,7 +55,6 @@ export function StreamProvider({ children }: { children: React.ReactChild }) { const [incomingSignals, updateIncomingSignals] = useImmer<{ [peerUserId: string]: any }>({}); const [userLocalStream, setUserLocalStream] = useState(); - const localStreamRef = useRef(null); useEffect(() => { navigator.mediaDevices.enumerateDevices().then((devices) => { @@ -72,31 +72,11 @@ export function StreamProvider({ children }: { children: React.ReactChild }) { }); navigator.mediaDevices - .getUserMedia({ video: false, audio: true }) + .getUserMedia({ video: true, audio: true }) .then((localMediaStream: MediaStream) => { setUserLocalStream(localMediaStream); - - setTimeout(() => { - localMediaStream.getTracks().forEach((track) => { - track.stop(); - }); - }, 2000); - - if (localStreamRef.current) localStreamRef.current.srcObject = localMediaStream; }); - }, [localStreamRef]); - - const handleStartBroadcast = () => { - userLocalStream.getTracks().forEach((track) => { - track.enabled = true; - }); - }; - - const stopBroadcast = () => { - userLocalStream.getTracks().forEach((track) => { - track.enabled = false; - }); - }; + }, []); useEffect(() => { if (userLocalStream) { @@ -196,17 +176,11 @@ export function StreamProvider({ children }: { children: React.ReactChild }) { ); return ( - + {/* handles stream connections */}
- {/* - - */} - - {/*
{/* search + other stuff */} @@ -173,3 +165,33 @@ shadow-xl bg-gray-800 p-2 text-white text-xs" ); } + +// todo if audio only mode, show avatar +// if problem, show error +function UserProfileAvatar() { + const { user } = useAuth(); + const { userLocalStream } = useStreams(); + + const videoRef = useRef(); + + useEffect(() => { + if (videoRef.current && userLocalStream) videoRef.current.srcObject = userLocalStream; + }, [userLocalStream]); + + if (userLocalStream) return