3
3
*
4
4
* General component to show menu with submenu.
5
5
*/
6
- import React , { Fragment , useCallback , useState } from " react" ;
7
- import { useLocation } from " @reach/router" ;
8
- import cn from " classnames" ;
9
- import { includes , map } from " lodash" ;
10
- import NavLink from " ../NavLink" ;
11
- import " ./styles.css" ;
6
+ import React , { Fragment , useCallback , useState } from ' react' ;
7
+ import { useLocation } from ' @reach/router' ;
8
+ import cn from ' classnames' ;
9
+ import { includes , map } from ' lodash' ;
10
+ import NavLink from ' ../NavLink' ;
11
+ import ' ./styles.css' ;
12
12
13
13
const SubMenu = ( { option } ) => {
14
14
const location = useLocation ( ) ;
15
15
16
16
const [ isOpen , setIsOpen ] = useState (
17
- includes ( map ( option . children , " path" ) , location . pathname )
17
+ includes ( map ( option . children , ' path' ) , location . pathname )
18
18
) ;
19
19
20
20
const toggleOpen = useCallback ( ( ) => {
@@ -24,8 +24,8 @@ const SubMenu = ({ option }) => {
24
24
return (
25
25
< >
26
26
< span
27
- className = { cn ( " menu-link menu-link-toggle" , {
28
- " menu-link-toggle-up" : isOpen ,
27
+ className = { cn ( ' menu-link menu-link-toggle' , {
28
+ ' menu-link-toggle-up' : isOpen ,
29
29
} ) }
30
30
onClick = { toggleOpen }
31
31
role = "button"
@@ -41,6 +41,7 @@ const SubMenu = ({ option }) => {
41
41
to = { subOption . path }
42
42
activeClassName = "menu-link-active"
43
43
className = "menu-link"
44
+ exact
44
45
>
45
46
{ subOption . title }
46
47
</ NavLink >
@@ -62,10 +63,19 @@ const Menu = ({ options, sidebarCollapsed }) => (
62
63
to = { option . path }
63
64
activeClassName = "menu-link-active"
64
65
className = "menu-link"
66
+ exact
65
67
>
66
- < img src = { option . activeIcon } className = "subroute-icon active-icon" alt = "Subroute Icon" />
67
- < img src = { option . icon } className = "subroute-icon gray-icon" alt = "Subroute Icon" />
68
- { ! sidebarCollapsed ? option . title : '' }
68
+ < img
69
+ src = { option . activeIcon }
70
+ className = "subroute-icon active-icon"
71
+ alt = "Subroute Icon"
72
+ />
73
+ < img
74
+ src = { option . icon }
75
+ className = "subroute-icon gray-icon"
76
+ alt = "Subroute Icon"
77
+ />
78
+ { ! sidebarCollapsed ? option . title : '' }
69
79
</ NavLink >
70
80
</ Fragment >
71
81
) : (
0 commit comments