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/components/SendMessageForm.tsx b/client/src/components/SendMessageForm.tsx
index 7bb7a7f..a94ab56 100644
--- a/client/src/components/SendMessageForm.tsx
+++ b/client/src/components/SendMessageForm.tsx
@@ -21,7 +21,8 @@
import { useTranslation } from 'react-i18next';
import { useAuthContext } from '../contexts/AuthProvider';
-import { ConversationMember } from '../models/conversation';
+import { useConversationContext } from '../contexts/ConversationProvider';
+import { ConversationMember } from '../models/conversation-member';
import { translateEnumeration, TranslateEnumerationOptions } from '../utils/translations';
import {
RecordVideoMessageButton,
@@ -32,12 +33,12 @@
} from './Button';
type SendMessageFormProps = {
- members: ConversationMember[];
onSend: (message: string) => void;
openFilePicker: () => void;
};
-export default function SendMessageForm({ members, onSend, openFilePicker }: SendMessageFormProps) {
+export default function SendMessageForm({ onSend, openFilePicker }: SendMessageFormProps) {
+ const { members } = useConversationContext();
const [currentMessage, setCurrentMessage] = useState('');
const placeholder = usePlaceholder(members);
@@ -97,7 +98,7 @@
return useMemo(() => {
const options: TranslateEnumerationOptions<ConversationMember> = {
elementPartialKey: 'member',
- getElementValue: (member) => getMemberName(member),
+ getElementValue: (member) => member.getDisplayName(),
translaters: [
() =>
// The user is chatting with themself
@@ -113,8 +114,3 @@
return translateEnumeration<ConversationMember>(members, options);
}, [account, members, t]);
};
-
-const getMemberName = (member: ConversationMember) => {
- const contact = member.contact;
- return contact.getDisplayName();
-};