You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.tsx 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import { useTranslate } from '@/hooks/commonHooks';
  2. import { Card, Divider, Flex, Layout, Tooltip } from 'antd';
  3. import classNames from 'classnames';
  4. import lowerFirst from 'lodash/lowerFirst';
  5. import { Operator, componentMenuList } from '../constant';
  6. import { useHandleDrag } from '../hooks';
  7. import OperatorIcon from '../operator-icon';
  8. import styles from './index.less';
  9. const { Sider } = Layout;
  10. interface IProps {
  11. setCollapsed: (width: boolean) => void;
  12. collapsed: boolean;
  13. }
  14. const FlowSide = ({ setCollapsed, collapsed }: IProps) => {
  15. const { handleDragStart } = useHandleDrag();
  16. const { t } = useTranslate('flow');
  17. return (
  18. <Sider
  19. collapsible
  20. collapsed={collapsed}
  21. collapsedWidth={0}
  22. theme={'light'}
  23. onCollapse={(value) => setCollapsed(value)}
  24. >
  25. <Flex vertical gap={10} className={styles.siderContent}>
  26. {componentMenuList.map((x) => {
  27. return (
  28. <>
  29. {x.name === Operator.DuckDuckGo && (
  30. <Divider
  31. style={{
  32. marginTop: 10,
  33. marginBottom: 10,
  34. padding: 0,
  35. borderBlockColor: '#b4afaf',
  36. borderStyle: 'dotted',
  37. }}
  38. ></Divider>
  39. )}
  40. <Card
  41. key={x.name}
  42. hoverable
  43. draggable
  44. className={classNames(styles.operatorCard)}
  45. onDragStart={handleDragStart(x.name)}
  46. >
  47. <Flex align="center" gap={15}>
  48. <OperatorIcon name={x.name}></OperatorIcon>
  49. <section>
  50. <Tooltip title={t(`${lowerFirst(x.name)}Description`)}>
  51. <b>{x.name}</b>
  52. </Tooltip>
  53. </section>
  54. </Flex>
  55. </Card>
  56. </>
  57. );
  58. })}
  59. </Flex>
  60. </Sider>
  61. );
  62. };
  63. export default FlowSide;