fix: 避免不同的消息类型之间的换行符导致显示异常

This commit is contained in:
CrescentLeaf
2025-11-17 00:04:45 +08:00
parent 9e8c9bc508
commit 4bf55749bb

View File

@@ -10,7 +10,7 @@ customElements.define('chat-text', class extends HTMLElement {
} }
connectedCallback() { connectedCallback() {
const shadow = this.shadowRoot as ShadowRoot const shadow = this.shadowRoot as ShadowRoot
this.span = document.createElement('span') this.span = document.createElement('span')
this.span.style.whiteSpace = 'pre-wrap' this.span.style.whiteSpace = 'pre-wrap'
this.span.style.fontSynthesis = 'style weight' this.span.style.fontSynthesis = 'style weight'
@@ -23,8 +23,17 @@ customElements.define('chat-text', class extends HTMLElement {
} }
update() { update() {
if (this.span == null) return if (this.span == null) return
this.span.textContent = this.textContent const isFirstElementInParent = this.parentElement?.firstElementChild == this
const isLastElementInParent = this.parentElement?.lastElementChild == this
// 避免不同的消息类型之间的换行符导致显示异常
if (isFirstElementInParent)
this.span.textContent = this.textContent.trimStart()
else if (isLastElementInParent)
this.span.textContent = this.textContent.trimEnd()
else
this.span.textContent = this.textContent
this.span.style.textDecoration = $(this).attr('underline') ? 'underline' : '' this.span.style.textDecoration = $(this).attr('underline') ? 'underline' : ''
this.span.style.fontStyle = $(this).attr('em') ? 'italic' : '' this.span.style.fontStyle = $(this).attr('em') ? 'italic' : ''
} }