import { ChatContext } from '@/app/chat-context'; import { LoadingOutlined } from '@ant-design/icons'; import { GPTVis } from '@antv/gpt-vis'; import JsonView from '@uiw/react-json-view'; import { githubDarkTheme } from '@uiw/react-json-view/githubDark'; import { githubLightTheme } from '@uiw/react-json-view/githubLight'; import { Alert, Spin } from 'antd'; import classNames from 'classnames'; import React, { useContext, useMemo } from 'react'; import rehypeRaw from 'rehype-raw'; import remarkGfm from 'remark-gfm'; import markdownComponents from './config'; interface VisResponseProps { name: string; args: any; status: string; logo: string; result: string; err_msg: any; } const VisResponse: React.FC<{ data: VisResponseProps }> = ({ data }) => { const { mode } = useContext(ChatContext); const type = useMemo(() => { switch (data.status) { case 'complete': return 'success'; case 'failed': return 'error'; case 'running': return 'warning'; default: return undefined; } }, [data]); if (!data) return null; const theme = mode === 'dark' ? githubDarkTheme : githubLightTheme; return (
} />, })} /> {data.result && ( )} {data.err_msg && ( {data.err_msg} )}
); }; export default VisResponse;