File tree Expand file tree Collapse file tree 1 file changed +14
-1
lines changed Expand file tree Collapse file tree 1 file changed +14
-1
lines changed Original file line number Diff line number Diff line change 1+ import { useEffect , useRef } from 'react'
12import cx from 'classnames'
23import { getMenuStyle } from './util'
34import { useMenuContext } from './context'
@@ -10,6 +11,17 @@ function MenuItem({
1011 level = 0 ,
1112} ) {
1213 const { theme, selectedKey, onSelect, onHoverKey } = useMenuContext ( )
14+ const menuItemRef = useRef ( null )
15+ const menuItemselected = keyValue . indexOf ( selectedKey ) > - 1
16+
17+ useEffect ( ( ) => {
18+ if ( menuItemselected ) {
19+ menuItemRef . scrollIntoView ( {
20+ block : 'center' ,
21+ behavior : 'smooth'
22+ } )
23+ }
24+ } , [ ] )
1325
1426 const handleOnClick = ( ) => {
1527 onSelect ( keyValue )
@@ -19,14 +31,15 @@ function MenuItem({
1931 return (
2032 < li
2133 className = { cx ( styles [ 'menu-item' ] , styles [ `menu-${ theme } ` ] , {
22- [ styles [ 'menu-item-selected' ] ] : keyValue . indexOf ( selectedKey ) > - 1 ,
34+ [ styles [ 'menu-item-selected' ] ] : menuItemselected ,
2335 } ) }
2436 onMouseEnter = { ( ) => {
2537 onHoverKey ( keyValue )
2638 } }
2739 onMouseLeave = { ( ) => onHoverKey ( '' ) }
2840 onClick = { handleOnClick }
2941 style = { getMenuStyle ( level , 'menuItem' ) }
42+ ref = { menuItemRef }
3043 >
3144 { icon ? < span className = { cx ( styles [ 'menu-icon' ] ) } > { icon } </ span > : null }
3245 < span className = { cx ( styles [ 'menu-item-title' ] ) } > { title } </ span >
You can’t perform that action at this time.
0 commit comments