File size: 1,654 Bytes
ddd1aa2
dcce454
 
ddd1aa2
dcce454
454aa85
dcce454
 
 
 
ddd1aa2
 
5365cac
 
 
 
 
 
 
dcce454
 
 
 
 
 
 
 
 
 
ddd1aa2
454aa85
 
 
 
 
 
 
 
 
 
 
 
 
ddd1aa2
 
 
 
 
 
454aa85
 
 
 
 
 
dcce454
 
 
 
 
5365cac
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
import { Card, Flex, Layout, Space, Typography } from 'antd';
import classNames from 'classnames';

import { componentMenuList } from '../constant';
import { useHandleDrag } from '../hooks';
import OperatorIcon from '../operator-icon';
import styles from './index.less';

const { Sider } = Layout;

const { Text } = Typography;

interface IProps {
  setCollapsed: (width: boolean) => void;
  collapsed: boolean;
}

const FlowSide = ({ setCollapsed, collapsed }: IProps) => {
  const { handleDragStart } = useHandleDrag();

  return (
    <Sider
      collapsible
      collapsed={collapsed}
      collapsedWidth={0}
      theme={'light'}
      onCollapse={(value) => setCollapsed(value)}
    >
      <Flex vertical gap={10} className={styles.siderContent}>
        {componentMenuList.map((x) => {
          return (
            <Card
              key={x.name}
              hoverable
              draggable
              className={classNames(styles.operatorCard)}
              onDragStart={handleDragStart(x.name)}
            >
              <Flex justify="space-between" align="center">
                <Space size={15}>
                  <OperatorIcon name={x.name}></OperatorIcon>
                  <section>
                    <b>{x.name}</b>
                    <Text
                      ellipsis={{ tooltip: x.description }}
                      style={{ width: 130 }}
                    >
                      {x.description}
                    </Text>
                  </section>
                </Space>
              </Flex>
            </Card>
          );
        })}
      </Flex>
    </Sider>
  );
};

export default FlowSide;