diff --git a/components/email/ComposeEmail.tsx b/components/email/ComposeEmail.tsx index d3b168fe..3f6b3495 100644 --- a/components/email/ComposeEmail.tsx +++ b/components/email/ComposeEmail.tsx @@ -127,7 +127,7 @@ export default function ComposeEmail({ ).join(', '); }; - // Initialize forwarded email with improved style handling + // Initialize forwarded email with a dead simple approach const initializeForwardedEmail = async () => { if (!initialEmail) { console.error('No email available for forwarding'); @@ -136,77 +136,56 @@ export default function ComposeEmail({ } try { - setSending(true); // Use sending state to show loading - // Format subject with Fwd: prefix if needed - const cleanSubject = initialEmail.subject?.replace(/^(Fwd|FW|Forward):\s*/i, '').trim() || ''; - const formattedSubject = initialEmail.subject?.match(/^(Fwd|FW|Forward):/i) - ? initialEmail.subject - : `Fwd: ${cleanSubject}`; + const subject = initialEmail.subject || "(No subject)"; + if (!subject.match(/^(Fwd|FW|Forward):/i)) { + setSubject(`Fwd: ${subject}`); + } else { + setSubject(subject); + } - setSubject(formattedSubject); + // Get email content - use whatever data we have available + const content = initialEmail.content || initialEmail.html || initialEmail.text || ''; - // Store the email content directly without complex parsing - const emailContent = initialEmail.content || ''; + // Get from info - handle various possible formats + let from = 'Unknown Sender'; + if (initialEmail.from) { + if (Array.isArray(initialEmail.from) && initialEmail.from.length > 0) { + from = initialEmail.from[0].address || 'Unknown'; + } else if (typeof initialEmail.from === 'string') { + from = initialEmail.from; + } + } - // Create a forwarding header with proper types - const fromDisplay = Array.isArray(initialEmail.from) && initialEmail.from.length > 0 - ? initialEmail.from.map(f => f.name ? `${f.name} <${f.address}>` : f.address).join(', ') - : 'Unknown Sender'; - - const toDisplay = Array.isArray(initialEmail.to) && initialEmail.to.length > 0 - ? initialEmail.to.map(t => t.name ? `${t.name} <${t.address}>` : t.address).join(', ') - : ''; - - const ccDisplay = initialEmail.cc && Array.isArray(initialEmail.cc) && initialEmail.cc.length > 0 - ? initialEmail.cc.map(c => c.name ? `${c.name} <${c.address}>` : c.address).join(', ') - : ''; - - const dateDisplay = initialEmail.date - ? initialEmail.date instanceof Date - ? initialEmail.date.toLocaleString() - : new Date(initialEmail.date as any).toLocaleString() - : ''; - - const subjectDisplay = initialEmail.subject || '(No subject)'; - - // Don't try to parse the content, just wrap it in a container - const contentDisplay = emailContent.trim() - ? `
---------- Forwarded message ---------
+From: ${from}
+Date: ${new Date().toLocaleString()}
+Subject: ${subject}
+To: ${Array.isArray(initialEmail.to) && initialEmail.to.length > 0 ? initialEmail.to[0].address : ''}
+No content available
'}---------- Forwarded message ---------
+From: ${initialEmail.from ? (Array.isArray(initialEmail.from) ? initialEmail.from[0].address : initialEmail.from) : 'Unknown'}
+Date: ${new Date().toLocaleString()}
+Subject: ${initialEmail.subject || ''}
+To: ${initialEmail.to ? (Array.isArray(initialEmail.to) ? initialEmail.to[0].address : initialEmail.to) : ''}
Content could not be displayed
`); } };