| import { Avatar, Card, Flex, Layout, Space } from 'antd'; | |
| import classNames from 'classnames'; | |
| import { componentList } from '../mock'; | |
| import { useHandleDrag } from '../hooks'; | |
| import styles from './index.less'; | |
| const { Sider } = Layout; | |
| 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}> | |
| {componentList.map((x) => ( | |
| <Card | |
| key={x.name} | |
| hoverable | |
| draggable | |
| className={classNames(styles.operatorCard)} | |
| onDragStart={handleDragStart(x.name)} | |
| > | |
| <Flex justify="space-between" align="center"> | |
| <Space size={15}> | |
| <Avatar icon={x.icon} shape={'square'} /> | |
| <section> | |
| <b>{x.name}</b> | |
| <div>{x.description}</div> | |
| </section> | |
| </Space> | |
| </Flex> | |
| </Card> | |
| ))} | |
| </Flex> | |
| </Sider> | |
| ); | |
| }; | |
| export default FlowSide; | |