@@ -9,6 +9,7 @@ import { ParentMenuContext } from '../../../../components/Menubar/contexts';
9
9
import Menubar from '../../../../components/Menubar/Menubar' ;
10
10
import { useMenuProps } from '../../../../components/Menubar/MenubarSubmenu' ;
11
11
import NavMenuItem from '../../../../components/Menubar/MenubarItem' ;
12
+ import ButtonOrLink from '../../../../common/ButtonOrLink' ;
12
13
import { prop , remSize } from '../../../../theme' ;
13
14
import AsteriskIcon from '../../../../images/p5-asterisk.svg' ;
14
15
import IconButton from '../../../../common/IconButton' ;
@@ -200,6 +201,15 @@ const LanguageSelect = styled.div`
200
201
}
201
202
` ;
202
203
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
+
203
213
const MobileNav = ( ) => {
204
214
const project = useSelector ( ( state ) => state . project ) ;
205
215
const user = useSelector ( ( state ) => state . user ) ;
@@ -294,12 +304,12 @@ const StuffMenu = () => {
294
304
< IconButton icon = { AddIcon } { ...handlers } />
295
305
< ul className = { isOpen ? 'opened' : '' } >
296
306
< ParentMenuContext . Provider value = "stuff" >
297
- < NavMenuItem onClick = { ( ) => newSketch ( ) } >
307
+ < MobileMenuItem onClick = { ( ) => newSketch ( ) } >
298
308
{ t ( 'DashboardView.NewSketch' ) }
299
- </ NavMenuItem >
300
- < NavMenuItem onClick = { ( ) => setCreateCollectionVisible ( true ) } >
309
+ </ MobileMenuItem >
310
+ < MobileMenuItem onClick = { ( ) => setCreateCollectionVisible ( true ) } >
301
311
{ t ( 'DashboardView.CreateCollection' ) }
302
- </ NavMenuItem >
312
+ </ MobileMenuItem >
303
313
</ ParentMenuContext . Provider >
304
314
</ ul >
305
315
{ createCollectionVisible && (
@@ -326,13 +336,13 @@ const AccountMenu = () => {
326
336
< ul className = { isOpen ? 'opened' : '' } >
327
337
< ParentMenuContext . Provider value = "account" >
328
338
< li className = "user" > { user . username } </ li >
329
- < NavMenuItem href = { `/${ user . username } /sketches` } >
339
+ < MobileMenuItem href = { `/${ user . username } /sketches` } >
330
340
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 ( ) ) } >
334
344
Log Out
335
- </ NavMenuItem >
345
+ </ MobileMenuItem >
336
346
</ ParentMenuContext . Provider >
337
347
</ ul >
338
348
</ div >
@@ -397,48 +407,50 @@ const MoreMenu = () => {
397
407
< ul className = { isOpen ? 'opened' : '' } >
398
408
< ParentMenuContext . Provider value = "more" >
399
409
< 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 >
401
413
402
- < NavMenuItem onClick = { ( ) => saveSketch ( cmRef . current ) } >
414
+ < MobileMenuItem onClick = { ( ) => saveSketch ( cmRef . current ) } >
403
415
{ t ( 'Common.Save' ) }
404
- </ NavMenuItem >
405
- < NavMenuItem href = "/p5/sketches" >
416
+ </ MobileMenuItem >
417
+ < MobileMenuItem href = "/p5/sketches" >
406
418
{ t ( 'Nav.File.Examples' ) }
407
- </ NavMenuItem >
419
+ </ MobileMenuItem >
408
420
< b > { t ( 'Nav.Edit.Title' ) } </ b >
409
- < NavMenuItem onClick = { cmRef . current ?. tidyCode } >
421
+ < MobileMenuItem onClick = { cmRef . current ?. tidyCode } >
410
422
{ t ( 'Nav.Edit.TidyCode' ) }
411
- </ NavMenuItem >
412
- < NavMenuItem onClick = { cmRef . current ?. showFind } >
423
+ </ MobileMenuItem >
424
+ < MobileMenuItem onClick = { cmRef . current ?. showFind } >
413
425
{ t ( 'Nav.Edit.Find' ) }
414
- </ NavMenuItem >
426
+ </ MobileMenuItem >
415
427
< b > { t ( 'Nav.Sketch.Title' ) } </ b >
416
- < NavMenuItem onClick = { ( ) => dispatch ( newFile ( rootFile . id ) ) } >
428
+ < MobileMenuItem onClick = { ( ) => dispatch ( newFile ( rootFile . id ) ) } >
417
429
{ t ( 'Nav.Sketch.AddFile' ) }
418
- </ NavMenuItem >
419
- < NavMenuItem onClick = { ( ) => dispatch ( newFolder ( rootFile . id ) ) } >
430
+ </ MobileMenuItem >
431
+ < MobileMenuItem onClick = { ( ) => dispatch ( newFolder ( rootFile . id ) ) } >
420
432
{ t ( 'Nav.Sketch.AddFolder' ) }
421
- </ NavMenuItem >
433
+ </ MobileMenuItem >
422
434
{ /* TODO: Add Translations */ }
423
435
< b > Settings</ b >
424
- < NavMenuItem
436
+ < MobileMenuItem
425
437
onClick = { ( ) => {
426
438
dispatch ( openPreferences ( ) ) ;
427
439
} }
428
440
>
429
441
Preferences
430
- </ NavMenuItem >
431
- < NavMenuItem onClick = { ( ) => setIsLanguageModalVisible ( true ) } >
442
+ </ MobileMenuItem >
443
+ < MobileMenuItem onClick = { ( ) => setIsLanguageModalVisible ( true ) } >
432
444
Language
433
- </ NavMenuItem >
445
+ </ MobileMenuItem >
434
446
< b > { t ( 'Nav.Help.Title' ) } </ b >
435
- < NavMenuItem onClick = { ( ) => dispatch ( showKeyboardShortcutModal ( ) ) } >
447
+ < MobileMenuItem onClick = { ( ) => dispatch ( showKeyboardShortcutModal ( ) ) } >
436
448
{ t ( 'Nav.Help.KeyboardShortcuts' ) }
437
- </ NavMenuItem >
438
- < NavMenuItem href = "https://p5js.org/reference/" >
449
+ </ MobileMenuItem >
450
+ < MobileMenuItem href = "https://p5js.org/reference/" >
439
451
{ 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 >
442
454
</ ParentMenuContext . Provider >
443
455
</ ul >
444
456
</ div >
0 commit comments