2023-07-15 17:46:19 +03:00
|
|
|
import { useNavigate } from 'react-router-dom';
|
|
|
|
import { useAuth } from '../../context/AuthContext';
|
|
|
|
import NavigationTextItem from './NavigationTextItem';
|
|
|
|
import { useTheme } from '../../context/ThemeContext';
|
2023-07-20 17:11:03 +03:00
|
|
|
import Dropdown from '../Common/Dropdown';
|
2023-07-15 17:46:19 +03:00
|
|
|
|
|
|
|
interface UserDropdownProps {
|
|
|
|
hideDropdown: Function
|
|
|
|
}
|
|
|
|
|
|
|
|
function UserDropdown({hideDropdown}: UserDropdownProps) {
|
|
|
|
const {darkMode, toggleDarkMode} = useTheme();
|
|
|
|
const navigate = useNavigate();
|
|
|
|
const {user, logout} = useAuth();
|
|
|
|
|
|
|
|
const navigateProfile = () => {
|
|
|
|
hideDropdown()
|
|
|
|
navigate('/profile');
|
|
|
|
};
|
|
|
|
|
|
|
|
const logoutAndRedirect = () => {
|
|
|
|
hideDropdown()
|
|
|
|
logout(() => {navigate('/login/');})
|
|
|
|
};
|
2023-07-16 22:53:22 +03:00
|
|
|
|
|
|
|
const navigateMyWork = () => {
|
|
|
|
hideDropdown()
|
|
|
|
navigate('/rsforms?filter=personal');
|
|
|
|
};
|
|
|
|
|
2023-07-15 17:46:19 +03:00
|
|
|
return (
|
2023-07-20 17:11:03 +03:00
|
|
|
<Dropdown widthClass='w-36' stretchLeft >
|
|
|
|
<NavigationTextItem description='Профиль пользователя'
|
|
|
|
text={user?.username}
|
|
|
|
onClick={navigateProfile}
|
|
|
|
/>
|
|
|
|
<NavigationTextItem description='Переключение темы оформления'
|
|
|
|
text={darkMode ? 'Светлая тема' : 'Темная тема'}
|
|
|
|
onClick={toggleDarkMode}
|
|
|
|
/>
|
|
|
|
<NavigationTextItem text={'Мои схемы'} onClick={navigateMyWork} />
|
|
|
|
<NavigationTextItem text={'Выйти...'} bold onClick={logoutAndRedirect} />
|
|
|
|
</Dropdown>
|
2023-07-15 17:46:19 +03:00
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
export default UserDropdown;
|