File size: 2,324 Bytes
3927930
 
 
 
 
 
d4bff6a
3927930
71d280d
f372e89
3927930
 
 
 
f372e89
e3239a2
3927930
 
d4bff6a
3927930
f372e89
3927930
 
 
 
 
 
 
 
 
 
 
 
 
d4bff6a
 
3927930
d4bff6a
3927930
d4bff6a
 
 
 
3927930
 
 
 
d4bff6a
3927930
 
 
 
 
 
 
 
 
 
 
 
 
f372e89
 
 
 
e3239a2
 
 
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
import HightLightMarkdown from '@/components/highlight-markdown';
import { ImageWithPopover } from '@/components/image';
import { useSelectTestingResult } from '@/hooks/knowledge-hooks';
import { IReference } from '@/interfaces/database/chat';
import { Card, Flex, Input, Layout, List, Space } from 'antd';
import { useState } from 'react';
import MarkdownContent from '../chat/markdown-content';
import { useSendQuestion } from './hooks';
import SearchSidebar from './sidebar';

import styles from './index.less';

const { Content } = Layout;
const { Search } = Input;

const SearchPage = () => {
  const [checkedList, setCheckedList] = useState<string[]>([]);
  const list = useSelectTestingResult();
  const { sendQuestion, answer, sendingLoading } = useSendQuestion(checkedList);

  return (
    <Layout className={styles.searchPage}>
      <SearchSidebar
        checkedList={checkedList}
        setCheckedList={setCheckedList}
      ></SearchSidebar>
      <Layout>
        <Content>
          <Flex className={styles.content}>
            <section className={styles.main}>
              <Search
                placeholder="input search text"
                onSearch={sendQuestion}
                size="large"
                loading={sendingLoading}
                disabled={checkedList.length === 0}
              />
              <MarkdownContent
                loading={sendingLoading}
                content={answer.answer}
                reference={answer.reference ?? ({} as IReference)}
                clickDocumentButton={() => {}}
              ></MarkdownContent>
              <List
                dataSource={list.chunks}
                renderItem={(item) => (
                  <List.Item>
                    <Card className={styles.card}>
                      <Space>
                        <ImageWithPopover id={item.img_id}></ImageWithPopover>
                        <HightLightMarkdown>
                          {item.highlight}
                        </HightLightMarkdown>
                      </Space>
                    </Card>
                  </List.Item>
                )}
              />
            </section>
            <section className={styles.graph}></section>
          </Flex>
        </Content>
      </Layout>
    </Layout>
  );
};

export default SearchPage;