@@ -58,74 +58,17 @@ type LinkItemContainerProps = React.HTMLAttributes<HTMLAnchorElement> &
5858 }
5959
6060const LinkItemContainerNoBox = React . forwardRef < HTMLAnchorElement , LinkItemContainerProps > (
61- ( { children, onClick, userOnClick, inactiveText, as : Component = 'a' , ...rest } , forwardedRef ) => {
62- const clickHandler = React . useCallback (
63- ( event : React . MouseEvent < HTMLElement > ) => {
64- console . log ( '[LinkItemContainerNoBox] clickHandler called' , {
65- hasOnClick : ! ! onClick ,
66- hasUserOnClick : ! ! userOnClick ,
67- event : event . type ,
68- target : ( event . target as HTMLElement ) ?. tagName ,
69- defaultPrevented : event . defaultPrevented ,
70- timestamp : Date . now ( ) ,
71- } )
72-
73- // Check if click is on a button/svg/path (menu trigger) and prevent navigation immediately
74- const targetTag = ( event . target as HTMLElement ) ?. tagName ?. toLowerCase ( )
75- const isMenuTrigger = [ 'button' , 'svg' , 'path' ] . includes ( targetTag )
76- console . log ( '[LinkItemContainerNoBox] Checking target' , {
77- targetTag,
78- targetTagRaw : ( event . target as HTMLElement ) ?. tagName ,
79- isButton : targetTag === 'button' ,
80- isSvg : targetTag === 'svg' ,
81- isPath : targetTag === 'path' ,
82- willPreventDefault : isMenuTrigger ,
83- } )
84- if ( isMenuTrigger ) {
85- console . log (
86- '[LinkItemContainerNoBox] Click on button/svg/path detected, preventing default AND stopping propagation' ,
87- )
88- event . preventDefault ( )
89- event . stopPropagation ( )
90- }
91-
92- // Call Item's onClick first (handles selection logic)
93- if ( onClick ) {
94- console . log ( '[LinkItemContainerNoBox] Calling Item onClick' )
95- onClick ( event )
96- console . log ( '[LinkItemContainerNoBox] After Item onClick' , { defaultPrevented : event . defaultPrevented } )
97- }
98-
99- // Call user's onClick (NavList's onClick) if event not prevented
100- if ( userOnClick ) {
101- console . log ( '[LinkItemContainerNoBox] Calling userOnClick (NavList handler)' )
102- userOnClick ( event as React . MouseEvent < HTMLAnchorElement > )
103- console . log ( '[LinkItemContainerNoBox] After userOnClick' , { defaultPrevented : event . defaultPrevented } )
104- }
105- } ,
106- [ onClick , userOnClick ] ,
107- )
61+ ( { children, onClick, inactiveText, as : Component = 'a' , ...rest } , forwardedRef ) => {
10862 if ( inactiveText ) {
10963 return (
11064 < span ref = { forwardedRef } { ...( rest as React . HTMLAttributes < HTMLSpanElement > ) } >
11165 { children }
11266 </ span >
11367 )
11468 }
115- console . log ( '[LinkItemContainerNoBox] Rendering Link' , {
116- Component,
117- hasOnClick : ! ! onClick ,
118- hasUserOnClick : ! ! userOnClick ,
119- restKeys : Object . keys ( rest ) ,
120- hasTo : 'to' in rest ,
121- } )
122-
123- // Remove 'to' prop to prevent React Router from handling navigation
124- // The onClick handlers will manage navigation and menu opening
125- const { to : _ , ...restWithoutTo } = rest as typeof rest & { to ?: unknown }
126-
69+
12770 return (
128- < Link as = { Component } ref = { forwardedRef } { ...restWithoutTo } onClick = { clickHandler } >
71+ < Link as = { Component } ref = { forwardedRef } { ...( rest as LinkItemContainerProps ) } onClick = { onClick } >
12972 { children }
13073 </ Link >
13174 )
@@ -243,6 +186,9 @@ const UnwrappedItem = <As extends React.ElementType = 'li'>(
243186 ( event : React . MouseEvent < HTMLElement > ) => {
244187 if ( disabled || inactive || loading ) return
245188 onSelect ( event , afterSelect )
189+ if ( isLinkItem && props . onClick ) {
190+ props . onClick ( event as React . MouseEvent < HTMLAnchorElement > )
191+ }
246192 } ,
247193 [ onSelect , disabled , inactive , afterSelect , loading ] ,
248194 )
@@ -329,8 +275,6 @@ const UnwrappedItem = <As extends React.ElementType = 'li'>(
329275 ? {
330276 ...menuItemProps ,
331277 inactiveText,
332- userOnClick : props . onClick as ( ( event : React . MouseEvent < HTMLAnchorElement > ) => void ) | undefined ,
333- ref : forwardedRef ,
334278 }
335279 : ! listSemantics && {
336280 ...menuItemProps ,
0 commit comments