Feat/new account page (#9236)

This commit is contained in:
NFish
2024-10-12 23:49:18 +08:00
committed by GitHub
parent f73751843f
commit ea6734f550
11 changed files with 511 additions and 26 deletions

View File

@@ -107,7 +107,16 @@ export default function AppSelector({ isMobile }: IAppSelector) {
</div>
<div className="px-1 py-1">
<Menu.Item>
<div className={itemClassName} onClick={() => setShowAccountSettingModal({ payload: 'account' })}>
<Link
className={classNames(itemClassName, 'group justify-between')}
href='/account'
target='_self' rel='noopener noreferrer'>
<div>{t('common.account.account')}</div>
<ArrowUpRight className='hidden w-[14px] h-[14px] text-gray-500 group-hover:flex' />
</Link>
</Menu.Item>
<Menu.Item>
<div className={itemClassName} onClick={() => setShowAccountSettingModal({ payload: 'members' })}>
<div>{t('common.userProfile.settings')}</div>
</div>
</Menu.Item>

View File

@@ -2,10 +2,6 @@
import { useTranslation } from 'react-i18next'
import { useEffect, useRef, useState } from 'react'
import {
RiAccountCircleFill,
RiAccountCircleLine,
RiApps2AddFill,
RiApps2AddLine,
RiBox3Fill,
RiBox3Line,
RiCloseLine,
@@ -21,9 +17,7 @@ import {
RiPuzzle2Line,
RiTranslate2,
} from '@remixicon/react'
import AccountPage from './account-page'
import MembersPage from './members-page'
import IntegrationsPage from './Integrations-page'
import LanguagePage from './language-page'
import ApiBasedExtensionPage from './api-based-extension-page'
import DataSourcePage from './data-source-page'
@@ -60,7 +54,7 @@ type GroupItem = {
export default function AccountSetting({
onCancel,
activeTab = 'account',
activeTab = 'members',
}: IAccountSettingProps) {
const [activeMenu, setActiveMenu] = useState(activeTab)
const { t } = useTranslation()
@@ -125,18 +119,6 @@ export default function AccountSetting({
key: 'account-group',
name: t('common.settings.accountGroup'),
items: [
{
key: 'account',
name: t('common.settings.account'),
icon: <RiAccountCircleLine className={iconClassName} />,
activeIcon: <RiAccountCircleFill className={iconClassName} />,
},
{
key: 'integrations',
name: t('common.settings.integrations'),
icon: <RiApps2AddLine className={iconClassName} />,
activeIcon: <RiApps2AddFill className={iconClassName} />,
},
{
key: 'language',
name: t('common.settings.language'),
@@ -217,10 +199,8 @@ export default function AccountSetting({
</div>
</div>
<div className='px-4 sm:px-8 pt-2'>
{activeMenu === 'account' && <AccountPage />}
{activeMenu === 'members' && <MembersPage />}
{activeMenu === 'billing' && <BillingPage />}
{activeMenu === 'integrations' && <IntegrationsPage />}
{activeMenu === 'language' && <LanguagePage />}
{activeMenu === 'provider' && <ModelProviderPage />}
{activeMenu === 'data-source' && <DataSourcePage />}

View File

@@ -11,7 +11,7 @@ const HeaderWrapper = ({
children,
}: HeaderWrapperProps) => {
const pathname = usePathname()
const isBordered = ['/apps', '/datasets', '/datasets/create', '/tools'].includes(pathname)
const isBordered = ['/apps', '/datasets', '/datasets/create', '/tools', '/account'].includes(pathname)
return (
<div className={classNames(