@@ -138,6 +138,12 @@ export default function Layout(props: ParentProps) {
138138 const [ hoverProject , setHoverProject ] = createSignal < string | undefined > ( )
139139
140140 const [ nav , setNav ] = createSignal < HTMLElement | undefined > ( undefined )
141+ const navLeave = { current : undefined as number | undefined }
142+
143+ onCleanup ( ( ) => {
144+ if ( navLeave . current === undefined ) return
145+ clearTimeout ( navLeave . current )
146+ } )
141147
142148 const sidebarHovering = createMemo ( ( ) => ! layout . sidebar . opened ( ) && hoverProject ( ) !== undefined )
143149 const sidebarExpanded = createMemo ( ( ) => layout . sidebar . opened ( ) || sidebarHovering ( ) )
@@ -1702,9 +1708,10 @@ export default function Layout(props: ParentProps) {
17021708 >
17031709 < HoverCard
17041710 openDelay = { 1000 }
1705- closeDelay = { sidebarHovering ( ) ? 300 : 0 }
1706- placement = "right"
1707- gutter = { 28 }
1711+ closeDelay = { sidebarHovering ( ) ? 600 : 0 }
1712+ placement = "right-start"
1713+ gutter = { 16 }
1714+ shift = { - 2 }
17081715 trigger = { item }
17091716 mount = { ! props . mobile ? nav ( ) : undefined }
17101717 open = { hoverSession ( ) === props . session . id }
@@ -2067,7 +2074,7 @@ export default function Layout(props: ParentProps) {
20672074 size = "large"
20682075 onClick = { ( e : MouseEvent ) => {
20692076 loadMore ( )
2070- ; ( e . currentTarget as HTMLButtonElement ) . blur ( )
2077+ ; ( e . currentTarget as HTMLButtonElement ) . blur ( )
20712078 } }
20722079 >
20732080 { language . t ( "common.loadMore" ) }
@@ -2302,7 +2309,7 @@ export default function Layout(props: ParentProps) {
23022309 size = "large"
23032310 onClick = { ( e : MouseEvent ) => {
23042311 loadMore ( )
2305- ; ( e . currentTarget as HTMLButtonElement ) . blur ( )
2312+ ; ( e . currentTarget as HTMLButtonElement ) . blur ( )
23062313 } }
23072314 >
23082315 { language . t ( "common.loadMore" ) }
@@ -2663,9 +2670,20 @@ export default function Layout(props: ParentProps) {
26632670 ref = { ( el ) => {
26642671 setNav ( el )
26652672 } }
2673+ onMouseEnter = { ( ) => {
2674+ if ( navLeave . current === undefined ) return
2675+ clearTimeout ( navLeave . current )
2676+ navLeave . current = undefined
2677+ } }
26662678 onMouseLeave = { ( ) => {
2667- setHoverSession ( undefined )
2668- setHoverProject ( undefined )
2679+ if ( ! sidebarHovering ( ) ) return
2680+
2681+ if ( navLeave . current !== undefined ) clearTimeout ( navLeave . current )
2682+ navLeave . current = window . setTimeout ( ( ) => {
2683+ navLeave . current = undefined
2684+ setHoverProject ( undefined )
2685+ setHoverSession ( undefined )
2686+ } , 300 )
26692687 } }
26702688 >
26712689 < div class = "@container w-full h-full contain-strict" >
0 commit comments