File size: 2,462 Bytes
7b71fb2
 
503735c
7b71fb2
503735c
7b71fb2
503735c
7b71fb2
 
 
 
 
 
362ec6c
6b8fc2c
362ec6c
 
503735c
7b71fb2
6b8fc2c
362ec6c
503735c
7b71fb2
 
 
 
6b8fc2c
503735c
 
 
 
7b71fb2
 
503735c
 
 
 
7b71fb2
 
 
 
 
 
 
 
 
503735c
 
7b71fb2
 
 
 
 
 
 
 
 
fad2ec7
362ec6c
 
 
 
 
 
 
6b8fc2c
362ec6c
 
 
 
 
 
 
 
f3dd131
362ec6c
 
 
503735c
 
 
 
7b71fb2
503735c
362ec6c
 
 
 
6b8fc2c
 
362ec6c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import { useKnowledgeBaseId } from '@/hooks/knowledgeHook';
import { useSecondPathName, useThirdPathName } from '@/hooks/routeHook';
import { Breadcrumb } from 'antd';
import { ItemType } from 'antd/es/breadcrumb/Breadcrumb';
import { useEffect, useMemo } from 'react';
import { Link, Outlet, useDispatch, useLocation, useNavigate } from 'umi';
import Siderbar from './components/knowledge-sidebar';
import {
  KnowledgeDatasetRouteKey,
  KnowledgeRouteKey,
  datasetRouteMap,
  routeMap,
} from './constant';
import styles from './index.less';

const KnowledgeAdding = () => {
  const dispatch = useDispatch();
  const navigate = useNavigate();
  const knowledgeBaseId = useKnowledgeBaseId();

  const location = useLocation();
  const activeKey: KnowledgeRouteKey =
    (useSecondPathName() as KnowledgeRouteKey) || KnowledgeRouteKey.Dataset;

  const datasetActiveKey: KnowledgeDatasetRouteKey =
    useThirdPathName() as KnowledgeDatasetRouteKey;

  const gotoList = () => {
    navigate('/knowledge');
  };

  const breadcrumbItems: ItemType[] = useMemo(() => {
    const items: ItemType[] = [
      {
        title: <a onClick={gotoList}>Knowledge Base</a>,
      },
      {
        title: datasetActiveKey ? (
          <Link

            to={`/knowledge/${KnowledgeRouteKey.Dataset}?id=${knowledgeBaseId}`}

          >

            {routeMap[activeKey]}

          </Link>
        ) : (
          routeMap[activeKey]
        ),
      },
    ];

    if (datasetActiveKey) {
      items.push({
        title: datasetRouteMap[datasetActiveKey],
      });
    }

    return items;
  }, [activeKey, datasetActiveKey]);

  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]);

  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;