diff --git a/desktop/src/features/channels/ui/BotActivityBar.tsx b/desktop/src/features/channels/ui/BotActivityBar.tsx index bfe322764..32d6572c7 100644 --- a/desktop/src/features/channels/ui/BotActivityBar.tsx +++ b/desktop/src/features/channels/ui/BotActivityBar.tsx @@ -105,7 +105,11 @@ function useStripOverflowFades( const observer = new ResizeObserver(updateFades); observer.observe(node); // The content wrapper is the scroller's only child; observing it catches - // overflow changes that don't touch the scroller's own box. + // overflow changes that don't touch the scroller's own box. This relies + // on the wrapper being min-w-max (multi-item strip): if it could + // collapse to the scroller's width, content growing INSIDE it (label + // tickers swap after a resize settles) would change scrollWidth without + // resizing any observed element, leaving the fades stale. const content = node.firstElementChild; if (content !== null) { observer.observe(content); @@ -602,7 +606,19 @@ export function BotActivityComposerAction({ onScroll={updateFades} ref={scrollerRef} > -