@@ -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