diff --git a/packages/ui/src/components/tool-call.tsx b/packages/ui/src/components/tool-call.tsx index e3d4eba6..35bc02db 100644 --- a/packages/ui/src/components/tool-call.tsx +++ b/packages/ui/src/components/tool-call.tsx @@ -9,7 +9,14 @@ import type { DiffViewMode } from "../stores/preferences" import { sendPermissionResponse } from "../stores/instances" import type { TextPart, RenderCache } from "../types/message" import { resolveToolRenderer } from "./tool-call/renderers" -import type { DiffPayload, DiffRenderOptions, MarkdownRenderOptions, ToolCallPart, ToolRendererContext } from "./tool-call/types" +import type { + DiffPayload, + DiffRenderOptions, + MarkdownRenderOptions, + ToolCallPart, + ToolRendererContext, + ToolScrollHelpers, +} from "./tool-call/types" import { getRelativePath, getToolIcon, getToolName, isToolStateCompleted, isToolStateError, isToolStateRunning } from "./tool-call/utils" import { getLogger } from "../lib/logger" @@ -419,7 +426,20 @@ export default function ToolCall(props: ToolCallProps) { persistScrollSnapshot(event.currentTarget) } + const scrollHelpers: ToolScrollHelpers = { + registerContainer: (element, options) => { + if (options?.disableTracking) return + initializeScrollContainer(element) + }, + handleScroll: handleScrollEvent, + renderSentinel: (options) => { + if (options?.disableTracking) return null + return