courrier multi account restore compose
This commit is contained in:
parent
38d11a5dfd
commit
7963852af6
@ -17,24 +17,31 @@ export function formatEmailContent(email: any): string {
|
||||
// Get the content in order of preference
|
||||
let content = '';
|
||||
|
||||
if (email.formattedContent) {
|
||||
console.log('formatEmailContent: Using formattedContent');
|
||||
content = email.formattedContent;
|
||||
if (email.content && typeof email.content === 'object') {
|
||||
console.log('formatEmailContent: Using object content:', email.content);
|
||||
content = email.content.html || email.content.text || '';
|
||||
} else if (typeof email.content === 'string') {
|
||||
console.log('formatEmailContent: Using direct string content');
|
||||
content = email.content;
|
||||
} else if (email.content && typeof email.content === 'object') {
|
||||
console.log('formatEmailContent: Using object content:', email.content);
|
||||
content = email.content.html || email.content.text || '';
|
||||
} else {
|
||||
console.log('formatEmailContent: Using fallback content');
|
||||
content = email.html || email.text || '';
|
||||
} else if (email.html) {
|
||||
console.log('formatEmailContent: Using html content');
|
||||
content = email.html;
|
||||
} else if (email.text) {
|
||||
console.log('formatEmailContent: Using text content');
|
||||
content = email.text;
|
||||
} else if (email.formattedContent) {
|
||||
console.log('formatEmailContent: Using formattedContent');
|
||||
content = email.formattedContent;
|
||||
}
|
||||
|
||||
console.log('formatEmailContent: Content before sanitization:', content);
|
||||
|
||||
// Sanitize the content for display
|
||||
const sanitizedContent = DOMPurify.sanitize(content);
|
||||
// Sanitize the content for display while preserving formatting
|
||||
const sanitizedContent = DOMPurify.sanitize(content, {
|
||||
ADD_TAGS: ['style'],
|
||||
ADD_ATTR: ['class', 'style', 'dir'],
|
||||
ALLOW_DATA_ATTR: false
|
||||
});
|
||||
|
||||
console.log('formatEmailContent: Final sanitized content:', sanitizedContent);
|
||||
|
||||
|
||||
@ -94,6 +94,11 @@ export interface EmailMessage {
|
||||
contentFetched?: boolean;
|
||||
}
|
||||
|
||||
interface EmailContent {
|
||||
html?: string;
|
||||
text?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Format email addresses for display
|
||||
*/
|
||||
@ -258,7 +263,16 @@ export function formatReplyEmail(email: EmailMessage, type: 'reply' | 'reply-all
|
||||
const quoteHeader = `<div style="font-weight: 400; color: #555; margin: 20px 0 8px 0; font-size: 13px;">On ${formattedDate}, ${fromText} wrote:</div>`;
|
||||
|
||||
// Get and sanitize original content (sanitization preserves content direction)
|
||||
const originalContent = email.html || email.content || email.text || '';
|
||||
let originalContent = '';
|
||||
if (email.content && typeof email.content === 'object') {
|
||||
const contentObj = email.content as EmailContent;
|
||||
originalContent = contentObj.html || contentObj.text || '';
|
||||
} else if (typeof email.content === 'string') {
|
||||
originalContent = email.content;
|
||||
} else {
|
||||
originalContent = email.html || email.text || '';
|
||||
}
|
||||
|
||||
const quotedContent = sanitizeHtml(originalContent);
|
||||
|
||||
// Format recipients
|
||||
|
||||
Loading…
Reference in New Issue
Block a user