fix: mobile sidebar (#6760)
* fix: mobile sidebar * fix(web): prevent iOS sidebar taps from being swallowed
This commit is contained in:
@@ -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>
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user