+
{
+ markdownContainerRef = element || undefined
+ const id = toolCallId()
+ if (!element || !id) return
+
+ if (!toolScrollState.has(id)) {
+ requestAnimationFrame(() => {
+ if (!markdownContainerRef || toolCallId() !== id) return
+ markdownContainerRef.scrollTop = markdownContainerRef.scrollHeight
+ updateScrollState(id, markdownContainerRef)
+ })
+ } else {
+ restoreScrollState(id, element)
+ }
+ }}
+ onScroll={(event) => updateScrollState(toolCallId(), event.currentTarget)}
+ >
)
diff --git a/src/styles/components.css b/src/styles/components.css
index a2ba9fed..b01a5c17 100644
--- a/src/styles/components.css
+++ b/src/styles/components.css
@@ -763,6 +763,15 @@ button.button-primary {
padding: 0;
font-size: var(--font-size-xs);
line-height: var(--line-height-tight);
+ max-height: calc(15 * 1.4em);
+ overflow-y: auto;
+ scrollbar-width: thin;
+ scrollbar-color: var(--border-base) transparent;
+ scrollbar-gutter: stable both-edges;
+}
+
+.tool-call-markdown-large {
+ max-height: calc(50 * 1.4em);
}
.tool-call-markdown .markdown-code-block {
@@ -780,33 +789,25 @@ button.button-primary {
.tool-call-markdown .markdown-code-block pre {
margin: 0 !important;
min-height: auto;
- max-height: calc(15 * 1.4em);
- overflow-y: auto;
- scrollbar-width: thin;
- scrollbar-color: var(--border-base) transparent;
- scrollbar-gutter: stable both-edges;
+ max-height: none;
+ overflow-y: visible;
}
-.tool-call-markdown .markdown-code-block pre::-webkit-scrollbar {
+.tool-call-markdown::-webkit-scrollbar {
width: 8px;
}
-.tool-call-markdown .markdown-code-block pre::-webkit-scrollbar-track {
+.tool-call-markdown::-webkit-scrollbar-track {
background: transparent;
}
-.tool-call-markdown .markdown-code-block pre::-webkit-scrollbar-thumb {
+.tool-call-markdown::-webkit-scrollbar-thumb {
background-color: var(--border-base);
border-radius: 4px;
border: 2px solid transparent;
background-clip: padding-box;
}
-.tool-call-markdown-large .markdown-code-block pre {
- min-height: auto;
- max-height: calc(50 * 1.4em);
-}
-
.tool-call-section h4 {
font-size: var(--font-size-xs);
font-weight: var(--font-weight-semibold);