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 (