fix sse error handling if shop api error part 3
This commit is contained in:
@@ -69,8 +69,28 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
) !== null;
|
||||
}
|
||||
|
||||
function isWhitespaceTextNode(node) {
|
||||
return node.nodeType === Node.TEXT_NODE && (node.textContent || '').trim() === '';
|
||||
}
|
||||
|
||||
function isBreakNode(node) {
|
||||
return node.nodeType === Node.ELEMENT_NODE && node.tagName === 'BR';
|
||||
}
|
||||
|
||||
function trimEdgeBreaks(element) {
|
||||
while (element.firstChild && (isWhitespaceTextNode(element.firstChild) || isBreakNode(element.firstChild))) {
|
||||
element.firstChild.remove();
|
||||
}
|
||||
|
||||
while (element.lastChild && (isWhitespaceTextNode(element.lastChild) || isBreakNode(element.lastChild))) {
|
||||
element.lastChild.remove();
|
||||
}
|
||||
}
|
||||
|
||||
function cleanupEmptyBlocks(container) {
|
||||
container.querySelectorAll('p, div, li, blockquote').forEach((el) => {
|
||||
trimEdgeBreaks(el);
|
||||
|
||||
const html = el.innerHTML
|
||||
.replace(/<br\s*\/?>/gi, '')
|
||||
.replace(/ /gi, '')
|
||||
@@ -87,6 +107,8 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
el.remove();
|
||||
}
|
||||
});
|
||||
|
||||
trimEdgeBreaks(container);
|
||||
}
|
||||
|
||||
function removeThinkSpansOnly(container) {
|
||||
@@ -165,6 +187,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
const thinkSpans = Array.from(container.querySelectorAll('.think'));
|
||||
|
||||
if (thinkSpans.length === 0) {
|
||||
cleanupEmptyBlocks(container);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -350,7 +373,8 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
firstChunk = false;
|
||||
}
|
||||
|
||||
raw += `\n\n<em>${safeMessage}</em>`;
|
||||
const formattedMessage = `<em>${safeMessage}</em>`;
|
||||
raw += raw.trim() === '' ? formattedMessage : `\n\n${formattedMessage}`;
|
||||
finalizeStream(bubble, raw);
|
||||
};
|
||||
|
||||
@@ -486,7 +510,8 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
const userMessage = 'Die Verbindung zum Antwort-Stream wurde unterbrochen. Bitte sende die Anfrage erneut, falls die Antwort unvollständig ist.';
|
||||
|
||||
if (raw.trim() !== '') {
|
||||
raw += `\n\n<em>${userMessage}</em>`;
|
||||
const formattedMessage = `<em>${userMessage}</em>`;
|
||||
raw += raw.trim() === '' ? formattedMessage : `\n\n${formattedMessage}`;
|
||||
renderBubbleContent(bubble, raw);
|
||||
} else {
|
||||
bubble.innerHTML = `<em>${userMessage}</em>`;
|
||||
|
||||
Reference in New Issue
Block a user