| 'use client' | |
| import { useTranslation } from 'react-i18next' | |
| import Link from 'next/link' | |
| import dayjs from 'dayjs' | |
| import { RiCloseLine } from '@remixicon/react' | |
| import s from './index.module.css' | |
| import classNames from '@/utils/classnames' | |
| import Modal from '@/app/components/base/modal' | |
| import type { LangGeniusVersionResponse } from '@/models/common' | |
| import { IS_CE_EDITION } from '@/config' | |
| import LogoSite from '@/app/components/base/logo/logo-site' | |
| type IAccountSettingProps = { | |
| langeniusVersionInfo: LangGeniusVersionResponse | |
| onCancel: () => void | |
| } | |
| const buttonClassName = ` | |
| shrink-0 flex items-center h-8 px-3 rounded-lg border border-gray-200 | |
| text-xs text-gray-800 font-medium | |
| ` | |
| export default function AccountAbout({ | |
| langeniusVersionInfo, | |
| onCancel, | |
| }: IAccountSettingProps) { | |
| const { t } = useTranslation() | |
| const isLatest = langeniusVersionInfo.current_version === langeniusVersionInfo.latest_version | |
| return ( | |
| <Modal | |
| isShow | |
| onClose={() => { }} | |
| className={s.modal} | |
| > | |
| <div className='relative pt-4'> | |
| <div className='absolute -top-2 -right-4 flex justify-center items-center w-8 h-8 cursor-pointer' onClick={onCancel}> | |
| <RiCloseLine className='w-4 h-4 text-gray-500' /> | |
| </div> | |
| <div> | |
| <LogoSite className='mx-auto mb-2' /> | |
| <div className='mb-3 text-center text-xs font-normal text-gray-500'>Version {langeniusVersionInfo?.current_version}</div> | |
| <div className='mb-4 text-center text-xs font-normal text-gray-700'> | |
| <div>© {dayjs().year()} LangGenius, Inc., Contributors.</div> | |
| <div className='text-[#1C64F2]'> | |
| { | |
| IS_CE_EDITION | |
| ? <Link href={'https://github.com/langgenius/dify/blob/main/LICENSE'} target='_blank' rel='noopener noreferrer'>Open Source License</Link> | |
| : <> | |
| <Link href='https://dify.ai/privacy' target='_blank' rel='noopener noreferrer'>Privacy Policy</Link>,<span> </span> | |
| <Link href='https://dify.ai/terms' target='_blank' rel='noopener noreferrer'>Terms of Service</Link> | |
| </> | |
| } | |
| </div> | |
| </div> | |
| </div> | |
| <div className='mb-4 -mx-8 h-[0.5px] bg-gray-200' /> | |
| <div className='flex justify-between items-center'> | |
| <div className='text-xs font-medium text-gray-800'> | |
| { | |
| isLatest | |
| ? t('common.about.latestAvailable', { version: langeniusVersionInfo.latest_version }) | |
| : t('common.about.nowAvailable', { version: langeniusVersionInfo.latest_version }) | |
| } | |
| </div> | |
| <div className='flex items-center'> | |
| <Link | |
| className={classNames(buttonClassName, 'mr-2')} | |
| href={'https://github.com/langgenius/dify/releases'} | |
| target='_blank' rel='noopener noreferrer' | |
| > | |
| {t('common.about.changeLog')} | |
| </Link> | |
| { | |
| !isLatest && !IS_CE_EDITION && ( | |
| <Link | |
| className={classNames(buttonClassName, 'text-primary-600')} | |
| href={langeniusVersionInfo.release_notes} | |
| target='_blank' rel='noopener noreferrer' | |
| > | |
| {t('common.about.updateNow')} | |
| </Link> | |
| ) | |
| } | |
| </div> | |
| </div> | |
| </div> | |
| </Modal> | |
| ) | |
| } | |