logic for joining and leaving room

This commit is contained in:
talksik
2022-05-29 11:17:25 -05:00
parent 8931181d8b
commit d255935f68
2 changed files with 62 additions and 9 deletions
+29 -2
View File
@@ -55,6 +55,8 @@ import {
createOneOnOneConversation,
getConversationsQueryLIVE,
getUserById,
joinConversation,
leaveConversation,
searchUsers,
sendAudioClipToConversation,
} from '../firebase/firestore';
@@ -826,6 +828,8 @@ function MainPanel() {
);
}
const maxPriorityConvos = 5;
function ConversationDetails() {
const { user } = useAuth();
const { getUser, selectedConversation, selectConversation, isCloudDoingMagic } = useTerminal();
@@ -834,13 +838,36 @@ function ConversationDetails() {
// TODO: at the terminal level, make sure we are listening for audio clips
// and here it's just an access of that map of content for each conversation's blocks
// the reference last active date based on current session of viewing this conversation
const [lastActiveDate, setLastActiveDate] = useState<Date>(null);
// join the room
useEffect(() => {
if (selectedConversation.membersInRoom?.length > 0) {
// join the audio room
if (selectedConversation.membersInRoom?.length > 1) {
// join the audio room with hms
}
}, [selectedConversation.membersInRoom]);
// update my last active date in this conversation
// put me in the membersInRoom
useEffect(() => {
setLastActiveDate((prevLastActiveForCurrentSession) => {
if (prevLastActiveForCurrentSession) return prevLastActiveForCurrentSession;
return selectedConversation.members[user.uid].lastActiveDate?.toDate();
});
if (!selectedConversation.memberIdsList.includes(user.uid))
joinConversation(selectedConversation.id, user.uid);
return () => {
leaveConversation(selectedConversation.id, user.uid);
};
}, [selectedConversation.members, user.uid, setLastActiveDate, selectedConversation.id]);
// TODO: uncheck priority or not
// soft max of 10...not going to enforce by counting all in database, but relying on client side list of convos
useEffect(() => {
(async () => {
const userPromises = selectedConversation.memberIdsList