import styles from './index.module.less'; import MindMapGraph from '../mind-map'; import { MindsearchContext } from '../../provider/context'; import MindSearchAvatar from '../../assets/mindsearch-avatar.svg'; import CustomMarkdown from '../custom-markdown'; import { useState, useEffect, useContext } from 'react'; import classNames from 'classnames'; interface IProps { adjList: any; isEnd: boolean; response: string; refList: any; listId: number; question: string; handleNodeClick: (info: any, idx: number) => void; } const Answer = ({ refList = null, adjList, isEnd, response = '', listId, handleNodeClick, question = '' }: IProps) => { const { chatIsOver } = useContext(MindsearchContext); const [showGraph, setShowGraph] = useState(true); // 整体的渲染树 const [renderData, setRenderData] = useState([]); const toggleGraph = () => { setShowGraph(!showGraph); }; const handleClick = (node: string) => { handleNodeClick(node, listId); }; const generateMapData = (arr: []) => { const tempArr: any[] = arr.map((item: { name: string; id: number; state: number }) => { if (item.name && adjList[item.name]) { return { ...item, children: generateMapData(adjList?.[item.name]), }; } }); return tempArr; }; const convertTreeData = () => { const root: any = { id: 0, name: '原始问题', state: 3, children: generateMapData(adjList?.root || []), }; // 返回包含根节点的数组 // console.log('renderData-----------', [root]); setRenderData([root]); }; useEffect(() => { if (!adjList || Object.keys(adjList)?.length < 2) { setRenderData([]); return; }; convertTreeData(); }, [adjList]); return
mindsearch-avatar
{ showGraph ? <> { (renderData?.length > 0) &&
收起
} :
查看思考节点
} {response && (
)}
}; export default Answer;