build fix
This commit is contained in:
parent
27a729f986
commit
e280e2bce1
@ -67,28 +67,65 @@ export function applyTextDirection(htmlContent: string, textContent?: string): s
|
|||||||
* Process content to determine direction and return direction-enhanced HTML
|
* Process content to determine direction and return direction-enhanced HTML
|
||||||
*
|
*
|
||||||
* @param content Content to process (HTML or plain text)
|
* @param content Content to process (HTML or plain text)
|
||||||
* @returns Object containing processed HTML and detected direction
|
* @returns Object containing processed HTML, plain text, and detected direction
|
||||||
*/
|
*/
|
||||||
export function processContentWithDirection(content: string | undefined): { html: string; direction: 'ltr' | 'rtl' } {
|
export function processContentWithDirection(content: string | undefined | { html?: string; text?: string }): {
|
||||||
|
html: string;
|
||||||
|
text: string;
|
||||||
|
direction: 'ltr' | 'rtl'
|
||||||
|
} {
|
||||||
if (!content) {
|
if (!content) {
|
||||||
return { html: '', direction: 'ltr' };
|
return { html: '', text: '', direction: 'ltr' };
|
||||||
}
|
}
|
||||||
|
|
||||||
// Extract text from the content for direction detection
|
let htmlContent = '';
|
||||||
const textContent = content.replace(/<[^>]*>/g, '')
|
let textContent = '';
|
||||||
.replace(/ /g, ' ')
|
|
||||||
.replace(/</g, '<')
|
// Handle different content types
|
||||||
.replace(/>/g, '>')
|
if (typeof content === 'string') {
|
||||||
.replace(/&/g, '&');
|
// String content might be HTML or plain text
|
||||||
|
if (content.includes('<') && (content.includes('<html') || content.includes('<body') || content.includes('<div'))) {
|
||||||
|
htmlContent = content;
|
||||||
|
textContent = content.replace(/<[^>]*>/g, '')
|
||||||
|
.replace(/ /g, ' ')
|
||||||
|
.replace(/</g, '<')
|
||||||
|
.replace(/>/g, '>')
|
||||||
|
.replace(/&/g, '&');
|
||||||
|
} else {
|
||||||
|
// It's plain text
|
||||||
|
textContent = content;
|
||||||
|
// Create simple HTML from the plain text (preserve whitespace)
|
||||||
|
htmlContent = content.replace(/\n/g, '<br>').replace(/\s\s/g, ' ');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// It's an object with html and/or text properties
|
||||||
|
htmlContent = content.html || '';
|
||||||
|
textContent = content.text || '';
|
||||||
|
|
||||||
|
// If we have HTML but no text, extract text from HTML
|
||||||
|
if (htmlContent && !textContent) {
|
||||||
|
textContent = htmlContent.replace(/<[^>]*>/g, '')
|
||||||
|
.replace(/ /g, ' ')
|
||||||
|
.replace(/</g, '<')
|
||||||
|
.replace(/>/g, '>')
|
||||||
|
.replace(/&/g, '&');
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we have text but no HTML, create simple HTML from the text
|
||||||
|
if (textContent && !htmlContent) {
|
||||||
|
htmlContent = textContent.replace(/\n/g, '<br>').replace(/\s\s/g, ' ');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Detect the direction of the text
|
// Detect the direction of the text
|
||||||
const direction = detectTextDirection(textContent);
|
const direction = detectTextDirection(textContent);
|
||||||
|
|
||||||
// Apply the direction to the HTML content
|
// Apply the direction to the HTML content
|
||||||
const directionEnhancedHtml = applyTextDirection(content, textContent);
|
const directionEnhancedHtml = applyTextDirection(htmlContent, textContent);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
html: directionEnhancedHtml,
|
html: directionEnhancedHtml,
|
||||||
|
text: textContent,
|
||||||
direction
|
direction
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue
Block a user