optimize ux think mode

This commit is contained in:
team 1
2026-04-11 21:00:27 +02:00
parent 6559f87dbc
commit 0a05ccaee3

View File

@@ -13,6 +13,17 @@ document.addEventListener('DOMContentLoaded', () => {
return DOMPurify.sanitize(marked.parse(text)); return DOMPurify.sanitize(marked.parse(text));
} }
function enhanceChatLinks(container = chatEl) {
if (!container) {
return;
}
container.querySelectorAll('a[href]').forEach((link) => {
link.setAttribute('target', '_blank');
link.setAttribute('rel', 'noopener noreferrer');
});
}
function addMessage(role, html = '', extra = '') { function addMessage(role, html = '', extra = '') {
const msg = document.createElement('div'); const msg = document.createElement('div');
msg.className = 'message ' + role; msg.className = 'message ' + role;
@@ -23,6 +34,9 @@ document.addEventListener('DOMContentLoaded', () => {
msg.appendChild(bubble); msg.appendChild(bubble);
chatEl.appendChild(msg); chatEl.appendChild(msg);
enhanceChatLinks(bubble);
chatEl.scrollTop = chatEl.scrollHeight; chatEl.scrollTop = chatEl.scrollHeight;
return bubble; return bubble;
@@ -182,6 +196,7 @@ document.addEventListener('DOMContentLoaded', () => {
function renderBubbleContent(bubble, raw) { function renderBubbleContent(bubble, raw) {
bubble.innerHTML = renderMarkdown(raw); bubble.innerHTML = renderMarkdown(raw);
cleanupThinkSpans(bubble); cleanupThinkSpans(bubble);
enhanceChatLinks(bubble);
chatEl.scrollTop = chatEl.scrollHeight; chatEl.scrollTop = chatEl.scrollHeight;
} }
@@ -191,6 +206,7 @@ document.addEventListener('DOMContentLoaded', () => {
if (!res.ok) return; if (!res.ok) return;
const messages = await res.json(); const messages = await res.json();
messages.forEach(m => addMessage(m.role, renderMarkdown(m.text))); messages.forEach(m => addMessage(m.role, renderMarkdown(m.text)));
enhanceChatLinks(chatEl);
} catch {} } catch {}
} }
@@ -288,6 +304,7 @@ document.addEventListener('DOMContentLoaded', () => {
} }
} catch { } catch {
bubble.innerHTML += '<br><em>Error occurred.</em>'; bubble.innerHTML += '<br><em>Error occurred.</em>';
enhanceChatLinks(bubble);
} finally { } finally {
if (renderTimer) { if (renderTimer) {
clearTimeout(renderTimer); clearTimeout(renderTimer);