import { useState } from 'react'; import { pagePathUtils } from '@growi/core/dist/utils'; import { UserPicture } from '@growi/ui/dist/components'; import { useTranslation } from 'next-i18next'; import dynamic from 'next/dynamic'; import Link from 'next/link'; import { UncontrolledDropdown, DropdownToggle, DropdownMenu, DropdownItem, } from 'reactstrap'; import { apiv3Post } from '~/client/util/apiv3-client'; import { toastError } from '~/client/util/toastr'; import { useCurrentUser } from '~/stores/context'; import { SkeletonItem } from './SkeletonItem'; const ProactiveQuestionnaireModal = dynamic(() => import('~/features/questionnaire/client/components/ProactiveQuestionnaireModal'), { ssr: false }); export const PersonalDropdown = (): JSX.Element => { const { t } = useTranslation('commons'); const { data: currentUser } = useCurrentUser(); const [isQuestionnaireModalOpen, setQuestionnaireModalOpen] = useState(false); if (currentUser == null) { return ; } const logoutHandler = async() => { try { await apiv3Post('/logout'); window.location.reload(); } catch (err) { toastError(err); } }; return ( <>
{currentUser.name}
person {currentUser.username}
mail {currentUser.email}
home{t('personal_dropdown.home')} build{t('personal_dropdown.settings')} setQuestionnaireModalOpen(true)} > edit{t('personal_dropdown.feedback')} logout{t('Sign out')}
setQuestionnaireModalOpen(false)} /> ); };