'use client' import { useTranslation } from 'react-i18next' import { Fragment, useState } from 'react' import { useRouter } from 'next/navigation' import { useContext } from 'use-context-selector' import classNames from 'classnames' import Link from 'next/link' import { Menu, Transition } from '@headlessui/react' import Indicator from '../indicator' import AccountAbout from '../account-about' import WorkplaceSelector from './workplace-selector' import I18n from '@/context/i18n' import Avatar from '@/app/components/base/avatar' import { logout } from '@/service/common' import { useAppContext } from '@/context/app-context' import { ArrowUpRight, ChevronDown } from '@/app/components/base/icons/src/vender/line/arrows' import { LogOut01 } from '@/app/components/base/icons/src/vender/line/general' import { useModalContext } from '@/context/modal-context' export type IAppSelecotr = { isMobile: boolean } export default function AppSelector({ isMobile }: IAppSelecotr) { const itemClassName = ` flex items-center w-full h-9 px-3 text-gray-700 text-[14px] rounded-lg font-normal hover:bg-gray-50 cursor-pointer ` const router = useRouter() const [aboutVisible, setAboutVisible] = useState(false) const { locale } = useContext(I18n) const { t } = useTranslation() const { userProfile, langeniusVersionInfo } = useAppContext() const { setShowAccountSettingModal } = useModalContext() const handleLogout = async () => { await logout({ url: '/logout', params: {}, }) router.push('/signin') } return (
{ ({ open }) => ( <>
{!isMobile && <> {userProfile.name} }
{userProfile.name}
{userProfile.email}
{t('common.userProfile.workspace')}
setShowAccountSettingModal({ payload: 'account' })}>
{t('common.userProfile.settings')}
{t('common.userProfile.roadmapAndFeedback')}
{t('common.userProfile.community')}
{t('common.userProfile.helpCenter')}
{ document?.body?.getAttribute('data-public-site-about') !== 'hide' && (
setAboutVisible(true)}>
{t('common.userProfile.about')}
{langeniusVersionInfo.current_version}
) }
handleLogout()}>
{t('common.userProfile.logout')}
) }
{ aboutVisible && setAboutVisible(false)} langeniusVersionInfo={langeniusVersionInfo} /> }
) }