Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3270 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3246 stevensc 1
import React from 'react'
3270 stevensc 2
import { NavLink as Link, useMatch } from 'react-router-dom'
2580 stevensc 3
import {
4
  List,
3246 stevensc 5
  ListItem,
2580 stevensc 6
  ListItemButton,
3246 stevensc 7
  ListItemIcon,
8
  ListItemText
2580 stevensc 9
} from '@mui/material'
2482 stevensc 10
 
11
import Widget from '@app/components/UI/Widget'
12
 
3246 stevensc 13
export default function Menu({ children }) {
14
  return (
3248 stevensc 15
    <Widget
16
      styles={{
17
        position: { xs: 'fixed', md: 'relative' },
18
        bottom: { xs: 0, md: 'auto' },
3299 stevensc 19
        left: { xs: 0, md: 'auto' },
20
        zIndex: { xs: 1100, md: 0 },
21
        borderWidth: '1px 0 0'
3248 stevensc 22
      }}
23
    >
3246 stevensc 24
      <List
25
        sx={{
26
          display: 'flex',
27
          flexDirection: { xs: 'row', md: 'column' },
28
          width: '100%',
3299 stevensc 29
 
3246 stevensc 30
          gap: ({ spacing }) => spacing(0.5)
31
        }}
32
      >
33
        {children}
34
      </List>
35
    </Widget>
36
  )
37
}
2580 stevensc 38
 
3246 stevensc 39
function MenuItem({ to, icon, label, onClick }) {
3270 stevensc 40
  const match = useMatch(to)
41
 
2482 stevensc 42
  return (
3270 stevensc 43
    <ListItem sx={{ display: match ? 'none' : 'flex' }}>
3246 stevensc 44
      <ListItemButton LinkComponent={Link} to={to} onClick={onClick}>
3251 stevensc 45
        {icon && <ListItemIcon>{icon}</ListItemIcon>}
3252 stevensc 46
        <ListItemText
47
          primary={label}
48
          sx={{ textAlign: { xs: 'center', md: 'start' } }}
49
        />
3246 stevensc 50
      </ListItemButton>
51
    </ListItem>
2482 stevensc 52
  )
53
}
3246 stevensc 54
 
55
Menu.Item = MenuItem