import { ReactElement, useContext } from 'react'; import { Link, List, ListItem, ListItemButton, ListItemIcon, ListItemText, Stack, } from '@mui/material'; import IconifyIcon from 'components/base/IconifyIcon'; import logo from 'assets/logo/favicon-logo.png'; import Image from 'components/base/Image'; import NavButton from './NavButton'; import { axiosInstance } from '../../../axiosApi.js'; import { useNavigate } from 'react-router-dom'; import { AuthContext } from 'contexts/AuthContext'; import { AccountContext } from 'contexts/AccountContext.js'; import navItems from 'data/nav-items'; import vendorNavItems from 'data/vendor-nav-items.js'; import basicNavItems from 'data/basic-nav-items.js'; import { NavItem } from 'types.js'; import attorneyNavItems from 'data/attorney-nav-items.js'; import publicNavItems from 'data/public-nav-items.js'; const Sidebar = (): ReactElement => { const navigate = useNavigate(); const { authenticated, setAuthentication, setNeedsNewPassword } = useContext(AuthContext); const { account, accountLoading } = useContext(AccountContext); let nav_items: NavItem[] = []; if (account && !accountLoading) { if (account.user_type === 'property_owner') { if (account.tier === 'premium') { nav_items = navItems; } else { nav_items = basicNavItems; } } else if (account.user_type === 'vendor') { nav_items = vendorNavItems; } else if (account.user_type === 'attorney') { nav_items = attorneyNavItems; } } else { nav_items = publicNavItems; } const handleSignOut = async () => { try { const response = await axiosInstance.post('/logout/', { refresh_token: localStorage.getItem('refresh_token'), }); localStorage.removeItem('access_token'); localStorage.removeItem('refresh_token'); axiosInstance.defaults.headers['Authorization'] = null; setAuthentication(false); } finally { navigate('/authentication/login/'); } }; return ( theme.shadows[4]} sx={{ overflow: 'hidden', margin: { xs: 0, lg: 3.75 }, borderRadius: { xs: 0, lg: 5 }, '&:hover': { overflowY: 'auto', }, width: 218, }} > {nav_items.map((navItem, index) => ( ))} Log out ); }; export default Sidebar;