| import { ToastContext } from '@/app/components/base/toast' | import { ToastContext } from '@/app/components/base/toast' | ||||
| import AppIcon from '@/app/components/base/app-icon' | import AppIcon from '@/app/components/base/app-icon' | ||||
| import Avatar from '@/app/components/base/avatar' | import Avatar from '@/app/components/base/avatar' | ||||
| import { IS_CE_EDITION } from '@/config' | |||||
| const titleClassName = ` | const titleClassName = ` | ||||
| text-sm font-medium text-gray-900 | text-sm font-medium text-gray-900 | ||||
| <div className={titleClassName}>{t('common.account.email')}</div> | <div className={titleClassName}>{t('common.account.email')}</div> | ||||
| <div className={classNames(inputClassName, 'cursor-pointer')}>{userProfile.email}</div> | <div className={classNames(inputClassName, 'cursor-pointer')}>{userProfile.email}</div> | ||||
| </div> | </div> | ||||
| <div className='mb-8'> | |||||
| <div className='mb-1 text-sm font-medium text-gray-900'>{t('common.account.password')}</div> | |||||
| <div className='mb-2 text-xs text-gray-500'>{t('common.account.passwordTip')}</div> | |||||
| <Button className='font-medium !text-gray-700 !px-3 !py-[7px] !text-[13px]' onClick={() => setEditPasswordModalVisible(true)}>{userProfile.is_password_set ? t('common.account.resetPassword') : t('common.account.setPassword')}</Button> | |||||
| </div> | |||||
| {IS_CE_EDITION && ( | |||||
| <div className='mb-8'> | |||||
| <div className='mb-1 text-sm font-medium text-gray-900'>{t('common.account.password')}</div> | |||||
| <div className='mb-2 text-xs text-gray-500'>{t('common.account.passwordTip')}</div> | |||||
| <Button className='font-medium !text-gray-700 !px-3 !py-[7px] !text-[13px]' onClick={() => setEditPasswordModalVisible(true)}>{userProfile.is_password_set ? t('common.account.resetPassword') : t('common.account.setPassword')}</Button> | |||||
| </div> | |||||
| )} | |||||
| {!!apps.length && ( | {!!apps.length && ( | ||||
| <> | <> | ||||
| <div className='mb-6 border-[0.5px] border-gray-100' /> | <div className='mb-6 border-[0.5px] border-gray-100' /> |
| import s from './index.module.css' | import s from './index.module.css' | ||||
| import Modal from '@/app/components/base/modal' | import Modal from '@/app/components/base/modal' | ||||
| import Button from '@/app/components/base/button' | import Button from '@/app/components/base/button' | ||||
| import { IS_CE_EDITION } from '@/config' | |||||
| type IInvitedModalProps = { | type IInvitedModalProps = { | ||||
| invitationLink: string | invitationLink: string | ||||
| onCancel: () => void | onCancel: () => void | ||||
| <XMarkIcon className='w-4 h-4 cursor-pointer' onClick={onCancel} /> | <XMarkIcon className='w-4 h-4 cursor-pointer' onClick={onCancel} /> | ||||
| </div> | </div> | ||||
| <div className='mb-1 text-xl font-semibold text-gray-900'>{t('common.members.invitationSent')}</div> | <div className='mb-1 text-xl font-semibold text-gray-900'>{t('common.members.invitationSent')}</div> | ||||
| <div className='mb-5 text-sm text-gray-500'>{t('common.members.invitationSentTip')}</div> | |||||
| <div className='mb-9'> | |||||
| <div className='py-2 text-sm font-Medium text-gray-900'>{t('common.members.invitationLink')}</div> | |||||
| <InvitationLink value={invitationLink} /> | |||||
| </div> | |||||
| {!IS_CE_EDITION && ( | |||||
| <div className='mb-10 text-sm text-gray-500'>{t('common.members.invitationSentTip')}</div> | |||||
| )} | |||||
| {IS_CE_EDITION && ( | |||||
| <> | |||||
| <div className='mb-5 text-sm text-gray-500'>{t('common.members.invitationSentTip')}</div> | |||||
| <div className='mb-9'> | |||||
| <div className='py-2 text-sm font-Medium text-gray-900'>{t('common.members.invitationLink')}</div> | |||||
| <InvitationLink value={invitationLink} /> | |||||
| </div> | |||||
| </> | |||||
| )} | |||||
| <div className='flex justify-end'> | <div className='flex justify-end'> | ||||
| <Button | <Button | ||||
| className='w-[96px] text-sm font-medium' | className='w-[96px] text-sm font-medium' |