Divide Conversation into ConversationInfos, ConversationMember, and ConversationSummary
- ConversationSummary is used to display ConversationList.
- Having the three separated will help managing queries.
- Adding ConversationSummary required to solve some inconsistencies in ConversationList, which was mixing contacts and conversations. ContactSearchResultList has been added as a quick fix . It will need more work.
- Some tools to uniformize conversation names have been introduced. They will need more work.
Note the diplaying of ConversationList is left broken in this commit.
Change-Id: I29337906cc43781a9c4790735490a6ee2cc51cb0
diff --git a/client/src/contexts/CallManagerProvider.tsx b/client/src/contexts/CallManagerProvider.tsx
index c04010f..b99df69 100644
--- a/client/src/contexts/CallManagerProvider.tsx
+++ b/client/src/contexts/CallManagerProvider.tsx
@@ -15,7 +15,7 @@
* License along with this program. If not, see
* <https://www.gnu.org/licenses/>.
*/
-import { CallBegin, WebSocketMessageType } from 'jami-web-common';
+import { CallBegin, ConversationInfos, WebSocketMessageType } from 'jami-web-common';
import { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
import { useTranslation } from 'react-i18next';
import { useNavigate } from 'react-router-dom';
@@ -23,9 +23,9 @@
import { AlertSnackbar } from '../components/AlertSnackbar';
import { RemoteVideoOverlay } from '../components/VideoOverlay';
import { useUrlParams } from '../hooks/useUrlParams';
-import { Conversation } from '../models/conversation';
+import { ConversationMember } from '../models/conversation-member';
import { ConversationRouteParams } from '../router';
-import { useConversationQuery } from '../services/conversationQueries';
+import { useConversationInfosQuery, useMembersQuery } from '../services/conversationQueries';
import { SetState, WithChildren } from '../utils/utils';
import CallProvider, { CallRole } from './CallProvider';
import WebRtcProvider from './WebRtcProvider';
@@ -39,16 +39,16 @@
type ICallManagerContext = {
callData: CallData | undefined;
- callConversation: Conversation | undefined;
-
+ callConversationInfos: ConversationInfos | undefined;
+ callMembers: ConversationMember[] | undefined;
startCall: SetState<CallData | undefined>;
exitCall: () => void;
};
const defaultCallManagerContext: ICallManagerContext = {
callData: undefined,
- callConversation: undefined,
-
+ callConversationInfos: undefined,
+ callMembers: undefined,
startCall: () => {},
exitCall: () => {},
};
@@ -60,7 +60,8 @@
const [callData, setCallData] = useState<CallData>();
const webSocket = useContext(WebSocketContext);
const navigate = useNavigate();
- const { conversation } = useConversationQuery(callData?.conversationId);
+ const { data: conversationInfos } = useConversationInfosQuery(callData?.conversationId);
+ const { data: members } = useMembersQuery(callData?.conversationId);
const { urlParams } = useUrlParams<ConversationRouteParams>();
const [missedCallConversationId, setMissedCallConversationId] = useState<string>();
const { t } = useTranslation();
@@ -108,10 +109,11 @@
() => ({
startCall,
callData,
- callConversation: conversation,
+ callConversationInfos: conversationInfos,
+ callMembers: members,
exitCall,
}),
- [startCall, callData, conversation, exitCall]
+ [startCall, callData, conversationInfos, members, exitCall]
);
return (