2024-06-07 20:17:03 +03:00
|
|
|
import clsx from 'clsx';
|
|
|
|
import { motion } from 'framer-motion';
|
|
|
|
|
|
|
|
import { IconPin, IconUnpin } from '@/components/Icons';
|
2024-06-26 19:47:05 +03:00
|
|
|
import { useConceptOptions } from '@/context/ConceptOptionsContext';
|
2024-06-07 20:17:03 +03:00
|
|
|
import { animateNavigationToggle } from '@/styling/animations';
|
|
|
|
import { globals } from '@/utils/constants';
|
|
|
|
|
2024-06-26 19:47:05 +03:00
|
|
|
function ToggleNavigation() {
|
2024-06-07 20:17:03 +03:00
|
|
|
const { noNavigationAnimation, toggleNoNavigation } = useConceptOptions();
|
|
|
|
return (
|
|
|
|
<motion.button
|
|
|
|
type='button'
|
|
|
|
tabIndex={-1}
|
|
|
|
className={clsx(
|
2024-08-24 19:40:54 +03:00
|
|
|
'absolute top-0 right-0 z-navigation',
|
|
|
|
'min-h-[2rem] min-w-[2rem] sm:min-w-fit',
|
|
|
|
'flex items-center justify-center',
|
2024-06-21 11:16:47 +03:00
|
|
|
'clr-hover',
|
2024-08-24 19:40:54 +03:00
|
|
|
'select-none'
|
2024-06-07 20:17:03 +03:00
|
|
|
)}
|
|
|
|
onClick={toggleNoNavigation}
|
|
|
|
initial={false}
|
|
|
|
animate={noNavigationAnimation ? 'off' : 'on'}
|
|
|
|
variants={animateNavigationToggle}
|
|
|
|
data-tooltip-id={globals.tooltip}
|
|
|
|
data-tooltip-content={noNavigationAnimation ? 'Показать навигацию' : 'Скрыть навигацию'}
|
|
|
|
>
|
|
|
|
{!noNavigationAnimation ? <IconPin /> : null}
|
|
|
|
{noNavigationAnimation ? <IconUnpin /> : null}
|
|
|
|
</motion.button>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2024-06-26 19:47:05 +03:00
|
|
|
export default ToggleNavigation;
|