From 19c54d7d26b8449b4e7bbab8d98dccdd02ac20f4 Mon Sep 17 00:00:00 2001
From: Alexey Lunin <alexey.lunin@vereign.com>
Date: Wed, 4 Oct 2023 06:52:49 +0300
Subject: [PATCH] fix subjects

---
 src/screens/EmailDetails/Subject.tsx | 39 +++++++++++++++++++++++-----
 src/screens/EmailDetails/index.tsx   |  4 ++-
 2 files changed, 35 insertions(+), 8 deletions(-)

diff --git a/src/screens/EmailDetails/Subject.tsx b/src/screens/EmailDetails/Subject.tsx
index 86a6377..aed4724 100644
--- a/src/screens/EmailDetails/Subject.tsx
+++ b/src/screens/EmailDetails/Subject.tsx
@@ -4,15 +4,24 @@ import { StyleSheet, Text, View } from 'react-native';
 import EmailSvg from 'src/assets/svg/e-mail.svg';
 import { ColorPallet, TextTheme } from 'src/theme/theme';
 import Card from 'src/components/EmailCard';
+import {parseEmailAddresses} from "../../utils/email";
 
 interface Props {
   subject: string;
-  recipients: string[];
+  to: string;
+  cc: string;
+  bcc: string;
 }
 
-const Subject = ({ subject, recipients }: Props) => {
+const Subject = ({ subject, to, cc, bcc }: Props) => {
   const { t } = useTranslation();
 
+  const toList = parseEmailAddresses(to);
+  const ccList = parseEmailAddresses(cc);
+  const bccList = parseEmailAddresses(bcc);
+
+  const all = [...toList, ...ccList, ...bccList];
+
   return (
     <Card background="white" SvgIcon={EmailSvg}>
       <View style={styles.container}>
@@ -20,13 +29,29 @@ const Subject = ({ subject, recipients }: Props) => {
           <Text style={styles.subject}>{subject || t<string>('Seal.Details.NoSubject')}</Text>
         )}
         <Text style={styles.recipientLabel}>
-          {recipients.length ? t<string>('Seal.Details.Recipients') : t<string>('Seal.Details.NoRecipients')}
+          {all.length ? t<string>('Seal.Details.Recipients') : t<string>('Seal.Details.NoRecipients')}
         </Text>
 
-        {recipients.map((recipient) => (
-          <React.Fragment key={recipient}>
-            <Text style={styles.recipientName}>{recipient}</Text>
-          </React.Fragment>
+        {toList.map((recipient) => (
+          <Text
+            key={recipient.email}
+            style={styles.recipientName}>
+            to: {recipient.name} {recipient.email}
+          </Text>
+        ))}
+        {ccList.map((recipient) => (
+          <Text
+            key={recipient.email}
+            style={styles.recipientName}>
+            cc: {recipient.name} {recipient.email}
+          </Text>
+        ))}
+        {bccList.map((recipient) => (
+          <Text
+            key={recipient.email}
+            style={styles.recipientName}>
+            bcc: {recipient.name} {recipient.email}
+          </Text>
         ))}
       </View>
     </Card>
diff --git a/src/screens/EmailDetails/index.tsx b/src/screens/EmailDetails/index.tsx
index dac62be..66031b2 100644
--- a/src/screens/EmailDetails/index.tsx
+++ b/src/screens/EmailDetails/index.tsx
@@ -144,7 +144,9 @@ const EmailDetails: React.FC<EmailDetailsProps> = observer(({
           />
           <Subject
             subject={email.subject}
-            recipients={email.to?.split(',').map(p => p.trim()) || []}
+            to={email.to}
+            cc={email.cc}
+            bcc={email.bcc}
           />
           <ContentCard
             html={html}
-- 
GitLab