File size: 2,640 Bytes
7b71fb2
7c4aa10
 
 
 
 
503735c
7b71fb2
7c4aa10
badd5fe
7c4aa10
503735c
5769711
362ec6c
6b8fc2c
362ec6c
 
7b71fb2
6b8fc2c
badd5fe
362ec6c
503735c
7b71fb2
 
 
 
6b8fc2c
7c4aa10
503735c
7b71fb2
 
503735c
badd5fe
 
 
 
 
503735c
 
7b71fb2
 
 
 
badd5fe
7b71fb2
 
88e5a61
7b71fb2
503735c
 
7b71fb2
 
 
5769711
7b71fb2
 
 
 
badd5fe
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
93
94
import { useKnowledgeBaseId } from '@/hooks/knowledgeHook';
import {
  useNavigateWithFromState,
  useSecondPathName,
  useThirdPathName,
} from '@/hooks/routeHook';
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;