import type { FC } from 'react' import { useTranslation } from 'react-i18next' import cn from 'classnames' import { useCallback, useEffect, useRef, useState } from 'react' import { useBoolean, useClickAway } from 'ahooks' import { RiCloseLine } from '@remixicon/react' import IterationResultPanel from '../../workflow/run/iteration-result-panel' import type { IChatItem } from '@/app/components/base/chat/chat/type' import Run from '@/app/components/workflow/run' import type { NodeTracing } from '@/types/workflow' type MessageLogModalProps = { currentLogItem?: IChatItem defaultTab?: string width: number fixedWidth?: boolean onCancel: () => void } const MessageLogModal: FC = ({ currentLogItem, defaultTab = 'DETAIL', width, fixedWidth, onCancel, }) => { const { t } = useTranslation() const ref = useRef(null) const [mounted, setMounted] = useState(false) useClickAway(() => { if (mounted) onCancel() }, ref) useEffect(() => { setMounted(true) }, []) const [iterationRunResult, setIterationRunResult] = useState([]) const [isShowIterationDetail, { setTrue: doShowIterationDetail, setFalse: doHideIterationDetail, }] = useBoolean(false) const handleShowIterationDetail = useCallback((detail: NodeTracing[][]) => { setIterationRunResult(detail) doShowIterationDetail() }, [doShowIterationDetail]) if (!currentLogItem || !currentLogItem.workflow_run_id) return null return (
{isShowIterationDetail ? ( ) : ( <>

{t('appLog.runDetail.title')}

)}
) } export default MessageLogModal