import { FC } from 'react'; import { Grid, Tooltip } from '@mui/material'; import { ChevronLeft, ChevronRight, Home, Lock, Public } from '@mui/icons-material'; import { ApiDocumentationEndpoint } from '../../core/documentation/types'; import Paper from '@mui/material/Paper'; import MenuList from '@mui/material/MenuList'; import MenuItem from '@mui/material/MenuItem'; import Typography from '@mui/material/Typography'; import ListItemText from '@mui/material/ListItemText'; import ListItemIcon from '@mui/material/ListItemIcon'; type RestApiDocumentationMenuProps = { endpoints: ApiDocumentationEndpoint[]; activeEndpoint?: string; isMenuOpen: boolean; setEndpoint: (endpoint?: string) => void; setMenuOpen: () => void; }; export const ApiDocumentationMenu: FC = ({ endpoints, activeEndpoint, isMenuOpen, setEndpoint, setMenuOpen, }) => ( setEndpoint(undefined)}> {isMenuOpen ? ( <> {isMenuOpen && Overview} ) : ( )} {isMenuOpen ? : } {endpoints.map((endpoint) => ( setEndpoint(endpoint.route)} sx={ endpoint.route === activeEndpoint ? { borderLeft: '3px solid #dc3545', borderRight: '3px solid #dc3545', background: '#eee', } : { borderLeft: '3px solid transparent', borderRight: '3px solid transparent', } } > {isMenuOpen ? ( <> {endpoint.public ? : } {endpoint.name} {endpoint.actions.length > 0 && ( {endpoint.actions.length} )} ) : ( 0 ? ` (${endpoint.actions.length})` : ''}`} placement="right" > {endpoint.public ? : } )} ))} );