@@ -9,6 +9,7 @@ import { ParentMenuContext } from '../../../../components/Menubar/contexts';
99import Menubar from '../../../../components/Menubar/Menubar' ;
1010import { useMenuProps } from '../../../../components/Menubar/MenubarSubmenu' ;
1111import NavMenuItem from '../../../../components/Menubar/MenubarItem' ;
12+ import ButtonOrLink from '../../../../common/ButtonOrLink' ;
1213import { prop , remSize } from '../../../../theme' ;
1314import AsteriskIcon from '../../../../images/p5-asterisk.svg' ;
1415import IconButton from '../../../../common/IconButton' ;
@@ -200,6 +201,15 @@ const LanguageSelect = styled.div`
200201 }
201202` ;
202203
204+ // TO DO: replace with a more robust component for mobile menu items; this is a temp fix
205+ // because of context-related errors when using MenubarItem in mobile configurations
206+ // eslint-disable-next-line react/prop-types
207+ const MobileMenuItem = ( { children, ...props } ) => (
208+ < li >
209+ < ButtonOrLink { ...props } > { children } </ ButtonOrLink >
210+ </ li >
211+ ) ;
212+
203213const MobileNav = ( ) => {
204214 const project = useSelector ( ( state ) => state . project ) ;
205215 const user = useSelector ( ( state ) => state . user ) ;
@@ -294,12 +304,12 @@ const StuffMenu = () => {
294304 < IconButton icon = { AddIcon } { ...handlers } />
295305 < ul className = { isOpen ? 'opened' : '' } >
296306 < ParentMenuContext . Provider value = "stuff" >
297- < NavMenuItem onClick = { ( ) => newSketch ( ) } >
307+ < MobileMenuItem onClick = { ( ) => newSketch ( ) } >
298308 { t ( 'DashboardView.NewSketch' ) }
299- </ NavMenuItem >
300- < NavMenuItem onClick = { ( ) => setCreateCollectionVisible ( true ) } >
309+ </ MobileMenuItem >
310+ < MobileMenuItem onClick = { ( ) => setCreateCollectionVisible ( true ) } >
301311 { t ( 'DashboardView.CreateCollection' ) }
302- </ NavMenuItem >
312+ </ MobileMenuItem >
303313 </ ParentMenuContext . Provider >
304314 </ ul >
305315 { createCollectionVisible && (
@@ -326,13 +336,13 @@ const AccountMenu = () => {
326336 < ul className = { isOpen ? 'opened' : '' } >
327337 < ParentMenuContext . Provider value = "account" >
328338 < li className = "user" > { user . username } </ li >
329- < NavMenuItem href = { `/${ user . username } /sketches` } >
339+ < MobileMenuItem href = { `/${ user . username } /sketches` } >
330340 My Stuff
331- </ NavMenuItem >
332- < NavMenuItem href = "/account" > Settings</ NavMenuItem >
333- < NavMenuItem onClick = { ( ) => dispatch ( logoutUser ( ) ) } >
341+ </ MobileMenuItem >
342+ < MobileMenuItem href = "/account" > Settings</ MobileMenuItem >
343+ < MobileMenuItem onClick = { ( ) => dispatch ( logoutUser ( ) ) } >
334344 Log Out
335- </ NavMenuItem >
345+ </ MobileMenuItem >
336346 </ ParentMenuContext . Provider >
337347 </ ul >
338348 </ div >
@@ -397,48 +407,50 @@ const MoreMenu = () => {
397407 < ul className = { isOpen ? 'opened' : '' } >
398408 < ParentMenuContext . Provider value = "more" >
399409 < b > { t ( 'Nav.File.Title' ) } </ b >
400- < NavMenuItem onClick = { newSketch } > { t ( 'Nav.File.New' ) } </ NavMenuItem >
410+ < MobileMenuItem onClick = { newSketch } >
411+ { t ( 'Nav.File.New' ) }
412+ </ MobileMenuItem >
401413
402- < NavMenuItem onClick = { ( ) => saveSketch ( cmRef . current ) } >
414+ < MobileMenuItem onClick = { ( ) => saveSketch ( cmRef . current ) } >
403415 { t ( 'Common.Save' ) }
404- </ NavMenuItem >
405- < NavMenuItem href = "/p5/sketches" >
416+ </ MobileMenuItem >
417+ < MobileMenuItem href = "/p5/sketches" >
406418 { t ( 'Nav.File.Examples' ) }
407- </ NavMenuItem >
419+ </ MobileMenuItem >
408420 < b > { t ( 'Nav.Edit.Title' ) } </ b >
409- < NavMenuItem onClick = { cmRef . current ?. tidyCode } >
421+ < MobileMenuItem onClick = { cmRef . current ?. tidyCode } >
410422 { t ( 'Nav.Edit.TidyCode' ) }
411- </ NavMenuItem >
412- < NavMenuItem onClick = { cmRef . current ?. showFind } >
423+ </ MobileMenuItem >
424+ < MobileMenuItem onClick = { cmRef . current ?. showFind } >
413425 { t ( 'Nav.Edit.Find' ) }
414- </ NavMenuItem >
426+ </ MobileMenuItem >
415427 < b > { t ( 'Nav.Sketch.Title' ) } </ b >
416- < NavMenuItem onClick = { ( ) => dispatch ( newFile ( rootFile . id ) ) } >
428+ < MobileMenuItem onClick = { ( ) => dispatch ( newFile ( rootFile . id ) ) } >
417429 { t ( 'Nav.Sketch.AddFile' ) }
418- </ NavMenuItem >
419- < NavMenuItem onClick = { ( ) => dispatch ( newFolder ( rootFile . id ) ) } >
430+ </ MobileMenuItem >
431+ < MobileMenuItem onClick = { ( ) => dispatch ( newFolder ( rootFile . id ) ) } >
420432 { t ( 'Nav.Sketch.AddFolder' ) }
421- </ NavMenuItem >
433+ </ MobileMenuItem >
422434 { /* TODO: Add Translations */ }
423435 < b > Settings</ b >
424- < NavMenuItem
436+ < MobileMenuItem
425437 onClick = { ( ) => {
426438 dispatch ( openPreferences ( ) ) ;
427439 } }
428440 >
429441 Preferences
430- </ NavMenuItem >
431- < NavMenuItem onClick = { ( ) => setIsLanguageModalVisible ( true ) } >
442+ </ MobileMenuItem >
443+ < MobileMenuItem onClick = { ( ) => setIsLanguageModalVisible ( true ) } >
432444 Language
433- </ NavMenuItem >
445+ </ MobileMenuItem >
434446 < b > { t ( 'Nav.Help.Title' ) } </ b >
435- < NavMenuItem onClick = { ( ) => dispatch ( showKeyboardShortcutModal ( ) ) } >
447+ < MobileMenuItem onClick = { ( ) => dispatch ( showKeyboardShortcutModal ( ) ) } >
436448 { t ( 'Nav.Help.KeyboardShortcuts' ) }
437- </ NavMenuItem >
438- < NavMenuItem href = "https://p5js.org/reference/" >
449+ </ MobileMenuItem >
450+ < MobileMenuItem href = "https://p5js.org/reference/" >
439451 { t ( 'Nav.Help.Reference' ) }
440- </ NavMenuItem >
441- < NavMenuItem href = "/about" > { t ( 'Nav.Help.About' ) } </ NavMenuItem >
452+ </ MobileMenuItem >
453+ < MobileMenuItem href = "/about" > { t ( 'Nav.Help.About' ) } </ MobileMenuItem >
442454 </ ParentMenuContext . Provider >
443455 </ ul >
444456 </ div >
0 commit comments