fix(ui): suppress double scrollbar in log + timeline panels
All checks were successful
CI / cleanup-branch (push) Has been skipped
CI / build (push) Successful in 1m27s
CI / docker (push) Successful in 1m17s
CI / deploy-feature (push) Has been skipped
CI / deploy (push) Successful in 40s

LogViewer and EventFeed each apply overflow-y:auto to their root
container, which produced a nested scrollbar inside the
InfiniteScrollArea that also scrolls. A flatScroll override class
flattens the DS component so the outer InfiniteScrollArea owns the
single scrollbar — matching the IntersectionObserver sentinels that
drive infinite-load.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
hsiegeln
2026-04-17 14:38:15 +02:00
parent 89c9b53edd
commit 806a817c07
3 changed files with 14 additions and 4 deletions

View File

@@ -966,7 +966,7 @@ export default function AgentHealth() {
maxHeight={360}
>
{filteredLogs.length > 0 ? (
<LogViewer entries={filteredLogs} />
<LogViewer entries={filteredLogs} className={logStyles.flatScroll} />
) : (
<div className={logStyles.logEmpty}>
{logSearch || logLevels.size > 0 || logSources.size > 0
@@ -1004,7 +1004,7 @@ export default function AgentHealth() {
maxHeight={360}
>
{feedEvents.length > 0 ? (
<EventFeed events={feedEvents} />
<EventFeed events={feedEvents} className={logStyles.flatScroll} />
) : (
<div className={logStyles.logEmpty}>
{eventStream.isLoading ? 'Loading events\u2026' : 'No events in the selected time range.'}

View File

@@ -472,7 +472,7 @@ export default function AgentInstance() {
maxHeight={360}
>
{filteredLogs.length > 0 ? (
<LogViewer entries={filteredLogs} />
<LogViewer entries={filteredLogs} className={logStyles.flatScroll} />
) : (
<div className={logStyles.logEmpty}>
{logSearch || logLevels.size > 0 || logSources.size > 0
@@ -510,7 +510,7 @@ export default function AgentInstance() {
maxHeight={360}
>
{feedEvents.length > 0 ? (
<EventFeed events={feedEvents} />
<EventFeed events={feedEvents} className={logStyles.flatScroll} />
) : (
<div className={logStyles.logEmpty}>
{eventStream.isLoading ? 'Loading events…' : 'No events in the selected time range.'}