Centralize tool call scroll helpers

This commit is contained in:
Shantur Rathore
2025-12-06 22:22:44 +00:00
parent 0b9cce6f86
commit 04f6e362b9
3 changed files with 42 additions and 13 deletions

View File

@@ -40,7 +40,7 @@ export const taskRenderer: ToolRenderer = {
}
return base
},
renderBody({ toolState, toolCall, messageVersion, partVersion }) {
renderBody({ toolState, toolCall, messageVersion, partVersion, scrollHelpers }) {
const items = createMemo(() => {
// Track the reactive change points so we only recompute when the part/message changes
messageVersion?.()
@@ -63,7 +63,11 @@ export const taskRenderer: ToolRenderer = {
if (items().length === 0) return null
return (
<div class="message-text tool-call-markdown tool-call-task-container">
<div
class="message-text tool-call-markdown tool-call-task-container"
ref={(element) => scrollHelpers?.registerContainer(element)}
onScroll={scrollHelpers ? (event) => scrollHelpers.handleScroll(event as Event & { currentTarget: HTMLDivElement }) : undefined}
>
<div class="tool-call-task-summary">
<For each={items()}>
{(item) => {
@@ -78,7 +82,9 @@ export const taskRenderer: ToolRenderer = {
}}
</For>
</div>
{scrollHelpers?.renderSentinel?.()}
</div>
)
},
}