| | import PropTypes from 'prop-types'; |
| | import { memo } from 'react'; |
| |
|
| | |
| | import { useTheme } from '@mui/material/styles'; |
| | import Avatar from '@mui/material/Avatar'; |
| | import Card from '@mui/material/Card'; |
| | import LinearProgress, { linearProgressClasses } from '@mui/material/LinearProgress'; |
| | import List from '@mui/material/List'; |
| | import ListItem from '@mui/material/ListItem'; |
| | import ListItemAvatar from '@mui/material/ListItemAvatar'; |
| | import ListItemText from '@mui/material/ListItemText'; |
| | import Stack from '@mui/material/Stack'; |
| | import Typography from '@mui/material/Typography'; |
| | import Box from '@mui/material/Box'; |
| |
|
| | |
| | import TableChartOutlinedIcon from '@mui/icons-material/TableChartOutlined'; |
| |
|
| | |
| |
|
| | function LinearProgressWithLabel({ value, ...others }) { |
| | return ( |
| | <Stack sx={{ gap: 1 }}> |
| | <Stack direction="row" sx={{ justifyContent: 'space-between', mt: 1.5 }}> |
| | <Typography |
| | variant="h6" |
| | sx={{ |
| | color: 'primary.800' |
| | }} |
| | > |
| | Progress |
| | </Typography> |
| | <Typography variant="h6" sx={{ color: 'inherit' }}>{`${Math.round(value)}%`}</Typography> |
| | </Stack> |
| | <LinearProgress |
| | aria-label="progress of theme" |
| | variant="determinate" |
| | value={value} |
| | {...others} |
| | sx={{ |
| | height: 10, |
| | borderRadius: 30, |
| | [`&.${linearProgressClasses.colorPrimary}`]: { |
| | bgcolor: 'background.paper' |
| | }, |
| | [`& .${linearProgressClasses.bar}`]: { |
| | borderRadius: 5, |
| | bgcolor: 'primary.dark' |
| | } |
| | }} |
| | /> |
| | </Stack> |
| | ); |
| | } |
| |
|
| | |
| |
|
| | function MenuCard() { |
| | const theme = useTheme(); |
| |
|
| | return ( |
| | <Card |
| | sx={{ |
| | bgcolor: 'primary.light', |
| | mb: 2.75, |
| | overflow: 'hidden', |
| | position: 'relative', |
| | '&:after': { |
| | content: '""', |
| | position: 'absolute', |
| | width: 157, |
| | height: 157, |
| | bgcolor: 'primary.200', |
| | borderRadius: '50%', |
| | top: -105, |
| | right: -96 |
| | } |
| | }} |
| | > |
| | <Box sx={{ p: 2 }}> |
| | <List disablePadding sx={{ pb: 1 }}> |
| | <ListItem alignItems="flex-start" disableGutters disablePadding> |
| | <ListItemAvatar sx={{ mt: 0 }}> |
| | <Avatar |
| | variant="rounded" |
| | sx={{ |
| | ...theme.typography.largeAvatar, |
| | borderRadius: 2, |
| | color: 'primary.main', |
| | border: 'none', |
| | bgcolor: 'background.paper' |
| | }} |
| | > |
| | <TableChartOutlinedIcon fontSize="inherit" /> |
| | </Avatar> |
| | </ListItemAvatar> |
| | <ListItemText |
| | sx={{ mt: 0 }} |
| | primary={ |
| | <Typography |
| | variant="subtitle1" |
| | sx={{ |
| | color: 'primary.800' |
| | }} |
| | > |
| | Get Extra Space |
| | </Typography> |
| | } |
| | secondary={<Typography variant="caption"> 28/23 GB</Typography>} |
| | /> |
| | </ListItem> |
| | </List> |
| | <LinearProgressWithLabel value={80} /> |
| | </Box> |
| | </Card> |
| | ); |
| | } |
| |
|
| | export default memo(MenuCard); |
| |
|
| | LinearProgressWithLabel.propTypes = { value: PropTypes.number, others: PropTypes.any }; |
| |
|