Skip to content

Commit d430f6d

Browse files
committed
code refactoring
1 parent f519e13 commit d430f6d

File tree

2 files changed

+22
-21
lines changed

2 files changed

+22
-21
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-responsive-menu-hook",
3-
"version": "0.0.6",
3+
"version": "0.1.0",
44
"description": "Responsive menu using react hooks",
55
"main": "index.js",
66
"module": "dist/react-responsive-menu-hook.mjs",

src/index.js

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ const ReactResponsiveMenu = ({ children }) => {
2121
const [menuItems, setMenuItems] = React.useState({})
2222
const [open, setOpen] = React.useState(false)
2323

24-
const toggle = value => setOpen(value)
24+
const toggle = React.useCallback(value => setOpen(value), [setOpen])
2525

2626
const observe = React.useCallback(
2727
elements => {
@@ -48,11 +48,9 @@ const ReactResponsiveMenu = ({ children }) => {
4848
threshold: 1,
4949
})
5050

51-
Array.from(navRef.current.children).forEach(item => {
52-
if (item.dataset.targetid) {
53-
observer.observe(item)
54-
}
55-
})
51+
Array.from(navRef.current.children).forEach(
52+
item => item.dataset.targetid && observer.observe(item)
53+
)
5654
return observer
5755
}, [])
5856

@@ -65,19 +63,6 @@ const ReactResponsiveMenu = ({ children }) => {
6563
[toggle]
6664
)
6765

68-
React.useEffect(() => {
69-
const observer = attachObserver()
70-
document.addEventListener('click', handleClickOutside)
71-
return () => {
72-
observer.disconnect()
73-
document.removeEventListener('click', handleClickOutside)
74-
}
75-
}, [])
76-
77-
// React.useEffect(() => {
78-
// warning(!isFragment(children()), `Menu should wrapped inside fragment`)
79-
// }, [children])
80-
8166
const showEllipsis = React.useMemo(
8267
() => Object.values(menuItems).some(v => v === false),
8368
[menuItems]
@@ -138,9 +123,25 @@ const ReactResponsiveMenu = ({ children }) => {
138123
toggle,
139124
}
140125

126+
React.useEffect(() => {
127+
const observer = attachObserver()
128+
document.addEventListener('click', handleClickOutside)
129+
return () => {
130+
observer.disconnect()
131+
document.removeEventListener('click', handleClickOutside)
132+
}
133+
}, [])
134+
135+
React.useEffect(() => {
136+
warning(
137+
isFragment(children(childProps)),
138+
`Menu should wrapped inside fragment`
139+
)
140+
}, [])
141+
141142
return (
142143
<div ref={navRef} style={styles.menuWrapper}>
143-
{children({ ...childProps })}
144+
{children(childProps)}
144145
</div>
145146
)
146147
}

0 commit comments

Comments
 (0)