fix: mobile sidebar (#6760)

* fix: mobile sidebar

* fix(web): prevent iOS sidebar taps from being swallowed
This commit is contained in:
Seefs
2026-08-11 13:50:39 +08:00
committed by GitHub
parent bb234ff418
commit 4eaeefbdf5
4 changed files with 30 additions and 19 deletions
+5 -9
View File
@@ -207,7 +207,7 @@ function Sidebar({
data-sidebar='sidebar'
data-slot='sidebar'
data-mobile='true'
className='bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden'
className='bg-sidebar text-sidebar-foreground pointer-events-auto z-60 w-(--sidebar-width) p-0 [&>button]:hidden'
style={
{
'--sidebar-width': SIDEBAR_WIDTH_MOBILE,
@@ -530,6 +530,7 @@ function SidebarMenuButton({
tooltip?: string | React.ComponentProps<typeof TooltipContent>
} & VariantProps<typeof sidebarMenuButtonVariants>) {
const { isMobile, state } = useSidebar()
const tooltipEnabled = Boolean(tooltip) && !isMobile && state === 'collapsed'
const comp = useRender({
defaultTagName: 'button',
props: mergeProps<'button'>(
@@ -538,7 +539,7 @@ function SidebarMenuButton({
},
props
),
render: !tooltip ? render : <TooltipTrigger render={render} />,
render: tooltipEnabled ? <TooltipTrigger render={render} /> : render,
state: {
slot: 'sidebar-menu-button',
sidebar: 'menu-button',
@@ -547,7 +548,7 @@ function SidebarMenuButton({
},
})
if (!tooltip) {
if (!tooltipEnabled || !tooltip) {
return comp
}
@@ -561,12 +562,7 @@ function SidebarMenuButton({
<TooltipProvider delay={0}>
<Tooltip>
{comp}
<TooltipContent
side='right'
align='center'
hidden={state !== 'collapsed' || isMobile}
{...tooltip}
/>
<TooltipContent side='right' align='center' {...tooltip} />
</Tooltip>
</TooltipProvider>
)