您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

index.tsx 1.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import { IModalProps } from '@/interfaces/common';
  2. import { Drawer } from 'antd';
  3. import { Node } from 'reactflow';
  4. import AnswerForm from '../answer-form';
  5. import BeginForm from '../begin-form';
  6. import { Operator } from '../constant';
  7. import GenerateForm from '../generate-form';
  8. import { useHandleFormValuesChange } from '../hooks';
  9. import RetrievalForm from '../retrieval-form';
  10. interface IProps {
  11. node?: Node;
  12. }
  13. const FormMap = {
  14. [Operator.Begin]: BeginForm,
  15. [Operator.Retrieval]: RetrievalForm,
  16. [Operator.Generate]: GenerateForm,
  17. [Operator.Answer]: AnswerForm,
  18. };
  19. const FlowDrawer = ({
  20. visible,
  21. hideModal,
  22. node,
  23. }: IModalProps<any> & IProps) => {
  24. const operatorName: Operator = node?.data.label;
  25. const OperatorForm = FormMap[operatorName];
  26. const { handleValuesChange } = useHandleFormValuesChange(node?.id);
  27. return (
  28. <Drawer
  29. title={node?.data.label}
  30. placement="right"
  31. onClose={hideModal}
  32. open={visible}
  33. getContainer={false}
  34. mask={false}
  35. width={470}
  36. >
  37. {visible && (
  38. <OperatorForm onValuesChange={handleValuesChange}></OperatorForm>
  39. )}
  40. </Drawer>
  41. );
  42. };
  43. export default FlowDrawer;