diff --git a/src/apps/web/src/layouts/AppLayout.tsx b/src/apps/web/src/layouts/AppLayout.tsx index 226af4968..81fcc7869 100644 --- a/src/apps/web/src/layouts/AppLayout.tsx +++ b/src/apps/web/src/layouts/AppLayout.tsx @@ -54,21 +54,29 @@ const MainViewport = memo(function MainViewport({ notificationsOpen, closeNotifications, markNotificationRead, + contentOwnsScroll, }: { accessToken: string notificationsOpen: boolean closeNotifications: () => void markNotificationRead: () => void + contentOwnsScroll: boolean }) { useEffect(() => { if (!isPerfDebugEnabled()) return recordPerfValue('layout_main_viewport_render_count', 1, 'count', { notificationsOpen, + contentOwnsScroll, }) }) + const className = [ + 'relative flex min-h-0 min-w-0 flex-1 flex-col', + contentOwnsScroll ? 'overflow-hidden' : 'overflow-y-auto', + ].join(' ') + return ( -
+
{notificationsOpen && ( @@ -158,6 +166,8 @@ const LayoutMain = memo(function LayoutMain({ }) }) + const contentOwnsScroll = pathname === '/' || pathname === '/search' || pathname.startsWith('/t/') + return ( <> {settingsOpen && !desktop && ( @@ -196,6 +206,7 @@ const LayoutMain = memo(function LayoutMain({ notificationsOpen={notificationsOpen} closeNotifications={closeNotifications} markNotificationRead={markNotificationRead} + contentOwnsScroll={contentOwnsScroll} /> )}