File size: 2,038 Bytes
b1ea792
64b1da0
 
4138aee
64b1da0
53f091c
b1ea792
4138aee
bdb8bf3
64b1da0
4138aee
64b1da0
b1ea792
4138aee
 
bdb8bf3
53f091c
64b1da0
0a9da14
53f091c
 
 
 
 
 
 
0a9da14
 
 
 
 
 
 
 
 
 
 
 
 
 
b8663aa
0a9da14
 
 
 
 
 
 
b8663aa
0a9da14
 
 
 
 
 
 
4138aee
0a9da14
 
 
bdb8bf3
e3b65ea
0a9da14
 
bdb8bf3
0a9da14
 
 
64b1da0
 
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
63
64
65
66
67
68
69
70
71
import { Handle, NodeProps, Position } from '@xyflow/react';
import { Flex } from 'antd';
import classNames from 'classnames';
import { RightHandleStyle } from './handle-icon';

import { useTheme } from '@/components/theme-provider';
import { IRelevantNode } from '@/interfaces/database/flow';
import { get } from 'lodash';
import { useReplaceIdWithName } from '../../hooks';
import styles from './index.less';
import NodeHeader from './node-header';

export function RelevantNode({ id, data, selected }: NodeProps<IRelevantNode>) {
  const yes = get(data, 'form.yes');
  const no = get(data, 'form.no');
  const replaceIdWithName = useReplaceIdWithName();
  const { theme } = useTheme();
  return (
    <section
      className={classNames(
        styles.logicNode,
        theme === 'dark' ? styles.dark : '',
        {
          [styles.selectedNode]: selected,
        },
      )}
    >
      <Handle
        type="target"
        position={Position.Left}
        isConnectable
        className={styles.handle}
        id={'a'}
      ></Handle>
      <Handle
        type="source"
        position={Position.Right}
        isConnectable
        className={styles.handle}
        id={'yes'}
        style={{ ...RightHandleStyle, top: 57 + 20 }}
      ></Handle>
      <Handle
        type="source"
        position={Position.Right}
        isConnectable
        className={styles.handle}
        id={'no'}
        style={{ ...RightHandleStyle, top: 115 + 20 }}
      ></Handle>
      <NodeHeader
        id={id}
        name={data.name}
        label={data.label}
        className={styles.nodeHeader}
      ></NodeHeader>

      <Flex vertical gap={10}>
        <Flex vertical>
          <div className={styles.relevantLabel}>Yes</div>
          <div className={styles.nodeText}>{replaceIdWithName(yes)}</div>
        </Flex>
        <Flex vertical>
          <div className={styles.relevantLabel}>No</div>
          <div className={styles.nodeText}>{replaceIdWithName(no)}</div>
        </Flex>
      </Flex>
    </section>
  );
}