ConceptPortal-public/rsconcept/frontend/src/components/Navigation/Navigation.tsx

66 lines
2.4 KiB
TypeScript
Raw Normal View History

2023-09-05 00:23:53 +03:00
import { useConceptNavigation } from '../../context/NagivationContext';
2023-07-25 20:27:29 +03:00
import { useConceptTheme } from '../../context/ThemeContext';
import { EducationIcon, LibraryIcon, PlusIcon } from '../Icons';
2023-07-25 20:27:29 +03:00
import Logo from './Logo'
2023-07-15 17:46:19 +03:00
import NavigationButton from './NavigationButton';
import UserMenu from './UserMenu';
2023-07-25 20:27:29 +03:00
function Navigation () {
2023-09-05 00:23:53 +03:00
const { navigateTo } = useConceptNavigation();
const { noNavigation, toggleNoNavigation } = useConceptTheme();
2023-07-15 17:46:19 +03:00
2023-09-05 00:23:53 +03:00
const navigateLibrary = () => navigateTo('/library');
const navigateHelp = () => navigateTo('/manuals');
const navigateCreateNew = () => navigateTo('/rsform-create');
2023-07-25 20:27:29 +03:00
2023-07-15 17:46:19 +03:00
return (
2023-11-24 18:03:10 +03:00
<nav className='sticky top-0 left-0 right-0 select-none clr-app z-navigation h-fit'>
{noNavigation ?
<button type='button' tabIndex={-1}
title='Показать навигацию'
2023-09-05 23:18:21 +03:00
className='absolute top-0 right-0 z-navigation px-1 h-[1.6rem] border-b-2 border-l-2 clr-btn-nav rounded-none'
onClick={toggleNoNavigation}
>
{''}
</button> : null}
{!noNavigation ?
<button type='button' tabIndex={-1}
title='Скрыть навигацию'
className='absolute top-0 right-0 z-navigation w-[1.2rem] h-[3rem] border-b-2 border-l-2 clr-btn-nav rounded-none'
onClick={toggleNoNavigation}
>
<p>{'>'}</p><p>{'>'}</p>
</button> : null}
{!noNavigation ?
<div className='flex items-stretch justify-between pl-2 pr-[0.8rem] border-b-2 rounded-none h-[3rem]'>
2023-08-26 19:39:49 +03:00
<div className='flex items-center justify-start'>
2023-10-06 15:37:32 +03:00
<Logo />
2023-07-15 17:46:19 +03:00
</div>
<div className='flex items-center h-full'>
<NavigationButton
text='Новая схема'
description='Создать новую схему'
icon={<PlusIcon />}
onClick={navigateCreateNew}
/>
<NavigationButton
text='Библиотека'
description='Библиотека концептуальных схем'
icon={<LibraryIcon />}
onClick={navigateLibrary}
/>
<NavigationButton
text='Справка'
description='Справочные материалы и обучение'
icon={<EducationIcon />}
onClick={navigateHelp}
/>
<UserMenu />
2023-07-15 17:46:19 +03:00
</div>
</div> : null}
2023-07-15 17:46:19 +03:00
</nav>
);
}
export default Navigation;