| import { useKnowledgeBaseId } from '@/hooks/knowledge-hooks'; | |
| import { | |
| useNavigateWithFromState, | |
| useSecondPathName, | |
| useThirdPathName, | |
| } from '@/hooks/route-hook'; | |
| import { Breadcrumb } from 'antd'; | |
| import { ItemType } from 'antd/es/breadcrumb/Breadcrumb'; | |
| import { useEffect, useMemo } from 'react'; | |
| import { useTranslation } from 'react-i18next'; | |
| import { Link, Outlet, useDispatch, useLocation } from 'umi'; | |
| import Siderbar from './components/knowledge-sidebar'; | |
| import { KnowledgeDatasetRouteKey, KnowledgeRouteKey } from './constant'; | |
| import styles from './index.less'; | |
| const KnowledgeAdding = () => { | |
| const dispatch = useDispatch(); | |
| const knowledgeBaseId = useKnowledgeBaseId(); | |
| const { t } = useTranslation(); | |
| const location = useLocation(); | |
| const activeKey: KnowledgeRouteKey = | |
| (useSecondPathName() as KnowledgeRouteKey) || KnowledgeRouteKey.Dataset; | |
| const datasetActiveKey: KnowledgeDatasetRouteKey = | |
| useThirdPathName() as KnowledgeDatasetRouteKey; | |
| const gotoList = useNavigateWithFromState(); | |
| const breadcrumbItems: ItemType[] = useMemo(() => { | |
| const items: ItemType[] = [ | |
| { | |
| title: ( | |
| <a onClick={() => gotoList('/knowledge')}> | |
| {t('header.knowledgeBase')} | |
| </a> | |
| ), | |
| }, | |
| { | |
| title: datasetActiveKey ? ( | |
| <Link | |
| to={`/knowledge/${KnowledgeRouteKey.Dataset}?id=${knowledgeBaseId}`} | |
| > | |
| {t(`knowledgeDetails.${activeKey}`)} | |
| </Link> | |
| ) : ( | |
| t(`knowledgeDetails.${activeKey}`) | |
| ), | |
| }, | |
| ]; | |
| if (datasetActiveKey) { | |
| items.push({ | |
| title: t(`knowledgeDetails.${datasetActiveKey}`), | |
| }); | |
| } | |
| return items; | |
| }, [activeKey, datasetActiveKey, gotoList, knowledgeBaseId, t]); | |
| useEffect(() => { | |
| const search: string = location.search.slice(1); | |
| const map = search.split('&').reduce<Record<string, string>>((obj, cur) => { | |
| const [key, value] = cur.split('='); | |
| obj[key] = value; | |
| return obj; | |
| }, {}); | |
| dispatch({ | |
| type: 'kAModel/updateState', | |
| payload: { | |
| doc_id: undefined, | |
| ...map, | |
| }, | |
| }); | |
| }, [location, dispatch]); | |
| return ( | |
| <> | |
| <div className={styles.container}> | |
| <Siderbar></Siderbar> | |
| <div className={styles.contentWrapper}> | |
| <Breadcrumb items={breadcrumbItems} /> | |
| <div className={styles.content}> | |
| <Outlet></Outlet> | |
| </div> | |
| </div> | |
| </div> | |
| </> | |
| ); | |
| }; | |
| export default KnowledgeAdding; | |