File size: 2,537 Bytes
7b71fb2
 
503735c
7b71fb2
8e222fd
7b71fb2
503735c
7b71fb2
 
 
 
 
 
362ec6c
6b8fc2c
362ec6c
 
503735c
7b71fb2
6b8fc2c
362ec6c
503735c
7b71fb2
 
 
 
6b8fc2c
8e222fd
503735c
8e222fd
503735c
7b71fb2
 
503735c
 
 
 
7b71fb2
 
 
 
 
 
 
 
 
503735c
 
7b71fb2
 
 
 
 
 
 
 
8e222fd
fad2ec7
362ec6c
 
 
 
 
 
 
6b8fc2c
362ec6c
 
 
 
 
 
 
8e222fd
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 { useCallback, 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 = useCallback(() => {
    navigate('/knowledge');
  }, [navigate]);

  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, gotoList, knowledgeBaseId]);

  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;