Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

generate-node.tsx 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import LLMLabel from '@/components/llm-select/llm-label';
  2. import { useTheme } from '@/components/theme-provider';
  3. import { Flex } from 'antd';
  4. import classNames from 'classnames';
  5. import { get } from 'lodash';
  6. import { Handle, NodeProps, Position } from 'reactflow';
  7. import { useGetComponentLabelByValue } from '../../hooks/use-get-begin-query';
  8. import { IGenerateParameter, NodeData } from '../../interface';
  9. import { LeftHandleStyle, RightHandleStyle } from './handle-icon';
  10. import styles from './index.less';
  11. import NodeHeader from './node-header';
  12. export function GenerateNode({
  13. id,
  14. data,
  15. isConnectable = true,
  16. selected,
  17. }: NodeProps<NodeData>) {
  18. const parameters: IGenerateParameter[] = get(data, 'form.parameters', []);
  19. const getLabel = useGetComponentLabelByValue(id);
  20. const { theme } = useTheme();
  21. return (
  22. <section
  23. className={classNames(
  24. styles.logicNode,
  25. theme === 'dark' ? styles.dark : '',
  26. {
  27. [styles.selectedNode]: selected,
  28. },
  29. )}
  30. >
  31. <Handle
  32. id="c"
  33. type="source"
  34. position={Position.Left}
  35. isConnectable={isConnectable}
  36. className={styles.handle}
  37. style={LeftHandleStyle}
  38. ></Handle>
  39. <Handle
  40. type="source"
  41. position={Position.Right}
  42. isConnectable={isConnectable}
  43. className={styles.handle}
  44. style={RightHandleStyle}
  45. id="b"
  46. ></Handle>
  47. <NodeHeader
  48. id={id}
  49. name={data.name}
  50. label={data.label}
  51. className={styles.nodeHeader}
  52. ></NodeHeader>
  53. <div className={styles.nodeText}>
  54. <LLMLabel value={get(data, 'form.llm_id')}></LLMLabel>
  55. </div>
  56. <Flex gap={8} vertical className={styles.generateParameters}>
  57. {parameters.map((x) => (
  58. <Flex
  59. key={x.id}
  60. align="center"
  61. gap={6}
  62. className={styles.conditionBlock}
  63. >
  64. <label htmlFor="">{x.key}</label>
  65. <span className={styles.parameterValue}>
  66. {getLabel(x.component_id)}
  67. </span>
  68. </Flex>
  69. ))}
  70. </Flex>
  71. </section>
  72. );
  73. }