Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

index.tsx 2.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import { ReactComponent as FilterIcon } from '@/assets/filter.svg';
  2. import ModalManager from '@/components/modal-manager';
  3. import { PlusOutlined } from '@ant-design/icons';
  4. import { Button, Flex, Space } from 'antd';
  5. import { useCallback, useEffect } from 'react';
  6. import { useDispatch, useNavigate, useSelector } from 'umi';
  7. import KnowledgeCard from './knowledge-card';
  8. import KnowledgeCreatingModal from './knowledge-creating-modal';
  9. import styles from './index.less';
  10. const Knowledge = () => {
  11. const dispatch = useDispatch();
  12. const knowledgeModel = useSelector((state: any) => state.knowledgeModel);
  13. const navigate = useNavigate();
  14. const { data = [] } = knowledgeModel;
  15. const fetchList = useCallback(() => {
  16. dispatch({
  17. type: 'knowledgeModel/getList',
  18. payload: {},
  19. });
  20. }, []);
  21. // const handleAddKnowledge = () => {
  22. // navigate(`/knowledge/${KnowledgeRouteKey.Configuration}`);
  23. // };
  24. useEffect(() => {
  25. fetchList();
  26. }, [fetchList]);
  27. return (
  28. <div className={styles.knowledge}>
  29. <div className={styles.topWrapper}>
  30. <div>
  31. <span className={styles.title}>Welcome back, Zing</span>
  32. <p className={styles.description}>
  33. Which database are we going to use today?
  34. </p>
  35. </div>
  36. <Space size={'large'}>
  37. <Button icon={<FilterIcon />} className={styles.filterButton}>
  38. Filters
  39. </Button>
  40. <ModalManager>
  41. {({ visible, hideModal, showModal }) => (
  42. <>
  43. <Button
  44. type="primary"
  45. icon={<PlusOutlined />}
  46. onClick={() => {
  47. showModal();
  48. }}
  49. className={styles.topButton}
  50. >
  51. Create knowledge base
  52. </Button>
  53. <KnowledgeCreatingModal
  54. visible={visible}
  55. hideModal={hideModal}
  56. ></KnowledgeCreatingModal>
  57. </>
  58. )}
  59. </ModalManager>
  60. </Space>
  61. </div>
  62. <Flex gap="large" wrap="wrap">
  63. {data.map((item: any) => {
  64. return <KnowledgeCard item={item} key={item.name}></KnowledgeCard>;
  65. })}
  66. </Flex>
  67. </div>
  68. );
  69. };
  70. export default Knowledge;