@@ -137,7 +137,7 @@ export default function Layout(props: ParentProps) {
137137 const [ hoverSession , setHoverSession ] = createSignal < string | undefined > ( )
138138 const [ hoverProject , setHoverProject ] = createSignal < string | undefined > ( )
139139
140- const navRef = { current : undefined as HTMLElement | undefined }
140+ const [ nav , setNav ] = createSignal < HTMLElement | undefined > ( undefined )
141141
142142 const sidebarHovering = createMemo ( ( ) => ! layout . sidebar . opened ( ) && hoverProject ( ) !== undefined )
143143 const sidebarExpanded = createMemo ( ( ) => layout . sidebar . opened ( ) || sidebarHovering ( ) )
@@ -1702,10 +1702,11 @@ export default function Layout(props: ParentProps) {
17021702 >
17031703 < HoverCard
17041704 openDelay = { 1000 }
1705- closeDelay = { 0 }
1705+ closeDelay = { sidebarHovering ( ) ? 300 : 0 }
17061706 placement = "right"
17071707 gutter = { 28 }
17081708 trigger = { item }
1709+ mount = { ! props . mobile ? nav ( ) : undefined }
17091710 open = { hoverSession ( ) === props . session . id }
17101711 onOpenChange = { ( open ) => setHoverSession ( open ? props . session . id : undefined ) }
17111712 >
@@ -1743,7 +1744,7 @@ export default function Layout(props: ParentProps) {
17431744 "group-focus-within/session:opacity-100 group-focus-within/session:pointer-events-auto" : true ,
17441745 } }
17451746 >
1746- < DropdownMenu open = { menuOpen ( ) } onOpenChange = { setMenuOpen } >
1747+ < DropdownMenu modal = { ! sidebarHovering ( ) } open = { menuOpen ( ) } onOpenChange = { setMenuOpen } >
17471748 < Tooltip value = { language . t ( "common.moreOptions" ) } placement = "top" >
17481749 < DropdownMenu . Trigger
17491750 as = { IconButton }
@@ -1753,7 +1754,7 @@ export default function Layout(props: ParentProps) {
17531754 aria-label = { language . t ( "common.moreOptions" ) }
17541755 />
17551756 </ Tooltip >
1756- < DropdownMenu . Portal mount = { ! props . mobile ? navRef . current : undefined } >
1757+ < DropdownMenu . Portal mount = { ! props . mobile ? nav ( ) : undefined } >
17571758 < DropdownMenu . Content
17581759 onCloseAutoFocus = { ( event ) => {
17591760 if ( ! pendingRename ( ) ) return
@@ -1993,7 +1994,7 @@ export default function Layout(props: ParentProps) {
19931994 "group-focus-within/workspace:opacity-100 group-focus-within/workspace:pointer-events-auto" : true ,
19941995 } }
19951996 >
1996- < DropdownMenu open = { menuOpen ( ) } onOpenChange = { setMenuOpen } >
1997+ < DropdownMenu modal = { ! sidebarHovering ( ) } open = { menuOpen ( ) } onOpenChange = { setMenuOpen } >
19971998 < Tooltip value = { language . t ( "common.moreOptions" ) } placement = "top" >
19981999 < DropdownMenu . Trigger
19992000 as = { IconButton }
@@ -2003,7 +2004,7 @@ export default function Layout(props: ParentProps) {
20032004 aria-label = { language . t ( "common.moreOptions" ) }
20042005 />
20052006 </ Tooltip >
2006- < DropdownMenu . Portal mount = { ! props . mobile ? navRef . current : undefined } >
2007+ < DropdownMenu . Portal mount = { ! props . mobile ? nav ( ) : undefined } >
20072008 < DropdownMenu . Content
20082009 onCloseAutoFocus = { ( event ) => {
20092010 if ( ! pendingRename ( ) ) return
@@ -2411,15 +2412,15 @@ export default function Layout(props: ParentProps) {
24112412 </ Tooltip >
24122413 </ div >
24132414
2414- < DropdownMenu >
2415+ < DropdownMenu modal = { ! sidebarHovering ( ) } >
24152416 < DropdownMenu . Trigger
24162417 as = { IconButton }
24172418 icon = "dot-grid"
24182419 variant = "ghost"
24192420 class = "shrink-0 size-6 rounded-md opacity-0 group-hover/project:opacity-100 data-[expanded]:opacity-100 data-[expanded]:bg-surface-base-active"
24202421 aria-label = { language . t ( "common.moreOptions" ) }
24212422 />
2422- < DropdownMenu . Portal mount = { ! panelProps . mobile ? navRef . current : undefined } >
2423+ < DropdownMenu . Portal mount = { ! panelProps . mobile ? nav ( ) : undefined } >
24232424 < DropdownMenu . Content class = "mt-1" >
24242425 < DropdownMenu . Item onSelect = { ( ) => dialog . show ( ( ) => < DialogEditProject project = { p } /> ) } >
24252426 < DropdownMenu . ItemLabel > { language . t ( "common.edit" ) } </ DropdownMenu . ItemLabel >
@@ -2660,7 +2661,7 @@ export default function Layout(props: ParentProps) {
26602661 } }
26612662 style = { { width : layout . sidebar . opened ( ) ? `${ Math . max ( layout . sidebar . width ( ) , 244 ) } px` : "64px" } }
26622663 ref = { ( el ) => {
2663- navRef . current = el
2664+ setNav ( el )
26642665 } }
26652666 onMouseLeave = { ( ) => {
26662667 setHoverSession ( undefined )
0 commit comments