From 6c0544b239b03fe402f46dc66f98611b9cc886c6 Mon Sep 17 00:00:00 2001 From: akumatus Date: Tue, 24 Dec 2024 10:48:16 +0000 Subject: [PATCH] fix(core): ai chat panel content will be inconsistent when switching to journals (#9288) Fix issue [BS-2153](https://linear.app/affine-design/issue/BS-2153). Optimize DOM reuse by explicitly providing an identifier (similar to React's key). --- .../ai/chat-panel/chat-panel-messages.ts | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/chat-panel-messages.ts b/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/chat-panel-messages.ts index 0510671eb0..cdea1d802c 100644 --- a/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/chat-panel-messages.ts +++ b/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/chat-panel-messages.ts @@ -255,13 +255,19 @@ export class ChatPanelMessages extends WithDisposable(ShadowlessElement) { ${this._renderAIOnboarding()} ` - : repeat(filteredItems, (item, index) => { - const isLast = index === filteredItems.length - 1; - return html`
- ${this.renderAvatar(item)} -
${this.renderItem(item, isLast)}
-
`; - })} + : repeat( + filteredItems, + item => ('role' in item ? item.id : item.sessionId), + (item, index) => { + const isLast = index === filteredItems.length - 1; + return html`
+ ${this.renderAvatar(item)} +
+ ${this.renderItem(item, isLast)} +
+
`; + } + )}