From 16ea92aec5d28793cc8fc55ef15eb24204877ec7 Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Tue, 17 Feb 2026 20:05:20 +0700 Subject: [PATCH] fix(app): stop mobile web sidebars from intercepting taps when closed --- packages/app/src/components/explorer-sidebar.tsx | 5 +++-- packages/app/src/components/sliding-sidebar.tsx | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/app/src/components/explorer-sidebar.tsx b/packages/app/src/components/explorer-sidebar.tsx index 9f9603d97..4b8c44914 100644 --- a/packages/app/src/components/explorer-sidebar.tsx +++ b/packages/app/src/components/explorer-sidebar.tsx @@ -240,8 +240,9 @@ export function ExplorerSidebar({ serverId, agentId, cwd, isGit }: ExplorerSideb width: resizeWidth.value, })); - // Mobile: full-screen overlay with gesture - const overlayPointerEvents = Platform.OS === "web" ? "auto" : "box-none"; + // Mobile: full-screen overlay with gesture. + // On web, keep it interactive only while open so closed sidebars don't eat taps. + const overlayPointerEvents = Platform.OS === "web" ? (isOpen ? "auto" : "none") : "box-none"; if (isMobile) { return ( diff --git a/packages/app/src/components/sliding-sidebar.tsx b/packages/app/src/components/sliding-sidebar.tsx index 2514bb839..b12213ab8 100644 --- a/packages/app/src/components/sliding-sidebar.tsx +++ b/packages/app/src/components/sliding-sidebar.tsx @@ -325,8 +325,9 @@ export function SlidingSidebar({ selectedAgentId }: SlidingSidebarProps) { // Render mobile sidebar - // On web, use "auto" instead of "box-none" because web's pointer-events: none blocks scroll - const overlayPointerEvents = Platform.OS === "web" ? "auto" : "box-none"; + // On web, keep the overlay interactive only while the sidebar is open. + // This preserves swipe/scroll behavior without blocking taps when closed. + const overlayPointerEvents = Platform.OS === "web" ? (isOpen ? "auto" : "none") : "box-none"; if (isMobile) { return (