| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import { useFetchFlow } from '@/hooks/flow-hooks';
- import { Popover } from 'antd';
- import get from 'lodash/get';
- import React, { useMemo } from 'react';
- import JsonView from 'react18-json-view';
- import 'react18-json-view/src/style.css';
- import { Operator } from '../../constant';
- import { useReplaceIdWithText } from '../../hooks';
-
- import styles from './index.less';
-
- interface IProps extends React.PropsWithChildren {
- nodeId: string;
- }
-
- const NodePopover = ({ children, nodeId }: IProps) => {
- const { data } = useFetchFlow();
- const component = useMemo(() => {
- return get(data, ['dsl', 'components', nodeId], {});
- }, [nodeId, data]);
-
- const output = get(component, ['obj', 'params', 'output'], {});
- const componentName = get(component, ['obj', 'component_name'], '');
- const replacedOutput = useReplaceIdWithText(output);
-
- const content =
- componentName !== Operator.Answer ? (
- <div
- onClick={(e) => {
- e.preventDefault();
- e.stopPropagation();
- }}
- >
- <JsonView
- src={replacedOutput}
- displaySize={30}
- className={styles.jsonView}
- />
- </div>
- ) : undefined;
-
- return (
- <Popover content={content} placement="right" destroyTooltipOnHide>
- {children}
- </Popover>
- );
- };
-
- export default NodePopover;
|