46 lines
1.5 KiB
TypeScript
46 lines
1.5 KiB
TypeScript
import DOMPurify from 'dompurify';
|
|
|
|
export function formatEmailContent(email: any): string {
|
|
if (!email) {
|
|
console.log('formatEmailContent: No email provided');
|
|
return '';
|
|
}
|
|
|
|
try {
|
|
console.log('formatEmailContent: Raw email content:', {
|
|
content: email.content,
|
|
html: email.html,
|
|
text: email.text,
|
|
formattedContent: email.formattedContent
|
|
});
|
|
|
|
// Get the content in order of preference
|
|
let content = '';
|
|
|
|
if (email.formattedContent) {
|
|
console.log('formatEmailContent: Using formattedContent');
|
|
content = email.formattedContent;
|
|
} 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 || '';
|
|
}
|
|
|
|
console.log('formatEmailContent: Content before sanitization:', content);
|
|
|
|
// Sanitize the content for display
|
|
const sanitizedContent = DOMPurify.sanitize(content);
|
|
|
|
console.log('formatEmailContent: Final sanitized content:', sanitizedContent);
|
|
|
|
return sanitizedContent;
|
|
} catch (error) {
|
|
console.error('formatEmailContent: Error formatting email content:', error);
|
|
return '';
|
|
}
|
|
}
|