jellyfish-web/src/apps/dashboard/components/drawer/sections/AdvancedDrawerSection.tsx

110 lines
4.4 KiB
TypeScript
Raw Normal View History

import Article from '@mui/icons-material/Article';
import EditNotifications from '@mui/icons-material/EditNotifications';
import ExpandLess from '@mui/icons-material/ExpandLess';
import ExpandMore from '@mui/icons-material/ExpandMore';
import Extension from '@mui/icons-material/Extension';
import Lan from '@mui/icons-material/Lan';
import Schedule from '@mui/icons-material/Schedule';
import VpnKey from '@mui/icons-material/VpnKey';
2022-11-28 16:39:13 -05:00
import Collapse from '@mui/material/Collapse';
import List from '@mui/material/List';
import ListItem from '@mui/material/ListItem';
import ListItemIcon from '@mui/material/ListItemIcon';
import ListItemText from '@mui/material/ListItemText';
import ListSubheader from '@mui/material/ListSubheader';
import React from 'react';
import { useLocation } from 'react-router-dom';
import ListItemLink from 'components/ListItemLink';
2022-11-28 16:39:13 -05:00
import globalize from 'scripts/globalize';
const PLUGIN_PATHS = [
2023-09-25 00:00:36 -04:00
'/dashboard/plugins',
'/dashboard/plugins/catalog',
'/dashboard/plugins/repositories',
'/dashboard/plugins/add',
2022-11-28 16:39:13 -05:00
'/configurationpage'
];
const AdvancedDrawerSection = () => {
const location = useLocation();
const isPluginSectionOpen = PLUGIN_PATHS.includes(location.pathname);
return (
<List
aria-labelledby='advanced-subheader'
subheader={
<ListSubheader component='div' id='advanced-subheader'>
{globalize.translate('TabAdvanced')}
</ListSubheader>
}
>
<ListItem disablePadding>
2023-09-25 00:00:36 -04:00
<ListItemLink to='/dashboard/networking'>
2022-11-28 16:39:13 -05:00
<ListItemIcon>
<Lan />
</ListItemIcon>
<ListItemText primary={globalize.translate('TabNetworking')} />
</ListItemLink>
</ListItem>
<ListItem disablePadding>
2023-09-25 00:00:36 -04:00
<ListItemLink to='/dashboard/keys'>
2022-11-28 16:39:13 -05:00
<ListItemIcon>
<VpnKey />
</ListItemIcon>
<ListItemText primary={globalize.translate('HeaderApiKeys')} />
</ListItemLink>
</ListItem>
<ListItem disablePadding>
2023-09-25 00:00:36 -04:00
<ListItemLink to='/dashboard/logs'>
2022-11-28 16:39:13 -05:00
<ListItemIcon>
<Article />
</ListItemIcon>
<ListItemText primary={globalize.translate('TabLogs')} />
</ListItemLink>
</ListItem>
<ListItem disablePadding>
2023-09-25 00:00:36 -04:00
<ListItemLink to='/dashboard/notifications'>
2022-11-28 16:39:13 -05:00
<ListItemIcon>
<EditNotifications />
</ListItemIcon>
<ListItemText primary={globalize.translate('Notifications')} />
2022-11-28 16:39:13 -05:00
</ListItemLink>
</ListItem>
<ListItem disablePadding>
2023-09-25 00:00:36 -04:00
<ListItemLink to='/dashboard/plugins' selected={false}>
2022-11-28 16:39:13 -05:00
<ListItemIcon>
<Extension />
</ListItemIcon>
<ListItemText primary={globalize.translate('TabPlugins')} />
{isPluginSectionOpen ? <ExpandLess /> : <ExpandMore />}
</ListItemLink>
</ListItem>
<Collapse in={isPluginSectionOpen} timeout='auto' unmountOnExit>
<List component='div' disablePadding>
2023-09-25 00:00:36 -04:00
<ListItemLink to='/dashboard/plugins' sx={{ pl: 4 }}>
2022-11-28 16:39:13 -05:00
<ListItemText inset primary={globalize.translate('TabMyPlugins')} />
</ListItemLink>
2023-09-25 00:00:36 -04:00
<ListItemLink to='/dashboard/plugins/catalog' sx={{ pl: 4 }}>
2022-11-28 16:39:13 -05:00
<ListItemText inset primary={globalize.translate('TabCatalog')} />
</ListItemLink>
2023-09-25 00:00:36 -04:00
<ListItemLink to='/dashboard/plugins/repositories' sx={{ pl: 4 }}>
2022-11-28 16:39:13 -05:00
<ListItemText inset primary={globalize.translate('TabRepositories')} />
</ListItemLink>
</List>
</Collapse>
<ListItem disablePadding>
2023-09-25 00:00:36 -04:00
<ListItemLink to='/dashboard/tasks'>
2022-11-28 16:39:13 -05:00
<ListItemIcon>
<Schedule />
</ListItemIcon>
<ListItemText primary={globalize.translate('TabScheduledTasks')} />
</ListItemLink>
</ListItem>
</List>
);
};
export default AdvancedDrawerSection;