2023-12-15 17:34:50 +03:00
|
|
|
import clsx from 'clsx';
|
2023-12-25 16:53:27 +03:00
|
|
|
import { motion } from 'framer-motion';
|
|
|
|
import { RiPushpinFill, RiUnpinLine } from 'react-icons/ri';
|
2023-12-08 19:24:08 +03:00
|
|
|
|
2023-12-13 14:32:57 +03:00
|
|
|
import { useConceptTheme } from '@/context/ThemeContext';
|
2023-12-25 16:53:27 +03:00
|
|
|
import { animateNavigationToggle } from '@/utils/animations';
|
2023-12-08 19:24:08 +03:00
|
|
|
|
|
|
|
function ToggleNavigationButton() {
|
2023-12-25 16:53:27 +03:00
|
|
|
const { noNavigationAnimation, toggleNoNavigation } = useConceptTheme();
|
2023-12-08 19:24:08 +03:00
|
|
|
return (
|
2023-12-25 16:53:27 +03:00
|
|
|
<motion.button type='button' tabIndex={-1}
|
|
|
|
title={noNavigationAnimation ? 'Показать навигацию' : 'Скрыть навигацию'}
|
2023-12-15 17:34:50 +03:00
|
|
|
className={clsx(
|
2023-12-25 16:53:27 +03:00
|
|
|
'absolute top-0 right-0 z-navigation flex items-center justify-center',
|
2023-12-15 17:34:50 +03:00
|
|
|
'clr-btn-nav',
|
2023-12-25 16:53:27 +03:00
|
|
|
'select-none disabled:cursor-not-allowed'
|
2023-12-15 17:34:50 +03:00
|
|
|
)}
|
2023-12-08 19:24:08 +03:00
|
|
|
onClick={toggleNoNavigation}
|
2023-12-25 16:53:27 +03:00
|
|
|
initial={false}
|
|
|
|
animate={noNavigationAnimation ? 'off' : 'on'}
|
|
|
|
variants={animateNavigationToggle}
|
2023-12-08 19:24:08 +03:00
|
|
|
>
|
2023-12-25 16:53:27 +03:00
|
|
|
{!noNavigationAnimation ? <RiPushpinFill /> : null}
|
|
|
|
{noNavigationAnimation ? <RiUnpinLine /> : null}
|
|
|
|
</motion.button>);
|
2023-12-05 01:22:44 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
export default ToggleNavigationButton;
|