From 98530e1578df3af918cb083c2be8350430ab1263 Mon Sep 17 00:00:00 2001 From: talksik Date: Tue, 5 Jul 2022 09:52:33 -0500 Subject: [PATCH] testing connecting with footer controls and working --- packages/desktop/package.json | 4 +-- .../desktop/src/providers/AuthProvider.tsx | 17 +++++------ packages/desktop/src/tree/FooterControls.tsx | 30 +++++++++++++++---- packages/desktop/src/util/types.ts | 25 +++++++++------- 4 files changed, 48 insertions(+), 28 deletions(-) diff --git a/packages/desktop/package.json b/packages/desktop/package.json index 200fadd..d7eff65 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -42,8 +42,8 @@ [ "@electron-forge/plugin-webpack", { - "port": "4005", - "loggerPort": "9005", + "port": "4000", + "loggerPort": "9000", "mainConfig": "./webpack.main.config.js", "devContentSecurityPolicy": "default-src * self blob: data: gap:; style-src * self 'unsafe-inline' blob: data: gap:; script-src * 'self' 'unsafe-eval' 'unsafe-inline' blob: data: gap:; object-src * 'self' blob: data: gap:; img-src * self 'unsafe-inline' blob: data: gap:; connect-src self * 'unsafe-inline' blob: data: gap:; frame-src * self blob: data: gap:;", "renderer": { diff --git a/packages/desktop/src/providers/AuthProvider.tsx b/packages/desktop/src/providers/AuthProvider.tsx index a772255..09cf013 100644 --- a/packages/desktop/src/providers/AuthProvider.tsx +++ b/packages/desktop/src/providers/AuthProvider.tsx @@ -23,15 +23,14 @@ export function AuthProvider({ children }: { children: React.ReactNode }) { useEffect(() => { // on load of this, if we already have jwt tokens in store, // then try using them with auth check - window.electronAPI.store.get(STORE_ITEMS.AUTH_SESSION_JWT).then((jwtToken: string) => { - if (jwtToken) { - setJwtToken(jwtToken); - - console.log('retrieved jwtToken from storage', jwtToken); - } else { - console.log('no jwt token in store'); - } - }); + // window.electronAPI.store.get(STORE_ITEMS.AUTH_SESSION_JWT).then((jwtToken: string) => { + // if (jwtToken) { + // setJwtToken(jwtToken); + // console.log('retrieved jwtToken from storage', jwtToken); + // } else { + // console.log('no jwt token in store'); + // } + // }); }, []); // todo: check this in intervals repeatedly diff --git a/packages/desktop/src/tree/FooterControls.tsx b/packages/desktop/src/tree/FooterControls.tsx index 4f6fd72..1e3605f 100644 --- a/packages/desktop/src/tree/FooterControls.tsx +++ b/packages/desktop/src/tree/FooterControls.tsx @@ -3,6 +3,7 @@ import { AvatarGroup, Box, Button, + CircularProgress, Container, Dialog, Divider, @@ -30,10 +31,10 @@ import { FiZap, FiZapOff, } from 'react-icons/fi'; +import { MasterConversation, RoomMap } from '../util/types'; import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { ConversationUserMember } from '@nirvana/core/models/conversation.model'; -import { MasterConversation } from '../util/types'; import { SUPPORT_DISPLAY_NAME } from '../util/support'; import { blueGrey } from '@mui/material/colors'; import useAuth from '../providers/AuthProvider'; @@ -266,6 +267,8 @@ function OverlayConversation({ conversationUserMembers={masterConversation.members} isConversationSelected={isSelected} tunedInUserIds={masterConversation.tunedInUsers} + roomPeers={masterConversation.room} + localStreamToPeers={masterConversation.localStream} /> {isSelected && ( @@ -314,10 +317,14 @@ function OverlayConversationAvatars({ conversationUserMembers, tunedInUserIds, isConversationSelected, + roomPeers, + localStreamToPeers, }: { isConversationSelected: boolean; tunedInUserIds: string[]; conversationUserMembers: ConversationUserMember[]; + roomPeers: RoomMap; + localStreamToPeers: MediaStream; }) { const { user } = useAuth(); @@ -358,6 +365,10 @@ function OverlayConversationAvatars({ isTunedIn={tunedInUserIds?.includes(conversationUserMember._id.toString())} isConversationSelected={isConversationSelected} conversationUserMember={conversationUserMember} + isConnecting={ + (roomPeers && roomPeers[conversationUserMember._id.toString()]?.isConnecting) ?? false + } + localStreamToPeers={localStreamToPeers} /> ))} @@ -368,23 +379,30 @@ function OverlayConversationAvatar({ conversationUserMember, isTunedIn, isConversationSelected, + isConnecting, + localStreamToPeers, }: { conversationUserMember: ConversationUserMember; isTunedIn: boolean; isConversationSelected: boolean; // if user is connecting or just have this conversation selected + isConnecting: boolean; // if we are calling or receiving call from this person and still connecting + localStreamToPeers: MediaStream; // the local stream that is casted to each peer }) { - const { userLocalStream } = useConversations(); const { user } = useAuth(); const localVideoRef = useRef(null); useEffect(() => { - if (localVideoRef?.current && userLocalStream) { - localVideoRef.current.srcObject = userLocalStream; + if (localVideoRef?.current && localStreamToPeers) { + localVideoRef.current.srcObject = localStreamToPeers; } - }, [localVideoRef, userLocalStream]); + }, [localVideoRef, localStreamToPeers]); - if (conversationUserMember._id.toString() === user._id.toString() && userLocalStream) { + if (isConnecting) { + return ; + } + + if (conversationUserMember._id.toString() === user._id.toString() && localStreamToPeers) { return (