From 5950a31632c213a564650a98c70b474cefd0f1de Mon Sep 17 00:00:00 2001 From: Bohdan Triapitsyn Date: Sun, 25 Jan 2026 18:52:58 +0200 Subject: [PATCH] fix: Chrome diff scroll in All Files layout (#213) Replace nested ScrollableOverlay with simple div in inline diff to fix vertical scroll blocking in Chrome. Add explicit h-full to stacked view flex container and disableHorizontal to main ScrollableOverlay for proper scroll behavior. --- packages/ui/src/components/ui/ScrollableOverlay.tsx | 2 +- packages/ui/src/components/views/DiffView.tsx | 5 +++-- packages/ui/src/components/views/PierreDiffViewer.tsx | 9 +++------ 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/packages/ui/src/components/ui/ScrollableOverlay.tsx b/packages/ui/src/components/ui/ScrollableOverlay.tsx index 7b00b51e..1ca61570 100644 --- a/packages/ui/src/components/ui/ScrollableOverlay.tsx +++ b/packages/ui/src/components/ui/ScrollableOverlay.tsx @@ -41,7 +41,7 @@ export const ScrollableOverlay = React.forwardRef} className={cn( "overlay-scrollbar-target overlay-scrollbar-container overscroll-none", - fillContainer ? "flex-1 min-h-0 w-full h-full" : "flex-none w-full h-auto", + fillContainer ? "flex-1 min-h-0 w-full" : "flex-none w-full h-auto", disableHorizontal ? "overflow-y-auto overflow-x-hidden" : "overflow-auto", className )} diff --git a/packages/ui/src/components/views/DiffView.tsx b/packages/ui/src/components/views/DiffView.tsx index 546f4209..88516fe1 100644 --- a/packages/ui/src/components/views/DiffView.tsx +++ b/packages/ui/src/components/views/DiffView.tsx @@ -1072,7 +1072,7 @@ export const DiffView: React.FC = () => { if (!effectiveDirectory) return null; return ( -
+
{showFileSidebar && (
@@ -1088,8 +1088,9 @@ export const DiffView: React.FC = () => { )}
{changedFiles.map((file) => ( diff --git a/packages/ui/src/components/views/PierreDiffViewer.tsx b/packages/ui/src/components/views/PierreDiffViewer.tsx index a2d65b9f..6ac0a43a 100644 --- a/packages/ui/src/components/views/PierreDiffViewer.tsx +++ b/packages/ui/src/components/views/PierreDiffViewer.tsx @@ -482,19 +482,16 @@ export const PierreDiffViewer: React.FC = ({ } // Fallback for 'inline' layout: use Portal behavior + // Use simple div with overflow-x-auto to avoid nested ScrollableOverlay issues in Chrome return (
- +
- +
{selection && createPortal(