feat: add UserSetting and set height of MoreIcon to 24px and replace logo (#111)

* feat: replace logo

* feat: set height of MoreIcon to 24px

* feat: add UserSetting
This commit is contained in:
balibabu
2024-03-07 19:13:16 +08:00
committed by GitHub
parent 436c52bbc5
commit 63e498ac79
18 changed files with 205 additions and 20 deletions

View File

@@ -4,7 +4,6 @@ export const routeMap = {
[KnowledgeRouteKey.Dataset]: 'Dataset',
[KnowledgeRouteKey.Testing]: 'Retrieval testing',
[KnowledgeRouteKey.Configuration]: 'Configuration',
[KnowledgeRouteKey.TempTesting]: 'Testing',
};
export enum KnowledgeDatasetRouteKey {

View File

@@ -36,7 +36,7 @@ import styles from './index.less';
const reg = /(#{2}\d+\${2})/g;
const getChunkIndex = (match: string) => Number(match.slice(2, 3));
const getChunkIndex = (match: string) => Number(match.slice(2, -2));
const rehypeWrapReference = () => {
return function wrapTextTransform(tree: any) {

View File

@@ -4,6 +4,10 @@
flex-direction: column;
justify-content: space-between;
.delete {
height: 24px;
}
.content {
display: flex;
justify-content: space-between;

View File

@@ -64,17 +64,16 @@ const KnowledgeCard = ({ item }: IProps) => {
<div className={styles.container}>
<div className={styles.content}>
<Avatar size={34} icon={<UserOutlined />} src={item.avatar} />
<span className={styles.delete}>
<Dropdown
menu={{
items,
onClick: handleDropdownMenuClick,
}}
>
<Dropdown
menu={{
items,
onClick: handleDropdownMenuClick,
}}
>
<span className={styles.delete}>
<MoreIcon />
</Dropdown>
</span>
</span>
</Dropdown>
</div>
<div className={styles.titleWrapper}>
<span className={styles.title}>{item.name}</span>

View File

@@ -0,0 +1,16 @@
import { UserSettingRouteKey } from '@/constants/setting';
import {
ContainerOutlined,
DesktopOutlined,
PieChartOutlined,
} from '@ant-design/icons';
export const UserSettingIconMap = {
[UserSettingRouteKey.Profile]: <PieChartOutlined />,
[UserSettingRouteKey.Password]: <DesktopOutlined />,
[UserSettingRouteKey.Model]: <ContainerOutlined />,
[UserSettingRouteKey.Team]: <ContainerOutlined />,
[UserSettingRouteKey.Logout]: <ContainerOutlined />,
};
export * from '@/constants/setting';

View File

@@ -0,0 +1,14 @@
import { Flex } from 'antd';
import { Outlet } from 'umi';
import SideBar from './sidebar';
const UserSetting = () => {
return (
<Flex>
<SideBar></SideBar>
<Outlet></Outlet>
</Flex>
);
};
export default UserSetting;

View File

@@ -0,0 +1,5 @@
const UserSettingModel = () => {
return <div>UserSettingModel</div>;
};
export default UserSettingModel;

View File

@@ -0,0 +1,5 @@
const UserSettingPassword = () => {
return <div>UserSettingPassword</div>;
};
export default UserSettingPassword;

View File

@@ -0,0 +1,5 @@
const UserSettingProfile = () => {
return <div>UserSettingProfile</div>;
};
export default UserSettingProfile;

View File

@@ -0,0 +1,5 @@
const UserSettingTeam = () => {
return <div>UserSettingTeam</div>;
};
export default UserSettingTeam;

View File

@@ -0,0 +1,57 @@
import { useSecondPathName } from '@/hooks/routeHook';
import type { MenuProps } from 'antd';
import { Menu } from 'antd';
import React, { useMemo } from 'react';
import { useNavigate } from 'umi';
import {
UserSettingBaseKey,
UserSettingIconMap,
UserSettingRouteKey,
UserSettingRouteMap,
} from '../constants';
type MenuItem = Required<MenuProps>['items'][number];
function getItem(
label: React.ReactNode,
key: React.Key,
icon?: React.ReactNode,
children?: MenuItem[],
type?: 'group',
): MenuItem {
return {
key,
icon,
children,
label,
type,
} as MenuItem;
}
const items: MenuItem[] = Object.values(UserSettingRouteKey).map((value) =>
getItem(UserSettingRouteMap[value], value, UserSettingIconMap[value]),
);
const SideBar = () => {
const navigate = useNavigate();
const pathName = useSecondPathName();
const handleMenuClick: MenuProps['onClick'] = ({ key }) => {
navigate(`/${UserSettingBaseKey}/${key}`);
};
const selectedKeys = useMemo(() => {
return [pathName];
}, [pathName]);
return (
<Menu
selectedKeys={selectedKeys}
mode="inline"
items={items}
onClick={handleMenuClick}
/>
);
};
export default SideBar;