import { ReactComponent as ConfigrationIcon } from '@/assets/svg/knowledge-configration.svg'; import { ReactComponent as DatasetIcon } from '@/assets/svg/knowledge-dataset.svg'; import { ReactComponent as TestingIcon } from '@/assets/svg/knowledge-testing.svg'; import { useSecondPathName } from '@/hooks/routeHook'; import { getWidth } from '@/utils'; import { AntDesignOutlined } from '@ant-design/icons'; import { Avatar, Menu, MenuProps, Space } from 'antd'; import classNames from 'classnames'; import { useEffect, useMemo, useState } from 'react'; import { useNavigate, useSelector } from 'umi'; import { KnowledgeRouteKey, routeMap } from '../../constant'; import styles from './index.less'; const KnowledgeSidebar = () => { const kAModel = useSelector((state: any) => state.kAModel); const { id } = kAModel; let navigate = useNavigate(); const activeKey = useSecondPathName(); const [windowWidth, setWindowWidth] = useState(getWidth()); const [collapsed, setCollapsed] = useState(false); const handleSelect: MenuProps['onSelect'] = (e) => { navigate(`/knowledge/${e.key}?id=${id}`); }; type MenuItem = Required['items'][number]; function getItem( label: React.ReactNode, key: React.Key, icon?: React.ReactNode, disabled?: boolean, children?: MenuItem[], type?: 'group', ): MenuItem { return { key, icon, children, label, type, disabled, } as MenuItem; } const items: MenuItem[] = useMemo(() => { return [ getItem( routeMap[KnowledgeRouteKey.Dataset], // TODO: Change icon color when selected KnowledgeRouteKey.Dataset, , ), getItem( routeMap[KnowledgeRouteKey.Testing], KnowledgeRouteKey.Testing, , ), getItem( routeMap[KnowledgeRouteKey.Configuration], KnowledgeRouteKey.Configuration, , ), ]; }, [id]); useEffect(() => { if (windowWidth.width > 957) { setCollapsed(false); } else { setCollapsed(true); } }, [windowWidth.width]); // 标记一下 useEffect(() => { const widthSize = () => { const width = getWidth(); setWindowWidth(width); }; window.addEventListener('resize', widthSize); return () => { window.removeEventListener('resize', widthSize); }; }, []); return (
} />
Cloud Computing

A scalable, secure cloud-based database optimized for high-performance computing and data storage.

957, [styles.minWidth]: windowWidth.width <= 957, })} // inlineCollapsed={collapsed} items={items} onSelect={handleSelect} />
); }; export default KnowledgeSidebar;