1
1
import { useState , useEffect , useRef } from "react" ;
2
- import { Link } from "react-router-dom" ;
3
- import { Box } from "@chakra-ui/react" ;
2
+ import { Box , Link } from "@chakra-ui/react" ;
4
3
import Dropdown from "./Dropdown" ;
4
+ import { RANGE } from "utils" ;
5
5
6
6
const MenuItems = ( { items, depthLevel } ) => {
7
7
const [ dropdown , setDropdown ] = useState ( false ) ;
8
-
9
- let ref = useRef ( ) ;
8
+ const ref = useRef ( ) ;
10
9
11
10
useEffect ( ( ) => {
12
11
const handler = ( event ) => {
@@ -24,11 +23,11 @@ const MenuItems = ({ items, depthLevel }) => {
24
23
} , [ dropdown ] ) ;
25
24
26
25
const onMouseEnter = ( ) => {
27
- window . innerWidth > 960 && setDropdown ( true ) ;
26
+ window . innerWidth > RANGE && setDropdown ( true ) ;
28
27
} ;
29
28
30
29
const onMouseLeave = ( ) => {
31
- window . innerWidth > 960 && setDropdown ( false ) ;
30
+ window . innerWidth > RANGE && setDropdown ( false ) ;
32
31
} ;
33
32
34
33
const closeDropdown = ( ) => {
@@ -43,61 +42,23 @@ const MenuItems = ({ items, depthLevel }) => {
43
42
onMouseEnter = { onMouseEnter }
44
43
onMouseLeave = { onMouseLeave }
45
44
onClick = { closeDropdown }
46
- px = { 2 }
45
+ px = { 13 }
47
46
>
48
47
{ items . url && items . submenu ? (
49
48
< >
50
- < Box
51
- as = "button"
52
- display = "flex"
53
- alignItems = "center"
54
- color = "inherit"
55
- fontSize = "inherit"
56
- border = "none"
57
- backgroundColor = "transparent"
58
- cursor = "pointer"
59
- width = "100%"
60
- onClick = { ( ) => setDropdown ( ( prev ) => ! prev ) }
61
- _hover = { {
62
- bg : "#f2f2f2" ,
63
- } }
64
-
65
- // aria-haspopup="menu"
66
- // aria-expanded={dropdown ? "true" : "false"}
67
- >
68
- { window . innerWidth < 960 && depthLevel === 0 ? (
49
+ < Box _hover = { { bg : "gray.300" } } >
50
+ { window . innerWidth < RANGE && depthLevel === 0 ? (
69
51
items . title
70
52
) : (
71
- < Link
72
- to = { items . url }
73
- style = { {
74
- display : "block" ,
75
- fontSize : "inherit" ,
76
- color : "inherit" ,
77
- textDecoration : "none" ,
78
- } }
79
- >
80
- { items . title }
81
- </ Link >
53
+ < Link to = { items . url } > { items . title } </ Link >
82
54
) }
83
55
84
56
{ depthLevel > 0 &&
85
- window . innerWidth < 960 ? null : depthLevel > 0 &&
86
- window . innerWidth > 960 ? (
57
+ window . innerWidth < RANGE ? null : depthLevel > 0 &&
58
+ window . innerWidth > RANGE ? (
87
59
< span > »</ span >
88
60
) : (
89
- < Box
90
- as = "span"
91
- _after = { {
92
- content : `""` ,
93
- display : "inline-block" ,
94
- marginLeft : "0.28em" ,
95
- verticalAlign : "0.09em" ,
96
- borderTop : "0.42em solid" ,
97
- borderRight : "0.32em solid transparent" ,
98
- borderLeft : "0.32em solid transparent" ,
99
- } }
100
- />
61
+ < Box />
101
62
) }
102
63
</ Box >
103
64
< Dropdown
@@ -109,21 +70,15 @@ const MenuItems = ({ items, depthLevel }) => {
109
70
) : ! items . url && items . submenu ? (
110
71
< >
111
72
< Box
112
- as = "button"
113
- display = "flex"
114
73
alignItems = "center"
115
- color = "inherit"
116
- fontSize = "inherit"
117
74
border = "none"
118
75
backgroundColor = "transparent"
119
76
cursor = "pointer"
120
77
width = "100%"
121
78
_hover = { {
122
- bg : "#f2f2f2 " ,
79
+ bg : "gray.300 " ,
123
80
} }
124
81
onClick = { ( ) => setDropdown ( ( prev ) => ! prev ) }
125
- // aria-expanded={dropdown ? "true" : "false"}
126
- // aria-haspopup="menu"
127
82
>
128
83
{ items . title } { " " }
129
84
{ depthLevel > 0 ? (
@@ -151,12 +106,14 @@ const MenuItems = ({ items, depthLevel }) => {
151
106
</ >
152
107
) : (
153
108
< Link
154
- to = { items . url }
155
- style = { {
156
- display : "block" ,
157
- fontSize : "inherit" ,
158
- color : "inherit" ,
159
- textDecoration : "none" ,
109
+ href = { items . url }
110
+ display = "block"
111
+ fontSize = "inherit"
112
+ color = "inherit"
113
+ textDecoration = "none"
114
+ cursor = "pointer"
115
+ _hover = { {
116
+ bg : "gray.300" ,
160
117
} }
161
118
>
162
119
{ items . title }
0 commit comments