'use client' import { useTranslation } from 'react-i18next' import { Fragment, useState } from 'react' import { useContext } from 'use-context-selector' import classNames from 'classnames' import Link from 'next/link' import { ArrowRightOnRectangleIcon, ArrowTopRightOnSquareIcon, ChevronDownIcon } from '@heroicons/react/24/solid' import { Menu, Transition } from '@headlessui/react' import Indicator from '../indicator' import AccountSetting from '../account-setting' import AccountAbout from '../account-about' import type { LangGeniusVersionResponse, UserProfileResponse } from '@/models/common' import I18n from '@/context/i18n' import WorkplaceSelector from './workplace-selector' import Avatar from '@/app/components/base/avatar' type IAppSelectorProps = { userProfile: UserProfileResponse onLogout: () => void langeniusVersionInfo: LangGeniusVersionResponse } export default function AppSelector({ userProfile, onLogout, langeniusVersionInfo }: IAppSelectorProps) { const itemClassName = ` flex items-center w-full h-10 px-3 text-gray-700 text-[14px] rounded-lg font-normal hover:bg-gray-100 cursor-pointer ` const [settingVisible, setSettingVisible] = useState(false) const [aboutVisible, setAboutVisible] = useState(false) const { locale } = useContext(I18n) const { t } = useTranslation() return (
{userProfile.name}
{userProfile.name}
{userProfile.email}
{t('common.userProfile.workspace')}
setSettingVisible(true)}>
{t('common.userProfile.settings')}
{t('common.userProfile.helpCenter')}
setAboutVisible(true)}>
{t('common.userProfile.about')}
{langeniusVersionInfo.current_version}
onLogout()}>
{t('common.userProfile.logout')}
{ settingVisible && setSettingVisible(false)} /> } { aboutVisible && setAboutVisible(false)} langeniusVersionInfo={langeniusVersionInfo} /> }
) }