import { LuMoon, LuSun } from 'react-icons/lu'; import { IconAdmin, IconAdminOff, IconDatabase, IconHelp, IconHelpOff, IconLogout, IconUser } from '@/components/Icons'; import { CProps } from '@/components/props'; import Dropdown from '@/components/ui/Dropdown'; import DropdownButton from '@/components/ui/DropdownButton'; import { useAuth } from '@/context/AuthContext'; import { useConceptNavigation } from '@/context/NavigationContext'; import { useConceptOptions } from '@/context/OptionsContext'; import { urls } from '../urls'; interface UserDropdownProps { isOpen: boolean; hideDropdown: () => void; } function UserDropdown({ isOpen, hideDropdown }: UserDropdownProps) { const { darkMode, adminMode, toggleAdminMode, toggleDarkMode, showHelp, toggleShowHelp } = useConceptOptions(); const router = useConceptNavigation(); const { user, logout } = useAuth(); function navigateProfile(event: CProps.EventMouse) { hideDropdown(); router.push(urls.profile, event.ctrlKey); } function logoutAndRedirect() { hideDropdown(); logout(() => router.push(urls.login)); } function gotoAdmin() { hideDropdown(); logout(() => router.push(urls.admin, true)); } function handleToggleDarkMode() { hideDropdown(); toggleDarkMode(); } return ( } onClick={navigateProfile} /> : } title='Переключение темы оформления' onClick={handleToggleDarkMode} /> : } title='Отображение иконок подсказок' onClick={toggleShowHelp} /> {user?.is_staff ? ( : } title='Работа в режиме администратора' onClick={toggleAdminMode} /> ) : null} {user?.is_staff ? ( } onClick={gotoAdmin} /> ) : null} } onClick={logoutAndRedirect} /> ); } export default UserDropdown;