From 33c2872d81e8b8f782a6ec8325fde03eb3108e89 Mon Sep 17 00:00:00 2001 From: talksik Date: Sun, 19 Jun 2022 08:06:21 -0500 Subject: [PATCH] Update ConversationProvider.tsx --- .../src/providers/ConversationProvider.tsx | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/packages/desktop/src/providers/ConversationProvider.tsx b/packages/desktop/src/providers/ConversationProvider.tsx index e833b2e..b9889a8 100644 --- a/packages/desktop/src/providers/ConversationProvider.tsx +++ b/packages/desktop/src/providers/ConversationProvider.tsx @@ -10,7 +10,7 @@ import { } from '@nirvana/core/sockets/channels'; import Conversation, { MemberState } from '@nirvana/core/models/conversation.model'; import { ConversationMap, MasterConversation } from '../util/types'; -import React, { useCallback, useEffect, useState } from 'react'; +import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { checkIfOnOnOneExists, createConversation, @@ -322,6 +322,25 @@ export function ConversationProvider({ children }: { children: React.ReactNode } [selectConversation], ); + const masterConversations = useMemo(() => { + const priorityConversations: MasterConversation[] = []; + const inboxConversations: MasterConversation[] = []; + + Object.values(conversationMap).forEach((currentMasterConversation) => { + const personalConvoMember = currentMasterConversation.members.find( + (mem) => mem._id.toString() === user._id.toString(), + ); + if (personalConvoMember && personalConvoMember.memberState === 'priority') { + priorityConversations.push(currentMasterConversation); + + return; + } + inboxConversations.push(currentMasterConversation); + }); + + return [priorityConversations, inboxConversations]; + }, [conversationMap, user]); + // ============== STREAMING =============== // handle incoming calls and accept calls and create objects for them useEffect(() => {